diff options
Diffstat (limited to 'public/dme_controls/DmeSourceDCCFilePanel.h')
| -rw-r--r-- | public/dme_controls/DmeSourceDCCFilePanel.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/public/dme_controls/DmeSourceDCCFilePanel.h b/public/dme_controls/DmeSourceDCCFilePanel.h new file mode 100644 index 0000000..fbc0df1 --- /dev/null +++ b/public/dme_controls/DmeSourceDCCFilePanel.h @@ -0,0 +1,93 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +//============================================================================= + +#ifndef DMESOURCEDCCFILEPANEL_H +#define DMESOURCEDCCFILEPANEL_H +#ifdef _WIN32 +#pragma once +#endif + +#include "vgui_controls/EditablePanel.h" +#include "datamodel/dmehandle.h" + + +//----------------------------------------------------------------------------- +// Forward declarations +//----------------------------------------------------------------------------- +namespace vgui +{ + class TextEntry; +} + +class CDmeSourceDCCFile; + + +//----------------------------------------------------------------------------- +// Purpose: Asset builder +//----------------------------------------------------------------------------- +class CDmeSourceDCCFilePanel : public vgui::EditablePanel +{ + DECLARE_CLASS_SIMPLE( CDmeSourceDCCFilePanel, EditablePanel ); + +public: + CDmeSourceDCCFilePanel( vgui::Panel *pParent, const char *pPanelName ); + virtual ~CDmeSourceDCCFilePanel(); + + // Inherited from Panel + virtual void OnCommand( const char *pCommand ); + virtual void OnKeyCodeTyped( vgui::KeyCode code ); + + void SetDmeElement( CDmeSourceDCCFile *pSourceDCCFile ); + + /* + messages sent: + "DmeElementChanged" The element has been changed + */ + +private: + MESSAGE_FUNC_PARAMS( OnTextNewLine, "TextNewLine", kv ); + MESSAGE_FUNC_PARAMS( OnInputCompleted, "InputCompleted", kv ); + MESSAGE_FUNC_PARAMS( OnItemSelected, "ItemSelected", kv ); + MESSAGE_FUNC_PARAMS( OnItemDeselected, "ItemDeselected", kv ); + + // Shows the DCC object browser (once we have one) + void ShowDCCObjectBrowser( const char *pTitle, const char *pPrompt, KeyValues *pDialogKeys ); + + // Called when we're browsing for a DCC object and one was selected + void OnDCCObjectAdded( const char *pDCCObjectName, KeyValues *pContextKeys ); + + // Refresh the source list + void RefreshDCCObjectList( ); + + // Called when the source file name changes + bool CheckForDuplicateNames( const char *pDCCObjectName, int nDCCObjectSkipIndex = -1 ); + + void OnBrowseDCCObject(); + void OnAddDCCObject(); + void OnRemoveDCCObject(); + void OnDCCObjectNameChanged(); + + // Selects a particular DCC object + void SelectDCCObject( int nDCCObjectIndex ); + + // Called when a list panel's selection changes + void OnItemSelectionChanged( ); + + // Marks the file as dirty + void SetDirty( ); + + vgui::ListPanel *m_pRootDCCObjects; + vgui::Button *m_pDCCObjectBrowser; + vgui::Button *m_pAddDCCObject; + vgui::Button *m_pRemoveDCCObject; + vgui::Button *m_pApplyChanges; + vgui::TextEntry *m_pDCCObjectName; + + CDmeHandle< CDmeSourceDCCFile > m_hSourceDCCFile; +}; + + +#endif // DMESOURCEDCCFILEPANEL_H |