summaryrefslogtreecommitdiff
path: root/public/toolutils/ToolFileMenuButton.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /public/toolutils/ToolFileMenuButton.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'public/toolutils/ToolFileMenuButton.h')
-rw-r--r--public/toolutils/ToolFileMenuButton.h104
1 files changed, 104 insertions, 0 deletions
diff --git a/public/toolutils/ToolFileMenuButton.h b/public/toolutils/ToolFileMenuButton.h
new file mode 100644
index 0000000..224434f
--- /dev/null
+++ b/public/toolutils/ToolFileMenuButton.h
@@ -0,0 +1,104 @@
+//========= Copyright Valve Corporation, All rights reserved. ============//
+//
+// Standard file menu
+//
+//=============================================================================
+
+
+#ifndef TOOLFILEMENUBUTTON_H
+#define TOOLFILEMENUBUTTON_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "toolutils/toolmenubutton.h"
+
+
+//-----------------------------------------------------------------------------
+// forward declarations
+//-----------------------------------------------------------------------------
+namespace vgui
+{
+class Panel;
+class Menu;
+}
+
+class CToolMenuButton;
+
+
+//-----------------------------------------------------------------------------
+// Called back by the file menu
+//-----------------------------------------------------------------------------
+class IFileMenuCallbacks
+{
+public:
+ enum MenuItems_t
+ {
+ FILE_NEW = 0x01,
+ FILE_OPEN = 0x02,
+ FILE_SAVE = 0x04,
+ FILE_SAVEAS = 0x08,
+ FILE_CLOSE = 0x10,
+ FILE_RECENT = 0x20,
+ FILE_CLEAR_RECENT = 0x40,
+ FILE_EXIT = 0x80,
+
+ FILE_ALL = 0xFFFFFFFF
+ };
+
+ // Logically OR together all items that should be enabled
+ virtual int GetFileMenuItemsEnabled( ) = 0;
+
+ // Add recent files to the menu passed in
+ virtual void AddRecentFilesToMenu( vgui::Menu *menu ) = 0;
+
+ // Get the perforce file name (to set the various perforce menu options)
+ virtual bool GetPerforceFileName( char *pFileName, int nMaxLen ) = 0;
+
+ // Gets the root vgui panel
+ virtual vgui::Panel *GetRootPanel() = 0;
+};
+
+
+//-----------------------------------------------------------------------------
+// Standard file menu
+//-----------------------------------------------------------------------------
+class CToolFileMenuButton : public CToolMenuButton
+{
+ DECLARE_CLASS_SIMPLE( CToolFileMenuButton, CToolMenuButton );
+public:
+
+ CToolFileMenuButton( vgui::Panel *parent, const char *panelName, const char *text, vgui::Panel *pActionTarget, IFileMenuCallbacks *pFileMenuCallback );
+ virtual void OnShowMenu( vgui::Menu *menu );
+
+private:
+ MESSAGE_FUNC( OnPerforceAdd, "OnPerforceAdd" );
+ MESSAGE_FUNC( OnPerforceOpen, "OnPerforceOpen" );
+ MESSAGE_FUNC( OnPerforceRevert, "OnPerforceRevert" );
+ MESSAGE_FUNC( OnPerforceSubmit, "OnPerforceSubmit" );
+ MESSAGE_FUNC( OnPerforceP4Win, "OnPerforceP4Win" );
+ MESSAGE_FUNC( OnPerforceListOpenFiles, "OnPerforceListOpenFiles" );
+
+ vgui::Menu *m_pRecentFiles;
+ vgui::Menu *m_pPerforce;
+ int m_nRecentFiles;
+ IFileMenuCallbacks *m_pFileMenuCallback;
+ int m_nPerforceAdd;
+ int m_nPerforceOpen;
+ int m_nPerforceRevert;
+ int m_nPerforceSubmit;
+ int m_nPerforceP4Win;
+ int m_nPerforceListOpenFiles;
+};
+
+
+//-----------------------------------------------------------------------------
+// Global function to create the switch menu
+//-----------------------------------------------------------------------------
+CToolMenuButton* CreateToolFileMenuButton( vgui::Panel *parent, const char *panelName,
+ const char *text, vgui::Panel *pActionTarget, IFileMenuCallbacks *pCallbacks );
+
+
+#endif // TOOLFILEMENUBUTTON_H
+