29 #ifndef PT_FORMS_WORKSPACE_H
30 #define PT_FORMS_WORKSPACE_H
32 #include <Pt/Forms/Api.h>
33 #include <Pt/Forms/Control.h>
34 #include <Pt/Forms/WorkspaceManager.h>
35 #include <Pt/Gfx/Point.h>
36 #include <Pt/Gfx/Size.h>
37 #include <Pt/Gfx/Rect.h>
43 class PT_FORMS_API Workspace :
public Control
45 friend class WorkspaceManager;
55 void addWindow(Window& w);
57 void removeWindow(Window& w);
59 const std::vector<Window*>& windows()
const;
61 WindowManager& windowManager();
66 const Control* content()
const;
68 void setContent(Control* control);
74 virtual void onConnect(Screen& screen);
76 virtual void onDisconnect();
79 virtual Widget* onHitTest(
const Gfx::PointF& p);
81 virtual void onRequestResize(
const Gfx::SizeF& s);
87 virtual void onSetSurface(PaintSurface* surface,
const Gfx::PointF& pos);
89 virtual void onRemoveControl(Control& control);
91 virtual Gfx::SizeF onMeasure(
const SizePolicy& policy);
93 virtual void onLayout(
const Gfx::RectF& rect);
95 virtual void onPaint(PaintSurface&,
const Gfx::RectF&);
98 virtual void onProcessLayoutEvent(
const LayoutEvent& ev);
100 virtual void onProcessRescaleEvent(
const RescaleEvent& ev);
102 virtual void onProcessResizeEvent(
const ResizeEvent& ev);
104 virtual void onProcessPaintEvent(
const PaintEvent& ev);
106 virtual void onProcessEnableEvent(
const EnableEvent& ev);
109 virtual void onProcessMouseEvent(
const MouseEvent& ev);
111 virtual void onProcessTouchEvent(
const TouchEvent& ev);
113 virtual void onProcessScrollEvent(
const ScrollEvent& ev);
115 virtual void onProcessEnterEvent(
const EnterEvent& ev);
117 virtual void onProcessLeaveEvent(
const LeaveEvent& ev);
119 virtual void onProcessKeyEvent(
const KeyEvent& ev);
125 void onRelayoutRequest(WorkspaceManager& wm);
127 virtual void onRepaint(WindowManager& wm,
const Gfx::RectF& rect);
129 virtual void onActivate(WindowManager& wm,
bool active);
132 WorkspaceManager _wm;
135 Gfx::SizeF _requestedSize;
142 #endif // include guard