diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index 0fbac82b..6389b644 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -425,7 +425,7 @@ void Paths_constructPage( PreferenceGroup& group ){ Paths_constructPreferences( page ); } void Paths_registerPreferencesPage(){ - PreferencesDialog_addSettingsPage( FreeCaller1() ); + PreferencesDialog_addGamePage( FreeCaller1() ); } diff --git a/radiant/preferences.cpp b/radiant/preferences.cpp index 1c8b7e45..31eb532f 100644 --- a/radiant/preferences.cpp +++ b/radiant/preferences.cpp @@ -594,6 +594,15 @@ inline void PreferencesPageCallbacks_pushBack( PreferencesPageCallbacks& callbac callbacks.push_back( callback ); } +PreferencesPageCallbacks g_gamePreferences; +void PreferencesDialog_addGamePreferences( const PreferencesPageCallback& callback ){ + PreferencesPageCallbacks_pushBack( g_gamePreferences, callback ); +} +PreferenceGroupCallbacks g_gameCallbacks; +void PreferencesDialog_addGamePage( const PreferenceGroupCallback& callback ){ + PreferenceGroupCallbacks_pushBack( g_gameCallbacks, callback ); +} + PreferencesPageCallbacks g_interfacePreferences; void PreferencesDialog_addInterfacePreferences( const PreferencesPageCallback& callback ){ PreferencesPageCallbacks_pushBack( g_interfacePreferences, callback ); @@ -795,6 +804,19 @@ GtkWindow* PrefsDlg::BuildDialog(){ } } + { + GtkWidget* gamePage = PreferencePages_addPage( m_notebook, "Game Settings" ); + { + PreferencesPage preferencesPage( *this, getVBox( gamePage ) ); + PreferencesPageCallbacks_constructPage( g_gamePreferences, preferencesPage ); + } + + GtkTreeIter group = PreferenceTree_appendPage( store, 0, "Game", gamePage ); + PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group ); + + PreferenceGroupCallbacks_constructGroup( g_gameCallbacks, preferenceGroup ); + } + { GtkWidget* interfacePage = PreferencePages_addPage( m_notebook, "Interface Preferences" ); { diff --git a/radiant/preferences.h b/radiant/preferences.h index 7f25a689..33857a1e 100644 --- a/radiant/preferences.h +++ b/radiant/preferences.h @@ -118,6 +118,8 @@ virtual PreferencesPage createPage( const char* treeName, const char* frameName typedef Callback1 PreferenceGroupCallback; +void PreferencesDialog_addGamePreferences( const PreferencesPageCallback& callback ); +void PreferencesDialog_addGamePage( const PreferenceGroupCallback& callback ); void PreferencesDialog_addInterfacePreferences( const PreferencesPageCallback& callback ); void PreferencesDialog_addInterfacePage( const PreferenceGroupCallback& callback ); void PreferencesDialog_addDisplayPreferences( const PreferencesPageCallback& callback );