123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- #include "pch.h"
- /////////////////////////////////////////////////////////////////////////////
- //
- // PaneImage
- //
- /////////////////////////////////////////////////////////////////////////////
- class PaneImage : public Image {
- private:
- /////////////////////////////////////////////////////////////////////////////
- //
- // Types
- //
- /////////////////////////////////////////////////////////////////////////////
- class ImageTopPaneSiteImpl : public TopPaneSite {
- private:
- PaneImage* m_pimage;
- public:
- ImageTopPaneSiteImpl(PaneImage* pimage) :
- m_pimage(pimage)
- {
- }
- Point TransformLocalToImage(const Point& point)
- {
- return m_pimage->TransformLocalToImage(point);
- }
- void SurfaceChanged()
- {
- m_pimage->PaneChanged();
- }
- void SizeChanged()
- {
- m_pimage->PaneChanged();
- }
- };
- /////////////////////////////////////////////////////////////////////////////
- //
- // Members
- //
- /////////////////////////////////////////////////////////////////////////////
- TRef<TopPane> m_ptopPane;
- Point m_pointOrigin;
- public:
- /////////////////////////////////////////////////////////////////////////////
- //
- // Constructor
- //
- /////////////////////////////////////////////////////////////////////////////
- PaneImage(Engine* pengine, SurfaceType stype, bool bColorKey, Pane* ppane)
- {
- m_ptopPane =
- new TopPane(
- pengine,
- stype,
- bColorKey,
- new ImageTopPaneSiteImpl(this),
- ppane
- );
- }
- /////////////////////////////////////////////////////////////////////////////
- //
- // Implementation methods
- //
- /////////////////////////////////////////////////////////////////////////////
- void PaneChanged()
- {
- Changed();
- }
- /////////////////////////////////////////////////////////////////////////////
- //
- // Image methods
- //
- /////////////////////////////////////////////////////////////////////////////
- void PaneImage::CalcBounds()
- {
- m_bounds.SetRect(
- Rect(
- Point(0, 0),
- Point::Cast(m_ptopPane->GetSize())
- )
- );
- }
- void PaneImage::Render(Context* pcontext)
- {
- ZEnter("PaneImage::Render()");
- pcontext->TransformLocalToImage(Vector(0, 0, 0), m_pointOrigin);
- pcontext->DrawImage(m_ptopPane->GetSurface());
- ZExit("PaneImage::Render()");
- }
- TRef<Surface> GetSurface()
- {
- return m_ptopPane->GetSurface();
- }
- /////////////////////////////////////////////////////////////////////////////
- //
- // Value methods
- //
- /////////////////////////////////////////////////////////////////////////////
- void PaneImage::Evaluate()
- {
- m_ptopPane->Evaluate();
- Image::Evaluate();
- }
- ZString GetFunctionName()
- {
- return "PaneImage";
- }
- Point TransformLocalToImage(const Point& point)
- {
- return m_pointOrigin + point;
- }
- /////////////////////////////////////////////////////////////////////////////
- //
- // IMouseInput methods
- //
- /////////////////////////////////////////////////////////////////////////////
- void PaneImage::RemoveCapture()
- {
- m_ptopPane->RemoveCapture();
- }
- MouseResult PaneImage::HitTest(IInputProvider* pprovider, const Point& point, bool bCaptured)
- {
- return m_ptopPane->HitTest(pprovider, point, bCaptured);
- }
- void PaneImage::MouseMove(IInputProvider* pprovider, const Point& point, bool bCaptured, bool bInside)
- {
- m_ptopPane->MouseMove(pprovider, point, bCaptured, bInside);
- }
- void PaneImage::MouseEnter(IInputProvider* pprovider, const Point& point)
- {
- m_ptopPane->MouseEnter(pprovider, point);
- }
- void PaneImage::MouseLeave(IInputProvider* pprovider)
- {
- m_ptopPane->MouseLeave(pprovider);
- }
- MouseResult PaneImage::Button(IInputProvider* pprovider, const Point& point, int button, bool bCaptured, bool bInside, bool bDown)
- {
- return m_ptopPane->Button(pprovider, point, button, bCaptured, bInside, bDown);
- }
- };
- /////////////////////////////////////////////////////////////////////////////
- //
- // Constructor
- //
- /////////////////////////////////////////////////////////////////////////////
- TRef<Image> CreatePaneImage(Engine* pengine, SurfaceType stype, bool bColorKey, Pane* ppane)
- {
- return new PaneImage(pengine, stype, bColorKey, ppane);
- }
|