Label.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /*
  2. GWEN
  3. Copyright (c) 2010 Facepunch Studios
  4. See license in Gwen.h
  5. */
  6. #pragma once
  7. #ifndef GWEN_CONTROLS_LABEL_H
  8. #define GWEN_CONTROLS_LABEL_H
  9. #include "Gwen/BaseRender.h"
  10. #include "Gwen/Controls/Base.h"
  11. #include "Gwen/Controls/Text.h"
  12. namespace Gwen
  13. {
  14. namespace Controls
  15. {
  16. class GWEN_EXPORT Label : public Controls::Base
  17. {
  18. public:
  19. GWEN_CONTROL( Label, Controls::Base );
  20. virtual void SetText( const UnicodeString& str, bool bDoEvents = true );
  21. virtual void SetText( const String& str, bool bDoEvents = true );
  22. virtual const UnicodeString& GetText() const { return m_Text->GetText(); }
  23. virtual void Render( Skin::Base* /*skin*/ ){}
  24. virtual void Layout( Skin::Base* skin );
  25. virtual void SizeToContents();
  26. virtual void SetAlignment( int iAlign ){ m_iAlign = iAlign; }
  27. virtual void SetFont( Gwen::Font* pFont ){ m_Text->SetFont( pFont ); }
  28. virtual Gwen::Font* GetFont(){ return m_Text->GetFont(); }
  29. virtual void SetTextColor( const Gwen::Color& col ){ m_Text->SetTextColor( col ); }
  30. inline const Gwen::Color &TextColor() const { return m_Text->TextColor(); }
  31. virtual int TextWidth() { return m_Text->Width(); }
  32. virtual int TextRight() { return m_Text->Right(); }
  33. virtual int TextHeight() { return m_Text->Height(); }
  34. virtual int TextX() { return m_Text->X(); }
  35. virtual int TextY() { return m_Text->Y(); }
  36. virtual int TextLength() { return m_Text->Length(); }
  37. Gwen::Point GetCharacterPosition( int iChar );
  38. virtual void SetTextPadding( const Padding& padding ){ m_rTextPadding = padding; Invalidate(); InvalidateParent(); }
  39. virtual const Padding& GetTextPadding(){ return m_rTextPadding; }
  40. virtual Gwen::UnicodeString GetText() { return m_Text->GetText(); }
  41. inline int Alignment() const { return m_iAlign; }
  42. protected:
  43. virtual void OnTextChanged(){};
  44. Padding m_rTextPadding;
  45. ControlsInternal::Text* m_Text;
  46. int m_iAlign;
  47. };
  48. }
  49. }
  50. #endif