Seaside/SpyCustom/CheckButton.h
2021-06-16 16:08:23 +03:00

85 lines
1.7 KiB
C++

#ifndef CHECKBUTTON_H
#define CHECKBUTTON_H
#ifdef _WIN32
#pragma once
#endif
#include "VGUI.h"
#include "ToggleButton.h"
#include "TextImage.h"
namespace vgui
{
class TextImage;
class CheckImage : public TextImage
{
public:
CheckImage(CheckButton* CheckButton) : TextImage("g")
{
_CheckButton = CheckButton;
SetSize(20, 13);
}
virtual void Paint();
virtual void SetColor(Color color)
{
_borderColor1 = color;
_borderColor2 = color;
_checkColor = color;
}
Color _borderColor1;
Color _borderColor2;
Color _checkColor;
Color _bgColor;
private:
CheckButton* _CheckButton;
};
class CheckButton : public ToggleButton
{
DECLARE_CLASS_SIMPLE(CheckButton, ToggleButton);
public:
CheckButton(Panel* parent, const char* panelName, const char* text);
~CheckButton();
virtual void SetSelected(bool state);
virtual void SetCheckButtonCheckable(bool state);
virtual bool IsCheckButtonCheckable() const { return m_bCheckButtonCheckable; }
Color GetDisabledFgColor() { return _disabledFgColor; }
Color GetDisabledBgColor() { return _disabledBgColor; }
CheckImage* GetCheckImage() { return _checkBoxImage; }
virtual void SetHighlightColor(Color fgColor);
protected:
virtual void ApplySchemeSettings(IScheme* pScheme);
MESSAGE_FUNC_PTR(OnCheckButtonChecked, "CheckButtonChecked", panel);
virtual Color GetButtonFgColor();
virtual IBorder* GetBorder(bool depressed, bool armed, bool selected, bool keyfocus);
private:
enum { CHECK_INSET = 6 };
bool m_bCheckButtonCheckable;
CheckImage* _checkBoxImage;
Color _disabledFgColor;
Color _disabledBgColor;
Color _highlightFgColor;
};
}
#endif