30 #ifndef PT_FORMS_WINDOW_H
31 #define PT_FORMS_WINDOW_H
33 #include <Pt/Forms/Api.h>
34 #include <Pt/Forms/Form.h>
35 #include <Pt/Forms/PixmapSurface.h>
36 #include <Pt/Forms/WindowType.h>
37 #include <Pt/Forms/SizePolicy.h>
38 #include <Pt/Forms/ActivateEvent.h>
39 #include <Pt/Forms/CloseEvent.h>
40 #include <Pt/Forms/ResizeEvent.h>
41 #include <Pt/Forms/KeyEvent.h>
42 #include <Pt/Forms/MouseEvent.h>
43 #include <Pt/Forms/TouchEvent.h>
44 #include <Pt/Forms/ScrollEvent.h>
45 #include <Pt/Forms/MoveEvent.h>
46 #include <Pt/Forms/EnterEvent.h>
47 #include <Pt/Forms/LeaveEvent.h>
48 #include <Pt/Forms/ShowEvent.h>
49 #include <Pt/Forms/EnableEvent.h>
50 #include <Pt/Forms/InvalidateEvent.h>
51 #include <Pt/Gfx/Image.h>
52 #include <Pt/Signal.h>
60 class WindowStateEvent;
65 class PT_FORMS_API
Window :
public Form
67 friend class WindowManager;
68 friend class WindowFrame;
72 typedef WindowType Type;
73 typedef WindowState State;
76 explicit Window(WindowManager* parent = 0,
77 WindowType type = WindowType::Default);
82 void setParent(WindowManager& parent);
86 WindowManager* windowManager();
88 const WindowManager* windowManager()
const;
92 const WindowFrame* frame()
const;
101 void autoSize(
const SizePolicy& policy);
113 const std::string& title()
const;
115 void setTitle(
const std::string& t );
118 bool isAbove()
const;
120 void setAbove(
bool top);
123 bool isActive()
const;
128 WindowState state()
const;
130 void setState(
const WindowState& s);
136 bool isClosed()
const;
143 bool acceptsInput()
const;
146 const Gfx::Brush& background()
const;
148 void setBackground(
const Gfx::Brush& b);
156 virtual void onProcessLayout(
const Gfx::RectF& rect);
158 virtual Gfx::SizeF onMeasure(
const SizePolicy& policy);
160 virtual void onLayout(
const Gfx::RectF& rect);
166 virtual void onConnect(
Screen& screen);
168 virtual void onDisconnect();
178 virtual void onProcessEvent(
const Pt::Event& ev);
180 virtual void onRequestRepaint(
const Gfx::RectF& rect);
182 virtual void onRequestEnable(
bool isEnable);
184 virtual void onRequestActivate(
bool active);
186 virtual void onRequestShow(
bool isShown);
188 virtual void onRequestMove(
const Gfx::PointF& pos);
190 virtual void onRequestResize(
const Gfx::SizeF& s);
192 virtual void onSetSizeLimits(
const Gfx::SizeF& minSize,
199 virtual void onInvalidateEvent(
const InvalidateEvent& ev);
201 virtual void onInvalidate();
207 virtual void onProcessPaintEvent(
const PaintEvent& ev);
209 virtual void onPaintEvent(
const PaintEvent& ev);
215 virtual void onProcessRescaleEvent(
const RescaleEvent& ev);
217 virtual void onRescaleEvent(
const RescaleEvent& ev);
219 virtual void onRescale(
double scaling);
225 virtual void onProcessMoveEvent(
const MoveEvent& ev);
227 virtual void onMoveEvent(
const MoveEvent& ev);
229 virtual void onProcessResizeEvent(
const ResizeEvent& ev);
231 virtual void onResizeEvent(
const ResizeEvent& ev);
237 virtual void onProcessShowEvent(
const ShowEvent& ev);
239 virtual void onShowEvent(
const ShowEvent& ev);
241 virtual void onShow(
bool visible);
247 virtual void onProcessEnableEvent(
const EnableEvent& ev);
249 virtual void onEnableEvent(
const EnableEvent& ev);
251 virtual void onEnable(
bool e);
257 virtual void onProcessActivateEvent(
const ActivateEvent& ev);
259 virtual void onActivateEvent(
const ActivateEvent& ev);
265 virtual void onProcessWindowStateEvent(
const WindowStateEvent& ev);
267 virtual void onWindowStateEvent(
const WindowStateEvent& ev);
273 virtual void onProcessCloseEvent(
const CloseEvent& ev);
275 virtual void onCloseEvent(
const CloseEvent& ev);
281 virtual void onProcessMouseEvent(
const MouseEvent& ev);
283 virtual void onProcessTouchEvent(
const TouchEvent& ev);
285 virtual void onProcessScrollEvent(
const ScrollEvent& ev);
287 virtual void onProcessEnterEvent(
const EnterEvent& ev);
289 virtual void onProcessLeaveEvent(
const LeaveEvent& ev);
291 virtual void onProcessKeyEvent(
const KeyEvent& ev);
297 virtual bool onMouseEvent(
const MouseEvent& ev);
299 virtual bool onTouchEvent(
const TouchEvent& ev );
301 virtual bool onScrollEvent(
const ScrollEvent& ev);
303 virtual bool onKeyEvent(
const KeyEvent& ev);
305 virtual bool onEnterEvent(
const EnterEvent& ev);
307 virtual bool onLeaveEvent(
const LeaveEvent& ev);
329 SizePolicy _autoSizePolicy;
341 Gfx::Brush _backgroundBrush;
348 #endif // include guard
Rect with floating-point coordinates.
Definition: Rect.h:44
Basic image.
Definition: Api.h:81
Base class for all event types.
Definition: Event.h:49
Image drawing surface.
Definition: Bitmap.h:54
Multicast Signal to call multiple slots.
Definition: Signal.h:109
Size with floating-point width and height.
Definition: Size.h:44
Point with floating-point X and Y coordinates.
Definition: Point.h:44