Menu.h

Index

      
      #ifndef _MENU_H_
      #define _MENU_H_
      
      #include "General.h"
      #include "Manager.h"
      
      class Menu  
      {
  10  public:
          Menu(WindowManager *manager, XEvent *e);
          virtual ~Menu();
      
          virtual int getSelection();
          static void cleanup(WindowManager *const);
      
       protected:
          static Window m_window;
          
  20      static Boolean m_initialised;
          static GC m_menuGC;
      #if I18N
          static XFontSet m_fontset;
      #endif
          static XFontStruct *m_font;
          static unsigned long m_foreground;
          static unsigned long m_background;
          static unsigned long m_border;
      
  30      char **m_items;
          int m_nItems;
          int m_nHidden;
      
          Boolean m_hasSubmenus;
          virtual void createSubmenu (XEvent *e, int i) {};
      
          WindowManager *m_windowManager;
          XEvent *m_event;
      
  40      virtual char **getItems(int *nitems, int *nhidden) = 0;
      
          Display *display() { return m_windowManager->display(); }
          Window root()      { return m_windowManager->root();    }
          int screen()       { return m_windowManager->screen();  }
      
          virtual void showFeedback(int) { }
          virtual void removeFeedback(int, Boolean) { }
          virtual void raiseFeedbackLevel(int) { }
      
  50  };
      
      class ClientMenu  : public Menu
      {
      public:
          ClientMenu(WindowManager *, XEvent *e);
          virtual ~ClientMenu();
      
      private:
          virtual char **getItems(int *, int *);
  60      ClientList m_clients;
          Boolean m_allowExit;
      
          Client *checkFeedback(int);
          virtual void showFeedback(int);
          virtual void removeFeedback(int, Boolean);
          virtual void raiseFeedbackLevel(int);
      };
      
      class CommandMenu  : public Menu
  70  {
      public:
          CommandMenu(WindowManager *, XEvent *e, char *otherdir = NULL);
          virtual ~CommandMenu();
      
      private:
          void createSubmenu(XEvent *, int i);
          virtual char **getItems(int *, int *);
          char *m_commandDir;
      };
  80  
      class ShowGeometry  : public Menu
      {
      public:
          ShowGeometry(WindowManager *, XEvent *);
          virtual ~ShowGeometry();
          
          void update(int x, int y);
          void remove();
      
  90  private:
          virtual char **getItems(int *, int *);
      };
      
      int nobuttons(XButtonEvent *e);
      
      #endif /* _MENU_H_ */
      

Index

  • Menu Class declaration
  • Menu (constructor)
  • getSelection (prototype) returns virtual int
  • cleanup (prototype) returns static void
  • createSubmenu (function) returns virtual void
  • getItems (prototype) returns virtual char **
  • display (function) returns Display *
  • root (function) returns Window
  • screen (function) returns int
  • showFeedback (function) returns virtual void
  • removeFeedback (function) returns virtual void
  • raiseFeedbackLevel (function) returns virtual void
  • ClientMenu Class declaration
  • ClientMenu (constructor)
  • getItems (prototype) returns virtual char **
  • checkFeedback (prototype) returns Client *
  • showFeedback (prototype) returns virtual void
  • removeFeedback (prototype) returns virtual void
  • raiseFeedbackLevel (prototype) returns virtual void
  • CommandMenu Class declaration
  • CommandMenu (constructor)
  • createSubmenu (prototype) returns void
  • getItems (prototype) returns virtual char **
  • ShowGeometry Class declaration
  • ShowGeometry (constructor)
  • update (prototype) returns void
  • remove (prototype) returns void
  • getItems (prototype) returns virtual char **
  • nobuttons (prototype) returns int