home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / toolba.zip / TOOLBAR.HPP < prev    next >
Text File  |  1994-09-16  |  4KB  |  99 lines

  1. /************************************************************************
  2. * Toolbar.hpp - demonstration program class header                      *
  3. * --------------------------------------------------------------------- *
  4. * Demonstrate a toolbar class and simple graphical display.             *
  5. *                                                                       *
  6. * Written by: Barry Lay                                                 *
  7. * Date:       16 September 1994                                         *
  8. *                                                                       *
  9. ************************************************************************/
  10.  
  11. #include <iframe.hpp>               // IFrameWindow class
  12. #include <icmdhdr.hpp>              // ICommandHandler class
  13. #include <imenubar.hpp>             // IMenuBar class
  14. #include <ipainhdr.hpp>             // IPaintHandler class
  15. #include <isizehdr.hpp>             // IResizeHandler class
  16. #include <iqueue.h>                 // IQueue class
  17.  
  18. #include "ainfoa.hpp"               // AInfoArea class
  19. #include "atimehdr.hpp"             // ATimeHandler class
  20. #include "amhlphdr.hpp"             // AMicroHelpHandler class
  21. #include "atoolbar.hpp"             // AToolbar class
  22.  
  23. class lineSegment
  24. {
  25. public:
  26.    lineSegment( IPoint start = IPoint(), IPoint end = IPoint(), 
  27.       IColor colour = IColor::black );
  28.  
  29.    /* use default destructor, copy, and assignment */
  30.  
  31.    virtual void   setStart( IPoint start );
  32.    virtual void   setEnd( IPoint end );
  33.    virtual void   setColour( IColor colour );
  34.    virtual IPoint start();
  35.    virtual IPoint end();
  36.    virtual IColor colour();
  37.  
  38.    draw( IPresSpaceHandle hps );
  39.  
  40. private:
  41.    IPoint         lineStart;
  42.    IPoint         lineEnd;
  43.    IColor         lineColour;
  44. };
  45.  
  46. typedef IQueue <lineSegment> lineQueue;
  47.  
  48. class MainWin : public IFrameWindow,
  49.                 public ICommandHandler,
  50.                 public IPaintHandler,
  51.                 public IResizeHandler,
  52.                 public ATimeHandler
  53. {
  54. public:
  55.    MainWin( unsigned long windowId );
  56.    virtual ~MainWin();
  57.  
  58.    virtual Boolean   command( ICommandEvent& cEvent );
  59.  
  60. protected:
  61.    virtual void      setupInfoArea();
  62.    virtual void      setupClient();
  63.  
  64.    virtual void      createToolBar();
  65.    virtual void      destroyToolBar();
  66.    virtual void      createSideBar();
  67.    virtual void      destroySideBar();
  68.    virtual void      setupMenuBar( unsigned long windowId );
  69.  
  70.    virtual Boolean   paintWindow( IPaintEvent &evt );
  71.    virtual Boolean   windowResize( IResizeEvent &evt );
  72.    virtual Boolean   tick( IEvent &evt );
  73.  
  74. private:
  75.    ICanvas          *clientWindow;
  76.    AInfoArea        *infoArea;
  77.    IMenuBar         *menuBar;
  78.  
  79.    Boolean           fToolBarActive;
  80.    AToolBar         *myToolBar;
  81.    Boolean           fSideBarActive;
  82.    AToolBar         *mySideBar;
  83.  
  84.    unsigned long     currentId;     // current displayed help Id
  85.    IWindow          *activeWindow;  // window with micro help
  86.  
  87.    IColor           *currentColour; // current line area colour
  88.  
  89.    unsigned long     xIncr, yIncr;  // space between lines
  90.    unsigned long     numLines;      // number of flashing lines
  91.    unsigned long     targetLines;   // desired number of lines
  92.  
  93.    lineQueue         lines;         // queue of line segments for display
  94.                                     //  persistance
  95.  
  96.    unsigned long     oldTime;       // current line draw timeout
  97. };
  98.  
  99.