home *** CD-ROM | disk | FTP | other *** search
/ ARM Club 3 / TheARMClub_PDCD3.iso / hensa / programming / dreamscape / source / Dreamscape / Headers / objects / h / colourmenu < prev    next >
Encoding:
Text File  |  1996-09-22  |  2.0 KB  |  76 lines

  1.  
  2. // objects.h.colourmenu
  3.  
  4. // Dreamscape - C++ class library for RISC OS
  5. // Copyright (c) 1996 Mark Seaborn <mseaborn@argonet.co.uk>
  6. //
  7. // This library is free software; you can redistribute it and/or
  8. // modify it under the terms of the GNU Library General Public
  9. // License as published by the Free Software Foundation; either
  10. // version 2 of the License, or (at your option) any later version.
  11. // See the Dreamscape documentation for more information.
  12.  
  13. #ifndef dreamscape_colourmenu_H
  14. #define dreamscape_colourmenu_H
  15.  
  16. #include "stringt.h"
  17.  
  18. #include "command.h"
  19. #include "colour.h"
  20. #include "basemenu.h"
  21.  
  22. class ColourMenuSelectionHandler {
  23. public:
  24.   virtual void colour_menu_selection(DesktopColour colour) = 0;
  25. };
  26.  
  27. class ColourMenu: public BaseMenu {
  28.   static class Initialise {
  29.   public:
  30.     Initialise();
  31.   } init;
  32.   friend Initialise;
  33.  
  34.   static void *creator(toolbox_o object);
  35.   static void deleter(void *handle);
  36.   static void showing(const toolbox_action *event, const toolbox_block *ids);
  37.   static void hidden(const toolbox_action *event, const toolbox_block *ids);
  38.   static void selection(const toolbox_action *event,
  39.         const toolbox_block *ids);
  40.  
  41.   ToolboxObject impl;
  42.  
  43.   ColourMenuSelectionHandler *selection_handler;
  44.   Command *showing_handler, *hidden_handler;
  45.  
  46.   ColourMenu(toolbox_o object);
  47. public:
  48.   ColourMenu(const char *name);
  49.   virtual ~ColourMenu();
  50.  
  51.   void set_handler(ColourMenuSelectionHandler *handler)
  52.     { selection_handler = handler; }
  53.  
  54.   void set_showing_handler(Command *handler) { showing_handler = handler; }
  55.   void set_hidden_handler(Command *handler) { hidden_handler = handler; }
  56.  
  57.   void set_colour(DesktopColour colour);
  58.   DesktopColour get_colour() const;
  59.  
  60.   void set_none_available(bool available);
  61.   bool get_none_available() const;
  62.  
  63.   void set_title(const char *title);
  64.   String get_title() const;
  65.  
  66.   BaseMenu &get_next_menu();
  67.   const BaseMenu &get_next_menu() const;
  68.   bool has_next_menu() const;
  69.  
  70.   // Low level
  71.   ToolboxObject &get_toolbox_object();
  72.   const ToolboxObject &get_toolbox_object() const;
  73. };
  74.  
  75. #endif
  76.