Seaside/SpyCustom/Frame.h
2021-06-16 16:10:20 +03:00

198 lines
5.6 KiB
C++

#ifndef VGUI_FRAME_H
#define VGUI_FRAME_H
#ifdef _WIN32
#pragma once
#endif
#include "vgui.h"
#include "Dar.h"
#include "Panel.h"
#include "EditablePanel.h"
#include "FocusNavGroup.h"
namespace vgui
{
class FrameButton;
class FrameSystemButton;
class Frame : public EditablePanel
{
DECLARE_CLASS_SIMPLE(Frame, EditablePanel);
public:
Frame(Panel* parent, const char* panelName, bool showTaskbarIcon = true, bool bPopup = true);
virtual ~Frame();
virtual void SetTitle(const char* title, bool surfaceTitle);
virtual void SetTitle(const wchar_t* title, bool surfaceTitle);
virtual void Activate();
virtual void ActivateMinimized();
MESSAGE_FUNC(Close, "Close");
MESSAGE_FUNC(CloseModal, "CloseModal");
virtual void SetDeleteSelfOnClose(bool state);
virtual void MoveToCenterOfScreen();
virtual void SetMoveable(bool state);
virtual bool IsMoveable();
virtual void SetSizeable(bool state);
virtual bool IsSizeable();
virtual void SetMenuButtonVisible(bool state);
void SetMenuButtonResponsive(bool state);
virtual void SetMinimizeButtonVisible(bool state);
virtual void SetMaximizeButtonVisible(bool state);
virtual void SetMinimizeToSysTrayButtonVisible(bool state);
virtual void SetCloseButtonVisible(bool state);
virtual bool IsMinimized();
virtual void FlashWindow();
virtual void FlashWindowStop();
virtual void OnCommand(const char* command);
virtual Menu* GetSysMenu();
virtual void SetSysMenu(Menu* menu);
void SetImages(const char* pEnabledImage, const char* pDisabledImage = NULL);
virtual void SetTitleBarVisible(bool state);
virtual void SetClipToParent(bool state);
virtual bool GetClipToParent() const;
virtual void SetSmallCaption(bool state);
virtual bool IsSmallCaption() const;
virtual int GetDraggerSize();
virtual int GetCornerSize();
virtual int GetBottomRightSize();
virtual int GetCaptionHeight();
virtual void LoadControlSettings(const char* dialogResourceName, const char* pathID = NULL, KeyValues* pPreloadedKeyValues = NULL, KeyValues* pConditions = NULL);
void SetChainKeysToParent(bool state);
bool CanChainKeysToParent() const;
virtual void DoModal();
void PlaceUnderCursor();
void DisableFadeEffect(void);
void SetFadeEffectDisableOverride(bool disabled);
virtual void OnGripPanelMoved(int nNewX, int nNewY, int nNewW, int nNewH);
virtual void OnGripPanelMoveFinished() {}
protected:
virtual void OnMousePressed(MouseCode code);
virtual void OnKeyCodeTyped(KeyCode code);
virtual void OnKeyTyped(wchar_t unichar);
virtual void OnKeyCodeReleased(KeyCode code);
virtual void OnKeyFocusTicked();
virtual void ApplySchemeSettings(IScheme* pScheme);
virtual void PerformLayout();
virtual void OnClose();
virtual void OnFinishedClose();
MESSAGE_FUNC(OnMinimize, "Minimize");
virtual void OnMinimizeToSysTray();
MESSAGE_FUNC(OnCloseFrameButtonPressed, "CloseFrameButtonPressed");
virtual void OnChildAdded(VPANEL child);
virtual void ApplySettings(KeyValues* inResourceData);
virtual void GetSettings(KeyValues* outResourceData);
virtual const char* GetDescription(void);
virtual bool GetDefaultScreenPosition(int& x, int& y, int& wide, int& tall);
virtual void PaintBackground();
virtual void OnThink();
virtual void OnScreenSizeChanged(int iOldWide, int iOldTall);
virtual void GetClientArea(int& x, int& y, int& wide, int& tall);
virtual void ApplyUserConfigSettings(KeyValues* userConfig);
virtual void GetUserConfigSettings(KeyValues* userConfig);
virtual bool HasUserConfigSettings();
virtual void GetSizerClientArea(int& x, int& y, int& wide, int& tall);
private:
MESSAGE_FUNC_CHARPTR(InternalSetTitle, "SetTitle", text);
MESSAGE_FUNC(InternalFlashWindow, "FlashWindow");
MESSAGE_FUNC_PARAMS(OnDialogVariablesChanged, "DialogVariables", dialogVariables);
void SetupResizeCursors();
void LayoutProportional(FrameButton* bt);
void FinishClose();
void OnFrameFocusChanged(bool bHasFocus);
Color _titleBarBgColor;
Color _titleBarDisabledBgColor;
Color _titleBarFgColor;
Color _titleBarDisabledFgColor;
Color m_InFocusBgColor;
Color m_OutOfFocusBgColor;
TextImage* _title;
#if !defined( _GAMECONSOLE )
Panel* _topGrip;
Panel* _bottomGrip;
Panel* _leftGrip;
Panel* _rightGrip;
Panel* _topLeftGrip;
Panel* _topRightGrip;
Panel* _bottomLeftGrip;
Panel* _bottomRightGrip;
Panel* _captionGrip;
FrameButton* _minimizeButton;
FrameButton* _maximizeButton;
FrameButton* _minimizeToSysTrayButton;
FrameButton* _closeButton;
FrameSystemButton* _menuButton;
Menu* _sysMenu;
#endif
float m_flTransitionEffectTime;
float m_flFocusTransitionEffectTime;
int m_iClientInsetX;
int m_iClientInsetY;
int m_iTitleTextInsetX;
int m_nGripperWidth;
VPANEL m_hPreviousModal;
HFont m_hCustomTitleFont;
bool _sizeable : 1;
bool _moveable : 1;
bool m_bHasFocus : 1;
bool _flashWindow : 1;
bool _nextFlashState : 1;
bool _drawTitleBar : 1;
bool m_bPreviouslyVisible : 1;
bool m_bFadingOut : 1;
bool m_bDeleteSelfOnClose : 1;
bool m_bDisableFadeEffect : 1;
bool m_bClipToParent : 1;
bool m_bSmallCaption : 1;
bool m_bChainKeysToParent : 1;
bool m_bPrimed : 1;
bool m_iClientInsetXOverridden : 1;
CPanelAnimationVarAliasType(int, m_iTitleTextInsetXOverride, "titletextinsetX", "0", "proportional_int");
CPanelAnimationVarAliasType(int, m_iTitleTextInsetYOverride, "titletextinsetY", "0", "proportional_int");
};
}
#endif