home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / bc45 / expert.pak / CSDIDOCV.OWL < prev    next >
Text File  |  1997-07-23  |  22KB  |  654 lines

  1. ##{cheader.snp}
  2. #include <owl\owlpch.h>
  3. #pragma hdrstop
  4.  
  5. ##@OPT_APPL_DRAGDROP 2
  6. #include <dir.h>
  7.  
  8. ##QUERY_FILE_H [[FileName]]
  9. #include "[[FileName]]"
  10. ##--BEGIN-- @QUERY_APPL_MODEL != VALUE_DIALOG
  11. ##OPT_DV_RESET
  12. ##OPT_DV_NEXT
  13. ##QUERY_DV_TVIEW [[WindowClient]]
  14. ##<<*WindowClient QUERY_FILE_H [[FileName]]
  15. #include "[[FileName]]"                        // Definition of client class.       
  16. ##--END-- @QUERY_APPL_MODEL != VALUE_DIALOG
  17. ##--BEGIN-- @QUERY_APPL_MODEL == VALUE_DIALOG
  18. ##QUERY_WIND_CLIENT [[Client]]
  19. ##<<*Client QUERY_FILE_H [[Filename]]
  20. #include "[[Filename]]"                        // Definition of client class.       
  21. ##--END-- @QUERY_APPL_MODEL == VALUE_DIALOG
  22. ##--BEGIN-- ((@QUERY_APPL_MODEL != VALUE_DIALOG) || ((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU))
  23. ##      :<<TDialog QUERY_FILE_H [[Filename]]
  24. #include "[[Filename]]"                        // Definition of about dialog.       
  25. ##--END-- ((@QUERY_APPL_MODEL != VALUE_DIALOG) || ((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU))
  26.  
  27.  
  28. ##--BEGIN-- @OPT_APPL_HELP
  29. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  30. //
  31. // Generated help file.
  32. //
  33. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  34. ##@QUERY_APPL_HELP [[HelpFile]]
  35. const char HelpFileName[] = "[[HelpFile]].hlp";
  36.  
  37.  
  38. ##--END-- @OPT_APPL_HELP
  39. ##{cdragdrp.owl}
  40. //{{[[TApplication]] Implementation}}
  41.  
  42.  
  43. ##--BEGIN-- @QUERY_APPL_OLE_AUTO 
  44. //
  45. // OLE's ITypeInfo browses this symbol table for a list of all data,
  46. // properties, and methods exposed by this automated class.
  47. //
  48. ##@QUERY_APPL_OLE != VALUE_NOOLE
  49. DEFINE_AUTOAGGREGATE([[TApplication]], OcApp->Aggregate)
  50. ##@QUERY_APPL_OLE == VALUE_NOOLE
  51. DEFINE_AUTOCLASS([[TApplication]])
  52.     EXPOSE_APPLICATION([[TApplication]], "Application", "Application object", 0)
  53.     EXPOSE_QUIT("Quit", "Quit application", 0)
  54. //{{[[TApplication]]SYM_TBL_BEGIN}}
  55. //{{[[TApplication]]SYM_TBL_END}}
  56. ##@QUERY_APPL_OLE != VALUE_NOOLE
  57. END_AUTOAGGREGATE([[TApplication]], tfAppObject | tfCanCreate, "[[TApplication]]", 0, 0);
  58. ##@QUERY_APPL_OLE == VALUE_NOOLE
  59. END_AUTOCLASS([[TApplication]], tfAppObject | tfCanCreate, "[[TApplication]]", 0, 0);
  60.  
  61.  
  62. ##--END-- @QUERY_APPL_OLE_AUTO 
  63. ##((@QUERY_APPL_OLE != VALUE_NOOLE) || @QUERY_APPL_OLE_AUTO) 2
  64. DEFINE_APP_DICTIONARY(AppDictionary);
  65.  
  66. ##((@QUERY_APPL_OLE == VALUE_NOOLE) && @QUERY_APPL_OLE_AUTO)
  67. static TPointer<TRegistrar> Registrar;
  68. ##((@QUERY_APPL_OLE != VALUE_NOOLE)
  69. static TPointer<TOcRegistrar> Registrar;
  70.  
  71. ##--BEGIN-- ((@QUERY_APPL_OLE != VALUE_NOOLE) || @QUERY_APPL_OLE_AUTO)
  72. REGISTRATION_FORMAT_BUFFER(100)
  73.  
  74. BEGIN_REGISTRATION(ApplicationReg)
  75. ##@QUERY_OLE_GUID [[GUID]]
  76.     REGDATA(clsid, "{[[GUID]]}")
  77. ##--BEGIN-- @QUERY_PRJ_NAME [[AppTitle]]
  78. ##((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH) || @QUERY_APPL_OLE_AUTO) 2
  79.     REGDATA(appname, "[[AppTitle]] Server")
  80.     REGDATA(description, "[[AppTitle]] Server Application")
  81. ##((@QUERY_APPL_OLE == VALUE_CONTAINER) && !@QUERY_APPL_OLE_AUTO) 2
  82.     REGDATA(appname, "[[AppTitle]] Container")
  83.     REGDATA(description, "[[AppTitle]] Container Application")
  84. ##@QUERY_APPL_OLE_AUTO
  85.     REGDATA(progid, "[[AppTitle]].Application.1")
  86. ##--END-- @QUERY_PRJ_NAME [[AppTitle]]
  87. ##@QUERY_APPL_OLE_AUTO
  88.     REGDATA(cmdline, "/Automation")
  89. ##!@QUERY_APPL_OLE_AUTO
  90.     REGDATA(cmdline, "")
  91. ##--BEGIN-- ((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH))
  92.     REGDATA(usage, ocrMultipleUse)
  93. ##--BEGIN-- @QUERY_APPL_OLE_AUTO
  94. //    REGDATA(debugger, "TDW")
  95. ##--END-- @QUERY_APPL_OLE_AUTO
  96. ##--END-- ((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH))
  97. END_REGISTRATION
  98.  
  99. ##--END-- @QUERY_APPL_OLE != VALUE_NOOLE
  100. ##--BEGIN-- @QUERY_APPL_MODEL == VALUE_DIALOG
  101. ##:     @QUERY_APPL_DLGCLIENT [[DLogClient]]
  102. DEFINE_DOC_TEMPLATE_CLASS(TFileDocument, [[DLogClient]], DlgDTPL);
  103. DlgDTPL __dlogClnt("All Files (*.*)", "*.*", 0, "TXT", dtAutoDelete | dtUpdateDir);
  104.  
  105.  
  106. ##--END-- @QUERY_APPL_MODEL == VALUE_DIALOG
  107. ##@QUERY_APPL_OLE != VALUE_NOOLE
  108. ##: {AddOleDV.SNP}
  109. ##*
  110. ##@QUERY_APPL_OLE == VALUE_NOOLE
  111. ##: {AddDocV.SNP}
  112. ##*
  113.  
  114.  
  115. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  116. //
  117. // Build a response table for all messages/commands handled
  118. // by the application.
  119. //
  120. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  121. DEFINE_RESPONSE_TABLE1([[TApplication]], TApplication)
  122. //{{[[TApplication]]RSP_TBL_BEGIN}}
  123.     EV_OWLVIEW(dnCreate, EvNewView),
  124.     EV_OWLVIEW(dnClose,  EvCloseView),
  125. ##:DBResponse(\\"[[TApplication]]", "CM_HELPABOUT", "CmHelpAbout", "", "COMMAND")
  126.     EV_COMMAND(CM_HELPABOUT, CmHelpAbout),
  127. ##@OPT_APPL_HELP 2
  128. ##:DBResponse(\\"[[TApplication]]", "CM_HELPCONTENTS", "CmHelpContents", "", "COMMAND")
  129. ##:DBResponse(\\"[[TApplication]]", "CM_HELPUSING", "CmHelpUsing", "", "COMMAND")
  130.     EV_COMMAND(CM_HELPCONTENTS, CmHelpContents),
  131.     EV_COMMAND(CM_HELPUSING, CmHelpUsing),
  132. ##@OPT_APPL_PRINTING 6
  133. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINT", "CmFilePrint", "", "COMMAND")
  134. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINTERSETUP", "CmFilePrintSetup", "", "COMMAND")
  135. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINTPREVIEW", "CmFilePrintPreview", "", "COMMAND")
  136. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINT", "CmPrintEnable", "", "ENABLER")
  137. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINTERSETUP", "CmPrintEnable", "", "ENABLER")
  138. ##:DBResponse(\\"[[TApplication]]", "CM_FILEPRINTPREVIEW", "CmPrintEnable", "", "ENABLER")
  139.     EV_COMMAND(CM_FILEPRINT, CmFilePrint),
  140.     EV_COMMAND(CM_FILEPRINTERSETUP, CmFilePrintSetup),
  141.     EV_COMMAND(CM_FILEPRINTPREVIEW, CmFilePrintPreview),
  142.     EV_COMMAND_ENABLE(CM_FILEPRINT, CmPrintEnable),
  143.     EV_COMMAND_ENABLE(CM_FILEPRINTERSETUP, CmPrintEnable),
  144.     EV_COMMAND_ENABLE(CM_FILEPRINTPREVIEW, CmPrintEnable),
  145. ##@OPT_APPL_DRAGDROP
  146. ##:DBResponse(\\"[[TApplication]]", "", "", "WM_DROPFILES", "")
  147.     EV_WM_DROPFILES,
  148. ##@OPT_APPL_PRINTING
  149. ##:DBResponse(\\"[[TApplication]]", "", "", "WM_WININICHANGE", "")
  150.     EV_WM_WININICHANGE,
  151. //{{[[TApplication]]RSP_TBL_END}}
  152. END_RESPONSE_TABLE;
  153.  
  154.  
  155. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  156. //////////////////////////////////////////////////////////
  157. // [[TApplication]]
  158. // =====
  159. //
  160. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  161. ##((@QUERY_APPL_OLE == VALUE_NOOLE) && (@QUERY_APPL_OLE_AUTO))
  162. [[TApplication]]::[[TApplication]] () : TApplication(::ApplicationReg["appname"], ::Module, &::AppDictionary)
  163. ##@QUERY_APPL_OLE != VALUE_NOOLE
  164. [[TApplication]]::[[TApplication]] () : TApplication(::ApplicationReg["appname"], ::Module, &::AppDictionary)
  165. ##((@QUERY_APPL_OLE == VALUE_NOOLE) && (!@QUERY_APPL_OLE_AUTO))
  166. ##QUERY_WIND_TITLE [[Title]]
  167. [[TApplication]]::[[TApplication]] () : TApplication("[[Title]]")
  168. {
  169. ##@OPT_APPL_HELP 4
  170.     HelpState = false;
  171.     ContextHelp = false;
  172.     HelpCursor = 0;
  173.  
  174. ##@OPT_APPL_PRINTING 3
  175.     Printer = 0;
  176.     Printing = 0;
  177.  
  178.     SetDocManager(new TDocManager(dmSDI, this));
  179.  
  180.     // INSERT>> Your constructor code here.
  181. }
  182.  
  183.  
  184. [[TApplication]]::~[[TApplication]] ()
  185. {
  186. ##@OPT_APPL_PRINTING 3
  187.     if (Printer)
  188.         delete Printer;
  189.  
  190.     // INSERT>> Your destructor code here.
  191. }
  192.  
  193.  
  194. ##--BEGIN-- @OPT_APPL_HELP
  195. bool [[TApplication]]::CanClose ()
  196. {
  197.     bool result = TApplication::CanClose();
  198.  
  199. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  200.     //
  201.     // Close the help engine if we used it.
  202.     //
  203. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  204.     if (result && HelpState)
  205.         GetMainWindow()->WinHelp(HelpFileName, HELP_QUIT, 0L);
  206.  
  207.     return result;
  208. }
  209.  
  210.  
  211. ##--END-- @OPT_APPL_HELP
  212.  
  213.  
  214. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU) || (@QUERY_APPL_MODEL != VALUE_DIALOG))
  215. ##--BEGIN-- @OPT_APPL_TOOLBAR
  216. void [[TApplication]]::CreateGadgets (TControlBar *cb, bool server)
  217. {
  218.     if (!server) {
  219.         cb->Insert(*new TButtonGadget(CM_FILENEW, CM_FILENEW));
  220.         cb->Insert(*new TButtonGadget(CM_FILEOPEN, CM_FILEOPEN));
  221.         cb->Insert(*new TButtonGadget(CM_FILESAVE, CM_FILESAVE));
  222.         cb->Insert(*new TSeparatorGadget(6));
  223.     }
  224.  
  225.     cb->Insert(*new TButtonGadget(CM_EDITCUT, CM_EDITCUT));
  226.     cb->Insert(*new TButtonGadget(CM_EDITCOPY, CM_EDITCOPY));
  227.     cb->Insert(*new TButtonGadget(CM_EDITPASTE, CM_EDITPASTE));
  228.     cb->Insert(*new TSeparatorGadget(6));
  229.     cb->Insert(*new TButtonGadget(CM_EDITUNDO, CM_EDITUNDO));
  230.     cb->Insert(*new TSeparatorGadget(6));
  231.     cb->Insert(*new TButtonGadget(CM_EDITFIND, CM_EDITFIND));
  232.     cb->Insert(*new TButtonGadget(CM_EDITFINDNEXT, CM_EDITFINDNEXT));
  233. ##--BEGIN-- @OPT_APPL_PRINTING
  234.  
  235.     if (!server) {
  236.         cb->Insert(*new TSeparatorGadget(6));
  237.         cb->Insert(*new TButtonGadget(CM_FILEPRINT, CM_FILEPRINT));
  238.         cb->Insert(*new TButtonGadget(CM_FILEPRINTPREVIEW, CM_FILEPRINTPREVIEW));
  239.     }
  240. ##--END-- @OPT_APPL_PRINTING
  241. ##@OPT_APPL_HELP 3
  242.  
  243.     cb->Insert(*new TSeparatorGadget(6));
  244.     cb->Insert(*new TButtonGadget(CM_HELPCONTENTS, CM_HELPCONTENTS));
  245.  
  246. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  247.     // Add fly-over help hints.
  248.     cb->SetHintMode(TGadgetWindow::EnterHints);
  249. }
  250.  
  251.  
  252. ##@QUERY_APPL_OLE == VALUE_NOOLE
  253. void [[TApplication]]::SetupSpeedBar (TDecoratedFrame *frame)
  254. ##@QUERY_APPL_OLE != VALUE_NOOLE
  255. void [[TApplication]]::SetupSpeedBar (TOleFrame *frame)
  256. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  257.     //
  258.     // Create default toolbar New and associate toolbar buttons with commands.
  259.     //   
  260. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  261.     TControlBar* cb = new TControlBar(frame);
  262.     CreateGadgets(cb);
  263.  
  264. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  265.     // Setup the toolbar ID used by OLE 2 for toolbar negotiation.
  266.     cb->Attr.Id = IDW_TOOLBAR;
  267.  
  268.     frame->Insert(*cb, TDecoratedFrame::Top);
  269. }
  270.  
  271.  
  272. ##--END-- @OPT_APPL_TOOLBAR
  273. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  274. //////////////////////////////////////////////////////////
  275. // [[TApplication]]
  276. // =====
  277. // Application intialization.
  278. //
  279. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  280. void [[TApplication]]::InitMainWindow ()
  281. {
  282.     if (nCmdShow != SW_HIDE)
  283. ##@QUERY_APPL_STARTUP == VALUE_NORMAL
  284.         nCmdShow = (nCmdShow != SW_SHOWMINNOACTIVE) ? SW_SHOWNORMAL : nCmdShow;
  285. ##@QUERY_APPL_STARTUP == VALUE_MIN
  286.         nCmdShow = (nCmdShow != SW_SHOWMINNOACTIVE) ? SW_SHOWMINIMIZED : nCmdShow;
  287. ##@QUERY_APPL_STARTUP == VALUE_MAX
  288.         nCmdShow = (nCmdShow != SW_SHOWMINNOACTIVE) ? SW_SHOWMAXIMIZED : nCmdShow;
  289.  
  290. ##@OPT_APPL_STATUSBAR 
  291.     SDIDecFrame *frame = new SDIDecFrame(0, GetName(), 0, true, this);
  292. ##!@OPT_APPL_STATUSBAR
  293.     SDIDecFrame *frame = new SDIDecFrame(0, GetName(), 0, false, this);
  294.  
  295. ##QUERY_WIND_STYLE [[StyleAttributes]]
  296. ##StyleAttributes != "" 3
  297.     // Override the default window style for the main window.
  298. [[StyleAttributes]]
  299.  
  300. ##QUERY_WIND_BACKGRND [[BackgroundColor]]
  301. ##BackgroundColor != "" 3
  302.     // Change the window's background color
  303.     frame->SetBkgndColor([[BackgroundColor]]);
  304.  
  305. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  306.     //
  307.     // Assign ICON w/ this application.
  308.     //
  309. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  310.     frame->SetIcon(this, IDI_SDIAPPLICATION);
  311.  
  312. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU)  || (@QUERY_APPL_MODEL != VALUE_DIALOG))
  313. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  314.     //
  315.     // Menu associated with window and accelerator table associated with table.
  316.     //
  317. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  318. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU)  || (@QUERY_APPL_MODEL != VALUE_DIALOG)) 2
  319.     frame->AssignMenu(SDI_MENU);
  320.     
  321. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU)  || (@QUERY_APPL_MODEL != VALUE_DIALOG))
  322. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  323.     //
  324.     // Associate with the accelerator table.
  325.     //
  326. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  327. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU)  || (@QUERY_APPL_MODEL != VALUE_DIALOG)) 2
  328.     frame->Attr.AccelTable = SDI_MENU;
  329.  
  330. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU) || (@QUERY_APPL_MODEL != VALUE_DIALOG))
  331. ##@OPT_APPL_TOOLBAR
  332.     SetupSpeedBar(frame);
  333. ##@OPT_APPL_STATUSBAR 7
  334.  
  335.     TStatusBar *sb = new TStatusBar(frame, TGadget::Recessed,
  336.                                     TStatusBar::CapsLock        |
  337.                                     TStatusBar::NumLock         |
  338.                                     TStatusBar::ScrollLock      |
  339.                                     TStatusBar::Overtype);
  340.     frame->Insert(*sb, TDecoratedFrame::Bottom);
  341.   
  342.     SetMainWindow(frame);
  343.  
  344. ##(((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU)  || (@QUERY_APPL_MODEL != VALUE_DIALOG)) 2
  345.     frame->SetMenuDescr(TMenuDescr(SDI_MENU));
  346.  
  347. ##--BEGIN-- @QUERY_APPL_CONTROL==VALUE_3D
  348. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  349.     //
  350.     // Windows 3-D controls.
  351.     //
  352. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  353.     EnableCtl3d(true);
  354. ##--END-- @QUERY_APPL_CONTROL==VALUE_3D
  355. ##--BEGIN-- @QUERY_APPL_CONTROL==VALUE_BWCC
  356. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  357.     //
  358.     // Borland Windows custom controls.
  359.     //
  360. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  361.     EnableBWCC();
  362. ##--END-- @QUERY_APPL_CONTROL==VALUE_BWCC
  363. }
  364.  
  365.  
  366. ##--BEGIN-- @QUERY_APPL_MODEL == VALUE_DIALOG
  367. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  368. //////////////////////////////////////////////////////////
  369. // [[TApplication]]
  370. // =====
  371. // Application instance initialization.
  372. //
  373. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  374. void [[TApplication]]::InitInstance ()
  375. {
  376.     TApplication::InitInstance();
  377.     GetDocManager()->CreateAnyDoc(0, dtNewDoc);
  378. }
  379.  
  380.  
  381. ##--END-- @QUERY_APPL_MODEL == VALUE_DIALOG
  382. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  383. //////////////////////////////////////////////////////////
  384. // [[TApplication]]
  385. // =====
  386. // Response Table handlers:
  387. //
  388. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  389. void [[TApplication]]::EvNewView (TView& view)
  390. {
  391.     GetMainWindow()->SetClientWindow(view.GetWindow());
  392.     if (!view.IsOK())
  393.         GetMainWindow()->SetClientWindow(0);
  394.     else if (view.GetViewMenu())
  395.         GetMainWindow()->MergeMenu(*view.GetViewMenu());
  396. ##--BEGIN-- ((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH))
  397.  
  398.     TOleView* ov = TYPESAFE_DOWNCAST(&view, TOleView);
  399.     if (!ov || !ov->GetOcRemView())
  400.         OcApp->SetOption(amEmbedding, false);
  401. ##--END-- ((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH))
  402. }
  403.  
  404.  
  405. void [[TApplication]]::EvCloseView (TView&)
  406. {
  407.     GetMainWindow()->SetClientWindow(0);
  408. ##QUERY_WIND_TITLE [[Title]]
  409.     GetMainWindow()->SetCaption("[[Title]]");
  410. }
  411.  
  412.  
  413. //{{SDIDecFrame Implementation}}
  414.  
  415.  
  416. ##@QUERY_APPL_OLE != VALUE_NOOLE 2
  417. SDIDecFrame::SDIDecFrame (TWindow *, const char far *title, TWindow *clientWnd, bool trackMenuSelection, TModule *module)
  418.     : TOleFrame(title, clientWnd, trackMenuSelection, module)
  419. ##@QUERY_APPL_OLE == VALUE_NOOLE 2
  420. SDIDecFrame::SDIDecFrame (TWindow *parent, const char far *title, TWindow *clientWnd, bool trackMenuSelection, TModule *module)
  421.     : TDecoratedFrame(parent, title, clientWnd, trackMenuSelection, module)
  422. {
  423.     // INSERT>> Your constructor code here.
  424.  
  425. }
  426.  
  427.  
  428. SDIDecFrame::~SDIDecFrame ()
  429. {
  430.     // INSERT>> Your destructor code here.
  431.  
  432. }
  433. ##--BEGIN-- @OPT_APPL_PRINTING
  434.  
  435.  
  436. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  437. //////////////////////////////////////////////////////////
  438. // [[TApplication]]
  439. // ==========
  440. // Menu File Print command
  441. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  442. void [[TApplication]]::CmFilePrint ()
  443. {
  444. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  445.     //
  446.     // Create Printer object if not already created.
  447.     // 
  448. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  449.     if (!Printer)
  450.         Printer = new TPrinter(this);
  451.  
  452. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  453.     //
  454.     // Create Printout window and set characteristics.
  455.     //
  456. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  457.     APXPrintOut printout(Printer, "Title", GetMainWindow()->GetClientWindow());
  458.     printout.SetBanding(true);
  459.  
  460.     Printing++;
  461.  
  462. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  463.     //
  464.     // Bring up the Print dialog and print the document.
  465.     //
  466. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  467.     Printer->Print(GetWindowPtr(GetActiveWindow()), printout, true);
  468.  
  469.     Printing--;
  470. }
  471.  
  472.  
  473. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  474. //////////////////////////////////////////////////////////
  475. // [[TApplication]]
  476. // ==========
  477. // Menu File Print Setup command
  478. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  479. void [[TApplication]]::CmFilePrintSetup ()
  480. {
  481.     if (!Printer)
  482.         Printer = new TPrinter(this);
  483.  
  484. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  485.     //
  486.     // Bring up the Print Setup dialog.
  487.     //
  488. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  489.     Printer->Setup(GetMainWindow());
  490. }
  491.  
  492.  
  493. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  494. //////////////////////////////////////////////////////////
  495. // [[TApplication]]
  496. // ==========
  497. // Menu File Print Preview command
  498. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  499. void [[TApplication]]::CmFilePrintPreview ()
  500. {
  501.     SDIDecFrame *sdiFrame = TYPESAFE_DOWNCAST(GetMainWindow(), SDIDecFrame); 
  502.     if (sdiFrame) {
  503.         if (!Printer)
  504.             Printer = new TPrinter(this);
  505.  
  506.         Printing++;
  507.  
  508.         PreviewWindow *prevW = new PreviewWindow(sdiFrame, Printer, sdiFrame->GetClientWindow(), "Print Preview", new TLayoutWindow(0));
  509.         prevW->Create();
  510.  
  511.         BeginModal(GetMainWindow());
  512.  
  513.         Printing--;
  514.  
  515. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  516.         // Now that printing is off we can invalidate because the edit window to repaint.
  517.         GetMainWindow()->SetRedraw(true);
  518.         GetMainWindow()->Invalidate();
  519.  
  520. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE 2
  521.         // We must destroy the preview window explicitly.  Otherwise, the window will not be destroyed until
  522.         // it's parent the MainWindow is destroyed.
  523.         prevW->Destroy();
  524.         delete prevW;
  525.     }
  526. }
  527.  
  528.  
  529. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  530. //////////////////////////////////////////////////////////
  531. // [[TApplication]]
  532. // ==========
  533. // Menu enabler used by Print, Print Setup and Print Preview.
  534. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  535. void [[TApplication]]::CmPrintEnable (TCommandEnabler &tce)
  536. {
  537. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  538.     // If we have a Printer already created just test if all is okay.
  539.     // Otherwise create a Printer object and make sure the printer
  540.     // really exists and then delete the Printer object.
  541. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  542.     if (!Printer) {
  543.         Printer = new TPrinter(this);
  544.         
  545.         tce.Enable(Printer->GetSetup().Error == 0);
  546.     } else
  547.         tce.Enable(Printer->GetSetup().Error == 0);
  548. }
  549. ##--END-- @OPT_APPL_PRINTING
  550. ##--END-- (@QUERY_APPL_MODEL == VALUE_SDI)
  551. ##--BEGIN-- @OPT_APPL_HELP
  552.  
  553.  
  554. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  555. //////////////////////////////////////////////////////////
  556. // [[TApplication]]
  557. // =====
  558. // Menu Help Contents command
  559. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  560. void [[TApplication]]::CmHelpContents ()
  561. {
  562. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  563.     //
  564.     // Show the help table of contents.
  565.     //
  566. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  567.     HelpState = GetMainWindow()->WinHelp(HelpFileName, HELP_CONTENTS, 0L);
  568. }
  569.  
  570.  
  571. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  572. //////////////////////////////////////////////////////////
  573. // [[TApplication]]
  574. // =====
  575. // Menu Help Using Help command
  576. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  577. void [[TApplication]]::CmHelpUsing ()
  578. {
  579. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  580.     //
  581.     // Display the contents of the Windows help file.
  582.     //
  583. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  584.     HelpState = GetMainWindow()->WinHelp(HelpFileName, HELP_HELPONHELP, 0L);
  585. }
  586. ##--END-- @OPT_APPL_HELP
  587.  
  588.  
  589. ##--BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  590. //////////////////////////////////////////////////////////
  591. // [[TApplication]]
  592. // ===========
  593. ##--END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  594. ##@QUERY_TARGET_NAME [[Target]]
  595. // Menu Help About [[Target]] command
  596. void [[TApplication]]::CmHelpAbout ()
  597. {
  598. ##"" [[TDialog]]
  599. ##--BEGIN-- ((@QUERY_APPL_MODEL != VALUE_DIALOG) || ((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU))
  600. ##      --BEGIN-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  601.     //
  602.     // Show the modal dialog.
  603.     //
  604. ##      --END-- @QUERY_APPL_COMMENT == VALUE_VERBOSE
  605. ##      :<<TDialog QUERY_CLASS_NAME TDialog
  606. ##((@QUERY_APPL_OLE == VALUE_SERVER) || (@QUERY_APPL_OLE == VALUE_OLEBOTH))
  607.     [[TDialog]](&TWindow(::GetFocus(), this)).Execute();
  608. ##((@QUERY_APPL_OLE != VALUE_SERVER) && (@QUERY_APPL_OLE != VALUE_OLEBOTH))
  609.     [[TDialog]](GetMainWindow()).Execute();
  610. ##--END-- ((@QUERY_APPL_MODEL != VALUE_DIALOG) || ((@QUERY_APPL_MODEL == VALUE_DIALOG) && @QUERY_APPL_DLGCLIENT_MENU))
  611. }
  612. ##--BEGIN-- @OPT_APPL_DRAGDROP
  613.  
  614.  
  615. void [[TApplication]]::InitInstance ()
  616. {
  617.     TApplication::InitInstance();
  618.  
  619. ##:@QUERY_APPL_COMMENT == VALUE_VERBOSE
  620.     // Accept files via drag/drop in the frame window.
  621.     GetMainWindow()->DragAcceptFiles(true);
  622. }
  623.  
  624.  
  625. void [[TApplication]]::EvDropFiles (TDropInfo drop)
  626. {
  627. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  628.     // Tell DragQueryFile the file interested in (0) and the length of your buffer.
  629.     int     fileLength = drop.DragQueryFileNameLen(0) + 1;
  630.     char    *fileName = new char[fileLength];
  631.  
  632.     drop.DragQueryFile(0, fileName, fileLength);
  633.  
  634. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  635.     // Open the file that was dropped.
  636.     AddFile(fileName);
  637. ##@QUERY_APPL_COMMENT == VALUE_VERBOSE
  638.     // Release the memory allocated for this handle with DragFinish.
  639.     drop.DragFinish();
  640. }
  641.  
  642.  
  643. void [[TApplication]]::AddFile (const char *FileName)
  644. {
  645.     TDocTemplate* tpl = GetDocManager()->MatchTemplate(FileName);
  646.     if (tpl)
  647.       tpl->CreateDoc(FileName);
  648. }
  649. ##--END-- @OPT_APPL_DRAGDROP
  650.  
  651.  
  652. ##{main.owl}
  653.