home *** CD-ROM | disk | FTP | other *** search
/ Stars of Shareware: Programmierung / SOURCE.mdf / programm / windows / c / lckowl15 / genmdix.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1993-01-07  |  7.2 KB  |  210 lines

  1. #include "genmdix.h"
  2.  
  3. char    szAppName[] =     "MDI Application With Tools";
  4.  
  5. // NOTE: the same status bar, tool bar and tool box items are
  6. //     used for the frame as well as for all child windows to
  7. //     shorten the code and resource files.  Obviously, each
  8. //     window can have its own set of items.
  9.  
  10.  
  11. static STATUSBARPROGRESS ProgressItem[] = {
  12.     0, 100, TRUE,
  13. };
  14.  
  15. static STATUSBARITEM StatusBarItems[] = {
  16.     100, 8, SBR_AUTOSIZE, "", SBRS_TEXTLEFT,
  17.     101, 8, SBR_AUTOSIZE, (LPSTR) &ProgressItem[0], SBRS_PROGRESS,
  18. };
  19.  
  20. #define NUM_STATUSBARITEMS ((sizeof(StatusBarItems)) / sizeof(STATUSBARITEM))
  21.  
  22. static TOOLBOXITEM ToolBarItems[] =
  23.    {
  24.    IDM_NEW, "New",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  25.                       NULL, 1, 1, 0L,
  26.    IDM_ENTER1, "BM1",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  27.                       NULL, 1, 1, 0L,
  28.    IDM_ENTER2, "BM2",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  29.                       NULL, 1, 1, 0L,
  30. };
  31.  
  32. #define NUM_TOOLBARITEMS ((sizeof(ToolBarItems)) / sizeof(TOOLBOXITEM))
  33.  
  34. // I have used four rows of three buttons that repeat
  35.  
  36. static TOOLBOXITEM ToolBoxItems[] =
  37.    {
  38.    IDM_NEW, "New",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  39.                       NULL, 1, 1, 0L,
  40.    IDM_ENTER1, "BM1",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  41.                       NULL, 1, 1, 0L,
  42.    IDM_ENTER2, "BM2",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  43.                       NULL, 1, 1, 0L,
  44.    IDM_NEW, "New",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  45.                       NULL, 1, 1, 0L,
  46.    IDM_ENTER1, "BM1",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  47.                       NULL, 1, 1, 0L,
  48.    IDM_ENTER2, "BM2",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  49.                       NULL, 1, 1, 0L,
  50.    IDM_NEW, "New",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  51.                       NULL, 1, 1, 0L,
  52.    IDM_ENTER1, "BM1",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  53.                       NULL, 1, 1, 0L,
  54.    IDM_ENTER2, "BM2",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  55.                       NULL, 1, 1, 0L,
  56.    IDM_NEW, "New",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  57.                       NULL, 1, 1, 0L,
  58.    IDM_ENTER1, "BM1",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  59.                       NULL, 1, 1, 0L,
  60.    IDM_ENTER2, "BM2",   SUPERBTN_PICT_BITMAP, NULL, 0, NULL, 0,
  61.                       NULL, 1, 1, 0L,
  62. };
  63.  
  64. #define NUM_TOOLBOXITEMS ((sizeof(ToolBoxItems)) / sizeof(TOOLBOXITEM))
  65.  
  66. COLUMNCFG    ColumnDef[] = {
  67.              sizeof(COLUMNCFG), NULL, DTT_ZSTRING, 1, 40, NULL, NULL, "\0Field 1\0\0",
  68.              sizeof(COLUMNCFG), NULL, DTT_ZSTRING, 1, 40, NULL, NULL, "\0Field 2\0\0",
  69.              sizeof(COLUMNCFG), NULL, DTT_ZSTRING, 1, 40, NULL, NULL, "\0Field 3\0\0",
  70.              sizeof(COLUMNCFG), NULL, DTT_ZSTRING, 1, 40, NULL, NULL, "\0Field 4\0\0",
  71.              sizeof(COLUMNCFG), NULL, DTT_ZSTRING, 1, 40, NULL, NULL, "\0Field 5\0\0",
  72.              };
  73.  
  74. #define NUM_COLUMNS ((sizeof(ColumnDef)) / sizeof(COLUMNCFG))
  75.  
  76. void     TGENApp::InitMainWindow()
  77. {
  78.     MainWindow = new TGENMDIFrame(szAppName, "MainMenu");
  79. }
  80.  
  81. TGENMDIFrame::TGENMDIFrame(LPSTR ATitle, LPSTR MenuName)
  82.          : TMDIFrameTools(ATitle, MenuName)
  83. {
  84.     ChildMenuPos = 2;
  85.     InitStatusBar(StatusBarItems, NUM_STATUSBARITEMS);
  86.     InitToolBar(ToolBarItems, NUM_TOOLBARITEMS);
  87.     InitToolBox(ToolBoxItems, NUM_TOOLBOXITEMS, "ToolBox", NUM_TOOLBOXITEMS/4, NUM_TOOLBOXITEMS/3);
  88. }
  89.  
  90. void    TGENMDIFrame::CMCloseType(RTMessage)
  91. {
  92.     char    szText[30];
  93.  
  94.     szText[0] = NULL;
  95.     if( GetApplication()->ExecDialog(new TInputDialog(this, "Close MDI Children Entry Form", "Enter Window Type (Positive Integer):",
  96.             szText, sizeof(szText))) == IDOK ) {
  97.         CloseChildWindows(atoi(szText));
  98.     }
  99. }
  100.  
  101. void    TGENMDIFrame::CMEnter1(RTMessage)
  102. {
  103.     char    szText[30];
  104.  
  105.     szText[0] = NULL;
  106.     if( GetApplication()->ExecDialog(new TInputDialog(this, "First Status Bar Window", "Enter Text:",
  107.             szText, sizeof(szText))) == IDOK ) {
  108.         StatusBar->SetItemText(100, szText);
  109.     } 
  110. }
  111.  
  112. void    TGENMDIFrame::CMEnter2(RTMessage)
  113. {
  114.     char    szText[30];
  115.  
  116.     szText[0] = NULL;
  117.     if( GetApplication()->ExecDialog(new TInputDialog(this, "First Status Bar Window", "Enter Text:",
  118.             szText, sizeof(szText))) == IDOK ) {
  119.         StatusBar->SetProgressPos(101, atoi(szText));
  120.     } 
  121. }
  122.  
  123. void    TGENMDIFrame::CMNew(RTMessage)
  124. {
  125.     char    szText[30];
  126.  
  127.     szText[0] = NULL;
  128.     if( GetApplication()->ExecDialog(new TInputDialog(this, "New TLCKWindow Entry Form", "Enter Window Type (Positive Integer):",
  129.             szText, sizeof(szText))) == IDOK ) {
  130.         GetApplication()->MakeWindow(new TMyWindowTools(this, szText, (WORD) atoi(szText)));
  131.     }
  132. }
  133.  
  134. void    TGENMDIFrame::CMNew2(RTMessage)
  135. {
  136.     char    szText[30];
  137.  
  138.     szText[0] = NULL;
  139.     if( GetApplication()->ExecDialog(new TInputDialog(this, "New TMDIChildWindow Entry Form", "Enter Window Type (Positive Integer):",
  140.             szText, sizeof(szText))) == IDOK ) {
  141.         GetApplication()->MakeWindow(new TMyMDIChildWindow(this, szText, "Dialog1", (WORD) atoi(szText)));
  142.     }
  143. }
  144.  
  145. void    TGENMDIFrame::CMNew3(RTMessage)
  146. {
  147.     char    szText[30];
  148.  
  149.     szText[0] = NULL;
  150.     if( GetApplication()->ExecDialog(new TInputDialog(this, "New TWindowTable Entry Form", "Enter Window Type (Positive Integer):",
  151.             szText, sizeof(szText))) == IDOK ) {
  152.         GetApplication()->MakeWindow(new TMyWindowTable(this, szText, (WORD) atoi(szText),
  153.                     DTS_HGRID | DTS_VGRID | DTS_LARGEDATA | DTS_MULTIROW | DTS_OWNERDEF | DTS_RESIZE | DTS_ROWNUMBERS | DTS_EDIT));
  154.     }
  155. }
  156.  
  157. void    TGENMDIFrame::CMTypeCount(RTMessage)
  158. {
  159.     char    szText[30];
  160.         int    nWindows;
  161.  
  162.     szText[0] = NULL;
  163.     if( GetApplication()->ExecDialog(new TInputDialog(this, "How Many Windows of Type ? Entry Form", "Enter Window Type (Positive Integer):",
  164.             szText, sizeof(szText))) == IDOK ) {
  165.         nWindows = GetWindowTypeCount(atoi(szText));
  166.         MessageBox(HWindow, itoa(nWindows, szText, 10), "# of Child Windows", MB_OK);
  167.     }
  168. }
  169.  
  170. TMyWindowTable::TMyWindowTable(PTWindowsObject AParent, LPSTR ATitle, WORD AWindowType, WORD ATableStyle)
  171.     : TWindowTable(AParent, ATitle, AWindowType, ATableStyle)
  172. {
  173.     InitStatusBar(StatusBarItems, NUM_STATUSBARITEMS);
  174.     InitToolBar(ToolBarItems, NUM_TOOLBARITEMS);
  175.     InitToolBox(ToolBoxItems, NUM_TOOLBOXITEMS, "ToolBox", NUM_TOOLBOXITEMS/4, NUM_TOOLBOXITEMS/3);
  176. }
  177.  
  178. void    TMyWindowTable::SetupWindow()
  179. {
  180.     TWindowTable::SetupWindow();
  181.     SetColumns(NUM_COLUMNS, ColumnDef);
  182. }
  183.  
  184. TMyWindowTools::TMyWindowTools(PTWindowsObject AParent, LPSTR ATitle, WORD AWindowType)
  185.     : TWindowTools(AParent, ATitle, AWindowType)
  186. {
  187.     InitStatusBar(StatusBarItems, NUM_STATUSBARITEMS);
  188.     InitToolBar(ToolBarItems, NUM_TOOLBARITEMS);
  189.     InitToolBox(ToolBoxItems, NUM_TOOLBOXITEMS, "ToolBox", NUM_TOOLBOXITEMS/4, NUM_TOOLBOXITEMS/3);
  190.     SetMDIMenu("AlternateMenu1", 1);
  191. }
  192.  
  193. TMyMDIChildWindow::TMyMDIChildWindow(PTWindowsObject AParent, LPSTR ATitle, LPSTR ADialogName, WORD AWindowType)
  194.     : TMDIChildWindow(AParent, ATitle, ADialogName, AWindowType)
  195. {
  196.     InitStatusBar(StatusBarItems, NUM_STATUSBARITEMS);
  197.     InitToolBar(ToolBarItems, NUM_TOOLBARITEMS);
  198.     InitToolBox(ToolBoxItems, NUM_TOOLBOXITEMS, "ToolBox", NUM_TOOLBOXITEMS/4, NUM_TOOLBOXITEMS/3);
  199. }
  200.  
  201. int PASCAL WinMain(HANDLE hInstance, HANDLE hPrevInstance, LPSTR lpCmd, int nCmdShow)
  202. {
  203.     TGENApp GENApp (szAppName, hInstance, hPrevInstance, lpCmd, nCmdShow);
  204.     BWCCGetVersion();
  205.     GENApp.Run();
  206.     return (GENApp.Status);
  207. }
  208.  
  209.  
  210.