29 #ifndef PT_FORMS_MENU_H
30 #define PT_FORMS_MENU_H
32 #include <Pt/Forms/Api.h>
33 #include <Pt/Forms/MenuBase.h>
34 #include <Pt/Forms/Popup.h>
35 #include <Pt/Forms/FlowLayout.h>
36 #include <Pt/Forms/StyleOptions.h>
37 #include <Pt/Gfx/Brush.h>
38 #include <Pt/Gfx/Pen.h>
39 #include <Pt/SmartPtr.h>
50 class PT_FORMS_API Menu :
public Pt::Forms::Popup,
protected MenuBase
54 friend class MenuMenuItem;
61 double iconWidth()
const;
63 const Pt::Gfx::Brush& background()
const;
65 void setBackground(
const Pt::Gfx::Brush& b);
71 void addItem(MenuItem& item);
73 void addItem(MenuSubItem& item);
75 void removeItem(MenuItem& item);
77 void removeItem(MenuSubItem& item);
81 virtual void onInvalidate();
83 virtual void onPaintEvent(
const Pt::Forms::PaintEvent& ev);
85 virtual void onCloseEvent(
const Pt::Forms::CloseEvent& ev);
87 virtual void onShowEvent(
const Pt::Forms::ShowEvent& ev);
89 virtual bool onMouseEvent(
const Pt::Forms::MouseEvent& ev);
91 virtual bool onEnterEvent(
const Pt::Forms::EnterEvent& ev);
93 virtual bool onLeaveEvent(
const Pt::Forms::LeaveEvent& ev);
95 virtual void onRenderBackground(
const Pt::Forms::StyleOptions& options,
Pt::Gfx::Painter& painter,
99 virtual void onAddMenu(MenuMenuItem& item);
101 virtual void onRemoveMenu(MenuMenuItem& item);
103 virtual void onCloseMenu(MenuMenuItem& item);
105 virtual void onOpenMenu(MenuMenuItem& item);
107 virtual void onCancel();
109 virtual Pt::Forms::Widget* onFindMenu(
const Pt::Gfx::PointF& screenPos);
112 void onProcessMouseEvent(
const Pt::Forms::MouseEvent& ev);
115 void onItemTriggered(MenuBaseItem& m);
120 MenuBaseItem* _currentItem;
121 Pt::Forms::FlowLayout _layout;
122 Pt::ssize_t _iconWidth;
125 Pt::Gfx::Brush _brush;
Rect with floating-point coordinates.
Definition: Rect.h:44
Attributes for the drawing of outlines.
Definition: Pen.h:52
Point with floating-point X and Y coordinates.
Definition: Point.h:44
2D painter for Gfx paint surfaces.
Definition: Painter.h:42