aboutsummaryrefslogtreecommitdiff
path: root/mp/src/public/maya/VsVGuiWindow.h
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/public/maya/VsVGuiWindow.h
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/public/maya/VsVGuiWindow.h')
-rw-r--r--mp/src/public/maya/VsVGuiWindow.h390
1 files changed, 195 insertions, 195 deletions
diff --git a/mp/src/public/maya/VsVGuiWindow.h b/mp/src/public/maya/VsVGuiWindow.h
index 4abd4ca2..e33446dd 100644
--- a/mp/src/public/maya/VsVGuiWindow.h
+++ b/mp/src/public/maya/VsVGuiWindow.h
@@ -1,195 +1,195 @@
-//===== Copyright � 1996-2006, Valve Corporation, All rights reserved. ======//
-//
-// Base class for windows that draw vgui in Maya
-//
-//===========================================================================//
-
-#ifndef VSVGUIWINDOW_H
-#define VSVGUIWINDOW_H
-
-#ifdef _WIN32
-#pragma once
-#endif
-
-
-#include "imayavgui.h"
-#include "vgui_controls/Frame.h"
-#include "tier1/utlmap.h"
-#include "valveMaya.h"
-
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-class IMayaVGui;
-
-
-//-----------------------------------------------------------------------------
-// The singleton is defined here twice just so we don't have to include valvemaya.h also
-//-----------------------------------------------------------------------------
-extern IMayaVGui *g_pMayaVGui;
-
-
-//-----------------------------------------------------------------------------
-// Forward declarations
-//-----------------------------------------------------------------------------
-namespace vgui
-{
- class EditablePanel;
-}
-
-
-class CVsVGuiWindowBase
-{
-public:
- virtual void SetPeriod( float flPeriod ) = 0;
- virtual void StartTick() = 0;
- virtual void StartTick( float flPeriod ) = 0;
- virtual void StopTick() = 0;
- virtual void Tick( float flElapsedTime ) = 0;
- virtual void NonTimerTick() = 0;
-};
-
-
-//-----------------------------------------------------------------------------
-// Creates, destroys a maya vgui window
-//-----------------------------------------------------------------------------
-CVsVGuiWindowBase *CreateMayaVGuiWindow( vgui::EditablePanel *pRootPanel, const char *pPanelName );
-void DestroyMayaVGuiWindow( const char *pPanelName );
-
-
-//-----------------------------------------------------------------------------
-// Factory used to install vgui windows easily
-//-----------------------------------------------------------------------------
-class CVsVguiWindowFactoryBase : public IMayaVguiWindowFactory
-{
-public:
- CVsVguiWindowFactoryBase( const char *pWindowTypeName, const char *pDccStartupCommand );
-
- // Returns the DCC command
- const char *GetDccStartupCommand() const;
-
- // Registers/deregisters all vgui windows
- static void RegisterAllVguiWindows( );
- static void UnregisterAllVguiWindows( );
-
-protected:
- const char *m_pWindowTypeName;
- const char *m_pDccStartupCommand;
-
-private:
- CVsVguiWindowFactoryBase *m_pNext;
- static CVsVguiWindowFactoryBase *s_pFirstCommandFactory;
-};
-
-template< class T >
-class CVsVguiWindowFactory : public CVsVguiWindowFactoryBase
-{
- typedef CVsVguiWindowFactoryBase BaseClass;
-
- static bool StringLessFunc( const CUtlString &a, const CUtlString &b )
- {
- return StringLessThan( a.Get(), b.Get() );
- }
-
-
-public:
- CVsVguiWindowFactory( const char *pWindowTypeName, const char *pDccCommand )
- : BaseClass( pWindowTypeName, pDccCommand )
- , m_panelMap( StringLessFunc )
- {
- }
-
- struct PanelMapElem_s
- {
- CVsVGuiWindowBase *m_pVGuiWindow;
- T *m_pPanel;
- };
-
- typedef CUtlMap< CUtlString, PanelMapElem_s > PanelMap_t;
-
- virtual void CreateVguiWindow( const char *pPanelName )
- {
- T *pVGuiPanel = new T( NULL, pPanelName );
- vgui::Frame *pFrame = dynamic_cast< vgui::Frame * >( pVGuiPanel );
-
- if ( pFrame )
- {
- pFrame->SetSizeable( false );
- pFrame->SetCloseButtonVisible( false );
- pFrame->SetMoveable( false );
-
- CVsVGuiWindowBase *pVGuiWindow = CreateMayaVGuiWindow( pVGuiPanel, pPanelName );
-
- const CUtlString panelName( pPanelName );
-
- PanelMap_t::IndexType_t nIndex = m_panelMap.Find( panelName );
- if ( m_panelMap.IsValidIndex( nIndex ) )
- {
- merr << "[vsVguiWindow]: Panel \"" << pPanelName << "\" of Type: \"" << m_pWindowTypeName << "\" Already Exists!!!" << std::endl;
- }
- else
- {
- PanelMap_t::ElemType_t &element = m_panelMap.Element( m_panelMap.Insert( panelName ) );
- element.m_pVGuiWindow = pVGuiWindow;
- element.m_pPanel = pVGuiPanel;
- }
- }
- }
-
- virtual void DestroyVguiWindow( const char *pPanelName )
- {
- PanelMap_t::IndexType_t nIndex = m_panelMap.Find( pPanelName );
- if ( !m_panelMap.IsValidIndex( nIndex ) )
- return;
-
- PanelMap_t::ElemType_t &element = m_panelMap.Element( nIndex );
- delete element.m_pPanel;
-
- m_panelMap.Remove( CUtlString( pPanelName ) );
- DestroyMayaVGuiWindow( pPanelName );
- }
-
- virtual vgui::Frame *GetVGuiPanel( const char *pPanelName = NULL )
- {
- if ( pPanelName )
- {
- PanelMap_t::IndexType_t nPanelIndex = m_panelMap.Find( CUtlString( pPanelName ) );
- if ( m_panelMap.IsValidIndex( nPanelIndex ) )
- return dynamic_cast< vgui::Frame * >( m_panelMap.Element( nPanelIndex ).m_pPanel );
- }
- else if ( m_panelMap.Count() > 0 )
- {
- return dynamic_cast< vgui::Frame * >( m_panelMap.Element( m_panelMap.FirstInorder() ).m_pPanel );
- }
-
- return NULL;
- }
-
- virtual CVsVGuiWindowBase *GetVGuiWindow( const char *pPanelName = NULL )
- {
- if ( pPanelName )
- {
- PanelMap_t::IndexType_t nPanelIndex = m_panelMap.Find( CUtlString( pPanelName ) );
- if ( m_panelMap.IsValidIndex( nPanelIndex ) )
- return m_panelMap.Element( nPanelIndex ).m_pVGuiWindow;
- }
- else if ( m_panelMap.Count() > 0 )
- {
- return m_panelMap.Element( m_panelMap.FirstInorder() ).m_pVGuiWindow;
- }
-
- return NULL;
- }
-
-private:
-
- PanelMap_t m_panelMap;
-};
-
-
-#define INSTALL_MAYA_VGUI_WINDOW( _className, _windowTypeName, _dccCommand ) \
- static CVsVguiWindowFactory< _className > s_VsVguiWindowFactory##_className##( _windowTypeName, _dccCommand )
-
-
-#endif // VSVGUIWINDOW_H
+//===== Copyright � 1996-2006, Valve Corporation, All rights reserved. ======//
+//
+// Base class for windows that draw vgui in Maya
+//
+//===========================================================================//
+
+#ifndef VSVGUIWINDOW_H
+#define VSVGUIWINDOW_H
+
+#ifdef _WIN32
+#pragma once
+#endif
+
+
+#include "imayavgui.h"
+#include "vgui_controls/Frame.h"
+#include "tier1/utlmap.h"
+#include "valveMaya.h"
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+class IMayaVGui;
+
+
+//-----------------------------------------------------------------------------
+// The singleton is defined here twice just so we don't have to include valvemaya.h also
+//-----------------------------------------------------------------------------
+extern IMayaVGui *g_pMayaVGui;
+
+
+//-----------------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------------
+namespace vgui
+{
+ class EditablePanel;
+}
+
+
+class CVsVGuiWindowBase
+{
+public:
+ virtual void SetPeriod( float flPeriod ) = 0;
+ virtual void StartTick() = 0;
+ virtual void StartTick( float flPeriod ) = 0;
+ virtual void StopTick() = 0;
+ virtual void Tick( float flElapsedTime ) = 0;
+ virtual void NonTimerTick() = 0;
+};
+
+
+//-----------------------------------------------------------------------------
+// Creates, destroys a maya vgui window
+//-----------------------------------------------------------------------------
+CVsVGuiWindowBase *CreateMayaVGuiWindow( vgui::EditablePanel *pRootPanel, const char *pPanelName );
+void DestroyMayaVGuiWindow( const char *pPanelName );
+
+
+//-----------------------------------------------------------------------------
+// Factory used to install vgui windows easily
+//-----------------------------------------------------------------------------
+class CVsVguiWindowFactoryBase : public IMayaVguiWindowFactory
+{
+public:
+ CVsVguiWindowFactoryBase( const char *pWindowTypeName, const char *pDccStartupCommand );
+
+ // Returns the DCC command
+ const char *GetDccStartupCommand() const;
+
+ // Registers/deregisters all vgui windows
+ static void RegisterAllVguiWindows( );
+ static void UnregisterAllVguiWindows( );
+
+protected:
+ const char *m_pWindowTypeName;
+ const char *m_pDccStartupCommand;
+
+private:
+ CVsVguiWindowFactoryBase *m_pNext;
+ static CVsVguiWindowFactoryBase *s_pFirstCommandFactory;
+};
+
+template< class T >
+class CVsVguiWindowFactory : public CVsVguiWindowFactoryBase
+{
+ typedef CVsVguiWindowFactoryBase BaseClass;
+
+ static bool StringLessFunc( const CUtlString &a, const CUtlString &b )
+ {
+ return StringLessThan( a.Get(), b.Get() );
+ }
+
+
+public:
+ CVsVguiWindowFactory( const char *pWindowTypeName, const char *pDccCommand )
+ : BaseClass( pWindowTypeName, pDccCommand )
+ , m_panelMap( StringLessFunc )
+ {
+ }
+
+ struct PanelMapElem_s
+ {
+ CVsVGuiWindowBase *m_pVGuiWindow;
+ T *m_pPanel;
+ };
+
+ typedef CUtlMap< CUtlString, PanelMapElem_s > PanelMap_t;
+
+ virtual void CreateVguiWindow( const char *pPanelName )
+ {
+ T *pVGuiPanel = new T( NULL, pPanelName );
+ vgui::Frame *pFrame = dynamic_cast< vgui::Frame * >( pVGuiPanel );
+
+ if ( pFrame )
+ {
+ pFrame->SetSizeable( false );
+ pFrame->SetCloseButtonVisible( false );
+ pFrame->SetMoveable( false );
+
+ CVsVGuiWindowBase *pVGuiWindow = CreateMayaVGuiWindow( pVGuiPanel, pPanelName );
+
+ const CUtlString panelName( pPanelName );
+
+ PanelMap_t::IndexType_t nIndex = m_panelMap.Find( panelName );
+ if ( m_panelMap.IsValidIndex( nIndex ) )
+ {
+ merr << "[vsVguiWindow]: Panel \"" << pPanelName << "\" of Type: \"" << m_pWindowTypeName << "\" Already Exists!!!" << std::endl;
+ }
+ else
+ {
+ PanelMap_t::ElemType_t &element = m_panelMap.Element( m_panelMap.Insert( panelName ) );
+ element.m_pVGuiWindow = pVGuiWindow;
+ element.m_pPanel = pVGuiPanel;
+ }
+ }
+ }
+
+ virtual void DestroyVguiWindow( const char *pPanelName )
+ {
+ PanelMap_t::IndexType_t nIndex = m_panelMap.Find( pPanelName );
+ if ( !m_panelMap.IsValidIndex( nIndex ) )
+ return;
+
+ PanelMap_t::ElemType_t &element = m_panelMap.Element( nIndex );
+ delete element.m_pPanel;
+
+ m_panelMap.Remove( CUtlString( pPanelName ) );
+ DestroyMayaVGuiWindow( pPanelName );
+ }
+
+ virtual vgui::Frame *GetVGuiPanel( const char *pPanelName = NULL )
+ {
+ if ( pPanelName )
+ {
+ PanelMap_t::IndexType_t nPanelIndex = m_panelMap.Find( CUtlString( pPanelName ) );
+ if ( m_panelMap.IsValidIndex( nPanelIndex ) )
+ return dynamic_cast< vgui::Frame * >( m_panelMap.Element( nPanelIndex ).m_pPanel );
+ }
+ else if ( m_panelMap.Count() > 0 )
+ {
+ return dynamic_cast< vgui::Frame * >( m_panelMap.Element( m_panelMap.FirstInorder() ).m_pPanel );
+ }
+
+ return NULL;
+ }
+
+ virtual CVsVGuiWindowBase *GetVGuiWindow( const char *pPanelName = NULL )
+ {
+ if ( pPanelName )
+ {
+ PanelMap_t::IndexType_t nPanelIndex = m_panelMap.Find( CUtlString( pPanelName ) );
+ if ( m_panelMap.IsValidIndex( nPanelIndex ) )
+ return m_panelMap.Element( nPanelIndex ).m_pVGuiWindow;
+ }
+ else if ( m_panelMap.Count() > 0 )
+ {
+ return m_panelMap.Element( m_panelMap.FirstInorder() ).m_pVGuiWindow;
+ }
+
+ return NULL;
+ }
+
+private:
+
+ PanelMap_t m_panelMap;
+};
+
+
+#define INSTALL_MAYA_VGUI_WINDOW( _className, _windowTypeName, _dccCommand ) \
+ static CVsVguiWindowFactory< _className > s_VsVguiWindowFactory##_className##( _windowTypeName, _dccCommand )
+
+
+#endif // VSVGUIWINDOW_H