home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / os2 / zfrms100.zip / ZFORMS.C < prev    next >
C/C++ Source or Header  |  1993-05-22  |  10KB  |  211 lines

  1. #include "zforms.h"
  2. #include <stdlib.h>
  3.  
  4. void SpeedDemo(int Item) {
  5.    WINDOW SecondWin = {
  6.       0, 4, 10, NULL, NULL, 35, 10, 0x2720, BS_NOBORDER, BLACK, BLACK,
  7.       DS_LOWERRIGHT, DARKGREY, NULL, NULL
  8.       };
  9.    WINDOW ThirdWin = {
  10.       0, 7, 7, NULL, NULL, 32, 8, 0x7220, BS_NOBORDER, BLACK, BLACK,
  11.       DS_LOWERRIGHT, DARKGREY, NULL, NULL
  12.       };
  13.    WINDOW *pSecWin, *pThirdWin;
  14.    int i;
  15.  
  16.    /* open both windows */
  17.    pSecWin = Z_OpenWindow(&SecondWin);
  18.    pThirdWin = Z_OpenWindow(&ThirdWin);
  19.  
  20.    /* push one window, then pop it 100 times */
  21.    for(i=0;i<100;i++) {
  22.       Z_PopWindow(pThirdWin);    
  23.       Z_PushWindow(pThirdWin);    
  24.       }
  25.  
  26.    /* close both windows and exit */
  27.    Z_CloseWindow(pSecWin);
  28.    Z_CloseWindow(pThirdWin);
  29.    }
  30.  
  31. int VerifyPrompt3(char *Line) {
  32.    if(Line[0] == 'A') return(1);
  33.    else {
  34.       Z_InformUser("Invalid Response", "This response must begin with 'A'", " <OK> ", NULL);
  35.       return(0);
  36.       }
  37.    }
  38.  
  39. void PromptDemo(int Item) {
  40.    WINDOW PromptWin = {
  41.       0, 10, 60, NULL, NULL, 10, 8, 0x1020, BS_DOUBLELINE, YELLOW, BLUE,
  42.       DS_LOWERRIGHT, DARKGREY, "Data Entry Demo", "F2-Exit  Esc-Abort" };
  43.    WINDOW *pPromptWin;
  44.    WINDOW PromptHintWin = {
  45.       0, 1, 58, NULL, NULL, 11, 16, 0x1020, BS_NOBORDER, BLACK, BLACK,
  46.       DS_NONE, BLACK, NULL, NULL };
  47.    WINDOW *pPHWin;
  48.    int Key;
  49.    static char Response1[20] = "", Response2[15] = "", Response3[15] = "";
  50.    PROMPT TestPrompt[] = { 
  51.       Response1, "Numeric Prompt: ", "(999) 999-9999", 14, 15, 2, YELLOW, BLUE,
  52.          BRIGHTWHITE, BLUE, BLACK, CYAN, NULL, " This field will accept only numbers                ",
  53.       Response2, "Upper Case Prompt: ", "UUUUUUUUUU", 10, 12, 4, YELLOW, BLUE,
  54.          YELLOW, BLUE, BLACK, CYAN, NULL, " This prompt will accept only upper case letters        ",
  55.       Response3, "Any Data: ", "##########", 10, 21, 6, YELLOW, BLUE,
  56.          YELLOW, BLUE, BLACK, CYAN, VerifyPrompt3, " This prompt will accept any data starting with 'A'",
  57.       NULL, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL};
  58.    int PromptExit[] = { k_F2, k_Esc, k_NoKey };   
  59.  
  60.    /* open prompt window */
  61.    pPromptWin = Z_OpenWindow(&PromptWin);
  62.    pPHWin = Z_OpenWindow(&PromptHintWin);
  63.  
  64.    /* handle the data entry fields */
  65.    Key = Z_HandleInputs(pPromptWin, pPHWin, TestPrompt, PromptExit);
  66.  
  67.    /* close the window and exit */
  68.    Z_CloseWindow(pPHWin);
  69.    Z_CloseWindow(pPromptWin);
  70.    }
  71.  
  72. void TestPickList(void) {
  73.    PICKLIST TestPL = {
  74.       10, 5, 10, 60, 58, 0, YELLOW, BLUE, BLACK, CYAN, BS_SINGLELINE, YELLOW, BLUE,
  75.          0x1020, DS_LOWERRIGHT, DARKGREY, "PickList Demonstartion" };
  76.    PICKLIST *pPL;
  77.    PICKLIST_ITEM *pPLI;
  78.    
  79.    /* test the picklist */
  80.    pPL = &TestPL;
  81.    Z_AddPickListItem(pPL, "Line 1");
  82.    Z_AddPickListItem(pPL, "Line 2");
  83.    Z_AddPickListItem(pPL, "Line 3");
  84.    Z_AddPickListItem(pPL, "Line 4");
  85.    Z_AddPickListItem(pPL, "Line 5");
  86.    Z_AddPickListItem(pPL, "Line 6");
  87.    Z_AddPickListItem(pPL, "Line 7");
  88.    Z_AddPickListItem(pPL, "Line 8");
  89.    Z_AddPickListItem(pPL, "Line 9");
  90.    Z_AddPickListItem(pPL, "Line 10");
  91.    Z_AddPickListItem(pPL, "Line 11");
  92.    Z_AddPickListItem(pPL, "Line 12");
  93.    Z_AddPickListItem(pPL, "Line 13");
  94.    Z_AddPickListItem(pPL, "Line 14");
  95.    pPLI = Z_HandlePickList(pPL);
  96.    if(pPLI) Z_InformUser("PickList Choice", pPLI->ItemText, " <OK> ", NULL);
  97.    }
  98.  
  99. void main(void) {
  100.    WINDOW MainWin = {
  101.       0, 25, 80, NULL, NULL, 0, 0, 0x03b0, BS_SINGLELINE, YELLOW, BLUE, DS_NONE,
  102.       0, " Z-Forms Demonstration Program ", "Complete Demo Source in ZFORMS.C" };
  103.    WINDOW *pWin;
  104.    static int OneOfVar=0, CheckVar=0;
  105.    static char DataVar[35] = "                   ";
  106.  
  107. #ifdef __Z_INIT_EXT__
  108.    static MENU VertMenu = {
  109.       33, 2, 6, 20, 18, MMF_VERTMENU | MMF_NOHINT, BRIGHTWHITE, BLUE, 
  110.       LT_RED, BLUE, BLUE, CYAN, WHITE, BLACK, 1, 28, 40, BS_SINGLELINE, 
  111.       YELLOW, BLUE, 0, 0, NULL,
  112.          "First Choice", MIF_CALLEXIT, 'F', 0,  1, 1, NULL, NULL,
  113.          "Second Choice", MIF_CALLEXIT, 'S', 0,  1, 2, NULL, NULL,
  114.          "Third Choice", MIF_CALLEXIT, 'T', 0,  1, 3, NULL, NULL,
  115.          "Fourth Choice", MIF_CALLEXIT, 'O', 1,  1, 4, NULL, NULL,
  116.          NULL, 0, 0, 0, 0, 0, NULL, "" };
  117.    static DIALOG TestDialog = {
  118.       10, 5, 13, 60, DBF_USEHINT, 0x1E20, YELLOW, BLUE, 11, 16, 58, BS_DOUBLELINE,
  119.       YELLOW, BLUE, DS_LOWERRIGHT, 0x8, "Test Dialog Box", NULL,
  120.          "This is a text control", CSF_TEXT, CSS_NOACTIVATE | CSS_CALLNOTHING, 0, 0, 20, 2, 1, 22, YELLOW, BLUE,
  121.             CYAN, BLUE, NULL, NULL, NULL,
  122.          "Data Entry: ", CSF_DATAENTRY, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_D, 0, 3, 4, 1, 0x1E0A, WHITE, BLUE,
  123.             CYAN, BLUE, DataVar, "This is a data entry control", NULL,
  124.          "Checkbox", CSF_CHECKBOX, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_C, 3, 42, 4, 0, 0, WHITE, BLUE,
  125.             BRIGHTWHITE, BLUE, &CheckVar, "This is a check box control", NULL,
  126.          "OneOfButton1", CSF_ONEOFBUTTON, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_O, 0, 22, 6, 0, 0, WHITE, BLUE,
  127.             BRIGHTWHITE, BLUE, &OneOfVar, "This is a group of one-of buttons", NULL,
  128.          "OneOfButton2", CSF_ONEOFBUTTON, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_N, 1, 22, 7, 0, 1, WHITE, BLUE,
  129.             BRIGHTWHITE, BLUE, &OneOfVar, "This is a group of one-of buttons", NULL,
  130.          " <Exit> ", CSF_BUTTON, CSS_ACTIVATE | CSS_EXIT, k_Esc, 0, 26, 9, 0, 0, WHITE, RED,
  131.             BRIGHTWHITE, RED, NULL, "This is a button control", NULL,
  132.          NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, "", NULL};
  133.    static MENU MainMenu = {
  134.       1, 1, 1, 78, 0, MMF_HORIZMENU | MMF_NOHINT, BRIGHTWHITE, BLUE, 
  135.       LT_RED, BLUE, BLUE, CYAN, WHITE, BLACK, 1, 28, 40, BS_NOBORDER, 
  136.       BLACK, BLACK, 0, 0, NULL,
  137.          "Speed Demo", MIF_CALLFUNC, 'S', 0,  3, 0, (void *)SpeedDemo, 
  138.             " Display and hide a window 100 times ",
  139.          "Data Entry", MIF_CALLFUNC, 'D', 0,  18, 0, (void *)PromptDemo, 
  140.             " Demonstration of Data Entry fields  ",
  141.          "Menu", MIF_CALLMENU, 'M', 0,  32, 0, (void *)&VertMenu, 
  142.             " Demonstration of a Vertical Menu    ",
  143.          "Dialog Box", MIF_CALLDIALOG, 'I', 1,  40, 0, (void *)&TestDialog, 
  144.             " Demonstration of a Dialog Box       ",
  145.          "PickList", MIF_CALLFUNC, 'P', 0,  54, 0, (void *)&TestPickList, 
  146.             " Demonstration of a Pick List        ",
  147.          "Exit", MIF_CALLEXIT, 'X', 1,  70, 0, NULL, 
  148.             " Exit the Z-Forms demo               ",
  149.          NULL, 0, 0, 0, 0, 0, NULL, "" };
  150. #else
  151.    static MENU_ITEM VertMenuItem[] = {
  152.          "First Choice", MIF_CALLEXIT, 'F', 0,  1, 1, NULL, NULL,
  153.          "Second Choice", MIF_CALLEXIT, 'S', 0,  1, 2, NULL, NULL,
  154.          "Third Choice", MIF_CALLEXIT, 'T', 0,  1, 3, NULL, NULL,
  155.          "Fourth Choice", MIF_CALLEXIT, 'O', 1,  1, 4, NULL, NULL,
  156.          NULL, 0, 0, 0, 0, 0, NULL, "" };
  157.    static MENU VertMenu = {
  158.       33, 2, 6, 20, 18, MMF_VERTMENU | MMF_NOHINT, BRIGHTWHITE, BLUE, 
  159.       LT_RED, BLUE, BLUE, CYAN, WHITE, BLACK, 1, 28, 40, BS_SINGLELINE, 
  160.       YELLOW, BLUE, 0, 0, NULL, VertMenuItem };
  161.    static DLG_CONTROL TestDialogControl[] = {
  162.          "This is a text control", CSF_TEXT, CSS_NOACTIVATE | CSS_CALLNOTHING, 0, 0, 20, 2, 1, 22, YELLOW, BLUE,
  163.             CYAN, BLUE, NULL, NULL, NULL,
  164.          "Data Entry: ", CSF_DATAENTRY, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_D, 0, 3, 4, 1, 0x1E0A, WHITE, BLUE,
  165.             CYAN, BLUE, DataVar, "This is a data entry control", NULL,
  166.          "Checkbox", CSF_CHECKBOX, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_C, 3, 42, 4, 0, 0, WHITE, BLUE,
  167.             BRIGHTWHITE, BLUE, &CheckVar, "This is a check box control", NULL,
  168.          "OneOfButton1", CSF_ONEOFBUTTON, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_O, 0, 22, 6, 0, 0, WHITE, BLUE,
  169.             BRIGHTWHITE, BLUE, &OneOfVar, "This is a group of one-of buttons", NULL,
  170.          "OneOfButton2", CSF_ONEOFBUTTON, CSS_ACTIVATE | CSS_CALLNOTHING, k_Alt_N, 1, 22, 7, 0, 1, WHITE, BLUE,
  171.             BRIGHTWHITE, BLUE, &OneOfVar, "This is a group of one-of buttons", NULL,
  172.          " <Exit> ", CSF_BUTTON, CSS_ACTIVATE | CSS_EXIT, k_Esc, 0, 26, 9, 0, 0, WHITE, RED,
  173.             BRIGHTWHITE, RED, NULL, "This is a button control", NULL,
  174.          NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, "", NULL};
  175.    static DIALOG TestDialog = {
  176.       10, 5, 13, 60, DBF_USEHINT, 0x1E20, YELLOW, BLUE, 11, 16, 58, BS_DOUBLELINE,
  177.       YELLOW, BLUE, DS_LOWERRIGHT, 0x8, "Test Dialog Box", NULL, TestDialogControl };
  178.    static MENU_ITEM MainMenuItem[] = {
  179.          "Speed Demo", MIF_CALLFUNC, 'S', 0,  3, 0, (void *)SpeedDemo, 
  180.             " Display and hide a window 100 times ",
  181.          "Data Entry", MIF_CALLFUNC, 'D', 0,  18, 0, (void *)PromptDemo, 
  182.             " Demonstration of Data Entry fields  ",
  183.          "Menu", MIF_CALLMENU, 'M', 0,  32, 0, (void *)&VertMenu, 
  184.             " Demonstration of a Vertical Menu    ",
  185.          "Dialog Box", MIF_CALLDIALOG, 'I', 1,  40, 0, (void *)&TestDialog, 
  186.             " Demonstration of a Dialog Box       ",
  187.          "PickList", MIF_CALLFUNC, 'P', 0,  54, 0, (void *)&TestPickList, 
  188.             " Demonstration of a Pick List        ",
  189.          "Exit", MIF_CALLEXIT, 'X', 1,  70, 0, NULL, 
  190.             " Exit the Z-Forms demo               ",
  191.          NULL, 0, 0, 0, 0, 0, NULL, "" };
  192.    static MENU MainMenu = {
  193.       1, 1, 1, 78, 0, MMF_HORIZMENU | MMF_NOHINT, BRIGHTWHITE, BLUE, 
  194.       LT_RED, BLUE, BLUE, CYAN, WHITE, BLACK, 1, 28, 40, BS_NOBORDER, 
  195.       BLACK, BLACK, 0, 0, NULL, MainMenuItem };
  196. #endif         
  197.  
  198.    /* open the main window */
  199.    pWin = Z_OpenWindow(&MainWin);
  200.  
  201.    /* display the welcoming dialog box */
  202.    Z_InformUser("Z-Forms", "Welcome to Zforms!", "<Continue>", NULL);
  203.  
  204.    /* display and handle the main menu */
  205.    Z_HandleMenu(&MainMenu);
  206.    
  207.    /* close the main window and exit */
  208.    Z_CloseWindow(pWin);
  209.    Z_ClearScreen(' ', WHITE);
  210.    }
  211.