#pragma once #ifndef TNZ_MENUBAR_INCLUDED #define TNZ_MENUBAR_INCLUDED #include "tw/tw.h" #include "tw/popupmenu.h" #undef DVAPI #undef DVVAR #ifdef TWIN_EXPORTS #define DVAPI DV_EXPORT_API #define DVVAR DV_EXPORT_VAR #else #define DVAPI DV_IMPORT_API #define DVVAR DV_IMPORT_VAR #endif //-------------------------------------------------------- class DVAPI TMenubar : public TWidget { public: TMenubar(TWidget *parent, string name = "menubar"); void configureNotify(const TDimension &); void draw(); int getMinWidth(); }; //-------------------------------------------------------- class DVAPI TMenubarItem : public TWidget, public TPopupMenuListener { bool m_highlighted, m_pressed; TPopupMenu *m_popupMenu; wstring m_title; protected: /*virtual*/ void create(); public: TMenubarItem(TMenubar *menubar, string name); void draw(); void enter(const TPoint &p); void leave(const TPoint &p); void leftButtonDown(const TMouseEvent &e); void leftButtonUp(const TMouseEvent &e); TPopupMenu *getMenu() const { return m_popupMenu; } TPopupMenuItem *addItem(string cmdname); // TPopupMenuItem *addItem(string cmdname, string title, string help); void addSeparator(); void onMenuSelect(TPopupMenuItem *); TDimension getPreferredSize() const; }; #endif