radiant: add optional pakpath support
[xonotic/netradiant.git] / radiant / mainframe.h
index d011f31..9bf53f6 100644 (file)
@@ -1,27 +1,28 @@
 /*
-Copyright (C) 1999-2006 Id Software, Inc. and contributors.
-For a list of contributors, see the accompanying CONTRIBUTORS file.
+   Copyright (C) 1999-2006 Id Software, Inc. and contributors.
+   For a list of contributors, see the accompanying CONTRIBUTORS file.
 
-This file is part of GtkRadiant.
+   This file is part of GtkRadiant.
 
-GtkRadiant is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   GtkRadiant is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
-GtkRadiant is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   GtkRadiant is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License
-along with GtkRadiant; if not, write to the Free Software
-Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+   You should have received a copy of the GNU General Public License
+   along with GtkRadiant; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ */
 
-#if !defined(INCLUDED_MAINFRAME_H)
+#if !defined( INCLUDED_MAINFRAME_H )
 #define INCLUDED_MAINFRAME_H
 
+#include <uilib/uilib.h>
 #include "gtkutil/window.h"
 #include "gtkutil/idledraw.h"
 #include "gtkutil/widget.h"
@@ -36,8 +37,6 @@ class XYWnd;
 class CamWnd;
 class ZWnd;
 
-typedef struct _GtkWidget GtkWidget;
-typedef struct _GtkWindow GtkWindow;
 
 const int c_command_status = 0;
 const int c_position_status = 1;
@@ -49,124 +48,114 @@ const int c_count_status = 5;
 class MainFrame
 {
 public:
-  enum EViewStyle
-  {
-    eRegular = 0,
-    eFloating = 1,
-    eSplit = 2,
-    eRegularLeft = 3,
-  };
-
-  MainFrame();
-  ~MainFrame();
-
-  GtkWindow* m_window;
-
-  CopiedString m_command_status;
-  CopiedString m_position_status;
-  CopiedString m_brushcount_status;
-  CopiedString m_texture_status;
-  CopiedString m_grid_status;
+enum EViewStyle
+{
+       eRegular = 0,
+       eFloating = 1,
+       eSplit = 2,
+       eRegularLeft = 3,
+};
+
+MainFrame();
+~MainFrame();
+
+ui::Window m_window{ui::null};
+
+CopiedString m_command_status;
+CopiedString m_position_status;
+CopiedString m_brushcount_status;
+CopiedString m_texture_status;
+CopiedString m_grid_status;
 private:
 
-  void Create();
-  void SaveWindowInfo();
-  void Shutdown();
+void Create();
+void SaveWindowInfo();
+void Shutdown();
 
-  GtkWidget* m_vSplit;
-  GtkWidget* m_hSplit;
-  GtkWidget* m_vSplit2;
+ui::Widget m_vSplit{ui::null};
+ui::Widget m_hSplit{ui::null};
+ui::Widget m_vSplit2{ui::null};
 
-  XYWnd* m_pXYWnd;
-  XYWnd* m_pYZWnd;
-  XYWnd* m_pXZWnd;
-  CamWnd* m_pCamWnd;
-  ZWnd* m_pZWnd;
-  XYWnd* m_pActiveXY;
+XYWnd* m_pXYWnd;
+XYWnd* m_pYZWnd;
+XYWnd* m_pXZWnd;
+CamWnd* m_pCamWnd;
+ZWnd* m_pZWnd;
+XYWnd* m_pActiveXY;
 
-  bool m_bSleeping;
+bool m_bSleeping;
 
-  GtkWidget *m_pStatusLabel[c_count_status];
+void *m_pStatusLabel[c_count_status];
 
 
-  EViewStyle m_nCurrentStyle;
-  WindowPositionTracker m_position_tracker;
+EViewStyle m_nCurrentStyle;
+WindowPositionTracker m_position_tracker;
 
-  IdleDraw m_idleRedrawStatusText;
+IdleDraw m_idleRedrawStatusText;
 
 public:
 
-  bool IsSleeping()
-  {
-    return m_bSleeping;
-  }
-  void OnSleep();
-
-  void SetStatusText(CopiedString& status_text, const char* pText);
-  void UpdateStatusText();
-  void RedrawStatusText();
-  typedef MemberCaller<MainFrame, &MainFrame::RedrawStatusText> RedrawStatusTextCaller;
-
-  void SetGridStatus();
-  typedef MemberCaller<MainFrame, &MainFrame::SetGridStatus> SetGridStatusCaller;
-
-  void SetActiveXY(XYWnd* p);
-  XYWnd* ActiveXY()
-  {
-    return m_pActiveXY;
-  };
-  XYWnd* GetXYWnd()
-  {
-    return m_pXYWnd;
-  }
-  XYWnd* GetXZWnd()
-  {
-    return m_pXZWnd;
-  }
-  XYWnd* GetYZWnd()
-  {
-    return m_pYZWnd;
-  }
-  ZWnd* GetZWnd()
-  {
-    return m_pZWnd;
-  }
-  CamWnd* GetCamWnd()
-  {
-    return m_pCamWnd;
-  }
-
-  void ReleaseContexts();
-  void CreateContexts();
-
-  EViewStyle CurrentStyle()
-  {
-    return m_nCurrentStyle;
-  };
-  bool FloatingGroupDialog()
-  {
-    return CurrentStyle() == eFloating || CurrentStyle() == eSplit;
-  };
+bool IsSleeping(){
+       return m_bSleeping;
+}
+void OnSleep();
+
+void SetStatusText( CopiedString& status_text, const char* pText );
+void UpdateStatusText();
+void RedrawStatusText();
+typedef MemberCaller<MainFrame, void(), &MainFrame::RedrawStatusText> RedrawStatusTextCaller;
+
+void SetGridStatus();
+typedef MemberCaller<MainFrame, void(), &MainFrame::SetGridStatus> SetGridStatusCaller;
+
+void SetActiveXY( XYWnd* p );
+XYWnd* ActiveXY(){
+       return m_pActiveXY;
+};
+XYWnd* GetXYWnd(){
+       return m_pXYWnd;
+}
+XYWnd* GetXZWnd(){
+       return m_pXZWnd;
+}
+XYWnd* GetYZWnd(){
+       return m_pYZWnd;
+}
+ZWnd* GetZWnd(){
+       return m_pZWnd;
+}
+CamWnd* GetCamWnd(){
+       return m_pCamWnd;
+}
+
+void ReleaseContexts();
+void CreateContexts();
+
+EViewStyle CurrentStyle(){
+       return m_nCurrentStyle;
+};
+bool FloatingGroupDialog(){
+       return CurrentStyle() == eFloating || CurrentStyle() == eSplit;
+};
 };
 
 extern MainFrame* g_pParentWnd;
 
