|
|
|
|
//========= 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
|