diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/public/vgui_controls/FileOpenStateMachine.h | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/public/vgui_controls/FileOpenStateMachine.h')
| -rw-r--r-- | mp/src/public/vgui_controls/FileOpenStateMachine.h | 344 |
1 files changed, 172 insertions, 172 deletions
diff --git a/mp/src/public/vgui_controls/FileOpenStateMachine.h b/mp/src/public/vgui_controls/FileOpenStateMachine.h index bfbea715..4fb327cb 100644 --- a/mp/src/public/vgui_controls/FileOpenStateMachine.h +++ b/mp/src/public/vgui_controls/FileOpenStateMachine.h @@ -1,172 +1,172 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// This is a helper class designed to help with the chains of modal dialogs
-// encountered when trying to open or save a particular file
-//
-//=============================================================================
-
-#ifndef FILEOPENSTATEMACHINE_H
-#define FILEOPENSTATEMACHINE_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-#include "vgui_controls/Panel.h"
-#include "tier1/utlstring.h"
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-
-
-namespace vgui
-{
-
-//-----------------------------------------------------------------------------
-// Interface for things using the file open state machine
-//-----------------------------------------------------------------------------
-abstract_class IFileOpenStateMachineClient
-{
-public:
- // Called by to allow clients to set up the save dialog
- virtual void SetupFileOpenDialog( vgui::FileOpenDialog *pDialog, bool bOpenFile, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0;
-
- // Called by to allow clients to actually read the file in
- virtual bool OnReadFileFromDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0;
-
- // Called by to allow clients to actually write the file out
- virtual bool OnWriteFileToDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0;
-};
-
-
-//-----------------------------------------------------------------------------
-// This is a helper class designed to help with chains of modal dialogs
-//-----------------------------------------------------------------------------
-enum FileOpenStateMachineFlags_t
-{
- FOSM_SHOW_PERFORCE_DIALOGS = 0x1,
- FOSM_SHOW_SAVE_QUERY = 0x2,
-};
-
-class FileOpenStateMachine : public Panel
-{
- DECLARE_CLASS_SIMPLE( FileOpenStateMachine, Panel );
-
-public:
- enum CompletionState_t
- {
- IN_PROGRESS = 0, // Still not finished, not successful or error
- SUCCESSFUL, // Operation finished successfully
- FILE_SAVE_CANCELLED, // The user chose 'cancel' in the dialog asking if he wanted to save
- FILE_SAVE_NAME_NOT_SPECIFIED, // User hit cancel in the SaveAs dialog
- FILE_NOT_OVERWRITTEN, // Operation aborted; existed file and user chose to not write over it
- FILE_NOT_CHECKED_OUT, // Operation aborted; file wasn't checked out so couldn't be written over
- ERROR_WRITING_FILE, // Error occurred writing the file out
- ERROR_MAKING_FILE_WRITEABLE, // Error occurred when making the file writeable
- FILE_NOT_MADE_WRITEABLE, // User chose to not make the file be writeable
- FILE_OPEN_NAME_NOT_SPECIFIED, // User hit cancel in the Open dialog
- ERROR_READING_FILE, // Error occurred reading the file in
- };
-
- FileOpenStateMachine( vgui::Panel *pParent, IFileOpenStateMachineClient *pClient );
- virtual ~FileOpenStateMachine();
-
- // Opens a file, saves an existing one if necessary
- void OpenFile( const char *pOpenFileType, KeyValues *pContextKeyValues, const char *pSaveFileName = NULL, const char *pSaveFileType = NULL, int nFlags = 0 );
-
- // Version of OpenFile that skips browsing for a particular file to open
- void OpenFile( const char *pOpenFileName, const char *pOpenFileType, KeyValues *pContextKeyValues, const char *pSaveFileName = NULL, const char *pSaveFileType = NULL, int nFlags = 0 );
-
- // Used to save a specified file, and deal with all the lovely dialogs
- // Pass in NULL to get a dialog to choose a filename to save
- void SaveFile( KeyValues *pContextKeyValues, const char *pFileName, const char *pFileType, int nFlags = FOSM_SHOW_PERFORCE_DIALOGS );
-
- // Returns the state machine completion state
- CompletionState_t GetCompletionState();
-
- /* MESSAGES SENT
- "FileStateMachineFinished" - Called when we exit the state machine for any reason
- "completionState" - See the CompletionState_t enum above
- "wroteFile" - Indicates whether a file was written or not
- "fullPath" - Indicates the full path of the file read for OpenFile or written for SaveFile
- "fileType" - Indicates the file type of the file read for OpenFile or written for SaveFile
- Use GetFirstTrueSubKey() to get the context passed into the OpenFile/SaveFile methods
- */
-
-private:
- enum FOSMState_t
- {
- STATE_NONE = -1,
- STATE_SHOWING_SAVE_DIRTY_FILE_DIALOG = 0,
- STATE_SHOWING_SAVE_DIALOG,
- STATE_SHOWING_OVERWRITE_DIALOG,
- STATE_SHOWING_CHECK_OUT_DIALOG,
- STATE_SHOWING_MAKE_FILE_WRITEABLE_DIALOG,
- STATE_WRITING_FILE,
- STATE_SHOWING_PERFORCE_ADD_DIALOG,
- STATE_SHOWING_OPEN_DIALOG,
- STATE_READING_FILE,
- };
-
- MESSAGE_FUNC_PARAMS( OnFileSelected, "FileSelected", pKeyValues );
- MESSAGE_FUNC( OnFileSelectionCancelled, "FileSelectionCancelled" );
- MESSAGE_FUNC_PARAMS( OnPerforceQueryCompleted, "PerforceQueryCompleted", pKeyValues );
- MESSAGE_FUNC( OnMakeFileWriteable, "MakeFileWriteable" );
- MESSAGE_FUNC( OnCancelMakeFileWriteable, "CancelMakeFileWriteable" );
-
- // These messages are related to the dialog in OverwriteFileDialog
- MESSAGE_FUNC( OnOverwriteFile, "OverwriteFile" );
- MESSAGE_FUNC( OnCancelOverwriteFile, "CancelOverwriteFile" );
-
- // These messages come from the savedocumentquery dialog
- MESSAGE_FUNC( OnSaveFile, "OnSaveFile" );
- MESSAGE_FUNC( OnMarkNotDirty, "OnMarkNotDirty" );
- MESSAGE_FUNC( OnCancelSaveDocument, "OnCancelSaveDocument" );
-
- // Cleans up keyvalues
- void CleanUpContextKeyValues();
-
- // Utility to set the completion state
- void SetCompletionState( CompletionState_t state );
-
- // Show the save document query dialog
- void ShowSaveQuery( );
-
- // Shows the overwrite existing file dialog
- void OverwriteFileDialog( );
-
- // Shows the open file for edit dialog
- void CheckOutDialog( );
-
- // Shows the make file writeable dialog
- void MakeFileWriteableDialog( );
-
- // Writes the file out
- void WriteFile();
-
- // Shows the open file dialog
- void OpenFileDialog( );
-
- // Reads the file in
- void ReadFile();
-
- IFileOpenStateMachineClient *m_pClient;
- KeyValues *m_pContextKeyValues;
- FOSMState_t m_CurrentState;
- CompletionState_t m_CompletionState;
- CUtlString m_FileName;
- CUtlString m_SaveFileType;
- CUtlString m_OpenFileType;
- CUtlString m_OpenFileName;
- bool m_bShowPerforceDialogs : 1;
- bool m_bShowSaveQuery : 1;
- bool m_bIsOpeningFile : 1;
- bool m_bWroteFile : 1;
-};
-
-} // end namespace vgui
-
-
-
-#endif // FILEOPENSTATEMACHINE_H
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// This is a helper class designed to help with the chains of modal dialogs +// encountered when trying to open or save a particular file +// +//============================================================================= + +#ifndef FILEOPENSTATEMACHINE_H +#define FILEOPENSTATEMACHINE_H + +#ifdef _WIN32 +#pragma once +#endif + +#include "vgui_controls/Panel.h" +#include "tier1/utlstring.h" + +//----------------------------------------------------------------------------- +// Forward declarations +//----------------------------------------------------------------------------- + + +namespace vgui +{ + +//----------------------------------------------------------------------------- +// Interface for things using the file open state machine +//----------------------------------------------------------------------------- +abstract_class IFileOpenStateMachineClient +{ +public: + // Called by to allow clients to set up the save dialog + virtual void SetupFileOpenDialog( vgui::FileOpenDialog *pDialog, bool bOpenFile, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0; + + // Called by to allow clients to actually read the file in + virtual bool OnReadFileFromDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0; + + // Called by to allow clients to actually write the file out + virtual bool OnWriteFileToDisk( const char *pFileName, const char *pFileFormat, KeyValues *pContextKeyValues ) = 0; +}; + + +//----------------------------------------------------------------------------- +// This is a helper class designed to help with chains of modal dialogs +//----------------------------------------------------------------------------- +enum FileOpenStateMachineFlags_t +{ + FOSM_SHOW_PERFORCE_DIALOGS = 0x1, + FOSM_SHOW_SAVE_QUERY = 0x2, +}; + +class FileOpenStateMachine : public Panel +{ + DECLARE_CLASS_SIMPLE( FileOpenStateMachine, Panel ); + +public: + enum CompletionState_t + { + IN_PROGRESS = 0, // Still not finished, not successful or error + SUCCESSFUL, // Operation finished successfully + FILE_SAVE_CANCELLED, // The user chose 'cancel' in the dialog asking if he wanted to save + FILE_SAVE_NAME_NOT_SPECIFIED, // User hit cancel in the SaveAs dialog + FILE_NOT_OVERWRITTEN, // Operation aborted; existed file and user chose to not write over it + FILE_NOT_CHECKED_OUT, // Operation aborted; file wasn't checked out so couldn't be written over + ERROR_WRITING_FILE, // Error occurred writing the file out + ERROR_MAKING_FILE_WRITEABLE, // Error occurred when making the file writeable + FILE_NOT_MADE_WRITEABLE, // User chose to not make the file be writeable + FILE_OPEN_NAME_NOT_SPECIFIED, // User hit cancel in the Open dialog + ERROR_READING_FILE, // Error occurred reading the file in + }; + + FileOpenStateMachine( vgui::Panel *pParent, IFileOpenStateMachineClient *pClient ); + virtual ~FileOpenStateMachine(); + + // Opens a file, saves an existing one if necessary + void OpenFile( const char *pOpenFileType, KeyValues *pContextKeyValues, const char *pSaveFileName = NULL, const char *pSaveFileType = NULL, int nFlags = 0 ); + + // Version of OpenFile that skips browsing for a particular file to open + void OpenFile( const char *pOpenFileName, const char *pOpenFileType, KeyValues *pContextKeyValues, const char *pSaveFileName = NULL, const char *pSaveFileType = NULL, int nFlags = 0 ); + + // Used to save a specified file, and deal with all the lovely dialogs + // Pass in NULL to get a dialog to choose a filename to save + void SaveFile( KeyValues *pContextKeyValues, const char *pFileName, const char *pFileType, int nFlags = FOSM_SHOW_PERFORCE_DIALOGS ); + + // Returns the state machine completion state + CompletionState_t GetCompletionState(); + + /* MESSAGES SENT + "FileStateMachineFinished" - Called when we exit the state machine for any reason + "completionState" - See the CompletionState_t enum above + "wroteFile" - Indicates whether a file was written or not + "fullPath" - Indicates the full path of the file read for OpenFile or written for SaveFile + "fileType" - Indicates the file type of the file read for OpenFile or written for SaveFile + Use GetFirstTrueSubKey() to get the context passed into the OpenFile/SaveFile methods + */ + +private: + enum FOSMState_t + { + STATE_NONE = -1, + STATE_SHOWING_SAVE_DIRTY_FILE_DIALOG = 0, + STATE_SHOWING_SAVE_DIALOG, + STATE_SHOWING_OVERWRITE_DIALOG, + STATE_SHOWING_CHECK_OUT_DIALOG, + STATE_SHOWING_MAKE_FILE_WRITEABLE_DIALOG, + STATE_WRITING_FILE, + STATE_SHOWING_PERFORCE_ADD_DIALOG, + STATE_SHOWING_OPEN_DIALOG, + STATE_READING_FILE, + }; + + MESSAGE_FUNC_PARAMS( OnFileSelected, "FileSelected", pKeyValues ); + MESSAGE_FUNC( OnFileSelectionCancelled, "FileSelectionCancelled" ); + MESSAGE_FUNC_PARAMS( OnPerforceQueryCompleted, "PerforceQueryCompleted", pKeyValues ); + MESSAGE_FUNC( OnMakeFileWriteable, "MakeFileWriteable" ); + MESSAGE_FUNC( OnCancelMakeFileWriteable, "CancelMakeFileWriteable" ); + + // These messages are related to the dialog in OverwriteFileDialog + MESSAGE_FUNC( OnOverwriteFile, "OverwriteFile" ); + MESSAGE_FUNC( OnCancelOverwriteFile, "CancelOverwriteFile" ); + + // These messages come from the savedocumentquery dialog + MESSAGE_FUNC( OnSaveFile, "OnSaveFile" ); + MESSAGE_FUNC( OnMarkNotDirty, "OnMarkNotDirty" ); + MESSAGE_FUNC( OnCancelSaveDocument, "OnCancelSaveDocument" ); + + // Cleans up keyvalues + void CleanUpContextKeyValues(); + + // Utility to set the completion state + void SetCompletionState( CompletionState_t state ); + + // Show the save document query dialog + void ShowSaveQuery( ); + + // Shows the overwrite existing file dialog + void OverwriteFileDialog( ); + + // Shows the open file for edit dialog + void CheckOutDialog( ); + + // Shows the make file writeable dialog + void MakeFileWriteableDialog( ); + + // Writes the file out + void WriteFile(); + + // Shows the open file dialog + void OpenFileDialog( ); + + // Reads the file in + void ReadFile(); + + IFileOpenStateMachineClient *m_pClient; + KeyValues *m_pContextKeyValues; + FOSMState_t m_CurrentState; + CompletionState_t m_CompletionState; + CUtlString m_FileName; + CUtlString m_SaveFileType; + CUtlString m_OpenFileType; + CUtlString m_OpenFileName; + bool m_bShowPerforceDialogs : 1; + bool m_bShowSaveQuery : 1; + bool m_bIsOpeningFile : 1; + bool m_bWroteFile : 1; +}; + +} // end namespace vgui + + + +#endif // FILEOPENSTATEMACHINE_H |