mirror of
https://github.com/0TheSpy/Seaside.git
synced 2025-01-10 11:19:38 +08:00
98 lines
3.3 KiB
C
98 lines
3.3 KiB
C
|
#ifndef EDITABLEPANEL_H
|
||
|
#define EDITABLEPANEL_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "Panel.h"
|
||
|
#include "FocusNavGroup.h"
|
||
|
|
||
|
namespace vgui
|
||
|
{
|
||
|
|
||
|
class EditablePanel : public Panel
|
||
|
{
|
||
|
DECLARE_CLASS_SIMPLE(EditablePanel, Panel);
|
||
|
|
||
|
public:
|
||
|
EditablePanel(Panel* parent, const char* panelName);
|
||
|
EditablePanel(Panel* parent, const char* panelName, HScheme hScheme);
|
||
|
|
||
|
virtual ~EditablePanel();
|
||
|
|
||
|
virtual void LoadControlSettings(const char* dialogResourceName, const char* pathID = NULL, KeyValues* pPreloadedKeyValues = NULL, KeyValues* pConditions = NULL);
|
||
|
virtual void ApplySettings(KeyValues* inResourceData);
|
||
|
|
||
|
virtual void LoadUserConfig(const char* configName, int dialogID = 0);
|
||
|
virtual void SaveUserConfig();
|
||
|
|
||
|
virtual void LoadControlSettingsAndUserConfig(const char* dialogResourceName, int dialogID = 0);
|
||
|
|
||
|
virtual void ActivateBuildMode();
|
||
|
|
||
|
virtual BuildGroup* GetBuildGroup();
|
||
|
|
||
|
virtual Panel* CreateControlByName(const char* controlName);
|
||
|
|
||
|
virtual void SetControlString(const char* controlName, const char* string);
|
||
|
virtual void SetControlString(const char* controlName, const wchar_t* string);
|
||
|
virtual void SetControlInt(const char* controlName, int state);
|
||
|
virtual int GetControlInt(const char* controlName, int defaultState);
|
||
|
virtual const char* GetControlString(const char* controlName, const char* defaultString = "");
|
||
|
virtual void GetControlString(const char* controlName, char* buf, int bufSize, const char* defaultString = "");
|
||
|
virtual void SetControlEnabled(const char* controlName, bool enabled);
|
||
|
virtual void SetControlVisible(const char* controlName, bool visible);
|
||
|
|
||
|
virtual void SetDialogVariable(const char* varName, const char* value);
|
||
|
virtual void SetDialogVariable(const char* varName, const wchar_t* value);
|
||
|
virtual void SetDialogVariable(const char* varName, int value);
|
||
|
virtual void SetDialogVariable(const char* varName, float value);
|
||
|
|
||
|
virtual void RequestFocus(int direction = 0);
|
||
|
virtual bool RequestFocusNext(VPANEL panel);
|
||
|
virtual bool RequestFocusPrev(VPANEL panel);
|
||
|
virtual void OnSetFocus();
|
||
|
virtual void OnRequestFocus(VPANEL subFocus, VPANEL defaultPanel);
|
||
|
virtual VPANEL GetCurrentKeyFocus();
|
||
|
virtual Panel* HasHotkey(wchar_t key);
|
||
|
|
||
|
virtual void OnKeyCodePressed(KeyCode code);
|
||
|
|
||
|
virtual bool RequestInfo(KeyValues* data);
|
||
|
virtual void RegisterControlSettingsFile(const char* dialogResourceName, const char* pathID = NULL);
|
||
|
|
||
|
KeyValues* GetDialogVariables();
|
||
|
|
||
|
protected:
|
||
|
virtual void PaintBackground();
|
||
|
|
||
|
virtual FocusNavGroup& GetFocusNavGroup();
|
||
|
|
||
|
MESSAGE_FUNC_HANDLE(OnDefaultButtonSet, "DefaultButtonSet", button);
|
||
|
MESSAGE_FUNC_HANDLE(OnCurrentDefaultButtonSet, "CurrentDefaultButtonSet", button);
|
||
|
MESSAGE_FUNC(OnFindDefaultButton, "FindDefaultButton");
|
||
|
|
||
|
virtual void OnChildAdded(VPANEL child);
|
||
|
virtual void OnSizeChanged(int wide, int tall);
|
||
|
virtual void OnClose();
|
||
|
|
||
|
virtual void ApplyUserConfigSettings(KeyValues* userConfig);
|
||
|
|
||
|
virtual void GetUserConfigSettings(KeyValues* userConfig);
|
||
|
|
||
|
private:
|
||
|
void ForceSubPanelsToUpdateWithNewDialogVariables();
|
||
|
|
||
|
BuildGroup* _buildGroup;
|
||
|
FocusNavGroup m_NavGroup;
|
||
|
KeyValues* m_pDialogVariables;
|
||
|
|
||
|
char* m_pszConfigName;
|
||
|
int m_iConfigID;
|
||
|
bool m_bShouldSkipAutoResize;
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|