Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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);
}
Exemplo n.º 3
0
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();
}
Exemplo n.º 4
0
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();
}
Exemplo n.º 5
0
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();
}
Exemplo n.º 6
0
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();
}
Exemplo n.º 7
0
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();
}
Exemplo n.º 8
0
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;
}    
Exemplo n.º 10
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);
}