home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / r / rcdo_c03.zip / RCCDO.C < prev    next >
C/C++ Source or Header  |  1992-12-09  |  8KB  |  241 lines

  1. /* E:\PMBUILD\RCCDO.C produced by vrexx pgm rc-do-c */
  2. /* American Coders Ltd */
  3. /* PO Box 97462 */
  4. /* Raleigh, NC  27462 */
  5. /* (919) 846 - 2014 */
  6. #define INCL_WINBUTTONS
  7. #define INCL_WINSYS
  8. #define INCL_WINFRAMEMGR
  9. #define INCL_WINMENUS
  10. #define INCL_WINENTRYFIELDS
  11. #define INCL_WINMLE
  12. #define INCL_WINDIALOGS
  13. #define INCL_GPI
  14. #define INCL_DOS
  15. #include <os2.h>
  16. #include <stdlib.h>
  17. #include "rccdo.h"
  18. MRESULT EXPENTRY winproc1(HWND, ULONG, MPARAM, MPARAM);
  19.  /* start char array defines for ENTRY fields */
  20. char sz_entryfield[ 8];
  21. ULONG ul_length_entryfield = 0;
  22.  /* start *char  defines for MLE fields */
  23. char *sz_mle;
  24. ULONG ul_length_mle = 0;
  25.  /* start enum list of check box */
  26. enum   en_check_box {    en_cb_check
  27.                          ,    en_cb_checker2
  28.                          ,    en_cb_Acheck
  29.    }; /* end enum list of check box */
  30.  /* boolean table of all  checkbox each is set to false */
  31. BOOL check_box[3];
  32. ULONG  radio_button[1];  /*boolean table of dialog radio buttons where 1 dialog = 1 radion button */
  33. MRESULT EXPENTRY dlgproc1(HWND, ULONG, MPARAM, MPARAM);
  34. enum en_radio_button { en_rb_Open_CH
  35.               }; /* end enum list of radio buttons, one button for each dialog */
  36.  
  37. HAB hab;
  38. HWND  hwndmain, hwndCl;
  39. main(int argc, char *argv)
  40. {
  41. QMSG qmsg;
  42.  HMQ hmq;
  43.  HPS hps;
  44.  ULONG fcfData = FCF_TITLEBAR | FCF_SYSMENU | FCF_MENU |
  45.           FCF_ICON |
  46.            FCF_SIZEBORDER | FCF_MINMAX  | FCF_SYSMODAL |
  47.            FCF_SHELLPOSITION  | FCF_TASKLIST;
  48.  
  49.  hab = WinInitialize(0ul);
  50.  hmq = WinCreateMsgQueue(hab,0ul);
  51.  WinRegisterClass(hab ,"Rccdo",winproc1,CS_SIZEREDRAW ,0);
  52.  hwndmain = WinCreateStdWindow(HWND_DESKTOP, WS_VISIBLE,
  53.    &fcfData,"Rccdo","Rccdo",
  54.    0l,(HMODULE)NULL,Rccdo,&hwndCl);
  55.  while ( WinGetMsg(hab,&qmsg, 0ul,0ul,0ul))
  56.     WinDispatchMsg( hab, &qmsg );
  57.  WinDestroyWindow(hwndCl);
  58.  WinDestroyMsgQueue( hmq );
  59.  WinTerminate( hab );
  60. }
  61.  
  62. MRESULT EXPENTRY winproc1(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
  63.  {
  64.    ULONG rc;
  65.    HPS hps;
  66.    RECTL rectl;
  67.    switch(msg)
  68.      {
  69.     case WM_COMMAND:
  70.        switch (SHORT1FROMMP(mp1))
  71.            { /* menu pulldowns and choices*/
  72.        case  File_AB: /* SUBMENU */
  73.          break;
  74.        case  Open_CH: /* MENUITEM */
  75.               WinDlgBox(HWND_DESKTOP ,hwndmain,dlgproc1,(HMODULE)0,Open_CH,NULL);
  76.          break;
  77.        case  Print_CH: /* MENUITEM */
  78.          break;
  79.        case  ID_Separator2: /* MENUITEM */
  80.          break;
  81.        case  Exit_CH: /* MENUITEM */
  82.         WinPostMsg(hwnd,WM_QUIT,0l,0l);
  83.          break;
  84.        case  Help_AB: /* SUBMENU */
  85.          break;
  86.        case  HelpForHelp: /* MENUITEM */
  87.          break;
  88.        case  ExtendedHelp: /* MENUITEM */
  89.          break;
  90.        case  KeysHelp: /* MENUITEM */
  91.          break;
  92.        case  HelpIndex: /* MENUITEM */
  93.          break;
  94.       }
  95.     break;
  96.    case WM_CONTROL:
  97.     break;
  98.    case WM_CREATE:
  99.     break;
  100.    case WM_PAINT:
  101.     hps = WinBeginPaint(hwnd,0ul,0ul);
  102.     WinQueryWindowRect(hwnd,&rectl);
  103.     WinFillRect(hps,&rectl,CLR_BLUE);
  104.     WinEndPaint(hps);
  105.     return(FALSE);
  106.     break;
  107.     }
  108.  return(WinDefWindowProc(hwnd,msg,mp1,mp2));
  109. }
  110.  
  111. MRESULT EXPENTRY dlgproc1(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
  112. {
  113.  switch(msg)
  114.  {
  115.    case WM_INITDLG:
  116.            WinSendDlgItemMsg(hwnd,entryfield ,
  117.                  EM_SETTEXTLIMIT, 
  118.                      MPFROM2SHORT( 8,0),NULL);
  119.            WinSetDlgItemText(hwnd,entryfield, sz_entryfield);
  120.              if (ul_length_mle)
  121.                   WinSetDlgItemText(hwnd,mle, sz_mle);
  122.            WinSendDlgItemMsg(hwnd,check ,
  123.                  BM_SETCHECK, 
  124.                      MPFROM2SHORT(check_box[en_cb_check],0),NULL);
  125.            WinSendDlgItemMsg(hwnd,checker2 ,
  126.                  BM_SETCHECK, 
  127.                      MPFROM2SHORT(check_box[en_cb_checker2],0),NULL);
  128.            WinSendDlgItemMsg(hwnd,Acheck ,
  129.                  BM_SETCHECK, 
  130.                      MPFROM2SHORT(check_box[en_cb_Acheck],0),NULL);
  131.         if  (radio_button[0])  /* this radio button is on */
  132.                 WinSendDlgItemMsg(hwnd,radio_button[0],
  133.                        BM_SETCHECK, 
  134.                           MPFROM2SHORT(TRUE,0),NULL);
  135.     break;
  136.    case WM_CLOSE:
  137.     break;
  138.    case WM_CONTROL:
  139.      switch ( SHORT1FROMMP(mp1) )
  140.         {
  141.           case check: /* CHECKBOX */
  142.              if (check_box[en_cb_check])
  143.                   check_box[en_cb_check] = FALSE;
  144.              else    check_box[en_cb_check] = TRUE;
  145.              WinSendDlgItemMsg(hwnd,check ,
  146.                    BM_SETCHECK, 
  147.                        MPFROM2SHORT(check_box[en_cb_check],0),NULL);
  148.               break;
  149.           case entryfield: /* ENTRYFIELD */
  150.                if (SHORT2FROMMP(mp1) == EN_KILLFOCUS)
  151.                    WinQueryDlgItemText(hwnd,entryfield, 8,sz_entryfield);
  152.               break;
  153.           case horizontal: /* CONTROL */
  154.               break;
  155.           case mle: /* MLE */
  156.                if (SHORT2FROMMP(mp1) == MLN_KILLFOCUS) {
  157.                   ul_length_mle =
  158.                        WinQueryDlgItemTextLength(hwnd,mle);
  159.                   if (ul_length_mle) {
  160.                        if (sz_mle)  
  161.                          free (sz_mle);
  162.                      sz_mle= malloc(++ul_length_mle);
  163.                      WinQueryDlgItemText(hwnd,mle,ul_length_mle ,sz_mle);
  164.                       }
  165.                    else {    /* if there was something there; it is gone now */
  166.                        if (sz_mle)  
  167.                          free (sz_mle);
  168.                         ul_length_mle = 0;
  169.                       }
  170.                    }
  171.               break;
  172.           case vertical: /* CONTROL */
  173.               break;
  174.           case radio_2: /* RADIOBUTTON */
  175.              WinSendDlgItemMsg(hwnd,radio_button[0],
  176.                    BM_SETCHECK, 
  177.                        MPFROM2SHORT(FALSE,0),NULL);
  178.                    radio_button[0] =  radio_2;
  179.               WinSendDlgItemMsg(hwnd,radio_button[0],
  180.                    BM_SETCHECK, 
  181.                        MPFROM2SHORT(TRUE,0),NULL);
  182.               break;
  183.           case checker2: /* CHECKBOX */
  184.              if (check_box[en_cb_checker2])
  185.                   check_box[en_cb_checker2] = FALSE;
  186.              else    check_box[en_cb_checker2] = TRUE;
  187.              WinSendDlgItemMsg(hwnd,checker2 ,
  188.                    BM_SETCHECK, 
  189.                        MPFROM2SHORT(check_box[en_cb_checker2],0),NULL);
  190.               break;
  191.           case Radio_ID: /* RADIOBUTTON */
  192.              WinSendDlgItemMsg(hwnd,radio_button[0],
  193.                    BM_SETCHECK, 
  194.                        MPFROM2SHORT(FALSE,0),NULL);
  195.                    radio_button[0] =  Radio_ID;
  196.               WinSendDlgItemMsg(hwnd,radio_button[0],
  197.                    BM_SETCHECK, 
  198.                        MPFROM2SHORT(TRUE,0),NULL);
  199.               break;
  200.           }
  201.     break;
  202.    case WM_COMMAND:
  203.      switch ( SHORT1FROMMP(mp1) )
  204.         {
  205.           case check: /* CHECKBOX */
  206.               break;
  207.           case combolistbox: /* COMBOBOX */
  208.               break;
  209.           case entryfield: /* ENTRYFIELD */
  210.               break;
  211.           case listbox: /* LISTBOX */
  212.               break;
  213.           case mle: /* MLE */
  214.               break;
  215.           case push: /* PUSHBUTTON */
  216.                 WinDismissDlg(hwnd,0);
  217.               break;
  218.           case text: /* LTEXT */
  219.               break;
  220.           case radio_2: /* RADIOBUTTON */
  221.               break;
  222.           case checker2: /* CHECKBOX */
  223.               break;
  224.           case Acheck: /* AUTOCHECKBOX */
  225.              check_box[en_cb_Acheck] = WinQueryButtonCheckstate(hwnd,Acheck);
  226.               break;
  227.           case AutoRadio: /* AUTORADIOBUTTON */
  228.               if (WinQueryButtonCheckstate(hwnd,AutoRadio) )
  229.                    radio_button[0] =  AutoRadio;
  230.               break;
  231.           case Radio_ID: /* RADIOBUTTON */
  232.               break;
  233.       }
  234.    default:
  235.       return(WinDefDlgProc(hwnd,msg,mp1,mp2));
  236.       break;
  237.   }
  238.   return (FALSE);
  239. }
  240.  
  241.