29 #ifndef PT_FORMS_FORM_H
30 #define PT_FORMS_FORM_H
32 #include <Pt/Forms/Api.h>
33 #include <Pt/Forms/Widget.h>
34 #include <Pt/Forms/Control.h>
35 #include <Pt/Gfx/Point.h>
36 #include <Pt/Gfx/Size.h>
37 #include <Pt/Gfx/Rect.h>
59 class PT_FORMS_API Form :
public View
74 const Control* content()
const;
76 void setContent(Control* control);
89 Gfx::SizeF measure(
const SizePolicy& policy);
94 virtual void onRequestRelayout();
96 virtual void onProcessLayoutEvent(
const LayoutEvent& ev);
98 virtual Gfx::SizeF onProcessMeasure();
100 virtual void onProcessLayout(
const Gfx::RectF& rect);
102 virtual Gfx::SizeF onMeasure(
const SizePolicy& policy);
104 virtual void onLayout(
const Gfx::RectF& rect);
110 Control* focusControl();
117 virtual void onAddElement(Control& control);
119 virtual void onRemoveElement(Control& control);
121 virtual void onSetFocusPolicy(Control& control, FocusPolicy policy);
123 virtual void onSetFocusIndex(Control& control,
unsigned index);
125 virtual void onSetFocus(Control& control);
127 virtual void onSetShortcut(Control& control,
const std::vector<Key>& keys);
129 virtual void onSetMnemonic(Control& control,
const std::vector<Char>& chs);
135 virtual void onSetSurface(PaintSurface* surface,
const Gfx::PointF& pos);
137 virtual void onAttach(Control& control);
139 virtual void onDetach(Control& control);
141 virtual void onInit(Control& control);
143 virtual void onRelease(Control& control);
145 virtual Gfx::PointF onToControl(
const Control& control,
146 const Gfx::PointF& pos)
const;
148 virtual Gfx::PointF onFromControl(
const Control& control,
149 const Gfx::PointF& pos)
const;
152 virtual void onRepaintRequest(Control& control,
const Gfx::RectF& rect);
154 virtual void onRelayoutRequest(Control& control);
156 virtual void onEnableRequest(Control& control,
bool isEnable);
158 virtual void onActivateRequest(Control& control,
bool active);
160 virtual void onShowRequest(Control& control,
bool isShown);
162 virtual void onMoveRequest(Control& control,
const Gfx::PointF& pos);
164 virtual void onResizeRequest(Control& control,
const Gfx::SizeF& size);
166 virtual void onRaiseRequest(Control& control);
172 virtual void onConnect(Screen& screen);
174 virtual void onDisconnect();
177 virtual Widget* onHitTest(
const Gfx::PointF& pos);
179 virtual void onRequestCapture(
bool capture);
181 virtual void onRequestResize(
const Gfx::SizeF& s);
185 virtual void onProcessEvent(
const Pt::Event& ev);
191 virtual void onInvalidateEvent(
const InvalidateEvent& ev);
193 virtual void onInvalidate();
199 virtual void onProcessPaintEvent(
const PaintEvent& ev);
201 virtual void onPaintEvent(
const PaintEvent& ev);
207 virtual void onProcessRescaleEvent(
const RescaleEvent& ev);
209 virtual void onRescaleEvent(
const RescaleEvent& ev);
211 virtual void onRescale(
double scaling);
217 virtual void onProcessEnableEvent(
const EnableEvent& ev);
219 virtual void onEnableEvent(
const EnableEvent& ev);
221 virtual void onEnable(
bool e);
227 virtual void onProcessShowEvent(
const ShowEvent& ev);
229 virtual void onShowEvent(
const ShowEvent& ev);
231 virtual void onShow(
bool visible);
237 virtual void onProcessMoveEvent(
const MoveEvent& ev);
239 virtual void onMoveEvent(
const MoveEvent& ev);
241 virtual void onProcessResizeEvent(
const ResizeEvent& ev);
243 virtual void onResizeEvent(
const ResizeEvent& ev);
248 virtual void onProcessMouseEvent(
const MouseEvent& ev);
250 virtual void onProcessTouchEvent(
const TouchEvent& ev);
252 virtual void onProcessScrollEvent(
const ScrollEvent& sev);
254 virtual void onProcessEnterEvent(
const EnterEvent& ev);
256 virtual void onProcessLeaveEvent(
const LeaveEvent& ev);
258 virtual void onProcessKeyEvent(
const KeyEvent& ev);
264 virtual bool onMouseEvent(
const MouseEvent& ev);
266 virtual bool onTouchEvent(
const TouchEvent& ev);
268 virtual bool onScrollEvent(
const ScrollEvent& ev);
270 virtual bool onEnterEvent(
const EnterEvent& ev);
272 virtual bool onLeaveEvent(
const LeaveEvent& ev);
274 virtual bool onKeyEvent(
const KeyEvent& ev);
277 template <
typename Iter>
278 void moveFocus(Iter begin, Iter end);
281 const std::map<Key, Control*>& shortcuts()
const
286 const std::map<Pt::Char, Control*>& mnemonics()
const
292 Control* _mainControl;
298 std::vector<Control*> _focusList;
299 Control* _focusControl;
300 std::map<Key, Control*> _shortcuts;
301 std::map<Pt::Char, Control*> _mnemonics;
309 #endif // include guard
Base class for all event types.
Definition: Event.h:49