1 #include <mof/widget/ImageView.hpp>
2 #include "mof/mofGraphics.hpp"
3 #include "mof/Font.hpp"
4 #include "mof/Sprite.hpp"
5 #include "mof/widget/Effect.hpp"
6 #include "mof/utilities.hpp"
7 #include "mof/widgets.hpp"
8 #include "mof/streams.hpp"
15 struct ImageView::Impl
18 mof::Vector2D preferredSize_;
35 const tstring& caption ,
42 m_pImpl->pSprite = Sprite::createTextSprite( font , caption );
43 m_pImpl->pSprite->getPositionStream( ) << getPositionStream( );
44 m_pImpl->pSprite->getColorStream( ) << getColorStream( );
45 m_pImpl->preferredSize_ = m_pImpl->pSprite->getSizeStream().value();
46 getSizeStream() << m_pImpl->preferredSize_;
53 const TextureHandler& texture ,
54 const Rectangle<float>& tRect
57 m_pImpl( new Impl( ) )
60 m_pImpl->pSprite = new Sprite( texture , tRect );
61 m_pImpl->pSprite->getPositionStream( ) << getPositionStream( );
62 m_pImpl->pSprite->getColorStream( ) << getColorStream( );
63 m_pImpl->preferredSize_ = m_pImpl->pSprite->getSizeStream().value();
64 getSizeStream() << m_pImpl->preferredSize_;
72 const TextureHandler& texture
75 m_pImpl( new Impl( ) )
78 m_pImpl->pSprite = new Sprite( texture , Rectangle<float>(0 , 0 , 1 , 1) );
79 m_pImpl->pSprite->getPositionStream( ) << getPositionStream( );
80 m_pImpl->pSprite->getColorStream( ) << getColorStream( );
81 m_pImpl->preferredSize_ = m_pImpl->pSprite->getSizeStream().value();
82 getSizeStream() << m_pImpl->preferredSize_;
88 ImageView::~ImageView()
93 void ImageView::update( )
95 m_positionStream.update( );
96 m_sizeStream.update( );
97 m_colorStream.update( );
98 m_pImpl->pSprite->update();
102 void ImageView::draw( ) const
104 m_pImpl->pSprite->draw( );
108 void ImageView::setVisible(bool visible)
110 m_pImpl->pSprite->setVisible(visible);
114 FrameNumber ImageView::show(bool)
120 FrameNumber ImageView::hide(bool)
126 FrameNumber ImageView::focus(bool)
132 FrameNumber ImageView::blur(bool imidiately)
138 FrameNumber ImageView::click(bool)
143 //{{{ getPreferredSize
144 mof::Vector2D ImageView::getPreferredSize() const
146 return m_pImpl->preferredSize_;