mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-07 10:03:29 +08:00
198 lines
5.6 KiB
C++
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 |