00001 #ifndef BALL_VIEW_WIDGETS_BALLMENUBAR_H
00002 #define BALL_VIEW_WIDGETS_BALLMENUBAR_H
00003
00004 #include <BALL/VIEW/KERNEL/preferencesEntry.h>
00005
00006 #include <QtGui/QMenu>
00007 #include <QtGui/QMenuBar>
00008
00009 class QXmlDefaultHandler;
00010
00011 namespace BALL
00012 {
00013 namespace VIEW
00014 {
00015 template<class QMenuLike>
00016 class BALLMenuLike : public PreferencesEntry::ExtendedPreferencesObject
00017 {
00018 public:
00019
00020 virtual bool setValue(const String&);
00021
00022 void getSubMenuTree_(QString&, const QMenu*) const;
00023 private:
00024 virtual QXmlDefaultHandler* getHandler_() = 0;
00025 };
00026
00027 class BALL_EXPORT BALLMenuBar
00028 : public QMenuBar,
00029 public BALLMenuLike<QMenuBar>
00030 {
00031 Q_OBJECT
00032
00033 public:
00034 BALLMenuBar(const QString& name);
00035
00036 virtual bool getValue(String&) const;
00037
00038 private:
00039 virtual QXmlDefaultHandler* getHandler_();
00040 };
00041
00042 class BALL_EXPORT BALLMenu
00043 : public QMenu,
00044 public BALLMenuLike<QMenu>
00045 {
00046 Q_OBJECT
00047
00048 public:
00049
00050 virtual bool getValue(String&) const;
00051
00052 private:
00053 virtual QXmlDefaultHandler* getHandler_();
00054 };
00055
00056 }
00057 }
00058
00059 #endif //BALL_VIEW_WIDGETS_BALLMENU_H