void printPuzzle(Puzzle *puzzle) { int i, j, size = puzzle->size; printf("\n\nDificulty: %d x %d\n", size, size); printf("Shuffles: %d\n\n", shuffleCount); printBorder(size); for (i = 0; i < size; i++) { printf("%5c#|", ' '); for (j = 0; j < size; j++) { if(puzzle->matrix[i][j] == 0) { if(puzzle->inverted) printf("%2c", ' '); else printf("%2d", 0); } else { printf("%2d", puzzle->matrix[i][j]); } printf("|"); } printf("#\n"); } printBorder(size); printMenu(); if(showSolution && puzzle->solution->size > 0) printSolution(puzzle->solution); }
void Panel::draw(Graphics &g, int left, int top, int _layer) { if (isVisible) { if (layer == _layer) printBorder(g, left, top, _layer); else { for (vector<Control*>::iterator it = items.begin(); it != items.end(); it++) (*it)->draw(g, (*it)->getStartX(), (*it)->getStartY(), _layer); } } if (getGlobalInFocus()->getCursorVisibility() == true) g.moveTo(getGlobalInFocus()->getCursorX(), getGlobalInFocus()->getCursorY()); else g.setCursorVisibility(false); }
int RecordManager::print_select_record(char* tableName, Node* def, vector<CursePair>& curseTable) { string filename(tableName); filename+=".db"; load_file(filename); assignColumnName(def); // print title int* tableLen = new int[m_header.columnCount]; for (int i = 0; i < m_header.columnCount; ++i) { int maxlen = strlen(m_header.columnName[i]); if (m_header.columnType[i] == VAL_INT) maxlen = (maxlen > 10) ? maxlen : 10; else if (m_header.columnType[i] == VAL_FLOAT) maxlen = (maxlen > 8) ? maxlen : 8; else maxlen = (maxlen > m_header.columnLength[i]) ? maxlen : m_header.columnLength[i]; tableLen[i] = maxlen; } // TO-DO // print title printBorder(tableLen, m_header.columnCount); // print column name for (int i = 0; i < m_header.columnCount; ++i) { putchar('|'); cout.width(tableLen[i]); cout <<m_header.columnName[i]; } putchar('|'); putchar('\n'); printBorder(tableLen, m_header.columnCount); // print data for (auto it:curseTable) { unsigned char* blockPtr =m_bufInstance->getblock(m_currentPage, it.first,BUFFER_FLAG_NONDIRTY)+it.second; for (int i = 0; i < m_header.columnCount; ++i) { putchar('|'); cout.width(tableLen[i]); if (m_header.columnType[i] == VAL_CHAR) { cout <<blockPtr; } else if (m_header.columnType[i] == VAL_FLOAT) { cout <<*(float*)blockPtr; } else { cout <<*(int*)blockPtr; } blockPtr += m_header.columnLength[i]; } putchar('|'); putchar('\n'); } printBorder(tableLen, m_header.columnCount); delete [] tableLen; write_back(); return 0; }
int RecordManager::print_all_record(char* tableName, Node* def) { string filename(tableName); filename+=".db"; load_file(filename); assignColumnName(def); int* tableLen = new int[m_header.columnCount]; for (int i = m_header.columnCount-1; i >=0 ; --i) { int maxlen = strlen(m_header.columnName[i]); if (m_header.columnType[i] == VAL_INT) maxlen = (maxlen > 11) ? maxlen : 11; else if (m_header.columnType[i] == VAL_FLOAT) maxlen = (maxlen > 8) ? maxlen : 8; else maxlen = (maxlen > m_header.columnLength[i]) ? maxlen : m_header.columnLength[i]; tableLen[i] = maxlen; } // print title printBorder(tableLen, m_header.columnCount); // print column name for (int i = 0; i < m_header.columnCount; ++i) { putchar('|'); cout.width(tableLen[i]); cout <<m_header.columnName[i]; } putchar('|'); putchar('\n'); printBorder(tableLen, m_header.columnCount); // print data // TO-DO test int blockNo = 0; unsigned char* blockHead = m_bufInstance->getblock(m_currentPage, 0, BUFFER_FLAG_NONDIRTY); unsigned char* blockPtr = blockHead + m_header.headerLength; unsigned char* blockFlagPtr = blockPtr + m_header.valLength; for (int j = m_header.entryCount; j > 0;) { if (*(int*)blockFlagPtr < 0) { for (int i = 0; i < m_header.columnCount; ++i) { putchar('|'); cout.width(tableLen[i]); if (m_header.columnType[i] == VAL_CHAR) { cout <<blockPtr; } else if (m_header.columnType[i] == VAL_FLOAT) { cout <<*(float*)blockPtr; } else { cout <<*(int*)blockPtr; } blockPtr += m_header.columnLength[i]; } putchar('|'); putchar('\n'); --j; } blockPtr = (blockFlagPtr+sizeof(int)); blockFlagPtr += (m_header.valLength+sizeof(int)); if ((blockPtr) > (blockHead+BLOCK_SIZE)) { blockHead = m_bufInstance->getblock(m_currentPage, ++blockNo, BUFFER_FLAG_NONDIRTY); blockPtr = blockHead; blockFlagPtr = blockHead + m_header.valLength; } } printBorder(tableLen, m_header.columnCount); delete [] tableLen; write_back(); return 0; }
void Window::takeSize(void) { getmaxyx(m_win, m_sizey, m_sizex); printBorder(); }