1 #include "mof/PlainWidgetView.hpp"
2 #include "mof/GraphicsDevice.hpp"
3 #include "mof/Sprite.hpp"
4 #include "mof/mofAnimations.hpp"
5 #include "mof/Font.hpp"
8 struct mof::PlainWidgetView::Impl{
9 mof::Animation<mof::Matrix2D>::Handler transform;
10 mof::Animation<bool>::Handler visible;
11 mof::FrameNumber frame;
12 mof::Rectangle<int> bounds;
13 mof::Sprite* pCaption;
18 bounds(mof::Rectangle<int>(0 , 0 , 0 , 0)) , pCaption(NULL)
28 mof::PlainWidgetView::PlainWidgetView
30 mof::Color begin , mof::Color end
32 : m_pImpl( new Impl( ) )
36 //m_pImpl->pFrame = new mof::Frame(m_pImpl->pGraphicsDevice , pTexture);
37 m_pImpl->transform = mof::makeConstantHandler(mof::Matrix2D::createIdentity());
40 m_pImpl->visible = mof::makeConstantHandler(false);
43 //m_pImpl->pCaption = mof::Sprite::createTextSprite(pGraphicsDevice , mof::Font(mof::Font::MS_P_GOTHIC , 25) , title );
46 mof::PlainWidgetView::~PlainWidgetView(){
52 void mof::PlainWidgetView::setBounds(const mof::Rectangle<int>& bounds){
53 m_pImpl->bounds = bounds;
56 mof::Rectangle<int> mof::PlainWidgetView::getBounds() const{
57 return m_pImpl->transform->getValue(m_pImpl->frame).toBoundingBox();
62 void mof::PlainWidgetView::focus(){
66 void mof::PlainWidgetView::blur(){
71 void mof::PlainWidgetView::show(){
72 const int width = m_pImpl->bounds.endX - m_pImpl->bounds.beginX;
73 const int height = m_pImpl->bounds.endY - m_pImpl->bounds.beginY;
75 mof::Animation<mof::Matrix2D>::Handler list[] = {
76 mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(mof::Matrix2D::createScaling(mof::Vector2D(width , height)))) ,
77 mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(
78 mof::Matrix2D::createTranslation(mof::Vector2D(m_pImpl->bounds.beginX , m_pImpl->bounds.beginY))
81 m_pImpl->transform = mof::Animation<mof::Matrix2D>::Handler(new mof::CascadingAnimation<mof::Matrix2D>(list[0] , list[1]));
85 m_pImpl->visible = mof::makeConstantHandler(true);
91 void mof::PlainWidgetView::close(){
92 const int width = m_pImpl->bounds.endX - m_pImpl->bounds.beginX;
93 const int height = m_pImpl->bounds.endY - m_pImpl->bounds.beginY;
95 mof::Animation<mof::Matrix2D>::Handler list[] = {
96 mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(mof::Matrix2D::createScaling(mof::Vector2D(width , height)))) ,
97 mof::Animation<mof::Matrix2D>::Handler(mof::makeConstantHandler(
98 mof::Matrix2D::createTranslation(mof::Vector2D(m_pImpl->bounds.beginX , m_pImpl->bounds.beginY))
101 m_pImpl->transform = mof::Animation<mof::Matrix2D>::Handler(new mof::CascadingAnimation<mof::Matrix2D>(list[0] , list[1]));
104 //visible
\82Ì
\90Ý
\92è
105 mof::KeyFrameAnimation<bool>::KeyFrame keyFrames[] = {
106 mof::makeKeyFrame(0 , true) ,
107 mof::makeKeyFrame(20 , false)
109 m_pImpl->visible = mof::Animation<bool>::Handler(
110 new mof::KeyFrameAnimation<bool>(keyFrames[0] , keyFrames[1] , &mof::stepInterpolate<bool> )
118 void mof::PlainWidgetView::update(){
120 //m_pImpl->pCaption->update();
124 void mof::PlainWidgetView::draw(){
125 if(m_pImpl->visible->getValue(m_pImpl->frame)){
126 //m_pImpl->pCaption->draw();