int main(){ c = Start(); /* Save current attributes */ /*for (int i=0;i<255;i++){ printf("%d [%c]\n",i,i); }*/ char name[80]; printf("Qual arquivo?\n"); scanf("%s",name); SetPos(c,0,0); FileHandler *file = FileHandler_LoadFile(name); Java *j = JAVA_createJava(file); SetColor(c,0x79); printf("%c",201); for (int i=0;i<SIZEX-2;i++){ printf("%c",205); } printf("%c",187); for (int i=0;i<SIZEY;i++){ SetPos(c,30,i+1); printf("%c",186); SetPos(c,0,i+1); printf("%c",186); SetPos(c,SIZEX-1,i+1); printf("%c",186); } printf("%c",200); for (int i=0;i<SIZEX-2;i++){ printf("%c",205); } printf("%c",188); SetColor(c,0x79); for (int y=1;y<SIZEY+1;y++){ for (int x=1;x<SIZEX-1;x++){ if (x != 30){ SetPos(c,x,y); printf(" "); } } } SetPos(c,8,1); SetColor(c,0x7c); printf("Atributos:"); DrawAttr(j); FileHandler_free(file); JAVA_freeJava(j); //http://msdn.microsoft.com/en-us/library/windows/desktop/ms682088%28v=vs.85%29.aspx#_win32_character_attributes Close(c); return 0; }
//--------------------------------------------------------------------------------------- void CMenuItem::UpdateState(int _state) { if (state != _state) { state = _state; int size = strlen(data); if (param->GetType() == PTYPE_STRING) size = maxLen; DrawAttr(x2, y, colors[state], size * 6); } }
//--------------------------------------------------------------------------------------- void CMenuItem::UpdateData(bool force) { Redraw(true); if (param != NULL) { int delNumber = data.Length(); param->GetValueText(data); int diff = data.Length() - maxLen; if (diff == 1) maxLen++; else if (diff > 1) { data.Delete(0, ++diff); data.Insert(0, "\34"); } Redraw(); diff = data.Length(); delNumber -= diff; if (delNumber > 0) { int xx = x2 + (diff * 6); DrawStr(xx + 1, y, "", delNumber); if (param->GetType() == PTYPE_STRING) delNumber = maxLen - delNumber; delNumber *= 6; byte mod = xx & 0x07; if (mod > 0) xx += (8 - mod); DrawAttr(xx, y, colors[0], delNumber); } } else if (force) Redraw(); }
//--------------------------------------------------------------------------------------- void CMenuItem::UpdateData(const char *_data) { if (strncmp(data, _data, strlen(_data)) != 0) { int delNumber = data.Length() - strlen(_data); data = _data; Redraw(); if (delNumber > 0) { int xx = x2 + (data.Length() * 6); DrawStr(xx + 1, y, "", delNumber); if (param->GetType() != PTYPE_STRING) { delNumber *= 6; byte mod = xx & 0x07; if (mod > 0) xx += (8 - mod); DrawAttr(xx, y, colors[0], delNumber); } } } }
//--------------------------------------------------------------------------------------- void CMenuItem::Redraw(bool justInit) { char *name = (char *) origName; size = strlen(origName); y = origY; char *ptr = name; while (*ptr != 0) { if (*ptr++ == '\n') { byte offset = (ptr - name); DrawStrAttr(x, y, name, colors[3], offset - 1); name += offset; size -= offset; y++; } } DrawStrAttr(x, y, name, colors[3], size); x2 = x + (size * 6); byte mod = x2 & 0x07; if (mod > 0) x2 += (8 - mod); if (justInit) { maxLen = (256 - x2) / 6; return; } if (param->GetType() == PTYPE_STRING) { DrawStr(x2 + 1, y, data, maxLen); DrawAttr(x2, y, colors[state], 252 - x2); } else DrawStrAttr(x2 + 1, y, data, colors[state]); }