|
|
//========= Copyright <EFBFBD> 1996-2002, Valve LLC, All rights reserved. ============ |
|
|
// |
|
|
// Purpose: |
|
|
// |
|
|
// $NoKeywords: $ |
|
|
//============================================================================= |
|
|
|
|
|
#ifndef VGUI_CHECKBUTTON2_H |
|
|
#define VGUI_CHECKBUTTON2_H |
|
|
#ifdef _WIN32 |
|
|
#pragma once |
|
|
#endif |
|
|
|
|
|
#include "VGUI_Label.h" |
|
|
#include "VGUI_ImagePanel.h" |
|
|
#include "vgui_defaultinputsignal.h" |
|
|
|
|
|
namespace vgui |
|
|
{ |
|
|
class CCheckButton2; |
|
|
class ICheckButton2Handler |
|
|
{ |
|
|
public: |
|
|
virtual void StateChanged( CCheckButton2 *pButton ) = 0; |
|
|
}; |
|
|
|
|
|
// VGUI checkbox class. |
|
|
// - Provides access to the checkbox images. |
|
|
// - Provides an easy callback mechanism for state changes. |
|
|
// - Default background is invisible, and default text color is white. |
|
|
class CCheckButton2 : public Panel, public CDefaultInputSignal |
|
|
{ |
|
|
public: |
|
|
CCheckButton2(); |
|
|
~CCheckButton2(); |
|
|
|
|
|
// Initialize the button with these. |
|
|
void SetImages( char const *pChecked, char const *pUnchecked ); |
|
|
void SetImages( Image *pChecked, Image *pUnchecked ); // If you use this, the button will never delete the images. |
|
|
void DeleteImages(); |
|
|
|
|
|
// The checkbox can be to the left or the right of the text (default is left). |
|
|
void SetCheckboxLeft( bool bLeftAlign ); |
|
|
bool GetCheckboxLeft(); |
|
|
|
|
|
// Set the label text. |
|
|
void SetText( char const *pText, ... ); |
|
|
void SetTextColor( int r, int g, int b, int a ); |
|
|
|
|
|
// You can register for change notification here. |
|
|
void SetHandler( ICheckButton2Handler *pHandler ); |
|
|
|
|
|
// Get/set the check state. |
|
|
bool IsChecked(); |
|
|
void SetChecked( bool bChecked ); |
|
|
|
|
|
// Panel overrides. |
|
|
virtual void internalMousePressed( MouseCode code ); |
|
|
|
|
|
protected: |
|
|
void SetupControls(); |
|
|
|
|
|
// InputSignal overrides. |
|
|
virtual void mousePressed( MouseCode code, Panel *panel ); |
|
|
|
|
|
public: |
|
|
ICheckButton2Handler *m_pHandler; |
|
|
|
|
|
bool m_bCheckboxLeft; |
|
|
Label m_Label; |
|
|
ImagePanel m_CheckboxPanel; |
|
|
|
|
|
Image *m_pChecked; |
|
|
Image *m_pUnchecked; |
|
|
bool m_bOwnImages; |
|
|
|
|
|
bool m_bChecked; |
|
|
}; |
|
|
} |
|
|
#endif // VGUI_CHECKBUTTON2_H
|
|
|
|