OSDN Git Service

Merge branch 'master' of o_ggy@git.sourceforge.jp:/gitroot/moflib/moflib
[moflib/moflib.git] / saisei-1.0 / rpg / rpg / widget / ImageTileView.cpp
1 #include "widget/ImageTileView.hpp"
2 #include "widget/ImageTiler.hpp"
3 #include <memory>
4 #include <memory>
5 #include <mof/streams.hpp>
6
7 using std::shared_ptr;
8 using std::make_shared;
9 using mof::FrameNumber;
10 using mof::Texture;
11 using namespace mof::widget;
12
13 //{{{ struct Impl
14 struct ImageTileView::Impl
15 {
16     ImageTiler tiler;
17
18     Impl( const shared_ptr<Texture>& pTexture )
19     : tiler( pTexture )
20     {
21     }
22 };
23 //}}}
24 //{{{ constructor
25 ImageTileView::ImageTileView( const shared_ptr<Texture>& pTexture )
26 : m_pImpl( new Impl (pTexture ) )
27 {
28 }
29 //}}}
30 //{{{ destructor
31 ImageTileView::~ImageTileView()
32 {
33 }
34 //}}}
35 //{{{ show
36 FrameNumber ImageTileView::show( bool )
37 {
38     return 0;
39 }
40 //}}}
41 //{{{ hide
42 FrameNumber ImageTileView::hide( bool )
43 {
44     return 0;
45 }
46 //}}}
47 //{{{ focus
48 FrameNumber ImageTileView::focus( bool )
49 {
50     return 0;
51 }
52 //}}}
53 //{{{ blur
54 FrameNumber ImageTileView::blur( bool )
55 {
56     return 0;
57 }
58 //}}}
59 //{{{ click
60 FrameNumber ImageTileView::click( bool )
61 {
62     return 0;
63 }
64 //}}}
65 //{{{ getPreferredSize
66 mof::Vector2D ImageTileView::getPreferredSize() const
67 {
68     return mof::Vector2D(0, 0);
69 }
70 //}}}
71 //{{{ update
72 void ImageTileView::update( )
73 {
74     m_positionStream.update( );
75     m_sizeStream.update( );
76     m_colorStream.update();
77
78     mof::Rectangle<float> region;
79     mof::Vector2D position = m_positionStream.value();
80     mof::Vector2D size = m_sizeStream.value();
81     region.beginX = position.x;
82     region.beginY = position.y;
83     region.endX = region.beginX + size.x;
84     region.endY = region.beginY + size.y;
85     m_pImpl->tiler.setRegion( region );
86     m_pImpl->tiler.setColor(m_colorStream.value().toColorCode());
87     
88 }
89 //}}}
90 //{{{ draw
91 void ImageTileView::draw( ) const
92 {
93     m_pImpl->tiler.draw( );
94 }
95 //}}}
96 //{{{ setVisible
97 void ImageTileView::setVisible(bool visible)
98 {
99     m_pImpl->tiler.setVisible(visible);
100 }
101 //}}}