123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /*
- GWEN
- Copyright (c) 2010 Facepunch Studios
- See license in Gwen.h
- */
- #pragma once
- #ifndef GWEN_CONTROLS_COMBOBOX_H
- #define GWEN_CONTROLS_COMBOBOX_H
- #include "Gwen/Controls/Base.h"
- #include "Gwen/Controls/Button.h"
- #include "Gwen/Gwen.h"
- #include "Gwen/Skin.h"
- #include "Gwen/Controls/TextBox.h"
- #include "Gwen/Controls/Menu.h"
- namespace Gwen
- {
- namespace Controls
- {
- class GWEN_EXPORT ComboBoxButton : public Button
- {
- GWEN_CONTROL_INLINE( ComboBoxButton, Button ){}
- virtual void Render( Skin::Base* skin )
- {
- skin->DrawComboBoxButton( this, m_bDepressed );
- }
- };
- class GWEN_EXPORT ComboBox : public Button
- {
- public:
- GWEN_CONTROL( ComboBox, Button );
- virtual void Render( Skin::Base* skin );
- virtual Gwen::Controls::Label* GetSelectedItem();
- virtual void OnPress();
- void OpenButtonPressed( Controls::Base* /*pControl*/ );
- virtual void OnItemSelected( Controls::Base* pControl );
- virtual void OpenList();
- virtual void CloseList();
-
- virtual Controls::Base* GetControlAt( int x, int y )
- {
- if ( x < 0 || y < 0 || x >= Width() || y >= Height() )
- return NULL;
- return this;
- }
- virtual bool IsMenuComponent()
- {
- return true;
- }
- virtual void ClearItems();
- virtual MenuItem* AddItem( const UnicodeString& strLabel, const String& strName = "", Gwen::Event::Handler* pHandler = NULL, Gwen::Event::Handler::Function fn = NULL );
- virtual bool OnKeyUp( bool bDown );
- virtual bool OnKeyDown( bool bDown );
- virtual void RenderFocus( Gwen::Skin::Base* skin );
- virtual void OnLostKeyboardFocus();
- virtual void OnKeyboardFocus();
- virtual bool IsMenuOpen();
- Gwen::Event::Caller onSelection;
- protected:
- Menu* m_Menu;
- MenuItem* m_SelectedItem;
- Controls::Base* m_Button;
- };
-
- }
- }
- #endif
|