forked from FWGS/Paranoia2
102 lines
1.9 KiB
C++
102 lines
1.9 KiB
C++
//========= Copyright © 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.
|
|
public:
|
|
|
|
virtual void internalMousePressed(MouseCode code);
|
|
|
|
|
|
protected:
|
|
|
|
void SetupControls();
|
|
|
|
|
|
// InputSignal overrides.
|
|
protected:
|
|
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
|