00001 00002 #ifndef __QMenuBar_h 00003 #define __QMenuBar_h 00004 00005 #include "GRect.h" 00006 #include "qwidget.h" 00007 00008 /* 00009 class QMenuData; 00010 class QMenuBar; 00011 class GMenuItem; 00012 00013 class QMenuItem : public QWidget 00014 { 00015 friend class QMenuData; 00016 friend class QMenuBar; 00017 friend class QPopupMenu; 00018 friend class QMenuItemPrivate; 00019 00020 class QMenuItemPrivate *Item; 00021 static QMenuItem *Cursor; 00022 00023 int x(); 00024 int y(); 00025 00026 public: 00027 QMenuItem(QMenuBar *Menu, QMenuData *Parent, GMenuItem *Item); 00028 ~QMenuItem(); 00029 00030 // Api 00031 int type(); 00032 void setType(int i); 00033 QPopupMenu *sub(); 00034 QMenuData *GetParent(); 00035 void setSub(QPopupMenu *m); 00036 void showPopup(); 00037 void hidePopup(); 00038 int cmd(); 00039 void setCmd(int i); 00040 void Activate(); 00041 00042 bool Checked(); 00043 void Checked(bool i); 00044 00045 // Widget 00046 void paintEvent(QEvent *e); 00047 void mousePressEvent(QEvent *e); 00048 void mouseReleaseEvent(QEvent *e); 00049 void leaveEvent(QEvent *e); 00050 void enterEvent(QEvent *e); 00051 }; 00052 00053 class QMenuData : public QObject 00054 { 00055 friend class QPopupMenu; 00056 friend class QMenuItemPrivate; 00057 00058 protected: 00059 class QMenuDataPrivate *Data; 00060 QList<QMenuItem> *GetItems(); 00061 00062 public: 00063 QMenuData(QMenuBar *Menu, QMenuItem *Parent); 00064 ~QMenuData(); 00065 00066 // Api 00067 virtual QMenuItem *insertItem(GMenuItem *item, int id, int where = -1); // char *text, int cmd 00068 virtual QMenuItem *insertItem(GMenuItem *item, QPopupMenu *sub, int where = -1); 00069 virtual QMenuItem *insertSeparator(int where = -1); 00070 virtual void deleteItem(QMenuItem *i); 00071 00072 virtual QWidget *GetWidget(); 00073 00074 // Events 00075 virtual void OnSubMenuVisible(QPopupMenu *Item, bool Visible) {} 00076 virtual void OnMenuClick(QMenuItem *Item) {} 00077 virtual void OnMenuEnter(QMenuItem *Item) {} 00078 }; 00079 00080 class QMenuBar : public QWidget, public QMenuData 00081 { 00082 class QMenuBarPrivate *MenuBar; 00083 00084 public: 00085 QMenuBar(); 00086 ~QMenuBar(); 00087 00088 // Api 00089 GRect &Pour(GRect &p); 00090 00091 // Widget 00092 void paintEvent(QEvent *e); 00093 00094 // Impl 00095 void OnSubMenuVisible(QPopupMenu *Item, bool Visible); 00096 void OnMenuClick(QMenuItem *Item); 00097 void OnMenuEnter(QMenuItem *Item); 00098 00099 }; 00100 */ 00101 00102 #endif