30 #ifndef PT_FORMS_VIEW_H
31 #define PT_FORMS_VIEW_H
33 #include <Pt/Forms/Api.h>
34 #include <Pt/Forms/Widget.h>
35 #include <Pt/Forms/Pixmap.h>
36 #include <Pt/Forms/PaintSurface.h>
37 #include <Pt/Forms/Style.h>
39 #include <Pt/Gfx/Canvas.h>
40 #include <Pt/Gfx/PaintSurface.h>
41 #include <Pt/Gfx/Point.h>
42 #include <Pt/Gfx/Size.h>
43 #include <Pt/Gfx/Rect.h>
106 virtual void onAttach(
Control& control);
108 virtual void onDetach(
Control& control);
110 virtual void onInit(
Control& control);
112 virtual void onRelease(
Control& control);
123 virtual void onRelayoutRequest(
Control& control);
125 virtual void onEnableRequest(
Control& control,
bool isEnable);
127 virtual void onActivateRequest(
Control& control,
bool active);
129 virtual void onShowRequest(
Control& control,
bool isShown);
135 virtual void onRaiseRequest(
Control& control);
141 virtual void onConnect(
Screen& screen);
143 virtual void onDisconnect();
146 virtual void onPaintEvent(
const PaintEvent& ev)
override;
148 virtual void onMoveEvent(
const MoveEvent& ev)
override;
150 virtual void onResizeEvent(
const ResizeEvent& ev)
override;
153 class ViewSurface* _surface;
161 explicit ViewSurface(
View& view)
167 explicit ViewSurface(Widget& w)
173 PaintSurface* surface()
178 const Gfx::PointF& position()
const
183 void setSurface(PaintSurface* surface,
184 const Gfx::PointF& pos)
191 virtual void onDrawPixmap(Gfx::Canvas& canvas,
192 const Gfx::PointF& to,
194 const Gfx::RectF* rect)
override;
197 virtual const Gfx::ImageFormat& onGetFormat()
const override
200 return _surface->format();
202 return Gfx::ImageFormat::argb32();
205 const Gfx::SizeF& onGetSize()
const
207 return _view->size();
210 virtual const Gfx::Scaling& onGetScaling()
const override
212 return _view->scaling();
215 virtual Gfx::Canvas* onGetCanvas(Gfx::Canvas* reuse)
override
217 Gfx::Canvas* canvas = _surface ? _surface->getCanvas(reuse)
222 Gfx::RectF region = canvas->region();
223 region.move( _position.x(), _position.y() );
224 region.setSize( _view->size() );
226 canvas->setRegion(region);
230 virtual Gfx::Canvas* onCreateCanvas(Gfx::Canvas* reuse)
override
232 assert(
false &&
"ViewSurface does not create its own canvas");
236 virtual void onReleaseCanvas()
override
241 virtual void onSync()
override
246 virtual void onFinish()
override
253 PaintSurface* _surface;
254 Gfx::PointF _position;
261 #endif // include guard