Subversion Repositories spk

Rev

Blame | Last modification | View Log | RSS feed

#ifndef __DISPLAYTEXT_H__
#define __DISPLAYTEXT_H__

#include "Display.h"
#include "RenderText.h"

class CDisplayText : public CDisplay
{
public:
        CDisplayText ( COverlay *overlay, MyDirect3DDevice9 *device, CyString name, CyString text ) : CDisplay ( overlay, device, name )
        {
                m_pText = new CRenderText ( 20 );
                m_pText->InitFont ( device, TEXT("Ariel"), 20 );
                m_pText->SetPosition ( 1, 1 );
                m_bNoBorder = true;
                AddObject ( m_pText );
                SetText(text);
        }

        virtual void SetSize ( int width, int height, int maxwidth, int maxheight )
        {
                CDisplay::SetSize ( width, height, maxwidth, maxheight );
                m_pText->SetSize ( m_iSizeX, m_iSizeY );
        }

        virtual void SetSize(int width, int height)
        {
                CDisplay::SetSize(width, height);
                m_pText->SetSize(m_iSizeX, m_iSizeY);
        }

        void SetText(const CyString &text)
        {
                m_pText->SetText(text);
        }

        void SetPosition(int x, int y)
        {
                if ( x == 0 )
                {
                        x = (m_iMaxWidth / 2) - (m_iSizeX / 2);
                        m_pText->SetAlignment(DT_CENTER | DT_WORDBREAK);
                }
                else if ( x < 0 )
                {
                        m_pText->SetAlignment(DT_RIGHT);
                        x = (m_iMaxWidth + x) - m_iSizeX;
                }

                if ( y == 0 )
                        y = (m_iMaxHeight / 2) - 10;
                else if ( y < 0 )
                        y = m_iMaxHeight - 20;
                m_pText->SetPosition(x, y);
        }

protected:
        CRenderText *m_pText;
};

#endif //__DISPLAYMESSAGE_H__