-GtkWindow* MainFrame_getWindow();
+ui::Window MainFrame_getWindow();
 
 enum EMouseButtonMode
 {
-  ETwoButton = 0,
-  EThreeButton = 1,
+       ETwoButton = 0,
+       EThreeButton = 1,
 };
 
 struct glwindow_globals_t
 {
-  int m_nMouseType;
+       int m_nMouseType;
 
-  glwindow_globals_t() :
-    m_nMouseType(EThreeButton)
-  {
-  }
+       glwindow_globals_t() :
+               m_nMouseType( EThreeButton ){
+       }
 };
 
 void GLWindow_Construct();
@@ -175,16 +164,15 @@ void GLWindow_Destroy();
 extern glwindow_globals_t g_glwindow_globals;
 template<typename Value>
 class LatchedValue;
-typedef LatchedValue<bool> LatchedBool;
-extern LatchedBool g_Layout_enableDetachableMenus;
+extern LatchedValue<bool> g_Layout_enableDetachableMenus;
 
 void deleteSelection();
 
 
-void Sys_Status(const char* status);
+void Sys_Status( const char* status );
 
 
-void ScreenUpdates_Disable(const char* message, const char* title);
+void ScreenUpdates_Disable( const char* message, const char* title );
 void ScreenUpdates_Enable();
 bool ScreenUpdates_Enabled();
 void ScreenUpdates_process();
@@ -192,14 +180,12 @@ void ScreenUpdates_process();
 class ScopeDisableScreenUpdates
 {
 public:
-  ScopeDisableScreenUpdates(const char* message, const char* title)
-  {
-    ScreenUpdates_Disable(message, title);
-  }
-  ~ScopeDisableScreenUpdates()
-  {
-    ScreenUpdates_Enable();
-  }
+ScopeDisableScreenUpdates( const char* message, const char* title ){
+       ScreenUpdates_Disable( message, title );
+}
+~ScopeDisableScreenUpdates(){
+       ScreenUpdates_Enable();
+}
 };
 
 
