int main() {
  int insert = 1;
  int key;
  bool done = false;
  int i = 0;
  CDialog Screen;
  CDialog FD(&Screen,5, 5, 35, 9, true);
  CCheckMark chb(true,"[X]","Check Box", 3,3, 13);
  CCheckMark* chbptr; //Un-commnent line 37 and comment line 36 for alternative way of accessing the checkbox's falg
  Screen<< new CLabel("Esc: EXIT, F2: Reset Data, F6:  move,", 0, 0);
  for(int k=1;k<console.getRows();k+=2){
    for(int m=0;m<console.getCols()-10;m+=10){
      Screen<<new CLabel((i=!i)?"Hello": "Hi",k, m, 9);
    }
  }
  Screen.draw();
  FD<<chb
   <<new CLabel("Checked",3, 17, 15)
   <<new CCheckMark(false,"(O)","Radio Button", 5, 3,16, true)
   <<new CLabel("Not Checked", 5, 20, 13);
  FD.draw();
  chbptr = (CCheckMark*)&FD[2];
  while(!done){
    FD[1].set(chb.checked()?"Checked": "Not Checked");
    FD[3].set(bool(*((bool*)FD[2].data()))?"Checked": "Not Checked");
   // FD[3].set(chbptr->checked()?"Checked": "Not Checked");
    key = FD.edit();
    switch(key){
      case ESCAPE:
        done = true;
        break;
      case F(6):
        FD.move();
        break;
      case F(2):
        chb.checked(false);
        chbptr->checked(false);
        FD.draw();
        break;
    }
  }
  return 0;
}
Exemplo n.º 2
0
int test_6_Check() {
   int insert = 1;
   int key;
   bool done = false;
   int i = 0;
   CDialog Screen;
   for(int k=3;k<console.getRows();k+=2){
      for(int m=0;m<console.getCols()-10;m+=10){
         Screen<<new CLabel((i=!i)?"Hello": "Hi",k, m, 9);
      }
   }
   Screen<<new CLabel(">>>>>> Dialog and CheckMark Tester <<<<<<<<", 0, (console.getCols()-44)/2);
   Screen<< new CLabel("Esc: EXIT, F2: Reset Data, F6:  move,", 1, 0);
   Screen.draw();    
   CDialog FD(&Screen, 5, 5, 35, 13, true);
   CCheckMark chb(true,"[X]","Check Box", 3,3, 13);
   CCheckMark* chbptr;  // see comment below
   CCheckMark* chbptr1;
   CCheckMark* chbptr2;
   FD<<chb
      <<new CLabel("Checked",3, 17, 15)
      <<new CCheckMark(false,"(O)","Radio Button", 5, 3,16, true)
      <<new CLabel("Not Checked", 5, 20, 13)
      <<new CCheckMark(true,"(O)","Radio Button", 7, 3,16, true)
      <<new CLabel("Checked", 7, 20, 13)
      <<new CCheckMark(false,"(O)","Radio Button", 9, 3,16, true)
      <<new CLabel("Not Checked", 9, 20, 13);

   FD.draw();
   chbptr = (CCheckMark*)&FD[2];
   chbptr1 = (CCheckMark*)&FD[4];
   chbptr2 = (CCheckMark*)&FD[6];
   int which = 0;
   while(!done){
      FD[1].set(chb.checked()?"Checked": "Not Checked");
      //comment next and un-comment the line after for alternative
      //way of accessing the checkbox's flag
      FD[3].set(bool(*((bool*)FD[2].data()))?"Checked": "Not Checked");
      //FD[3].set(chbptr->checked()?"Checked": "Not Checked");
      FD[5].set(bool(*((bool*)FD[4].data()))?"Checked": "Not Checked");
      FD[7].set(bool(*((bool*)FD[6].data()))?"Checked": "Not Checked");
      FD.draw();
      key = FD[which].edit();
      if ( (key == SPACE && ( *chbptr && chbptr1->checked() )) || ( chbptr->checked() && chbptr2->checked() ) || ( chbptr2->checked() && chbptr1->checked() ) ) {
         chbptr->checked(false);
         chbptr1->checked(false);
         chbptr2->checked(false);
         if ( which == 2 )
            chbptr->checked(true);
         else if ( which == 4 )
            chbptr1->checked(true);
         else if ( which == 6 )
            chbptr2->checked(true);
      }
      switch(key){
      case ESCAPE:
         done = true;
         break;
      case F(6):
         FD.move();
         break;
      case F(2):
         chb.checked(false);
         chbptr->checked(false);
         FD.draw();
         break;
      case UP:
         if ( which == 2 )
            which = 0;
         else if ( which == 4 )
            which = 2;
         else if ( which == 6 )
            which = 4;
         break;
      case DOWN:
         if ( which == 0 )
            which = 2;
         else if ( which == 2 )
            which = 4;
         else if ( which == 4 )
            which = 6;
         break;
      }
   }
   return 0;
}