You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
136 lines
3.5 KiB
136 lines
3.5 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef BUILDMODEDIALOG_H |
|
#define BUILDMODEDIALOG_H |
|
|
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
#include <vgui_controls/Frame.h> |
|
|
|
struct PanelItem_t; |
|
|
|
namespace vgui |
|
{ |
|
|
|
//----------------------------------------------------------------------------- |
|
// Purpose: Dialog for use in build mode editing |
|
//----------------------------------------------------------------------------- |
|
class BuildModeDialog : public Frame |
|
{ |
|
DECLARE_CLASS_SIMPLE( BuildModeDialog, Frame ); |
|
|
|
public: |
|
BuildModeDialog( BuildGroup *buildGroup ); |
|
~BuildModeDialog(); |
|
|
|
// Set the current control to edit |
|
MESSAGE_FUNC_PTR( SetActiveControl, "SetActiveControl", panelPtr ); |
|
|
|
// Update the current control with the current resource settings. |
|
MESSAGE_FUNC_PTR( UpdateControlData, "UpdateControlData", panel ); |
|
|
|
// Store the current settings of all panels in the build group. |
|
virtual KeyValues *StoreSettings(); |
|
|
|
// Store the current settings of the current panel |
|
MESSAGE_FUNC( StoreUndoSettings, "StoreUndo" ); |
|
|
|
/* CUSTOM MESSAGE HANDLING |
|
"SetActiveControl" |
|
input: "PanelPtr" - panel to set active control to edit to |
|
*/ |
|
|
|
MESSAGE_FUNC( OnShowNewControlMenu, "ShowNewControlMenu" ); |
|
|
|
protected: |
|
virtual void PerformLayout(); |
|
virtual void OnClose(); |
|
virtual void OnCommand( const char *command ); |
|
virtual void ApplySchemeSettings( vgui::IScheme *pScheme ); |
|
virtual bool IsBuildGroupEnabled(); |
|
|
|
private: |
|
void CreateControls(); |
|
|
|
void OnKeyCodeTyped(KeyCode code); |
|
MESSAGE_FUNC( ApplyDataToControls, "ApplyDataToControls" ); |
|
MESSAGE_FUNC_PTR( OnTextChanged, "TextChanged", panel ); |
|
MESSAGE_FUNC( OnDeletePanel, "DeletePanel" ); |
|
void ExitBuildMode(); |
|
Panel *OnNewControl(const char *name, int x = 0, int y = 0); |
|
MESSAGE_FUNC( DoUndo, "Undo" ); |
|
MESSAGE_FUNC( DoCopy, "Copy" ); |
|
MESSAGE_FUNC( DoPaste, "Paste" ); |
|
MESSAGE_FUNC( EnableSaveButton, "EnableSaveButton" ); |
|
void RevertToSaved(); |
|
void ShowHelp(); |
|
MESSAGE_FUNC( ShutdownBuildMode, "Close" ); |
|
MESSAGE_FUNC( OnPanelMoved, "PanelMoved" ); |
|
MESSAGE_FUNC( OnTextKillFocus, "TextKillFocus" ); |
|
MESSAGE_FUNC( OnReloadLocalization, "ReloadLocalization" ); |
|
MESSAGE_FUNC_CHARPTR( OnCreateNewControl, "CreateNewControl", text ); |
|
|
|
MESSAGE_FUNC_CHARPTR( OnSetClipboardText, "SetClipboardText", text ); |
|
|
|
MESSAGE_FUNC_INT( OnChangeChild, "OnChangeChild", direction ); |
|
|
|
Panel *m_pCurrentPanel; |
|
BuildGroup *m_pBuildGroup; |
|
Label *m_pStatusLabel; |
|
ComboBox *m_pFileSelectionCombo; |
|
Divider *m_pDivider; |
|
|
|
class PanelList; |
|
PanelList *m_pPanelList; |
|
|
|
Button *m_pSaveButton; |
|
Button *m_pApplyButton; |
|
Button *m_pExitButton; |
|
Button *m_pDeleteButton; |
|
Button *m_pReloadLocalization; |
|
MenuButton *m_pVarsButton; |
|
|
|
bool _autoUpdate; |
|
|
|
ComboBox *m_pAddNewControlCombo; // combo box for adding new controls |
|
KeyValues *_undoSettings; // settings for the Undo command |
|
KeyValues *_copySettings; // settings for the Copy/Paste command |
|
char _copyClassName[255]; |
|
int m_nClick[ 2 ]; |
|
|
|
void RemoveAllControls( void ); |
|
void UpdateEditControl(PanelItem_t &panelItem, const char *datstring); |
|
|
|
enum { |
|
TYPE_STRING, |
|
TYPE_INTEGER, |
|
TYPE_COLOR, |
|
TYPE_ALIGNMENT, |
|
TYPE_AUTORESIZE, |
|
TYPE_CORNER, |
|
TYPE_LOCALIZEDSTRING, |
|
}; |
|
|
|
vgui::DHANDLE< Menu > m_hContextMenu; |
|
|
|
ComboBox *m_pEditableParents; |
|
ComboBox *m_pEditableChildren; |
|
|
|
Button *m_pNextChild; |
|
Button *m_pPrevChild; |
|
|
|
friend class PanelList; |
|
}; |
|
|
|
} // namespace vgui |
|
|
|
|
|
#endif // BUILDMODEDIALOG_H |
|
|
|
|