123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #pragma once
- #ifndef GWEN_SKIN_H
- #define GWEN_SKIN_H
- #include "Gwen/BaseRender.h"
- #include "Gwen/Font.h"
- namespace Gwen
- {
- namespace Controls
- {
- class Base;
- }
- namespace Skin
- {
- namespace Symbol
- {
- const unsigned char None = 0;
- const unsigned char ArrowRight = 1;
- const unsigned char Check = 2;
- const unsigned char Dot = 3;
- }
- class GWEN_EXPORT Base
- {
- public:
- Base()
- {
- m_DefaultFont.facename = L"Arial";
- m_DefaultFont.size = 10.0f;
- m_Render = NULL;
- }
- virtual ~Base()
- {
- ReleaseFont( &m_DefaultFont );
- }
- virtual void ReleaseFont( Gwen::Font* fnt )
- {
- if ( !fnt ) return;
- if ( !m_Render ) return;
- m_Render->FreeFont( fnt );
- }
-
- virtual void DrawButton( Controls::Base* control, bool bDepressed, bool bHovered ) = 0;
- virtual void DrawTabButton( Controls::Base* control, bool bActive ) = 0;
- virtual void DrawTabControl( Controls::Base* control, Gwen::Rect CurrentButtonRect ) = 0;
- virtual void DrawTabTitleBar( Controls::Base* control ) = 0;
-
- virtual void DrawMenuItem( Controls::Base* control, bool bSubmenuOpen, bool bChecked ) = 0;
- virtual void DrawMenuStrip( Controls::Base* control ) = 0;
- virtual void DrawMenu( Controls::Base* control, bool bPaddingDisabled ) = 0;
- virtual void DrawRadioButton(Controls::Base* control, bool bSelected, bool bDepressed) = 0;
- virtual void DrawCheckBox( Controls::Base* control, bool bSelected, bool bDepressed ) = 0;
- virtual void DrawGroupBox( Controls::Base* control, int textStart, int textHeight, int textWidth ) = 0;
- virtual void DrawTextBox( Controls::Base* control ) = 0;
- virtual void DrawWindow( Controls::Base* control, int topHeight, bool inFocus ) = 0;
- virtual void DrawHighlight( Controls::Base* control ) = 0;
- virtual void DrawBackground( Controls::Base* control ) = 0;
- virtual void DrawStatusBar( Controls::Base* control ) = 0;
- virtual void DrawShadow( Controls::Base* control ) = 0;
- virtual void DrawScrollBarBar( Controls::Base* control, bool bDepressed, bool isHovered, bool isHorizontal ) = 0;
- virtual void DrawScrollBar( Controls::Base* control, bool isHorizontal, bool bDepressed ) = 0;
- virtual void DrawScrollButton( Controls::Base* control, int iDirection, bool bDepressed ) = 0;
- virtual void DrawProgressBar( Controls::Base* control, bool isHorizontal, float progress) = 0;
- virtual void DrawListBox( Controls::Base* control ) = 0;
- virtual void DrawListBoxLine( Controls::Base* control, bool bSelected ) = 0;
- virtual void DrawSlider( Controls::Base* control, bool bIsHorizontal, int numNotches, int barSize) = 0;
- virtual void DrawComboBox( Controls::Base* control ) = 0;
- virtual void DrawComboBoxButton( Controls::Base* control, bool bDepressed ) = 0;
- virtual void DrawKeyboardHighlight( Controls::Base* control, const Gwen::Rect& rect, int offset ) = 0;
- //virtual void DrawComboBoxKeyboardHighlight( Controls::Base* control );
- virtual void DrawToolTip( Controls::Base* control ) = 0;
- virtual void DrawNumericUpDownButton( Controls::Base* control, bool bDepressed, bool bUp ) = 0;
- virtual void DrawTreeButton( Controls::Base* control, bool bOpen ) = 0;
- virtual void DrawTreeControl( Controls::Base* control ) = 0;
- virtual void DrawTreeNode( Controls::Base* ctrl, bool bOpen, bool bSelected, int iLabelHeight, int iLabelWidth, int iHalfWay, int iLastBranch, bool bIsRoot ) = 0;
- virtual void DrawPropertyRow( Controls::Base* control, int iWidth, bool bBeingEdited ) = 0;
- virtual void DrawPropertyTreeNode( Controls::Base* control, int BorderLeft, int BorderTop ) = 0;
- virtual void DrawColorDisplay( Controls::Base* control, Gwen::Color color ) = 0;
- virtual void DrawModalControl( Controls::Base* control ) = 0;
- virtual void DrawMenuDivider( Controls::Base* control ) = 0;
-
- virtual void SetRender( Gwen::Renderer::Base* renderer )
- {
- m_Render = renderer;
- }
- virtual Gwen::Renderer::Base* GetRender()
- {
- return m_Render;
- }
- virtual void DrawArrowDown( Gwen::Rect rect );
- virtual void DrawArrowUp( Gwen::Rect rect );
- virtual void DrawArrowLeft( Gwen::Rect rect );
- virtual void DrawArrowRight( Gwen::Rect rect );
- virtual void DrawCheck( Gwen::Rect rect );
-
- public:
- virtual Gwen::Font* GetDefaultFont()
- {
- return &m_DefaultFont;
- }
- virtual void SetDefaultFont( const Gwen::UnicodeString& strFacename, float fSize = 10.0f )
- {
- m_DefaultFont.facename = strFacename;
- m_DefaultFont.size = fSize;
- }
- protected:
- Gwen::Font m_DefaultFont;
- Gwen::Renderer::Base* m_Render;
- };
- };
- }
- #endif
|