Open main menu

CDOT Wiki β

Difference between revisions of "OpText Test Programs - OOP344 20101"

(OpText R0.31 test main (with help window))
(OpText R0.4 test main (BVedit))
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
 
{{OOP344 Index}}
 
{{OOP344 Index}}
 
= BFrame R0.1 test main =
 
= BFrame R0.1 test main =
Line 112: Line 111:
 
</big>
 
</big>
  
= OpText R0.4 test main (with help window) =
+
= OpText R0.31 test main (with help window) =
  
 
[[OpText Text Editor (AS2) - OOP344 20101]]
 
[[OpText Text Editor (AS2) - OOP344 20101]]
 
<big><pre>
 
<big><pre>
  
#include "btext.h"
+
# include "btext.h"
 +
# include "blabel.h"
 +
# include "bedit.h"
 +
# include "bform.h"
 +
# include <string.h>
  
#include "blabel.h"
+
bool Yes(const char* message, BForm* owner){
 +
  int key;
 +
  BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 +
  YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
 +
  YesNo[0].set(message);
 +
  key = YesNo.edit(0, owner);
 +
  return key == 'Y' || key == 'y';
 +
}
 +
void Help(BForm* owner){
 +
  BForm help((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 +
  help.add(new BLabel(2, 3,36))
 +
    .add(new BLabel("Escape Key: Exit the test program.", 4, 3))
 +
    .add(new BLabel("F1 Key: Open this window.", 6, 3));
 +
  switch(owner->curField()){
 +
    case 2:
 +
      help[0].set("Enter the name here!");
 +
      break;
 +
    case 4:
 +
      help[0].set("Enter the Last name here!");
 +
      break;
 +
    case 6:
 +
      help[0].set("Enter Phone number: (999)999-9999");
 +
  }
 +
  help.edit(0, owner);
 +
}
  
#include "bedit.h"
+
int main() {
 +
  int insert = 1;
 +
  int key;
 +
  bool done = false;
 +
  bio_init();
  
#include "bvedit.h"
+
  BForm F(3, 5, 20, 70, true);
 +
  F.add(new BLabel("Name:", 3, 2))
 +
    .add(new BEdit(2, 10, 20, 40, &insert,true))
 +
    .add(new BLabel("Lastname:", 6, 2))
 +
    .add(new BEdit(5, 13, 20, 40, &insert, true))
 +
    .add(new BLabel("Phone Number", 9,2))
 +
    .add(new BEdit(8, 16, 15, 20, &insert, true));
 +
  while(!done){
 +
    key = F.edit();
 +
    switch(key){
 +
      case F1_KEY:
 +
        Help(&F);
 +
        break;
 +
      case ESCAPE_KEY:
 +
        if(Yes("Do you really want to quit?", &F)){
 +
          done = true;
 +
        }
 +
        F.display(OT_CLR_AND_DSPLY_ALL);
 +
        break;
 +
    }
 +
  }
 +
  bio_end();
 +
  return 0;
 +
}
 +
</pre></big>
  
#include "bform.h"
+
== R0.31 Executable on matrix ==
  
#include <cstring>
+
<big>
 +
~fardad.soleimanloo/optext0.31
 +
</big>
  
#include <cctype>
+
= OpText R0.4 test main (BVedit) =
 +
 
 +
[[OpText Text Editor (AS2) - OOP344 20101]]
 +
<big><pre>
 +
 
 +
# include "btext.h"
 +
# include "blabel.h"
 +
# include "bedit.h"
 +
# include "bvedit.h"
 +
# include "bform.h"
 +
# include <cstring>
 +
# include <cctype>
  
 
using namespace std;
 
using namespace std;
 
 
bool Yes(const char* message, BForm* owner){
 
bool Yes(const char* message, BForm* owner){
 
 
   int key;
 
   int key;
 
 
   BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 
   BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 
 
   YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
 
   YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
 
 
   YesNo[0].set(message);
 
   YesNo[0].set(message);
 
 
   key = YesNo.edit(0, owner);
 
   key = YesNo.edit(0, owner);
 
 
   return key == 'Y' || key == 'y';
 
   return key == 'Y' || key == 'y';
 
 
}
 
}
 
 
void Help(BForm* owner){
 
void Help(BForm* owner){
 
 
   BForm help((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 
   BForm help((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
 
 
   help.add(new BLabel(2, 3,36))
 
   help.add(new BLabel(2, 3,36))
 
 
     .add(new BLabel("Escape Key: Exit the test program.", 4, 3))
 
     .add(new BLabel("Escape Key: Exit the test program.", 4, 3))
 
+
     .add(new BLabel("F1 Key: Open this window.", 6, 3));
     .add(new BLabel("F1 Key: Open this window.", 6, 3));  
 
 
 
 
   switch(owner->curField()){
 
   switch(owner->curField()){
 
 
     case 2:
 
     case 2:
 
 
       help[0].set("Enter the name here!");
 
       help[0].set("Enter the name here!");
 
 
       break;
 
       break;
 
+
     case 4:
     case 4:  
 
 
 
 
       help[0].set("Enter the Last name here!");
 
       help[0].set("Enter the Last name here!");
 
 
       break;
 
       break;
 
 
     case 6:
 
     case 6:
 
+
       help[0].set("Enter Phone number: 999-999-9999");
       help[0].set("Enter Phone number: (999)999-9999");
 
 
 
 
   }
 
   }
 
 
   help.edit(0, owner);
 
   help.edit(0, owner);
 
 
}
 
}
  
 
void PhoneHelp(MessageStatus st, BForm& owner){
 
void PhoneHelp(MessageStatus st, BForm& owner){
 
 
   if(st == ClearMessage){
 
   if(st == ClearMessage){
 
 
     owner[6].set("");
 
     owner[6].set("");
 
 
   }
 
   }
 
 
   else{
 
   else{
 
 
     owner[6].set("Phone Format: 999-999-9999");
 
     owner[6].set("Phone Format: 999-999-9999");
 
 
   }
 
   }
 
 
   owner.display(7);
 
   owner.display(7);
 
 
}
 
}
 
 
void LastNameHelp(MessageStatus st, BForm& owner){
 
void LastNameHelp(MessageStatus st, BForm& owner){
 
 
   if(st == ClearMessage){
 
   if(st == ClearMessage){
 
 
     owner[7].set("");
 
     owner[7].set("");
 
 
   }
 
   }
 
 
   else{
 
   else{
 
 
     owner[7].set("i.e. Middle name and Surname");
 
     owner[7].set("i.e. Middle name and Surname");
 
 
   }
 
   }
 
 
   owner.display(8);
 
   owner.display(8);
 
 
}
 
}
  
 
bool ValidPhone(const char* ph , BForm& owner){
 
bool ValidPhone(const char* ph , BForm& owner){
 
 
   bool ok = true;
 
   bool ok = true;
 
 
   int i;
 
   int i;
 
 
   for(i=0;ok && i<3;ok = (bool)isdigit(ph[i]), i++);
 
   for(i=0;ok && i<3;ok = (bool)isdigit(ph[i]), i++);
 
 
   ok = ph[i++] == '-';
 
   ok = ph[i++] == '-';
 
 
   for(;ok && i<7;ok = (bool)isdigit(ph[i]), i++);
 
   for(;ok && i<7;ok = (bool)isdigit(ph[i]), i++);
 
 
   ok = ph[i++] == '-';
 
   ok = ph[i++] == '-';
 
 
   for(;ok && i<12;ok = (bool)isdigit(ph[i]), i++);
 
   for(;ok && i<12;ok = (bool)isdigit(ph[i]), i++);
 
 
   if(ok){
 
   if(ok){
 
 
     owner[8].set("");
 
     owner[8].set("");
 
 
   }
 
   }
 
 
   else{
 
   else{
 
 
     owner[8].set("Invlid phone number, please use the specified phone number format!");
 
     owner[8].set("Invlid phone number, please use the specified phone number format!");
 
 
   }
 
   }
 
 
   owner.display(9);
 
   owner.display(9);
 
 
   return ok;
 
   return ok;
 
 
}
 
}
  
 
int main() {
 
int main() {
 
 
   int insert = 1;
 
   int insert = 1;
 
 
   int key;
 
   int key;
 
 
   bool done = false;
 
   bool done = false;
 
 
   bio_init();
 
   bio_init();
  
 
   BForm F(3, 5, 20, 70, true);
 
   BForm F(3, 5, 20, 70, true);
 
 
   BLabel PhHelp(9, 34, 30);
 
   BLabel PhHelp(9, 34, 30);
 
 
   BLabel LnHelp(6, 37, 30);
 
   BLabel LnHelp(6, 37, 30);
 
 
   BLabel ErrMes(18, 2, 67);
 
   BLabel ErrMes(18, 2, 67);
 
 
   F.add(new BLabel("Name:", 3, 2))
 
   F.add(new BLabel("Name:", 3, 2))
 
 
     .add(new BEdit(2, 10, 20, 40, &insert,true))
 
     .add(new BEdit(2, 10, 20, 40, &insert,true))
 
 
     .add(new BLabel("Lastname:", 6, 2))
 
     .add(new BLabel("Lastname:", 6, 2))
 
 
     .add(new BVedit(5, 13, 20, 40, &insert,NO_VFUNC, LastNameHelp, true))
 
     .add(new BVedit(5, 13, 20, 40, &insert,NO_VFUNC, LastNameHelp, true))
 
 
     .add(new BLabel("Phone Number", 9,2))
 
     .add(new BLabel("Phone Number", 9,2))
 
 
     .add(new BVedit(8, 16, 13, 12, &insert,ValidPhone,PhoneHelp, true));
 
     .add(new BVedit(8, 16, 13, 12, &insert,ValidPhone,PhoneHelp, true));
 
 
   F.add(PhHelp);
 
   F.add(PhHelp);
 
 
   F.add(LnHelp);
 
   F.add(LnHelp);
 
 
   F.add(ErrMes);
 
   F.add(ErrMes);
  
 
   while(!done){
 
   while(!done){
 
 
     key = F.edit();
 
     key = F.edit();
 
 
     switch(key){
 
     switch(key){
 
 
       case F1_KEY:
 
       case F1_KEY:
 
 
         Help(&F);
 
         Help(&F);
 
 
         break;
 
         break;
 
 
       case ESCAPE_KEY:
 
       case ESCAPE_KEY:
 
 
         if(Yes("Do you really want to quit?", &F)){
 
         if(Yes("Do you really want to quit?", &F)){
 
 
           done = true;
 
           done = true;
 
 
         }
 
         }
 
 
         F.display(OT_CLR_AND_DSPLY_ALL);
 
         F.display(OT_CLR_AND_DSPLY_ALL);
 
 
         break;
 
         break;
 
 
     }
 
     }
 
 
   }
 
   }
 
 
   bio_end();
 
   bio_end();
 
 
   return 0;
 
   return 0;
 
 
}
 
}
 
 
</pre></big>
 
</pre></big>
  
== R0.31 Executable on matrix ==
+
== R0.4 Executable on matrix ==
  
 
<big>
 
<big>
  ~fardad.soleimanloo/optext0.31
+
  ~fardad.soleimanloo/optext0.4
 
</big>
 
</big>

Latest revision as of 23:23, 28 March 2010

BFrame R0.1 test main

OpText Text Editor (AS2) - OOP344 20101

# include "btext.h"
# include "bframe.h"

int main(int argc, char* argv[], char* env[]) {
  int ro = 0;
  int co = 0;
  bool done = false;
  int key = 0;
  bio_init();
  int rows = bio_rows();
  int cols = bio_cols();
  BFrame bframe(8, 30, 5, 10, true);
  while(!done){
    bio_clrscr();
    bframe.draw(ro, co);
    key = bio_getch();
    switch(key){
      case RIGHT_KEY:
        if(co + 40 < cols)
          co++;
        break;
      case LEFT_KEY:
        if(co + 30 > 0)
          co--;
        break;
      case DOWN_KEY:
        if(ro + 13 < rows )
          ro++;
        break;
      case UP_KEY:
        if(ro + 8 > 0 )
          ro--;
        break;
      case ESCAPE_KEY:
        done = true;
        break;
    }
  }
  bio_end();
  return 0;
}

R0.1 Executable on matrix:

~fardad.soleimanloo/bframetest

OpText R0.3 test main

OpText Text Editor (AS2) - OOP344 20101


# include "btext.h"
# include "blabel.h"
# include "bedit.h"
# include "bform.h"
# include <string.h>

bool Yes(const char* message, BForm* owner){
  int key;
  BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
  YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
  YesNo[0].set(message);
  key = YesNo.edit(0, owner);
  return key == 'Y' || key == 'y';
}
int main() {
  int insert = 1;
  int key;
  bool done = false;
  bio_init();
  BForm F(3, 5, 20, 70, true);
  F.add(new BLabel("Name:", 3, 2))
    .add(new BEdit(2, 10, 20, 40, &insert,true))
    .add(new BLabel("Lastname:", 6, 2))
    .add(new BEdit(5, 13, 20, 40, &insert, true))
    .add(new BLabel("Phone Number", 9,2))
    .add(new BEdit(8, 16, 15, 20, &insert, true));
  while(!done){
    key = F.edit();
    switch(key){
      case F1_KEY:
        // Help.edit(); to do later
        break;
      case ESCAPE_KEY:
        if(Yes("Do you really want to quit?", &F)){
          done = true;
        }
        F.display(OT_CLR_AND_DSPLY_ALL);
        break;
    }
  }
  bio_end();
  return 0;

}

R0.3 Executable on matrix:

~fardad.soleimanloo/optext0.3

OpText R0.31 test main (with help window)

OpText Text Editor (AS2) - OOP344 20101


# include "btext.h"
# include "blabel.h"
# include "bedit.h"
# include "bform.h"
# include <string.h>

bool Yes(const char* message, BForm* owner){
  int key;
  BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
  YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
  YesNo[0].set(message);
  key = YesNo.edit(0, owner);
  return key == 'Y' || key == 'y';
}
void Help(BForm* owner){
  BForm help((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
  help.add(new BLabel(2, 3,36))
    .add(new BLabel("Escape Key: Exit the test program.", 4, 3))
    .add(new BLabel("F1 Key: Open this window.", 6, 3));
  switch(owner->curField()){
    case 2:
      help[0].set("Enter the name here!");
      break;
    case 4:
      help[0].set("Enter the Last name here!");
      break;
    case 6:
      help[0].set("Enter Phone number: (999)999-9999");
  }
  help.edit(0, owner);
}

int main() {
  int insert = 1;
  int key;
  bool done = false;
  bio_init();

  BForm F(3, 5, 20, 70, true);
  F.add(new BLabel("Name:", 3, 2))
    .add(new BEdit(2, 10, 20, 40, &insert,true))
    .add(new BLabel("Lastname:", 6, 2))
    .add(new BEdit(5, 13, 20, 40, &insert, true))
    .add(new BLabel("Phone Number", 9,2))
    .add(new BEdit(8, 16, 15, 20, &insert, true));
  while(!done){
    key = F.edit();
    switch(key){
      case F1_KEY:
        Help(&F);
        break;
      case ESCAPE_KEY:
        if(Yes("Do you really want to quit?", &F)){
          done = true;
        }
        F.display(OT_CLR_AND_DSPLY_ALL);
        break;
    }
  }
  bio_end();
  return 0;
}

R0.31 Executable on matrix

~fardad.soleimanloo/optext0.31

OpText R0.4 test main (BVedit)

OpText Text Editor (AS2) - OOP344 20101


# include "btext.h"
# include "blabel.h"
# include "bedit.h"
# include "bvedit.h"
# include "bform.h"
# include <cstring>
# include <cctype>

using namespace std;
bool Yes(const char* message, BForm* owner){
  int key;
  BForm YesNo((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
  YesNo.add(new BLabel(2, 2, 36)).add(new BLabel("(Y)es / (N)o", 4, 12));
  YesNo[0].set(message);
  key = YesNo.edit(0, owner);
  return key == 'Y' || key == 'y';
}
void Help(BForm* owner){
  BForm help((bio_rows()- 10)/2, (bio_cols()-40)/2, 10, 40, true);
  help.add(new BLabel(2, 3,36))
    .add(new BLabel("Escape Key: Exit the test program.", 4, 3))
    .add(new BLabel("F1 Key: Open this window.", 6, 3));
  switch(owner->curField()){
    case 2:
      help[0].set("Enter the name here!");
      break;
    case 4:
      help[0].set("Enter the Last name here!");
      break;
    case 6:
      help[0].set("Enter Phone number: 999-999-9999");
  }
  help.edit(0, owner);
}

void PhoneHelp(MessageStatus st, BForm& owner){
  if(st == ClearMessage){
    owner[6].set("");
  }
  else{
    owner[6].set("Phone Format: 999-999-9999");
  }
  owner.display(7);
}
void LastNameHelp(MessageStatus st, BForm& owner){
  if(st == ClearMessage){
    owner[7].set("");
  }
  else{
    owner[7].set("i.e. Middle name and Surname");
  }
  owner.display(8);
}

bool ValidPhone(const char* ph , BForm& owner){
  bool ok = true;
  int i;
  for(i=0;ok && i<3;ok = (bool)isdigit(ph[i]), i++);
  ok = ph[i++] == '-';
  for(;ok && i<7;ok = (bool)isdigit(ph[i]), i++);
  ok = ph[i++] == '-';
  for(;ok && i<12;ok = (bool)isdigit(ph[i]), i++);
  if(ok){
    owner[8].set("");
  }
  else{
    owner[8].set("Invlid phone number, please use the specified phone number format!");
  }
  owner.display(9);
  return ok;
}

int main() {
  int insert = 1;
  int key;
  bool done = false;
  bio_init();

  BForm F(3, 5, 20, 70, true);
  BLabel PhHelp(9, 34, 30);
  BLabel LnHelp(6, 37, 30);
  BLabel ErrMes(18, 2, 67);
  F.add(new BLabel("Name:", 3, 2))
    .add(new BEdit(2, 10, 20, 40, &insert,true))
    .add(new BLabel("Lastname:", 6, 2))
    .add(new BVedit(5, 13, 20, 40, &insert,NO_VFUNC, LastNameHelp, true))
    .add(new BLabel("Phone Number", 9,2))
    .add(new BVedit(8, 16, 13, 12, &insert,ValidPhone,PhoneHelp, true));
  F.add(PhHelp);
  F.add(LnHelp);
  F.add(ErrMes);

  while(!done){
    key = F.edit();
    switch(key){
      case F1_KEY:
        Help(&F);
        break;
      case ESCAPE_KEY:
        if(Yes("Do you really want to quit?", &F)){
          done = true;
        }
        F.display(OT_CLR_AND_DSPLY_ALL);
        break;
    }
  }
  bio_end();
  return 0;
}

R0.4 Executable on matrix

~fardad.soleimanloo/optext0.4