12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #pragma once
- #ifndef GWEN_CONTROLS_TABCONTROL_H
- #define GWEN_CONTROLS_TABCONTROL_H
- #include "Gwen/Controls/Base.h"
- #include "Gwen/Controls/Button.h"
- #include "Gwen/Controls/TabButton.h"
- #include "Gwen/Controls/TabStrip.h"
- #include "Gwen/Controls/TabTitleBar.h"
- namespace Gwen
- {
- namespace ControlsInternal
- {
- class ScrollBarButton;
- }
- namespace Controls
- {
- class GWEN_EXPORT TabControl : public Base
- {
- GWEN_CONTROL( TabControl, Base );
- virtual TabButton* AddPage( const UnicodeString& strText, Controls::Base* pPage = NULL );
- virtual void AddPage( TabButton* pButton );
- virtual void OnTabPressed( Controls::Base* control );
- virtual void OnLoseTab( TabButton* pButton );
- virtual int TabCount( void );
- virtual TabButton* GetCurrentButton(){ return m_pCurrentButton; }
- virtual TabStrip* GetTabStrip(){ return m_TabStrip; }
- virtual void SetTabStripPosition( int iDock );
- virtual bool DoesAllowDrag();
- virtual void SetAllowReorder( bool b ){ GetTabStrip()->SetAllowReorder( b ); }
- Gwen::Event::Caller onLoseTab;
- Gwen::Event::Caller onAddTab;
- private:
- virtual void PostLayout( Skin::Base* skin );
- void HandleOverflow();
- void ScrollPressLeft( Base* pFrom );
- void ScrollPressRight( Base* pFrom );
- TabStrip* m_TabStrip;
- TabButton* m_pCurrentButton;
- ControlsInternal::ScrollBarButton* m_pScroll[2];
- int m_iScrollOffset;
- };
- }
- }
- #endif
|