home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv8.zip / VACPP / IBMCPP / samples / IOC / TBAR2 / TBAR2.HPP < prev    next >
C/C++ Source or Header  |  1995-02-09  |  5KB  |  216 lines

  1. #ifndef _TBAR2_
  2. #define _TBAR2_
  3.  
  4. #include <iapp.hpp>
  5. #include <iframe.hpp>
  6. #include <ifont.hpp>
  7. #include <itbar.hpp>
  8. #include <itbarbut.hpp>
  9. #include <imle.hpp>
  10. #include <icmdhdr.hpp>
  11. #include <imenubar.hpp>
  12. #include <iflytext.hpp>
  13. #include <istattxt.hpp>
  14. #include <iflyhhdr.hpp>
  15. #include <icombobx.hpp>
  16. #include <iselhdr.hpp>
  17. #include <idmhndlr.hpp>
  18. #include <isubmenu.hpp>
  19. #include <ifontdlg.hpp>
  20. #include <inotebk.hpp>
  21. #include <ititle.hpp>
  22. #include <imcelcv.hpp>
  23. #include <iradiobt.hpp>
  24. #include <icheckbx.hpp>
  25. #include <igroupbx.hpp>
  26. #include <ifiledlg.hpp>
  27. #include <icolor.hpp>
  28.  
  29. class Editor;
  30.  
  31. //-------------------------------------------------------------------
  32. // EditorCommandHandler
  33. //-------------------------------------------------------------------
  34. class EditorCommandHandler : public ICommandHandler
  35. {
  36. public:
  37.   EditorCommandHandler ( Editor& editor ) : editorFrame(editor) {}
  38.  
  39. Boolean
  40.  command ( ICommandEvent& event );
  41.  
  42. private:
  43. Editor
  44.  &editorFrame;
  45. };
  46.  
  47. //-------------------------------------------------------------------
  48. // FontSelectHandler
  49. //
  50. // This class is used to handle selection of a new font from the font
  51. // combo box on the tool bar.
  52. //-------------------------------------------------------------------
  53. class FontSelectHandler : public ISelectHandler
  54. {
  55. public:
  56.   FontSelectHandler ( Editor& editor ) : editorFrame(editor) {}
  57.  
  58. protected:
  59. virtual Boolean
  60.   enter ( IControlEvent& event );
  61.  
  62. private:
  63. Editor
  64.  &editorFrame;
  65. };
  66.  
  67. //-------------------------------------------------------------------
  68. // EditorMLE
  69. //-------------------------------------------------------------------
  70. class EditorMLE : public IMultiLineEdit
  71. {
  72. public:
  73.   EditorMLE ( unsigned long id, Editor& editor )
  74.             : IMultiLineEdit ( id, (IWindow*) &editor, (IWindow*) &editor ),
  75.               editorFrame(editor) {}
  76.  
  77. virtual ITextControl
  78.   &setLayoutDistorted ( unsigned long layoutAttributesOn,
  79.                         unsigned long layoutAttributesOff );
  80. private:
  81. Editor
  82.  &editorFrame;
  83. };
  84.  
  85. //-------------------------------------------------------------------
  86. // Editor
  87. //
  88. // This class is the main window of the sample problem.  It is
  89. // responsible for creating and managing all of the windows that
  90. // are used.
  91. //-------------------------------------------------------------------
  92. class Editor : public IFrameWindow
  93. {
  94. public:
  95.   Editor();
  96.  
  97. EditorMLE
  98.  &editorWindow ( ) { return editWindow; }
  99.  
  100. IFont
  101.  &editorFont ( ) { return editFont; }
  102.  
  103. Editor
  104.  &updateFontToolBar ( );
  105.  
  106. IToolBar
  107.  &toolBar ( unsigned long id );
  108.  
  109. private:
  110. IToolBar
  111.   fileToolBar,
  112.   editToolBar,
  113.   fontToolBar;
  114. IFlyText
  115.   flyText;
  116. IStaticText
  117.   infoText;
  118. IFlyOverHelpHandler
  119.   flyHelpHandler;
  120. EditorMLE
  121.   editWindow;
  122. EditorCommandHandler
  123.   commandHandler;
  124. FontSelectHandler
  125.   fontSelectHandler;
  126. IToolBarButton
  127.   openButton,
  128.   saveButton,
  129.   cutButton,
  130.   copyButton,
  131.   pasteButton,
  132.   boldButton,
  133.   italicButton,
  134.   underscoreButton;
  135. IComboBox
  136.   fontCombo;
  137. IMenuBar
  138.   menu;
  139. IFont
  140.   editFont;
  141. IWindow
  142.   *fileSubmenu,
  143.   *editSubmenu;
  144. };
  145.  
  146. //-------------------------------------------------------------------
  147. // ToolBarNotebook
  148. //-------------------------------------------------------------------
  149. class ToolBarNotebook : public IFrameWindow
  150. {
  151. public:
  152.   ToolBarNotebook ( Editor&   editor );
  153. private:
  154. Editor
  155.   &editorFrame;
  156. INotebook
  157.   notebook;
  158. };
  159.  
  160. //-------------------------------------------------------------------
  161. // PageHandler
  162. //-------------------------------------------------------------------
  163. class PageHandler : public ISelectHandler
  164. {
  165. public:
  166.   PageHandler ( INotebook* notebook, Editor& editor ) 
  167.               : toolbarNotebook(notebook),
  168.                 editorFrame(editor) {}
  169.  
  170. protected:
  171. virtual Boolean
  172.   selected ( IControlEvent& event );
  173.  
  174. private:
  175. INotebook
  176.  *toolbarNotebook;
  177. Editor
  178.  &editorFrame;
  179. };
  180.  
  181. //-------------------------------------------------------------------
  182. // ToolBarPage
  183. //-------------------------------------------------------------------
  184. class ToolBarPage : public IMultiCellCanvas
  185. {
  186. public:
  187.   ToolBarPage ( unsigned long id, INotebook* nbk, Editor& editor );
  188. private:
  189. Editor
  190.  &editorFrame;
  191. IGroupBox
  192.   locationBox;
  193. IRadioButton
  194.   topButton,
  195.   leftButton,
  196.   bottomButton,
  197.   rightButton;
  198. ICheckBox
  199.   groupCheckBox;
  200. IRadioButton
  201.   floatingButton,
  202.   hiddenButton;
  203. IGroupBox
  204.   viewBox;
  205. IRadioButton
  206.   bitmapButton;
  207. IRadioButton
  208.   textButton;
  209. IRadioButton
  210.   bitmapAndTextButton;
  211. PageHandler
  212.   pageHandler;
  213. };
  214.  
  215. #endif /* _TBAR2_ */
  216.