home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / C / BC_502 / CTXTHELP.PAK / CTXTHELP.CPP next >
Encoding:
C/C++ Source or Header  |  1997-05-06  |  3.6 KB  |  184 lines

  1. //----------------------------------------------------------------------------
  2. // ObjectWindows
  3. // Copyright (c) 1995, 1995 by Borland International, All Rights Reserved
  4. //----------------------------------------------------------------------------
  5. #include <owl/pch.h>
  6. #if !defined(OWL_APPLICAT_H)
  7. # include <owl/applicat.h>
  8. #endif
  9. #if !defined(OWL_FRAMEWIN_H)
  10. # include <owl/framewin.h>
  11. #endif
  12. #if !defined(OWL_HLPMANAG_H)
  13. # include <owl/hlpmanag.h>
  14. #endif
  15. #if !defined(OWL_DIALOG_H)
  16. # include <owl/dialog.h>
  17. #endif
  18. #include "CtxtHelp.rh"
  19. #include "HelpIds.hh"
  20.  
  21. //
  22. // class CtxtHelpApplication
  23. // ~~~~~ ~~~~~~~~~~~~~~~~~~
  24. class TCtxtHelpApp : public TApplication, public THelpFileManager {
  25.   public:
  26.     TCtxtHelpApp(const char* name)
  27.     :
  28.       TApplication(name),
  29.       THelpFileManager("testhelp.hlp") { }
  30.  
  31.    ~TCtxtHelpApp() { }
  32.  
  33.     void InitMainWindow();
  34.  
  35.   DECLARE_RESPONSE_TABLE(TCtxtHelpApp);
  36. };
  37.  
  38. //
  39. // class TCtxtDialog
  40. // ~~~~~ ~~~~~~~~~~~
  41. class TCtxtDialog : public TDialog {
  42.   public:
  43.     TCtxtDialog(TWindow* parent, TResId id, TModule* module = 0)
  44.     :
  45.       TDialog(parent, id, module) { }
  46.  
  47.    ~TCtxtDialog() { }
  48.  
  49.     void  SetupWindow();
  50.     void  CleanupWindow();
  51.  
  52.   DECLARE_HELPCONTEXT(TCtxtDialog);
  53. };
  54.  
  55. //
  56. //
  57. //
  58. void
  59. TCtxtDialog::SetupWindow()
  60. {
  61.   TDialog::SetupWindow();
  62.   SETUP_HELPCONTEXT(TCtxtHelpApp, TCtxtDialog);
  63. }
  64.  
  65. //
  66. //
  67. //
  68. void
  69. TCtxtDialog::CleanupWindow()
  70. {
  71.   CLEANUP_HELPCONTEXT(TCtxtHelpApp, TCtxtDialog);
  72.   TDialog::CleanupWindow();
  73. }
  74.  
  75.  
  76. DEFINE_HELPCONTEXT(TCtxtDialog)
  77.   HCENTRY_CONTROL(IDH_IDC_NAME,   IDC_NAME),
  78.   HCENTRY_CONTROL(IDH_IDC_PHONE,  IDC_PHONE),
  79.   HCENTRY_CONTROL(IDH_IDC_NUMBER, IDC_NUMBER),
  80.   HCENTRY_CONTROL(IDH_IDOK,       IDOK),
  81.   HCENTRY_CONTROL(IDH_IDCANCEL,   IDCANCEL),
  82.   HCENTRY_CONTROL(IDH_IDHELP,     IDHELP),
  83. END_HELPCONTEXT;
  84.  
  85.  
  86. //
  87. // class CtxtHelpWindow
  88. // ~~~~~ ~~~~~~~~~~~~~
  89. class TCtxtHelpWindow : public TWindow {
  90.   public:
  91.     TCtxtHelpWindow() : TWindow(0, 0, 0) {}
  92.    ~TCtxtHelpWindow() {}
  93.  
  94.     void  SetupWindow();
  95.     void  CleanupWindow();
  96.     void  CmDummy();
  97.     void  CmDialog();
  98.  
  99.   DECLARE_RESPONSE_TABLE(TCtxtHelpWindow);
  100.   DECLARE_HELPCONTEXT(TCtxtHelpWindow);
  101. };
  102.  
  103.  
  104. //
  105. // SetupWindow
  106. //
  107. void
  108. TCtxtHelpWindow::SetupWindow()
  109. {
  110.   TWindow::SetupWindow();
  111.   SETUP_HELPCONTEXT(TCtxtHelpApp, TCtxtHelpWindow);
  112. }
  113.  
  114.  
  115. //
  116. // CleanupWindow
  117. //
  118. void
  119. TCtxtHelpWindow::CleanupWindow()
  120. {
  121.   CLEANUP_HELPCONTEXT(TCtxtHelpApp, TCtxtHelpWindow);
  122.   TWindow::CleanupWindow();
  123. }
  124.  
  125. //
  126. //
  127. //
  128. void
  129. TCtxtHelpWindow::CmDummy()
  130. {
  131.   MessageBox("Not currently implemented");
  132. }
  133.  
  134. //
  135. //
  136. //
  137. void
  138. TCtxtHelpWindow::CmDialog()
  139. {
  140.   TCtxtDialog dialog(this, IDD_DIALOG);
  141.   dialog.Execute();
  142. }
  143.  
  144. //
  145. // Response table for CtxtHelpWindow
  146. //
  147. DEFINE_RESPONSE_TABLE1(TCtxtHelpWindow, TWindow)
  148.   EV_COMMAND(CM_POPUPAITEM1, CmDummy),
  149.   EV_COMMAND(CM_POPUPBITEM2, CmDummy),
  150.   EV_COMMAND(CM_DIALOG, CmDialog),
  151. END_RESPONSE_TABLE;
  152.  
  153. DEFINE_HELPCONTEXT(TCtxtHelpWindow)
  154.   HCENTRY_MENU(IDH_CM_POPUPAITEM1, CM_POPUPAITEM1),
  155.   HCENTRY_MENU(IDH_CM_POPUPBITEM2, CM_POPUPBITEM2),
  156.   HCENTRY_MENU(IDH_CM_DIALOG,      CM_DIALOG),
  157. END_HELPCONTEXT;
  158.  
  159. //
  160. // InitMainWindow
  161. //
  162. void
  163. TCtxtHelpApp::InitMainWindow()
  164. {
  165.   TFrameWindow* frame = new TFrameWindow(0, "Context-sensitive help application",
  166.     new TCtxtHelpWindow);
  167.   frame->AssignMenu(IDM_MAINMENU);
  168.   SetMainWindow(frame);
  169. }
  170.  
  171. DEFINE_RESPONSE_TABLE2(TCtxtHelpApp, THelpFileManager, TApplication)
  172. END_RESPONSE_TABLE;
  173.  
  174. //
  175. // OwlMain
  176. //
  177. int
  178. OwlMain(int /*argc*/, char* /*argv*/ [])
  179. {
  180.   TCtxtHelpApp app("CTXTHELP");
  181.   return app.Run();
  182. }
  183.  
  184.