@@ -208,24 +194,28 @@ void EnginePath_Unrealise();
 
 class ModuleObserver;
 
-void Radiant_attachEnginePathObserver(ModuleObserver& observer);
-void Radiant_detachEnginePathObserver(ModuleObserver& observer);
+void Radiant_attachEnginePathObserver( ModuleObserver& observer );
+void Radiant_detachEnginePathObserver( ModuleObserver& observer );
 
-void Radiant_attachGameToolsPathObserver(ModuleObserver& observer);
-void Radiant_detachGameToolsPathObserver(ModuleObserver& observer);
+void Radiant_attachGameToolsPathObserver( ModuleObserver& observer );
+void Radiant_detachGameToolsPathObserver( ModuleObserver& observer );
 
 extern CopiedString g_strEnginePath;
 void EnginePath_verify();
 const char* EnginePath_get();
 const char* QERApp_GetGamePath();
 
+const int g_pakPathCount = 5;
+extern CopiedString g_strPakPath[g_pakPathCount];
+const char* PakPath_get( int num );
+
 extern CopiedString g_strAppPath;
 const char* AppPath_get();
 
 extern CopiedString g_strSettingsPath;
 const char* SettingsPath_get();
 
-const char* LocalRcPath_get(void);
+const char* LocalRcPath_get( void );
 
 const char* const g_pluginsDir = "plugins/"; ///< name of plugins directory, always sub-directory of toolspath
 const char* const g_modulesDir = "modules/"; ///< name of modules directory, always sub-directory of toolspath
@@ -249,40 +239,40 @@ void DefaultMode();
 
 const char* basegame_get();
 const char* gamename_get();
-void gamename_set(const char* gamename);
-void Radiant_attachGameNameObserver(ModuleObserver& observer);
-void Radiant_detachGameNameObserver(ModuleObserver& observer);
+void gamename_set( const char* gamename );
+void Radiant_attachGameNameObserver( ModuleObserver& observer );
+void Radiant_detachGameNameObserver( ModuleObserver& observer );
 const char* gamemode_get();
-void gamemode_set(const char* gamemode);
-void Radiant_attachGameModeObserver(ModuleObserver& observer);
-void Radiant_detachGameModeObserver(ModuleObserver& observer);
-
-
+void gamemode_set( const char* gamemode );
+void Radiant_attachGameModeObserver( ModuleObserver& observer );
+void Radiant_detachGameModeObserver( ModuleObserver& observer );
 
+void VFS_Refresh();
+void VFS_Restart();
 void VFS_Construct();
 void VFS_Destroy();
 
 void HomePaths_Construct();
 void HomePaths_Destroy();
-void Radiant_attachHomePathsObserver(ModuleObserver& observer);
-void Radiant_detachHomePathsObserver(ModuleObserver& observer);
+void Radiant_attachHomePathsObserver( ModuleObserver& observer );
+void Radiant_detachHomePathsObserver( ModuleObserver& observer );
 
 
 void MainFrame_Construct();
 void MainFrame_Destroy();
 
 
-extern float (*GridStatus_getGridSize)();
-extern int (*GridStatus_getRotateIncrement)();
-extern int (*GridStatus_getFarClipDistance)();
-extern bool (*GridStatus_getTextureLockEnabled)();
+extern float ( *GridStatus_getGridSize )();
+extern int ( *GridStatus_getRotateIncrement )();
+extern int ( *GridStatus_getFarClipDistance )();
+extern bool ( *GridStatus_getTextureLockEnabled )();
 void GridStatus_onTextureLockEnabledChanged();
 
-SignalHandlerId XYWindowDestroyed_connect(const SignalHandler& handler);
-void XYWindowDestroyed_disconnect(SignalHandlerId id);
-MouseEventHandlerId XYWindowMouseDown_connect(const MouseEventHandler& handler);
-void XYWindowMouseDown_disconnect(MouseEventHandlerId id);
+SignalHandlerId XYWindowDestroyed_connect( const SignalHandler& handler );
+void XYWindowDestroyed_disconnect( SignalHandlerId id );
+MouseEventHandlerId XYWindowMouseDown_connect( const MouseEventHandler& handler );
+void XYWindowMouseDown_disconnect( MouseEventHandlerId id );
 
-extern GtkWidget* g_page_entity;
+extern ui::Widget g_page_entity;
 
 #endif