home *** CD-ROM | disk | FTP | other *** search
/ Shareware Supreme Volume 6 #1 / swsii.zip / swsii / 099 / DFPP02.ZIP / POPDOWN.H < prev    next >
C/C++ Source or Header  |  1993-08-13  |  2KB  |  63 lines

  1. // -------- popdown.h 
  2.  
  3. #ifndef POPDOWN_H
  4. #define POPDOWN_H
  5.  
  6. #include "desktop.h"
  7. #include "listbox.h"
  8.  
  9. const unsigned char LEDGE          = '\xc3';
  10. const unsigned char REDGE          = '\xb4';
  11. const unsigned char CASCADEPOINTER = '\x10';
  12.  
  13. inline unsigned char CheckMark()
  14. {
  15.     return desktop.screen().Height() == 25 ? 251 : 4;
  16. }
  17.  
  18. class MenuSelection;
  19. class MenuBar;
  20.  
  21. class PopDown : public ListBox    {
  22.     MenuSelection **selections; // array of selections
  23.     Bool isopen;                // True = menu is open
  24.     Bool iscascaded;            // True = menu is cascaded
  25.     int menuwidth;              // width of menu
  26.     int menuheight;             // height of menu
  27.  
  28.     void BuildMenuLine(int sel);
  29.     void MenuDimensions();
  30.     virtual void SetColors();
  31.     void DisplayMenuLine(int lno);
  32.     Bool ShortcutKey(int key);
  33. protected:
  34.     void ClearSelection();
  35. public:
  36.     PopDown(DFWindow *par, MenuSelection **Selections = 0);
  37.     virtual ~PopDown() {}
  38.     // -------- listbox API messages
  39.     void CloseWindow();
  40.     void OpenMenu(int left, int top);
  41.     void CloseMenu(Bool SendESC = False);
  42.     void Show();
  43.     void Paint();
  44.     void Border();
  45.     void Keyboard(int key);
  46.     void ShiftChanged(int sk);
  47.     void ButtonReleased(int mx, int my);
  48.     void LeftButton(int mx, int my);
  49.     void DoubleClick(int mx, int my);
  50.     void Choose();
  51.     void SetSelection(int sel);
  52.     Bool isOpen() { return isopen; }
  53.     Bool &isCascaded() { return iscascaded; }
  54.     Bool AcceleratorKey(int key);
  55.     Bool ParentisMenu(DFWindow &wnd);
  56.     Bool ParentisMenu() { return ParentisMenu(*this); }
  57. };
  58.  
  59. #endif
  60.  
  61.  
  62.  
  63.