//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: A button with no borders that shows a left-pointing or down-pointing // triangle // // $NoKeywords: $ //===========================================================================// #ifndef EXPANDBUTTON_H #define EXPANDBUTTON_H #ifdef _WIN32 #pragma once #endif #include #include namespace vgui { //----------------------------------------------------------------------------- // Purpose: A button with no borders that shows a left-pointing or down-pointing // arrow //----------------------------------------------------------------------------- class ExpandButton : public ToggleButton { DECLARE_CLASS_SIMPLE(ExpandButton, ToggleButton); public: ExpandButton(Panel *parent, const char *panelName); ~ExpandButton(); // Expand the button (selected == expanded) virtual void SetSelected(bool bExpand); // sets whether or not the state of the check can be changed // if this is set to false, then no input in the code or by the user can // change it's state void SetExpandable(bool state); virtual void Paint(); protected: virtual void ApplySchemeSettings(IScheme *pScheme); MESSAGE_FUNC_PTR(OnExpanded, "Expanded", panel); virtual IBorder *GetBorder(bool depressed, bool armed, bool selected, bool keyfocus); /* MESSAGES SENT "Expanded" - sent when the expand button state is changed "state" - button state: 1 is expanded, 0 is unexpanded */ private: bool m_bExpandable; HFont m_hFont; Color m_Color; }; } // namespace vgui #endif // EXPANDBUTTON_H