void main() { int c, row, col; int i, j; xt_par2(XT_BG_BLUE,row=1,col=1); row = col = 1; xt_par0(XT_CLEAR_SCREEN); xt_par2(XT_SET_ROW_COL_POS,row=24,col=1); printf("%s", greeting); xt_par2(XT_SET_ROW_COL_POS,row=1,col=1); for (i = 0; i < 23; i++) { for (j = 0; j < 80; j++) { Board[i][j] = ' '; } Board[i][80] = '\0'; } while (1) { while ((c = getkey()) == KEY_NOTHING) ; if(c == KEY_F9) break; else if (c == KEY_F3) startRipple(); else if (c == KEY_UP && row > 3) xt_par2(XT_SET_ROW_COL_POS,--row,col); else if (c == KEY_DOWN && row < 21) xt_par2(XT_SET_ROW_COL_POS,++row,col); else if (c == KEY_RIGHT && col < 78) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if (c == KEY_LEFT && col > 3) xt_par2(XT_SET_ROW_COL_POS,row,--col); else if (c == KEY_ENTER) xt_par2(XT_SET_ROW_COL_POS,++row,col=1); else if (c == KEY_BACKSPACE && col > 1) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Board[row - 1][col - 1] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if (c == KEY_DELETE) { Board[row - 1][col - 1] = ' '; putchar(' '); xt_par2(XT_SET_ROW_COL_POS,row,col); } else if (c >= '1' && c <= '9') { putchar(c); Board[row-1][col-1] = c; if (col < 80) { ++col; } else if (row < 23) { xt_par2(XT_SET_ROW_COL_POS,++row,col=1); } else { xt_par2(XT_SET_ROW_COL_POS,row,col); } } } getkey_terminate(); xt_par2(XT_BG_DEFAULT,row=1,col=1); xt_par0(XT_CLEAR_SCREEN); }
void main(){ xt_par0(XT_CLEAR_SCREEN); int score = 0; int highscore = 0; xt_par2(XT_SET_ROW_COL_POS, 1,1); printf("Welcome to Pacman! Press any arrow key to start a new game.\n# are walls\n* are pellets to eat\n"); printf("Objective: Collect all the pellets in as few moves as possible.\n"); printf("Press F3 to restart. Press F2 to quit.\n"); while (1){ while ((c = getkey()) == KEY_NOTHING); if (c == KEY_LEFT || c == KEY_RIGHT || c == KEY_UP || c == KEY_DOWN) play(); break; } getkey_terminate(); xt_par0(XT_CLEAR_SCREEN); }
void addEditKeyboardControl(){ while (1){ while ((c = getkey()) == KEY_NOTHING); //temp testing code /* xt_par2(XT_SET_ROW_COL_POS, 20, 1); xt_par0(XT_ERASE_LINE); xt_par2(XT_SET_ROW_COL_POS, 21, 1); xt_par0(XT_ERASE_LINE); xt_par2(XT_SET_ROW_COL_POS, 20, 1); printf("subject test: %s\n", subjInput); printf("body test: %s\n", bodyInput); xt_par2(XT_SET_ROW_COL_POS, row, col); */ //end temp testing code if (c == KEY_ENTER){ if (screenPos == 3){ if (strlen(subjInput) > 0 && strlen(bodyInput) > 0){ save(); break; } } } else if (c == KEY_DOWN){ lowerScreen(); } else if (c == KEY_UP){ raiseScreen(); } else if (c >= ' ' && c <= '~'){ xt_par0(XT_CH_RED); if (screenPos == 1){ //row = 10; //col = 10; size = 31; xt_par2(XT_SET_ROW_COL_POS, row, col); if (subjPos < size - 1){ if (subjInput[subjPos] == '\0') subjInput[subjPos + 1] = '\0'; subjInput[subjPos++] = c; // subjInput[++subjPos] = '\0'; putchar(c); col++; } } else if (screenPos == 2){ //row = 15; //col = 7; size = 141; if (bodyPos < size - 1){ if (bodyInput[bodyPos] == '\0') bodyInput[bodyPos + 1] = '\0'; bodyInput[bodyPos++] = c; // bodyInput[++bodyPos] = '\0'; putchar(c); col++; if (col > 80){ xt_par2(XT_SET_ROW_COL_POS, row=16, col=1); } } } xt_par0(XT_CH_DEFAULT); } else if (c == KEY_BACKSPACE){ if (screenPos == 1){ if (subjPos > 0){ if (subjInput[subjPos] == '\0') subjInput[--subjPos] = '\0'; else subjInput[--subjPos] = ' '; xt_par2(XT_SET_ROW_COL_POS, row, --col); putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } } else if (screenPos == 2){ if (bodyPos > 0){ if (bodyInput[bodyPos] == '\0') bodyInput[--bodyPos] = '\0'; else bodyInput[--bodyPos] = ' '; if (row == 16 && col == 1) xt_par2(XT_SET_ROW_COL_POS, row=15, col=80); else xt_par2(XT_SET_ROW_COL_POS, row, --col); putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } } } else if (c == KEY_DELETE){ if (screenPos == 1){ if (subjInput[subjPos] != '\0') subjInput[subjPos] = ' '; putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } else if (screenPos == 2){ if (bodyInput[bodyPos] != '\0') bodyInput[bodyPos] = ' '; putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } } else if (c == KEY_LEFT){ if (screenPos == 1){ if (subjPos > 0){ subjPos --; xt_par2(XT_SET_ROW_COL_POS, row, --col); } } else if (screenPos == 2){ if (bodyPos > 0){ bodyPos --; if (row == 16 && col == 1) xt_par2(XT_SET_ROW_COL_POS, row=15, col=80); else xt_par2(XT_SET_ROW_COL_POS, row, --col); } } } else if (c == KEY_RIGHT){ if (screenPos == 1){ if (subjInput[subjPos] != '\0'){ subjPos++; xt_par2(XT_SET_ROW_COL_POS, row, ++col); } } else if (screenPos == 2){ if (bodyInput[bodyPos] != '\0'){ bodyPos++; if (row == 15 && col == 80) xt_par2(XT_SET_ROW_COL_POS, row=16, col=1); else xt_par2(XT_SET_ROW_COL_POS, row, ++col); } } } else if (c == KEY_F3){ // recordNum = 1; display(); break; } } getkey_terminate(); }
void findInputScreen(){ int vertPos = 0; int subjOrBod = 0; char* search = (char*)malloc(141 * sizeof(char)); int searchPos = 0; int row = 10; int col = 13; xt_par0(XT_CLEAR_SCREEN); xt_par2(XT_SET_ROW_COL_POS, 1, 1); printf("Please indicate what key word you would like to search for.\n"); printf("Then, please Indicate if you would like to search through SUBJECTS or BODIES.\n"); printf("To return to the previous screen, press F4."); xt_par0(XT_CH_BLUE); xt_par2(XT_SET_ROW_COL_POS, 10, 1); printf("Search for:"); xt_par0(XT_CH_NORMAL); xt_par2(XT_SET_ROW_COL_POS, 20, 20); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 10, 13); while (1){ while ((c=getkey()) == KEY_NOTHING); // xt_par2(XT_SET_ROW_COL_POS, 15, 1); // xt_par0(XT_ERASE_LINE); //printf("%s", search); if (c == KEY_DOWN){ if (vertPos == 0){ xt_par0(XT_CH_NORMAL); xt_par2(XT_SET_ROW_COL_POS, 10, 1); printf("Search for:"); if (subjOrBod == 0){ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_BLUE); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_NORMAL); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); xt_par0(XT_CH_NORMAL); } else{ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_NORMAL); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_BLUE); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); xt_par0(XT_CH_NORMAL); } vertPos = 1; } } else if (c == KEY_UP){ if (vertPos == 1){ xt_par0(XT_CH_BLUE); xt_par2(XT_SET_ROW_COL_POS, 10, 1); printf("Search for:"); xt_par0(XT_CH_NORMAL); xt_par2(XT_SET_ROW_COL_POS, 20, 20); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 10, 13); vertPos = 0; } } else if (c == KEY_LEFT){ if (vertPos == 1 && subjOrBod == 1){ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_BLUE); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_NORMAL); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); subjOrBod = 0; } else if (vertPos == 0){ if (searchPos > 0){ searchPos --; if (row == 11 && col == 1) xt_par2(XT_SET_ROW_COL_POS, row = 10, col=80); else xt_par2(XT_SET_ROW_COL_POS, row, --col); } } } else if (c == KEY_RIGHT){ if (vertPos == 1 && subjOrBod == 0){ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_NORMAL); printf("SUBJECTS"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_BLUE); printf("BODIES"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); xt_par0(XT_CH_NORMAL); subjOrBod = 1; } else if (vertPos == 0){ if (search[searchPos] != '\0'){ searchPos++; if (row == 10 && col == 80) xt_par2(XT_SET_ROW_COL_POS, row=11, col=1); else xt_par2(XT_SET_ROW_COL_POS, row, ++col); } } } else if (c >= ' ' && c <= '~'){ if (vertPos == 0){ xt_par2(XT_SET_ROW_COL_POS, row, col); xt_par0(XT_CH_RED); if (searchPos < 140){ if (search[searchPos] == '\0') search[searchPos + 1] = '\0'; search[searchPos++] = c; putchar(c); col ++; if (col > 80){ xt_par2(XT_SET_ROW_COL_POS, row=11, col=1); } } } xt_par0(XT_CH_DEFAULT); } else if (c == KEY_BACKSPACE){ if (vertPos == 0){ if (searchPos > 0){ if (search[searchPos] == '\0') search[--searchPos] = '\0'; else search[--searchPos] = ' '; if (row == 11 && col == 1) xt_par2(XT_SET_ROW_COL_POS, row=10, col=80); else xt_par2(XT_SET_ROW_COL_POS, row, --col); putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } } } else if (c == KEY_DELETE){ if (vertPos == 0){ if (search[searchPos] != '\0') search[searchPos] = ' '; putchar(' '); xt_par2(XT_SET_ROW_COL_POS, row, col); } } else if (c == KEY_ENTER){ if (vertPos == 1 && strlen(search) > 0){ findRecords(search, subjOrBod); xt_par0(XT_CLEAR_SCREEN); xt_par2(XT_SET_ROW_COL_POS, 1, 14); xt_par0(XT_CH_BOLD); printf("%s",search); xt_par0(XT_CH_NORMAL); printf(" in "); xt_par0(XT_CH_BOLD); if (subjOrBod == 0) printf("subject"); else printf("body"); xt_par0(XT_CH_NORMAL); displayFoundRecords(); break; } } else if (c == KEY_F4){ display(); break; } } getkey_terminate(); }
void viewRecordHelper(){ while (1){ while ((c=getkey()) == KEY_NOTHING); if (c == KEY_LEFT){ if (numRecords != 1){ recordNum --; if (recordNum <= 0) recordNum = numRecords; display(); break; } } else if (c == KEY_RIGHT){ if (numRecords != 1){ recordNum ++; if (recordNum == (numRecords + 1)){ if (numRecords > 0) recordNum = 1; else recordNum = 0; } display(); break; } } else if (c == KEY_F2){ addRecord(); break; } else if (c == KEY_F3){ if (recordNum > 0){ deleteRecordHelper(); display(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No record to delete."); } } else if (c == KEY_F4){ welcomeScreen(); break; } else if (c == KEY_F5){ if (recordNum > 0){ deleteAllRecords(); display(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No records to delete."); } } else if (c == KEY_F6){ if (numRecords > 0){ editRecord(); // display(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No record to edit."); } } else if (c == KEY_F7){ if (numRecords > 0){ findInputScreen(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No records to search through."); } } else if (c == KEY_F9){ if (numRecords > 0){ recordNum = 1; display(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("There is no first record yet!"); } } } getkey_terminate(); }
void welcomeScreen(){ xt_par0(XT_CLEAR_SCREEN); xt_par0(XT_CH_NORMAL); xt_par0(XT_CH_BOLD); xt_par0(XT_CH_UNDERLINE); xt_par2(XT_SET_ROW_COL_POS,1,1); printf("WELCOME TO MYSTORE!!!"); xt_par2(XT_SET_ROW_COL_POS,5,1); xt_par0(XT_CH_NORMAL); printf("Mystore Back End designed and developed by "); xt_par0(XT_CH_BOLD); printf("Peter Brooks.\n"); xt_par0(XT_CH_NORMAL); printf("Mystore Front End designed and developed by "); xt_par0(XT_CH_BOLD); printf("Justin Duda"); xt_par0(XT_CH_NORMAL); printf(" and "); xt_par0(XT_CH_BOLD); printf("Jeremy Karson.\n\n\n"); printf("System Level Programming\n"); printf("Fall 2013\n"); printf("Period 5\n"); xt_par0(XT_CH_NORMAL); xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_BLUE); printf("CONTINUE"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_NORMAL); printf("EXIT"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); int screenPos = 1; while(1){ while ((c=getkey()) == KEY_NOTHING); if (c == KEY_LEFT){ if (screenPos == 2){ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_BLUE); printf("CONTINUE"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_NORMAL); printf("EXIT"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); screenPos = 1; } } else if (c == KEY_RIGHT){ if (screenPos == 1){ xt_par2(XT_SET_ROW_COL_POS, 20, 20); xt_par0(XT_CH_NORMAL); printf("CONTINUE"); xt_par2(XT_SET_ROW_COL_POS, 20, 55); xt_par0(XT_CH_BLUE); printf("EXIT"); xt_par2(XT_SET_ROW_COL_POS, 24, 80); xt_par0(XT_CH_NORMAL); screenPos = 2; } } else if (c == KEY_ENTER){ if (screenPos == 1){ display(); break; } else{ xt_par0(XT_CLEAR_SCREEN); xt_par2(XT_SET_ROW_COL_POS,1,1); break; } } } getkey_terminate(); }
void viewFoundRecordsHelper(){ while (1){ while ((c=getkey()) == KEY_NOTHING); // xt_par2(XT_SET_ROW_COL_POS, 18, 1); // xt_par0(XT_ERASE_LINE); if (c == KEY_LEFT){ if (numFoundRecords != 1){ fi--; if (fi < 0) fi = numFoundRecords-1; displayFoundRecords(); break; } } else if (c == KEY_RIGHT){ if (numFoundRecords != 1){ fi++; if (fi == numFoundRecords) fi = 0; displayFoundRecords(); break; } } else if (c == KEY_F3){ if (numFoundRecords > 0){ int tempRecordCounter = numRecords; deleteRecordHelper(); calculateNumRecords(); if (numRecords < tempRecordCounter) numFoundRecords--; //numRecords --; if (fi == numRecords) fi--; displayFoundRecords(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No record to delete."); } } else if (c == KEY_F4){ if (numRecords > 0) recordNum = 1; display(); break; } else if (c == KEY_F5){ findInputScreen(); break; } else if (c == KEY_F6){ if (numFoundRecords > 0){ editRecord(); //displayFoundRecords(); break; } else{ xt_par2(XT_SET_ROW_COL_POS, 18, 1); xt_par0(XT_ERASE_LINE); printf("No record to edit."); } } } getkey_terminate(); }
void play(){ setUpBoard(); numMoves = 0; pelletsLeft = 194; printscores(); //cursor pos is data[row-1][col-1] while (1){ while ((c = getkey()) == KEY_NOTHING); if (c == KEY_RIGHT){ if (data[row-1][col] == '#') ; else{ numMoves++; putchar(' '); data[row-1][col-1] = ' '; //special middle area if (row == 12 && col == 23) xt_par2(XT_SET_ROW_COL_POS, row=12, col=1); else xt_par2(XT_SET_ROW_COL_POS, row, ++col); if (data[row-1][col-1] == '*') pelletsLeft--; putchar('<'); printscores(); if (pelletsLeft == 0){ endGame(); break; } } } else if (c == KEY_LEFT){ if (data[row-1][col-2] == '#') ; else{ numMoves++; putchar(' '); data[row-1][col-1] = ' '; //special middle area if (row == 12 && col == 1) xt_par2(XT_SET_ROW_COL_POS, row=12, col=23); else xt_par2(XT_SET_ROW_COL_POS, row, --col); if (data[row-1][col-1] == '*') pelletsLeft--; putchar('>'); printscores(); if (pelletsLeft == 0){ endGame(); break; } } } else if (c == KEY_UP){ if (data[row-2][col-1] == '#') ; else{ numMoves++; putchar(' '); data[row-1][col-1] = ' '; xt_par2(XT_SET_ROW_COL_POS, --row, col); if (data[row-1][col-1] == '*') pelletsLeft--; putchar('V'); printscores(); if (pelletsLeft == 0){ endGame(); break; } } } else if (c == KEY_DOWN){ if (data[row][col-1] == '#') ; else{ numMoves++; putchar(' '); data[row-1][col-1] = ' '; xt_par2(XT_SET_ROW_COL_POS, ++row, col); if (data[row-1][col-1] == '*') pelletsLeft--; putchar('A'); printscores(); if (pelletsLeft == 0){ endGame(); break; } } } if(c == KEY_F3){ play(); break; } if(c == KEY_F2)break; } getkey_terminate(); xt_par0(XT_CLEAR_SCREEN); }
//Huge main function. int main(int argc, char *argv[]) { if (argc < 3){ //if you don't type enough arguments printf("Sockets client, usage:\n"); printf("sockets_client {IP-address} {port} \n"); return 0; } else { free(server); server = malloc((strlen(argv[1] + 1) * sizeof(char))); strcpy(server, argv[1]); portno = atoi(argv[2]); } int c; while(1){ if(screen == 0){ CATEGORY = 8; currentRecord = 0; recordView = 0; xt_par0(XT_CLEAR_SCREEN); lifeTracker(); xt_par2(XT_SET_ROW_COL_POS,row = 8, col = 2); } while(screen == 0) { while((c = getkey()) == KEY_NOTHING); if(c == KEY_F9) screen = 3; else if(c == KEY_F3 && maxRecord > 0 && col == 20) screen = 4; else if(c == KEY_DOWN) { if(col == 2 && row >= 8 && row < catCounter + 7){ xt_par2(XT_SET_ROW_COL_POS,CATEGORY = ++row,col); updateRecords(recordView); } if(col == 20 && row >= 7 && row <= tempCounter * 5 + 1){ if(row < 22){ xt_par2(XT_SET_ROW_COL_POS,row+=5,col); ++currentRecord; } else if(recordView < tempCounter-4){ ++recordView; if(search == 1) searchResults(recordView); else updateRecords(recordView); xt_par2(XT_SET_ROW_COL_POS,row=22,col); ++currentRecord; } } if(col > 94 && col < 120){ if(row == 9) xt_par2(XT_SET_ROW_COL_POS,row = 12,col = 95); else if(row == 12) xt_par2(XT_SET_ROW_COL_POS,row = 13,col = 95); else if(row == 13) xt_par2(XT_SET_ROW_COL_POS,row = 16,col); else if(row < 20) xt_par2(XT_SET_ROW_COL_POS,++row,col); else if(row == 20 && col < 110) xt_par2(XT_SET_ROW_COL_POS,++row,col); else if(row == 20 && col > 110) xt_par2(XT_SET_ROW_COL_POS,++row,col = 109); } } else if(c == KEY_UP){ if(col == 2 && row > 8 && row <= 18){ xt_par2(XT_SET_ROW_COL_POS,CATEGORY = --row,col); updateRecords(recordView); } if(col == 20 && row >= 7 && row < 24){ if(row <= 24 && row > 7){ xt_par2(XT_SET_ROW_COL_POS,row-=5,col); --currentRecord; } else if(recordView > 0){ --recordView; if(search == 1) searchResults(recordView); else updateRecords(recordView); xt_par2(XT_SET_ROW_COL_POS,row=7,col); --currentRecord; } } if(row > 9 && col > 94 && col < 120){ if(row == 12) xt_par2(XT_SET_ROW_COL_POS,row = 9,col = 95); else if(row == 13) xt_par2(XT_SET_ROW_COL_POS,row = 12,col = 95); else if(row == 16) xt_par2(XT_SET_ROW_COL_POS, row = 13, col = 95); else if(row < 22) xt_par2(XT_SET_ROW_COL_POS, --row, col); } } else if(c == KEY_ENTER && col > 94 && col < 120 && row > 12 && row < 18) xt_par2(XT_SET_ROW_COL_POS,++row,col=95); else if((c == KEY_LEFT || c == KEY_RIGHT) && col == 2) { CATEGORY = row; updateRecords(recordView); xt_par2(XT_SET_ROW_COL_POS,row=7,col=20); } else if((c == KEY_LEFT || c == KEY_RIGHT) && col == 20) { xt_par2(XT_SET_ROW_COL_POS,row=CATEGORY,col=2); if (search == 1) clearSearch(); currentRecord = recordView = search = 0; updateRecords(recordView); } else if(c == KEY_LEFT && col >= 95) { if(col > 95) xt_par2(XT_SET_ROW_COL_POS,row,--col); else if(row == 13 && col == 95) xt_par2(XT_SET_ROW_COL_POS,--row,col = 101); else if(row >= 17 && row <= 21 && col == 95) xt_par2(XT_SET_ROW_COL_POS,--row, col = 119); } else if(c == KEY_RIGHT && col > 94) { if(row == 9 && col < 112) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(row == 12 && col < 101) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(row == 12 && col == 101) xt_par2(XT_SET_ROW_COL_POS,++row,col = 95); else if(row == 13 && col < 112) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(row >= 16 && row < 21 && col < 119) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(row == 21 && col < 109) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(row >= 16 && row <= 21 && col == 119) xt_par2(XT_SET_ROW_COL_POS,++row,col = 95); } else if(c == KEY_DELETE) { putchar(' '); if(row == 9) Category[col - 95] = ' '; else if(row == 12) Title[col - 95] = ' '; else if(row == 13) Title[col - 88] = ' '; else if(row >= 16 && row < 22) Body[(row - 16) * 25 + col - 95] = ' '; } else if(c == KEY_BACKSPACE && col >= 95) { if((row == 9 || row == 12) && col > 95) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Category[col - 95] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if((row == 9 || row == 12) && col == 95) { putchar(' '); Title[col - 95] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row == 13 && col > 95) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Title[col - 88] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row == 13 && col == 95) { xt_par2(XT_SET_ROW_COL_POS,--row,col = 101); putchar(' '); Title[col - 88] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row >= 16 && row < 22 && col > 95) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Body[(row - 16) * 25 + col - 95] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row == 16 && col == 95) { putchar(' '); Body[(row - 16) * 25 + col - 95] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row > 16 && row < 22 && col == 95) { xt_par2(XT_SET_ROW_COL_POS,--row,col = 119); putchar(' '); Body[(row - 16) * 25 + col - 95] = ' '; xt_par2(XT_SET_ROW_COL_POS,row,col); } } else if((c >= ' ' && c <= '~') && col >= 95 && col < 120){ if(row == 9 && col < 112) { putchar(c); Category[col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,++col); } else if(row == 9 && col == 112) { putchar(c); Category[col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row == 12 && col < 101) { putchar(c); Title[col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,++col); } else if(row == 12 && col == 101) { putchar(c); Title[col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,++row,col=95); } else if(row == 13 && col < 112) { putchar(c); Title[col - 88] = c; xt_par2(XT_SET_ROW_COL_POS,row,++col); } else if(row == 13 && col == 112) { putchar(c); Title[col - 88] = c; xt_par2(XT_SET_ROW_COL_POS,row,col); } else if(row >= 16 && row < 21 && col < 119) { putchar(c); Body[(row - 16) * 25 + col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,++col); } else if(row >= 16 && row < 21 && col == 119) { putchar(c); Body[(row - 16) * 25 + col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,++row,col = 95); } else if(row == 21 && col < 109) { putchar(c); Body[(row - 16) * 25 + col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,++col); } else if(row == 21 && col == 109) { putchar(c); Body[(row - 16) * 25 + col - 95] = c; xt_par2(XT_SET_ROW_COL_POS,row,col); } } else if(c == KEY_F2) screen = 1; else if(c == KEY_F4 && col == 20 && maxRecord != 0) screen = 2; else if(c == KEY_F6) { if(sort == 0){ bubbleSort(); sort = 1; } else if (sort == 1){ bubbleSortTime(); sort = 0; } } else if (c == KEY_F7){ if(col < 95) { xt_par2(XT_SET_ROW_COL_POS,row = 9,col = 95); for(reset = 0; reset < 29; reset++) Title[reset] = ' '; for(reset = 0; reset < 140; reset++) Body[reset] = ' '; for(reset = 0; reset < 16; reset++) Category[reset] = ' '; } else if(Title[0] == ' ' && Body[0] == ' ' && Category[0] == ' ') { xt_par2(XT_SET_ROW_COL_POS,row = CATEGORY,col = 2); clearSearch(); updateRecords(0); } else if(Title[0] != ' ' || Body[0] != ' ' || Category[0] != ' ') { clearSearch(); search = 1; searchResults(0); xt_par2(XT_SET_ROW_COL_POS,row = 7, col = 20); } } } if (screen == 1 || screen == 2){ for(reset = 0; reset < 29; reset++) Title[reset] = ' '; for(reset = 0; reset < 140; reset++) Body[reset] = ' '; for(reset = 0; reset < 16; reset++) Category[reset] = ' '; addScreen(); if (screen == 2){ char TempBodyA[71]; char TempBodyB[71]; int k = 0; while(k != 70) { TempBodyA[k] = ' '; TempBodyB[k] = ' '; k++; } k = 0; xt_par2(XT_SET_ROW_COL_POS, row = 12, col = 25); xt_par0(XT_CH_GREEN); printf("Record %d (%s)", currentRecord+1, catStorage[currentRecord].timedate); //get the time using myui1 xt_par0(XT_CH_WHITE); xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); printf("%s", catStorage[currentRecord].category); int j = 0; while(catStorage[currentRecord].body[j] != '\0'){ if (j < 70) TempBodyA[j] = catStorage[currentRecord].body[j]; else if (j < 140) TempBodyB[j%70] = catStorage[currentRecord].body[j]; j++; } TempBodyA[70] = '\0'; TempBodyB[70] = '\0'; xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25); printf("%s", catStorage[currentRecord].subject); xt_par0(XT_CH_WHITE); xt_par2(XT_SET_ROW_COL_POS, row = 19, col = 25); printf("%s", TempBodyA); xt_par2(XT_SET_ROW_COL_POS, row = 20, col = 25); printf("%s", TempBodyB); xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); strncpy(Title, catStorage[currentRecord].subject, sizeof(Title)); strncpy(Body, catStorage[currentRecord].body, sizeof(Body)); strncpy(Category, catStorage[currentRecord].category, sizeof(Category)); } } while(screen == 1 || screen == 2) { while((c = getkey()) == KEY_NOTHING); if (c == KEY_F9){ screen = 0; xt_par0(XT_CLEAR_SCREEN); } else if (c == KEY_DOWN){ if(row == 14) xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25); else if(row == 16) xt_par2(XT_SET_ROW_COL_POS,row = 19,col = 25); else if(row < 20) xt_par2(XT_SET_ROW_COL_POS,++row,col); } else if (c == KEY_UP){ if(row == 16) xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); if(row == 19) xt_par2(XT_SET_ROW_COL_POS,row = 16,col = 25); else if(row == 20) xt_par2(XT_SET_ROW_COL_POS,--row,col); } else if(c == KEY_LEFT && col > 25 && col < 95) xt_par2(XT_SET_ROW_COL_POS,row,--col); else if(c == KEY_LEFT && col == 25 && row == 20) xt_par2(XT_SET_ROW_COL_POS,--row,col=94); else if(c == KEY_RIGHT && col > 24 && col < 37 && row == 14) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(c == KEY_RIGHT && col > 24 && col < 53 && row == 16) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(c == KEY_RIGHT && col > 24 && col < 94 && row > 18) xt_par2(XT_SET_ROW_COL_POS,row,++col); else if(c == KEY_RIGHT && col == 94 && row == 19) xt_par2(XT_SET_ROW_COL_POS,++row,col=25); else if (c == KEY_ENTER && row > 18 && row < 20) xt_par2(XT_SET_ROW_COL_POS,++row,col=25); else if (c == KEY_BACKSPACE && col >= 25 && col < 95 && ((row > 18 && row < 21) || row == 16 || row == 14)){ if(row == 14 && col > 25 && col < 39) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Category[col - 25] = ' '; } else if(row == 16 && col > 25 && col <= 54) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Title[col - 25] = ' '; } else if(row == 19 && col > 25 && col <= 95) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Body[col - 25] = ' '; } else if(row == 20 && col > 25 && col <= 95) { xt_par2(XT_SET_ROW_COL_POS,row,--col); putchar(' '); Body[col + 45] = ' '; } else if(row == 20){ xt_par2(XT_SET_ROW_COL_POS,--row,col=94); putchar(' '); Body[69] = ' '; } xt_par2(XT_SET_ROW_COL_POS,row,col); } else if (c == KEY_DELETE) { if(row == 14 && col >= 25 && col < 38) { putchar(' '); Category[col - 25] = ' '; } else if(row == 16 && col >= 25 && col < 54) { putchar(' '); Title[col - 25] = ' '; } else if(row == 19 && col >= 25 && col <= 95) { putchar(' '); Body[col - 25] = ' '; } else if(row == 20 && col >= 25 && col <= 95) { putchar(' '); Body[col + 45] = ' '; } xt_par2(XT_SET_ROW_COL_POS,row,col); } else if((c >= ' ' && c <= '~') && col >= 25 && col < 95) { if(row == 14 && col >= 25 && col < 40) { putchar(c); Category[col - 25] = c; } else if(row == 16 && col >= 25 && col < 54) { putchar(c); Title[col - 25] = c; } else if(row == 19 && col >= 25 && col <= 95) { putchar(c); Body[col - 25] = c; } else if(row == 20 && col >= 25 && col <= 95) { putchar(c); Body[col + 45] = c; } if (col < 94 && !(row == 16 && col > 52) && !(row == 14 && col > 36)){ ++col; } else{ if (row == 19) xt_par2(XT_SET_ROW_COL_POS,++row,col=25); else xt_par2(XT_SET_ROW_COL_POS,row,col); } } else if(c == KEY_F2 && screen == 1 /* && there is a valid title and description */){ //save record to corresponding subject if(Title[0] != ' ' || Body[0] != ' ' || Category[0] != ' ') { removeBlanks(); readmyStoreFromChildSOCKETS("add", Title, Body, Category, NULL); } int k = 0; while(k != 29) Title[k++] = ' '; k = 0; while(k != 140) Body[k++] = ' '; k = 0; while(k != 15) Category[k++] = ' '; maxRecord++; screen = 0; } else if(c == KEY_F2 && screen == 2 /* && there has been a valid change in the record */){ //update record removeBlanks(); char str[80]; for(i = 0; i < maxRecord; i++){ if(strcmp(catStorage[currentRecord].subject, dataStorage[i].subject) == 0 && strcmp(catStorage[currentRecord].body, dataStorage[i].body) == 0 && strcmp(catStorage[currentRecord].category, dataStorage[i].category) == 0 && strcmp(catStorage[currentRecord].timedate, dataStorage[i].timedate) == 0){//looks for corresponding record in the actual record list sprintf(str, "%d", i+1); break; } } readmyStoreFromChildSOCKETS("edit", str, Title, Body, Category); int k = 0; while(k != 29) Title[k++] = ' '; k = 0; while(k != 140) Body[k++] = ' '; k = 0; while(k != 15) Category[k++] = ' '; screen = 0; } } if (screen == 4){ for(reset = 0; reset < 29; reset++) Title[reset] = ' '; for(reset = 0; reset < 140; reset++) Body[reset] = ' '; for(reset = 0; reset < 16; reset++) Category[reset] = ' '; deleteScreen(); if (screen == 4){ char TempBodyA[71]; char TempBodyB[71]; int k = 0; while(k != 70) { TempBodyA[k] = ' '; TempBodyB[k] = ' '; k++; } k = 0; xt_par2(XT_SET_ROW_COL_POS, row = 12, col = 25); xt_par0(XT_CH_GREEN); printf("Record %d (%s)", currentRecord+1, catStorage[currentRecord].timedate); //get the time using myui1 xt_par0(XT_CH_WHITE); xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); printf("%s", catStorage[currentRecord].category); int j = 0; while(catStorage[currentRecord].body[j] != '\0'){ if (j < 70) TempBodyA[j] = catStorage[currentRecord].body[j]; else if (j < 140) TempBodyB[j%70] = catStorage[currentRecord].body[j]; j++; } TempBodyA[70] = '\0'; TempBodyB[70] = '\0'; xt_par2(XT_SET_ROW_COL_POS, row = 16, col = 25); printf("%s", catStorage[currentRecord].subject); xt_par0(XT_CH_WHITE); xt_par2(XT_SET_ROW_COL_POS, row = 19, col = 25); printf("%s", TempBodyA); xt_par2(XT_SET_ROW_COL_POS, row = 20, col = 25); printf("%s", TempBodyB); xt_par2(XT_SET_ROW_COL_POS, row = 14, col = 25); strncpy(Title, catStorage[currentRecord].subject, sizeof(Title)); strncpy(Body, catStorage[currentRecord].body, sizeof(Body)); strncpy(Category, catStorage[currentRecord].category, sizeof(Category)); //print corresponding record in correct locations using myui1 } } while(screen == 4) { while((c = getkey()) == KEY_NOTHING); if (c == KEY_F9){ screen = 0; xt_par0(XT_CLEAR_SCREEN); } else if (c == KEY_F3){ char str[80]; for(i = 0; i < maxRecord; i++){ if(strcmp(catStorage[currentRecord].subject, dataStorage[i].subject) == 0 && strcmp(catStorage[currentRecord].body, dataStorage[i].body) == 0 && strcmp(catStorage[currentRecord].category, dataStorage[i].category) == 0 && strcmp(catStorage[currentRecord].timedate, dataStorage[i].timedate) == 0){ //looks for corresponding record in the actual record list sprintf(str, "%d", i+1); break; } } readmyStoreFromChildSOCKETS("delete", str, NULL, NULL, NULL); maxRecord--; screen = 0; } } if (screen == 3) break; } getkey_terminate(); xt_par0(XT_CLEAR_SCREEN); xt_par0(XT_BG_DEFAULT); xt_par2(XT_SET_ROW_COL_POS,row=1,col=1); getkey_terminate(); return 0; }
/* Reset the keyboard and screen. */ static void finish(void) { getkey_terminate(); xt_par0(XT_CLEAR_SCREEN); xt_par0(XT_CH_NORMAL); SETPOS(1, 1); }