Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

GMenuImpl.h

00001 #ifndef _GMENU_IMPL_H_
00002 #define _GMENU_IMPL_H_
00003 
00004 class GSubMenu;
00005 class GMenuItem;
00006 class SubMenuImpl;
00007 class MenuImpl;
00008 
00009 #include "GPopup.h"
00010 
00011 class MenuClickImpl
00012 {
00013     friend class MenuItemImpl;
00014 
00015 protected:
00016     GMenuItem *Clicked;
00017 
00018 public:
00019     MenuClickImpl()
00020     {
00021         Clicked = 0;
00022     }
00023     
00024     virtual ~MenuClickImpl()
00025     {
00026     }
00027     
00028     GMenuItem *ItemClicked()
00029     {
00030         return Clicked;
00031     }
00032     
00033     virtual GView *View() { return 0; }
00034     virtual SubMenuImpl *IsSub() { return 0; }
00035     virtual MenuImpl *IsMenu() { return 0; }
00036 };
00037 
00038 class SubMenuImpl : public GPopup, public MenuClickImpl
00039 {
00040     class SubMenuImplPrivate *d;
00041 
00042 public:
00043     SubMenuImpl(GSubMenu *Sub);
00044     ~SubMenuImpl();
00045     
00046     void Visible(bool b);
00047     void OnPaint(GSurface *pDC);
00048     bool OnKey(GKey &k);
00049     
00050     GView *View() { return this; }
00051     SubMenuImpl *IsSub() { return this; }
00052 };
00053 
00054 class MenuImpl : public GView, public MenuClickImpl
00055 {
00056     class MenuImplPrivate *d;
00057 
00058 public:
00059     MenuImpl(GMenu *Sub);
00060     ~MenuImpl();
00061     
00062     bool Pour(GRegion &r);
00063     void OnPaint(GSurface *pDC);
00064     bool HasSubOpen();
00065     
00066     GView *View() { return this; }
00067     MenuImpl *IsMenu() { return this; }
00068 };
00069 
00070 class MenuItemImpl : public GView
00071 {
00072     class MenuItemImplPrivate *d;
00073 
00074 public:
00075     MenuItemImpl(GMenuItem *Item);
00076     ~MenuItemImpl();
00077     
00078     GMenuItem *Item();
00079     void ShowSub();
00080     void HideSub(bool SetClick = false);
00081     void Activate();
00082     bool IsOnSubMenu();
00083     void OnPaint(GSurface *pDC);
00084     void OnMouseClick(GMouse &m);
00085     void OnMouseEnter(GMouse &m);
00086     void OnMouseExit(GMouse &m);
00087 };
00088 
00089 #endif

Generated on Wed Oct 26 14:46:49 2005 for Lgi by  doxygen 1.4.1