home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c082_122 / 2.ddi / GDIDEMO.ZIP / GDIDEMO.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1992-06-10  |  3.6 KB  |  130 lines

  1. // ObjectWindows - (C) Copyright 1992 by Borland International
  2.  
  3. // GDIDemo program
  4.  
  5. #include <owl.h>
  6. #include <string.h>
  7. #include <mdi.h>
  8. #include "demobase.h"
  9. #include "line.h"
  10. #include "font.h"
  11. #include "bitblt.h"
  12. #include "arty.h"
  13.  
  14. // Menu bar constants
  15. const int  MenuID           =  100;  // Resource ID of the menu
  16. const int  QuitID           =  100;  // File->Quit ID
  17. const int MoveToLineToDemoID=  200;  // Demo->MoveToDemo ID
  18. const int FontDemoID        =  202;  // Demo->Font Demo ID
  19. const int BitBltDemoID      =  203;  // Demo->BitBlt Demo ID
  20. const int ArtyDemoID        =  204;  // Demo->Arty Demo ID
  21.  
  22.  
  23.  
  24. /* TGDIDemoWindow --------------------------------------------------- */
  25.  
  26. _CLASSDEF(TGDIDemoWindow)
  27.  
  28. class TGDIDemoWindow : public TMDIFrame
  29. {
  30. public:
  31.          TGDIDemoWindow( LPSTR ATitle, LPSTR MenuName )
  32.                    : TMDIFrame(ATitle, MenuName) {} ;
  33.          virtual void SetupWindow();
  34.          virtual void MoveToLineToDemo( TMessage& ) = [CM_FIRST + MoveToLineToDemoID];
  35.          virtual void FontDemo( TMessage& )         = [CM_FIRST + FontDemoID];
  36.          virtual void BitBltDemo( TMessage& )       = [CM_FIRST + BitBltDemoID];
  37.          virtual void ArtyDemo( TMessage& )         = [CM_FIRST + ArtyDemoID];
  38.          virtual void Quit( TMessage& )             = [CM_FIRST + QuitID];
  39.          virtual void WMTimer( TMessage& )          = [WM_FIRST + WM_TIMER];
  40.          virtual void WMDestroy( TMessage& )        = [WM_FIRST + WM_DESTROY];
  41. };
  42.  
  43.  
  44. void TGDIDemoWindow::SetupWindow()
  45. {
  46.   int Result;
  47.  
  48.   TMDIFrame::SetupWindow();
  49.   Result = IDRETRY;
  50.   while ((SetTimer(HWindow, 0, 50, NULL) == 0) && (Result == IDRETRY)) {
  51.     Result = MessageBox(GetFocus(),"Could not Create Timer", "GDIDemo", MB_RETRYCANCEL);
  52.   };
  53.   if (Result == IDCANCEL)  PostQuitMessage(0);
  54. };
  55.  
  56. void TGDIDemoWindow::MoveToLineToDemo( TMessage& )
  57. {
  58.   GetApplication()->MakeWindow(new TMoveToLineToWindow(this, "MoveTo/LineTo Window"));
  59. };
  60.  
  61. void TGDIDemoWindow::FontDemo( TMessage& )
  62. {
  63.   GetApplication()->MakeWindow(new TFontWindow(this, "Font Window"));
  64. };
  65.  
  66. void TGDIDemoWindow::BitBltDemo( TMessage& )
  67. {
  68.   GetApplication()->MakeWindow(new TBitBltWindow(this, "BitBlt Window"));
  69. };
  70.  
  71. void TGDIDemoWindow::ArtyDemo( TMessage& )
  72. {
  73.   GetApplication()->MakeWindow(new TArtyWindow(this, "Arty Window"));
  74. };
  75.  
  76. void TGDIDemoWindow::Quit( TMessage& )
  77. {
  78.   CloseWindow();
  79. };
  80.  
  81. void ChildTimers( Pvoid P, Pvoid)
  82. {
  83.   ((PTBaseDemoWindow)P)->TimerTick();
  84. };
  85.  
  86. /* In response to WMTimer messages, each MDI child window's TimerTick
  87.   Method is called. */
  88. void TGDIDemoWindow::WMTimer( TMessage& )
  89. {
  90.   ForEach(ChildTimers, NULL);
  91. };
  92.  
  93. void TGDIDemoWindow::WMDestroy( TMessage& Message )
  94. {
  95.   KillTimer(HWindow, 0);
  96.   TMDIFrame::WMDestroy(Message);
  97. };
  98.  
  99.  
  100.  
  101.  
  102. /* TGDIDemoApp ------------------------------------------------------ */
  103.  
  104. _CLASSDEF(TGDIDemoApp)
  105.  
  106. class TGDIDemoApp : public TApplication
  107. {
  108. public:
  109.         TGDIDemoApp(LPSTR name, HINSTANCE hInstance, HINSTANCE hPrevInstance,
  110.                     LPSTR lpCmd, int nCmdShow)  :
  111.               TApplication(name, hInstance, hPrevInstance, lpCmd, nCmdShow) {};
  112.         virtual void InitMainWindow();
  113. };
  114.  
  115. void TGDIDemoApp::InitMainWindow()
  116. {
  117.   /* Create a main window of type TGDIWindow. */
  118.   MainWindow = new TGDIDemoWindow("GDI Demo", (LPSTR)MAKEINTRESOURCE(MenuID));
  119. };
  120.  
  121. // Run the GDIDemoApp
  122. int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  123.            LPSTR lpCmd, int nCmdShow)
  124. {
  125.     TGDIDemoApp GDIDemoApp("GDIDemoApp", hInstance, hPrevInstance,
  126.                                lpCmd, nCmdShow);
  127.     GDIDemoApp.Run();
  128.     return GDIDemoApp.Status;
  129. }
  130.