home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / RCDOC4.ZIP / RCCDO.C < prev    next >
C/C++ Source or Header  |  1993-01-05  |  8KB  |  248 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 winproc_Rccdo(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 dlgproc_Open_CH(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",winproc_Rccdo,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 winproc_Rccdo(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,dlgproc_Open_CH,(HMODULE)0,Open_CH,NULL);
  76.               return FALSE;
  77.          break;
  78.        case  Print_CH: /* MENUITEM */
  79.          break;
  80.        case  ID_Separator2: /* MENUITEM */
  81.          break;
  82.        case  Exit_CH: /* MENUITEM */
  83.         if (MBID_YES  ==
  84.             WinMessageBox(
  85.                 HWND_DESKTOP, hwnd,
  86.                    "Window Will Close\nDo You Want To?",
  87.                     "Close With Warning",0,
  88.                     MB_YESNO|MB_DEFBUTTON2|MB_ICONQUESTION|MB_MOVEABLE))
  89.                             WinPostMsg(hwnd,WM_QUIT,0l,0l);
  90.          break;
  91.        case  Help_AB: /* SUBMENU */
  92.          break;
  93.        case  HelpForHelp: /* MENUITEM */
  94.          break;
  95.        case  ExtendedHelp: /* MENUITEM */
  96.          break;
  97.        case  KeysHelp: /* MENUITEM */
  98.          break;
  99.        case  HelpIndex: /* MENUITEM */
  100.          break;
  101.       }
  102.     break;
  103.    case WM_CONTROL:
  104.     break;
  105.    case WM_CREATE:
  106.     break;
  107.    case WM_PAINT:
  108.     hps = WinBeginPaint(hwnd,0ul,0ul);
  109.     WinQueryWindowRect(hwnd,&rectl);
  110.     WinFillRect(hps,&rectl,CLR_BLUE);
  111.     WinEndPaint(hps);
  112.     return(FALSE);
  113.     break;
  114.     }
  115.  return(WinDefWindowProc(hwnd,msg,mp1,mp2));
  116. }
  117.  
  118. MRESULT EXPENTRY dlgproc_Open_CH(HWND hwnd,ULONG msg,MPARAM mp1,MPARAM mp2)
  119. {
  120.  switch(msg)
  121.  {
  122.    case WM_INITDLG:
  123.            WinSendDlgItemMsg(hwnd,entryfield ,
  124.                  EM_SETTEXTLIMIT, 
  125.                      MPFROM2SHORT( 8,0),NULL);
  126.            WinSetDlgItemText(hwnd,entryfield, sz_entryfield);
  127.              if (ul_length_mle)
  128.                   WinSetDlgItemText(hwnd,mle, sz_mle);
  129.            WinSendDlgItemMsg(hwnd,check ,
  130.                  BM_SETCHECK, 
  131.                      MPFROM2SHORT(check_box[en_cb_check],0),NULL);
  132.            WinSendDlgItemMsg(hwnd,checker2 ,
  133.                  BM_SETCHECK, 
  134.                      MPFROM2SHORT(check_box[en_cb_checker2],0),NULL);
  135.            WinSendDlgItemMsg(hwnd,Acheck ,
  136.                  BM_SETCHECK, 
  137.                      MPFROM2SHORT(check_box[en_cb_Acheck],0),NULL);
  138.         if  (radio_button[0])  /* this radio button is on */
  139.                 WinSendDlgItemMsg(hwnd,radio_button[0],
  140.                        BM_SETCHECK, 
  141.                           MPFROM2SHORT(TRUE,0),NULL);
  142.     break;
  143.    case WM_CLOSE:
  144.     break;
  145.    case WM_CONTROL:
  146.      switch ( SHORT1FROMMP(mp1) )
  147.         {
  148.           case check: /* CHECKBOX */
  149.              if (check_box[en_cb_check])
  150.                   check_box[en_cb_check] = FALSE;
  151.              else    check_box[en_cb_check] = TRUE;
  152.              WinSendDlgItemMsg(hwnd,check ,
  153.                    BM_SETCHECK, 
  154.                        MPFROM2SHORT(check_box[en_cb_check],0),NULL);
  155.               break;
  156.           case entryfield: /* ENTRYFIELD */
  157.                if (SHORT2FROMMP(mp1) == EN_KILLFOCUS)
  158.                    WinQueryDlgItemText(hwnd,entryfield, 8,sz_entryfield);
  159.               break;
  160.           case horizontal: /* CONTROL */
  161.               break;
  162.           case mle: /* MLE */
  163.                if (SHORT2FROMMP(mp1) == MLN_KILLFOCUS) {
  164.                   ul_length_mle =
  165.                        WinQueryDlgItemTextLength(hwnd,mle);
  166.                   if (ul_length_mle) {
  167.                        if (sz_mle)  
  168.                          free (sz_mle);
  169.                      sz_mle= malloc(++ul_length_mle);
  170.                      WinQueryDlgItemText(hwnd,mle,ul_length_mle ,sz_mle);
  171.                       }
  172.                    else {    /* if there was something there; it is gone now */
  173.                        if (sz_mle)  
  174.                          free (sz_mle);
  175.                         ul_length_mle = 0;
  176.                       }
  177.                    }
  178.               break;
  179.           case vertical: /* CONTROL */
  180.               break;
  181.           case radio_2: /* RADIOBUTTON */
  182.              WinSendDlgItemMsg(hwnd,radio_button[0],
  183.                    BM_SETCHECK, 
  184.                        MPFROM2SHORT(FALSE,0),NULL);
  185.                    radio_button[0] =  radio_2;
  186.               WinSendDlgItemMsg(hwnd,radio_button[0],
  187.                    BM_SETCHECK, 
  188.                        MPFROM2SHORT(TRUE,0),NULL);
  189.               break;
  190.           case checker2: /* CHECKBOX */
  191.              if (check_box[en_cb_checker2])
  192.                   check_box[en_cb_checker2] = FALSE;
  193.              else    check_box[en_cb_checker2] = TRUE;
  194.              WinSendDlgItemMsg(hwnd,checker2 ,
  195.                    BM_SETCHECK, 
  196.                        MPFROM2SHORT(check_box[en_cb_checker2],0),NULL);
  197.               break;
  198.           case Radio_ID: /* RADIOBUTTON */
  199.              WinSendDlgItemMsg(hwnd,radio_button[0],
  200.                    BM_SETCHECK, 
  201.                        MPFROM2SHORT(FALSE,0),NULL);
  202.                    radio_button[0] =  Radio_ID;
  203.               WinSendDlgItemMsg(hwnd,radio_button[0],
  204.                    BM_SETCHECK, 
  205.                        MPFROM2SHORT(TRUE,0),NULL);
  206.               break;
  207.           }
  208.     break;
  209.    case WM_COMMAND:
  210.      switch ( SHORT1FROMMP(mp1) )
  211.         {
  212.           case check: /* CHECKBOX */
  213.               break;
  214.           case combolistbox: /* COMBOBOX */
  215.               break;
  216.           case entryfield: /* ENTRYFIELD */
  217.               break;
  218.           case listbox: /* LISTBOX */
  219.               break;
  220.           case mle: /* MLE */
  221.               break;
  222.           case push: /* PUSHBUTTON */
  223.                 WinDismissDlg(hwnd,0);
  224.               break;
  225.           case text: /* LTEXT */
  226.               break;
  227.           case radio_2: /* RADIOBUTTON */
  228.               break;
  229.           case checker2: /* CHECKBOX */
  230.               break;
  231.           case Acheck: /* AUTOCHECKBOX */
  232.              check_box[en_cb_Acheck] = WinQueryButtonCheckstate(hwnd,Acheck);
  233.               break;
  234.           case AutoRadio: /* AUTORADIOBUTTON */
  235.               if (WinQueryButtonCheckstate(hwnd,AutoRadio) )
  236.                    radio_button[0] =  AutoRadio;
  237.               break;
  238.           case Radio_ID: /* RADIOBUTTON */
  239.               break;
  240.       }
  241.    default:
  242.       return(WinDefDlgProc(hwnd,msg,mp1,mp2));
  243.       break;
  244.   }
  245.   return (FALSE);
  246. }
  247.  
  248.