home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / 3DTOSHI2.ZIP / mpgui / source / guidlg.cpp < prev    next >
C/C++ Source or Header  |  1996-04-21  |  8KB  |  310 lines

  1.  
  2. // guidlg.cpp
  3. //
  4. // Copyright (c) 1995 by Toshiaki Tsuji, all rights reserved.
  5.  
  6. #include "stdgfx.h"
  7. #include "guidlg.h"
  8.  
  9. BOOL DLGPROC GUIDialogProc ( HWINDOW hDlg, MESSAGE iMessage, PARAM1 Param1, PARAM2 Param2 );
  10.  
  11. //***********************************************
  12. //
  13. // GUI Dialog Class
  14. //
  15. //***********************************************
  16.  
  17. GUIDIALOG *NewDialog=NULL;
  18.  
  19. GUIDIALOG::GUIDIALOG ()
  20.   {
  21.     ReturnValue = 0;
  22.   } // End of Constructor for GUIDIALOG
  23.  
  24. GUIDIALOG::~GUIDIALOG ()
  25.   {
  26.   } // End of Destructor for GUIDIALOG
  27.  
  28. LONG GUIDIALOG::OnInitDialog ()
  29.   {
  30.     return 0;  
  31.   } // End of OnInitDialog
  32.  
  33. LONG GUIDIALOG::OnCreate ()
  34.   {
  35.     return 0;
  36.   } // End of OnCreate for GUIDIALOG
  37.  
  38. LONG GUIDIALOG::OnClose ()
  39.   {
  40.     return 0;
  41.   } // End of OnClose for GUIDIALOG
  42.  
  43. BOOLEAN GUIDIALOG::Create ( STRING Title, LONG x, LONG y, LONG Wd, LONG Ht,
  44.                             GUIWINDOW *Parent )
  45.   {
  46.     if (Parent)
  47.       {}
  48.     if (Title)
  49.       {}
  50.     if (x&y&Wd&Ht)
  51.       {}
  52.     return SUCCESS;
  53.   } // End of Create for GUIDIALOG
  54.  
  55. LONG GUIDIALOG::Execute ( GUIWINDOW *Parent, STRING Name )
  56.   {
  57.     ParentWindow = Parent;
  58.     #if defined (__FORWINDOWS__)
  59.       HWINDOW hParent;
  60.  
  61.       if (ParentWindow==NULL)
  62.         hParent = HDESKTOP;
  63.       else
  64.         hParent = ParentWindow->GetHandle ();
  65.  
  66.       #if defined (__FORWIN386__)
  67.         FARPROC pDlgProc;
  68.         pDlgProc = MakeProcInstance ( (FARPROC)GUIDialogProc, hInstance );
  69.         NewDialog = this;
  70.         ReturnValue = DialogBox ( hInstance, Name, hParent, pDlgProc );
  71.         NewDialog = NULL;
  72.         FreeProcInstance ( pDlgProc );
  73.       #else
  74.         FARPROC pDlgProc;
  75.         pDlgProc = MakeProcInstance ( (FARPROC)GUIDialogProc, hInstance );
  76.         NewDialog = this;
  77.         ReturnValue = DialogBox ( hInstance, Name, hParent, pDlgProc );
  78.         FreeProcInstance ( pDlgProc );
  79.         NewDialog = NULL;
  80.       #endif
  81.       
  82.       return ReturnValue;
  83.     #elif defined (__FOROS2__)
  84.       if (Name)
  85.         {}
  86.       return 0;
  87.     #elif defined (__FORDOS__)
  88.       if (Name)
  89.         {}
  90.       return 0;
  91.     #endif
  92.   } // End of Execute for GUIDIALOG
  93.  
  94. VOID GUIDIALOG::CloseWindow ()
  95.   {
  96.     #if defined (__FORWINDOWS__)
  97.       #if defined (__FORWIN386__)
  98.         EndDialog ( hWindow, (short)ReturnValue );
  99.       #else  
  100.         EndDialog ( hWindow, (int)ReturnValue );
  101.       #endif
  102.     #endif
  103.   } // End of CloseWindow for GUIDIALOG
  104.  
  105. VOID GUIDIALOG::SetItemText ( LONG ID, STRING Text )
  106.   {
  107.     #if defined (__FORWINDOWS__)
  108.       #if defined (__FORWIN386__)
  109.         SetDlgItemText ( hWindow, (short)ID, Text );
  110.       #else
  111.         SetDlgItemText ( hWindow, ID, Text );
  112.       #endif  
  113.     #else
  114.       if (ID)
  115.         {}
  116.       if (Text)
  117.         {}
  118.     #endif 
  119.   } // End of SetItemText for GUIDIALOG
  120.  
  121. VOID GUIDIALOG::SetItemNumber ( LONG ID, LONG Number )
  122.   {
  123.     #if defined (__FORWINDOWS__)
  124.       #if defined (__FORWIN386__)
  125.         SetDlgItemInt ( hWindow, (short)ID, (short)Number, TRUE );
  126.       #else
  127.         SetDlgItemInt ( hWindow, ID, Number, TRUE );
  128.       #endif
  129.     #else
  130.       if (ID)
  131.         {}
  132.       if (Number)
  133.         {}
  134.     #endif 
  135.   } // End of SetItemNumber for GUIDIALOG
  136.  
  137. VOID GUIDIALOG::SetButtonState ( LONG ID, LONG State )
  138.   {
  139.     #if defined (__FORWINDOWS__)
  140.       #if defined (__FORWIN386__)
  141.         CheckDlgButton ( hWindow, (short)ID, (short)State );
  142.       #else  
  143.         CheckDlgButton ( hWindow, ID, State );
  144.       #endif
  145.     #else
  146.       if (ID&State)
  147.         {}  
  148.     #endif  
  149.   } // End of SetButtonState for GUIDIALOG
  150.  
  151. LONG GUIDIALOG::GetButtonState ( LONG ID )
  152.   {
  153.     #if defined (__FORWINDOWS__)
  154.       #if defined (__FORWIN386__)
  155.         return IsDlgButtonChecked ( hWindow, (short)ID );
  156.       #else
  157.         return IsDlgButtonChecked ( hWindow, ID );
  158.       #endif
  159.     #else
  160.       if (ID)
  161.         {}
  162.       return 0;    
  163.     #endif  
  164.   } // End of GetButtonState for GUIDIALOG
  165.  
  166. LONG GUIDIALOG::GetItemText ( LONG ID, STRING Text )
  167.   {
  168.     #if defined (__FORWINDOWS__)
  169.       LONG Number;
  170.       #if defined (__FORWIN386__)
  171.         Number = GetDlgItemText ( hWindow, (short)ID, Text, 128 );
  172.       #else
  173.         Number = GetDlgItemText ( hWindow, ID, Text, 128 );
  174.       #endif
  175.       return Number;        
  176.     #else
  177.       if (ID)
  178.         {}
  179.       if (Text)
  180.         {}
  181.       return 0;
  182.     #endif 
  183.   } // End of GetItemText for GUIDIALOG
  184.  
  185. LONG GUIDIALOG::GetItemNumber ( LONG ID )
  186.   {
  187.     #if defined (__FORWINDOWS__)
  188.       BOOL Result;
  189.       #if defined (__FORWIN386__)
  190.         return GetDlgItemInt ( hWindow, (short)ID, &Result, TRUE );
  191.       #else
  192.         return GetDlgItemInt ( hWindow, ID, &Result, TRUE );
  193.       #endif
  194.     #else
  195.       if (ID)
  196.         {}
  197.       return 0;
  198.     #endif 
  199.   } // End of GetItemNumber for GUIDIALOG
  200.   
  201. LONG GUIDIALOG::WndProc ( HWINDOW hWnd, MESSAGE iMessage, PARAM1 Param1, PARAM2 Param2, BOOLEAN FromClient )
  202.   {
  203.     LONG Result;
  204.     hWindow = hWnd;
  205.     hClient = hWindow;
  206.     if (Param1)
  207.       {}
  208.     if (Param2)
  209.       {}
  210.     if (FromClient)
  211.       {}
  212.     switch (iMessage)
  213.       {
  214.         case GUI_WM_INITDIALOG :
  215.           Result = OnInitDialog ();
  216.           #if defined (__FORWINDOWS__)
  217.             SetWindowPos ( hWindow, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );
  218.           #endif  
  219.           break;
  220.  
  221.         case GUI_WM_CLOSE :
  222.           Result = OnClose ();
  223.           if (Result==0)
  224.             CloseWindow ();
  225.           break;
  226.           
  227.         case GUI_WM_DESTROY :
  228.           Result = OnDestroy ();
  229.           break;
  230.  
  231.         case GUI_WM_PAINT :
  232.           #if defined (__FORWINDOWS__)
  233.             PAINTSTRUCT Ps;
  234.             HDISPLAY hDisplay;
  235.             hDisplay = BeginPaint ( hWindow, &Ps );
  236.             Result = OnPaint ( hDisplay );
  237.             EndPaint ( hWindow, &Ps );
  238.           #elif defined (__FOROS2__)
  239.             HDISPLAY hDisplay;
  240.             hDisplay = WinBeginPaint ( hWindow, NULLHANDLE, NULL );
  241.             Result = OnPaint ( hDisplay );
  242.             WinEndPaint ( hDisplay );
  243.           #elif defined (__FORDOS__)
  244.             Result = OnPaint ( 0 );
  245.           #endif
  246.           break;
  247.  
  248.         case GUI_WM_COMMAND :
  249.           #if defined (__FORWINDOWS__)
  250.             Result = OnCommand ( Param1 );
  251.           #elif defined (__FOROS2__)
  252.             Result = OnCommand ( COMMANDMSG(&iMessage)->cmd );
  253.           #endif
  254.           break;
  255.  
  256.         case GUI_WM_ACTIVATE :
  257.           LONG ActiveFlags;
  258.           BOOLEAN Minimized;
  259.           ActiveFlags = LOWORD((LONG)Param1);
  260.           Minimized = HIWORD((LONG)Param1);
  261.           Result = OnActivate ( ActiveFlags, Minimized );
  262.           break;
  263.  
  264.         case GUI_WM_KEYDOWN :
  265.           Result = OnKeyDown ( (LONG)Param1 );
  266.           break;
  267.  
  268.         case GUI_WM_KEYUP :
  269.           Result = OnKeyUp ( (LONG)Param1 );
  270.           break;
  271.  
  272.         default :
  273.           Result = UserProc ( iMessage, Param1, Param2 );
  274.           break;
  275.       } // End switch
  276.     return Result;
  277.   } // End of WndProc for GUIDIALOG
  278.  
  279.  
  280. //***********************************************
  281. //
  282. // Dialog Procedure
  283. //
  284. //***********************************************
  285.  
  286. BOOL DLGPROC GUIDialogProc ( HWINDOW hDlg, MESSAGE iMessage, PARAM1 Param1, PARAM2 Param2 )
  287.   {
  288.     LONG Result;
  289.     Result = 0; 
  290.     if (NewDialog!=NULL)
  291.       {
  292.         Result = NewDialog->WndProc ( hDlg, iMessage, Param1, Param2, FALSE );
  293.       } // End if
  294.  
  295.     #if defined (__FORWINDOWS__)
  296.     #elif defined (__FOROS2__)
  297.       if (Result!=0)
  298.         return Result;
  299.       Result = (LONG)WinDefDlgProc ( hDlg, iMessage, Param1, Param2 );
  300.     #elif defined (__FORDOS__)
  301.     #endif
  302.     if (Result)
  303.       return 1;
  304.     else
  305.       return 0;  
  306.   } // End of DialogProc
  307.  
  308.   
  309.   
  310.