mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-19 12:06:07 +08:00
Added original SDK code for Alien Swarm.
This commit is contained in:
265
public/vgui_controls/Frame.h
Normal file
265
public/vgui_controls/Frame.h
Normal file
@ -0,0 +1,265 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#ifndef VGUI_FRAME_H
|
||||
#define VGUI_FRAME_H
|
||||
|
||||
#ifdef _WIN32
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#include <vgui/VGUI.h>
|
||||
#include <vgui/Dar.h>
|
||||
#include <vgui_controls/Panel.h>
|
||||
#include <vgui_controls/EditablePanel.h>
|
||||
#include <vgui_controls/FocusNavGroup.h>
|
||||
|
||||
namespace vgui
|
||||
{
|
||||
|
||||
class FrameButton;
|
||||
class FrameSystemButton;
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Purpose: Windowed frame
|
||||
//-----------------------------------------------------------------------------
|
||||
class Frame : public EditablePanel
|
||||
{
|
||||
DECLARE_CLASS_SIMPLE( Frame, EditablePanel );
|
||||
|
||||
public:
|
||||
Frame(Panel *parent, const char *panelName, bool showTaskbarIcon = true, bool bPopup = true );
|
||||
virtual ~Frame();
|
||||
|
||||
// Set the text in the title bar. Set surfaceTitle=true if you want this to be the taskbar text as well.
|
||||
virtual void SetTitle(const char *title, bool surfaceTitle);
|
||||
virtual void SetTitle(const wchar_t *title, bool surfaceTitle);
|
||||
|
||||
// Bring the frame to the front and requests focus, ensures it's not minimized
|
||||
virtual void Activate();
|
||||
|
||||
// activates the dialog; if dialog is not currently visible it starts it minimized and flashing in the taskbar
|
||||
virtual void ActivateMinimized();
|
||||
|
||||
// closes the dialog
|
||||
MESSAGE_FUNC( Close, "Close" );
|
||||
MESSAGE_FUNC( CloseModal, "CloseModal" );
|
||||
|
||||
// sets the dialog to delete self on close
|
||||
virtual void SetDeleteSelfOnClose( bool state );
|
||||
|
||||
// Move the dialog to the center of the screen
|
||||
virtual void MoveToCenterOfScreen();
|
||||
|
||||
// Set the movability of the panel
|
||||
virtual void SetMoveable(bool state);
|
||||
// Check the movability of the panel
|
||||
virtual bool IsMoveable();
|
||||
|
||||
// Set the resizability of the panel
|
||||
virtual void SetSizeable(bool state);
|
||||
// Check the resizability of the panel
|
||||
virtual bool IsSizeable();
|
||||
// Toggle visibility of the system menu button
|
||||
virtual void SetMenuButtonVisible(bool state);
|
||||
void SetMenuButtonResponsive(bool state);
|
||||
|
||||
// Toggle visibility of the minimize button
|
||||
virtual void SetMinimizeButtonVisible(bool state);
|
||||
// Toggle visibility of the maximize button
|
||||
virtual void SetMaximizeButtonVisible(bool state);
|
||||
// Toggles visibility of the minimize-to-systray icon (defaults to false)
|
||||
virtual void SetMinimizeToSysTrayButtonVisible(bool state);
|
||||
|
||||
// Toggle visibility of the close button
|
||||
virtual void SetCloseButtonVisible(bool state);
|
||||
|
||||
// returns true if the dialog is currently minimized
|
||||
virtual bool IsMinimized();
|
||||
// Flash the window system tray button until the frame gets focus
|
||||
virtual void FlashWindow();
|
||||
// Stops any window flashing
|
||||
virtual void FlashWindowStop();
|
||||
// command handling
|
||||
virtual void OnCommand(const char *command);
|
||||
|
||||
// Get the system menu
|
||||
virtual Menu *GetSysMenu();
|
||||
// Set the system menu
|
||||
virtual void SetSysMenu(Menu *menu);
|
||||
|
||||
// Set the system menu images
|
||||
void SetImages( const char *pEnabledImage, const char *pDisabledImage = NULL );
|
||||
|
||||
// set whether the title bar should be rendered
|
||||
virtual void SetTitleBarVisible( bool state );
|
||||
|
||||
// When moving via caption, don't let any part of window go outside parent's bounds
|
||||
virtual void SetClipToParent( bool state );
|
||||
virtual bool GetClipToParent() const;
|
||||
|
||||
// Set to true to make the caption height small
|
||||
virtual void SetSmallCaption( bool state );
|
||||
virtual bool IsSmallCaption() const;
|
||||
|
||||
virtual int GetDraggerSize();
|
||||
virtual int GetCornerSize();
|
||||
virtual int GetBottomRightSize();
|
||||
virtual int GetCaptionHeight();
|
||||
|
||||
/* CUSTOM MESSAGE HANDLING
|
||||
"SetTitle"
|
||||
input: "text" - string to set the title to be
|
||||
*/
|
||||
|
||||
// Load the control settings
|
||||
virtual void LoadControlSettings( const char *dialogResourceName, const char *pathID = NULL, KeyValues *pPreloadedKeyValues = NULL, KeyValues *pConditions = NULL );
|
||||
|
||||
void SetChainKeysToParent( bool state );
|
||||
bool CanChainKeysToParent() const;
|
||||
|
||||
// Shows the dialog in a modal fashion
|
||||
virtual void DoModal();
|
||||
|
||||
void PlaceUnderCursor( );
|
||||
|
||||
// Disables the fade-in/out-effect even if configured in the scheme settings
|
||||
void DisableFadeEffect( void );
|
||||
|
||||
// Temporarily enables or disables the fade effect rather than zeroing the fade times as done in DisableFadeEffect
|
||||
void SetFadeEffectDisableOverride( bool disabled );
|
||||
|
||||
virtual void OnGripPanelMoved( int nNewX, int nNewY, int nNewW, int nNewH );
|
||||
virtual void OnGripPanelMoveFinished() {}
|
||||
|
||||
protected:
|
||||
// Respond to mouse presses
|
||||
virtual void OnMousePressed(MouseCode code);
|
||||
// Respond to Key typing
|
||||
virtual void OnKeyCodeTyped(KeyCode code);
|
||||
virtual void OnKeyTyped(wchar_t unichar);
|
||||
// Respond to Key releases
|
||||
virtual void OnKeyCodeReleased(KeyCode code);
|
||||
// Respond to Key focus ticks
|
||||
virtual void OnKeyFocusTicked();
|
||||
virtual void ApplySchemeSettings(IScheme *pScheme);
|
||||
// Recalculate the position of all items
|
||||
virtual void PerformLayout();
|
||||
// Respond when a close message is recieved. Can be called directly to close a frame.
|
||||
virtual void OnClose();
|
||||
// Respond to a window finishing its closure. i.e. when a fading window has fully finished its fadeout.
|
||||
virtual void OnFinishedClose();
|
||||
// Minimize the window on the taskbar.
|
||||
MESSAGE_FUNC( OnMinimize, "Minimize" );
|
||||
// Called when minimize-to-systray button is pressed (does nothing by default)
|
||||
virtual void OnMinimizeToSysTray();
|
||||
// the frame close button was pressed
|
||||
MESSAGE_FUNC( OnCloseFrameButtonPressed, "CloseFrameButtonPressed" );
|
||||
// Add the child to the focus nav group
|
||||
virtual void OnChildAdded(VPANEL child);
|
||||
// settings
|
||||
virtual void ApplySettings(KeyValues *inResourceData);
|
||||
// records the settings into the resource data
|
||||
virtual void GetSettings(KeyValues *outResourceData);
|
||||
virtual const char *GetDescription( void );
|
||||
|
||||
// gets the default position and size on the screen to appear the first time (defaults to centered)
|
||||
virtual bool GetDefaultScreenPosition(int &x, int &y, int &wide, int &tall);
|
||||
|
||||
// painting
|
||||
virtual void PaintBackground();
|
||||
|
||||
// per-frame thinking, used for transition effects
|
||||
virtual void OnThink();
|
||||
|
||||
// screen size
|
||||
virtual void OnScreenSizeChanged(int iOldWide, int iOldTall);
|
||||
|
||||
// Get the size of the panel inside the frame edges.
|
||||
virtual void GetClientArea(int &x, int &y, int &wide, int &tall);
|
||||
|
||||
// user configuration settings
|
||||
// this is used for any control details the user wants saved between sessions
|
||||
// eg. dialog positions, last directory opened, list column width
|
||||
virtual void ApplyUserConfigSettings(KeyValues *userConfig);
|
||||
|
||||
// returns user config settings for this control
|
||||
virtual void GetUserConfigSettings(KeyValues *userConfig);
|
||||
|
||||
// optimization, return true if this control has any user config settings
|
||||
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( _X360 )
|
||||
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" );
|
||||
};
|
||||
|
||||
} // namespace vgui
|
||||
|
||||
#endif // VGUI_FRAME_H
|
Reference in New Issue
Block a user