-ui::Window PrefsDlg::BuildDialog()
-{
- PreferencesDialog_addInterfacePreferences(makeCallbackF(Interface_constructPreferences));
- Mouse_registerPreferencesPage();
-
- ui::Window dialog = ui::Window(create_floating_window("NetRadiant Preferences", m_parent));
-
- {
- auto mainvbox = ui::VBox(FALSE, 5);
- dialog.add(mainvbox);
- gtk_container_set_border_width(GTK_CONTAINER(mainvbox), 5);
- mainvbox.show();
-
- {
- auto hbox = ui::HBox(FALSE, 5);
- hbox.show();
- mainvbox.pack_end(hbox, FALSE, TRUE, 0);
-
- {
- auto button = create_dialog_button("OK", G_CALLBACK(dialog_button_ok), &m_modal);
- hbox.pack_end(button, FALSE, FALSE, 0);
- }
- {
- auto button = create_dialog_button("Cancel", G_CALLBACK(dialog_button_cancel), &m_modal);
- hbox.pack_end(button, FALSE, FALSE, 0);
- }
- {
- auto button = create_dialog_button("Clean", G_CALLBACK(OnButtonClean), this);
- hbox.pack_end(button, FALSE, FALSE, 0);
- }
- }
-
- {
- auto hbox = ui::HBox(FALSE, 5);
- mainvbox.pack_start(hbox, TRUE, TRUE, 0);
- hbox.show();
-
- {
- auto sc_win = ui::ScrolledWindow(ui::New);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sc_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- hbox.pack_start(sc_win, FALSE, FALSE, 0);
- sc_win.show();
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sc_win), GTK_SHADOW_IN);
-
- // prefs pages notebook
- m_notebook = ui::Widget::from(gtk_notebook_new());
- // hide the notebook tabs since its not supposed to look like a notebook
- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(m_notebook), FALSE);
- hbox.pack_start(m_notebook, TRUE, TRUE, 0);
- m_notebook.show();
-
-
- {
- auto store = ui::TreeStore::from(gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_POINTER));
-
- auto view = ui::TreeView(ui::TreeModel::from(store._handle));
- gtk_tree_view_set_headers_visible(view, FALSE);
-
- {
- auto renderer = ui::CellRendererText(ui::New);
- auto column = ui::TreeViewColumn("Preferences", renderer, {{"text", 0}});
- gtk_tree_view_append_column(view, column);
- }
-
- {
- auto selection = ui::TreeSelection::from(gtk_tree_view_get_selection(view));
- selection.connect("changed", G_CALLBACK(treeSelection), this);
- }
-
- view.show();
-
- sc_win.add(view);
-
- {
- /********************************************************************/
- /* Add preference tree options */
- /********************************************************************/
- // Front page...
- //GtkWidget* front =
- PreferencePages_addPage(m_notebook, "Front Page");
-
- {
- auto global = PreferencePages_addPage(m_notebook, "Global Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(global));
- Global_constructPreferences(preferencesPage);
- }
- auto group = PreferenceTree_appendPage(store, 0, "Global", global);
- {
- auto game = PreferencePages_addPage(m_notebook, "Game");
- PreferencesPage preferencesPage(*this, getVBox(game));
- g_GamesDialog.CreateGlobalFrame(preferencesPage);
-
- PreferenceTree_appendPage(store, &group, "Game", game);
- }
- }
-
- {
- auto interfacePage = PreferencePages_addPage(m_notebook, "Interface Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(interfacePage));
- PreferencesPageCallbacks_constructPage(g_interfacePreferences, preferencesPage);
- }
-
- auto group = PreferenceTree_appendPage(store, 0, "Interface", interfacePage);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_interfaceCallbacks, preferenceGroup);
- }
-
- {
- auto display = PreferencePages_addPage(m_notebook, "Display Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(display));
- PreferencesPageCallbacks_constructPage(g_displayPreferences, preferencesPage);
- }
- auto group = PreferenceTree_appendPage(store, 0, "Display", display);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_displayCallbacks, preferenceGroup);
- }
-
- {
- auto settings = PreferencePages_addPage(m_notebook, "General Settings");
- {
- PreferencesPage preferencesPage(*this, getVBox(settings));
- PreferencesPageCallbacks_constructPage(g_settingsPreferences, preferencesPage);
- }
-
- auto group = PreferenceTree_appendPage(store, 0, "Settings", settings);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_settingsCallbacks, preferenceGroup);
- }
- }
-
- gtk_tree_view_expand_all(view);
-
- g_object_unref(G_OBJECT(store));
- }
- }
- }
- }
-
- gtk_notebook_set_current_page(GTK_NOTEBOOK(m_notebook), 0);
-
- return dialog;
+ui::Window PrefsDlg::BuildDialog(){
+ PreferencesDialog_addInterfacePreferences( makeCallbackF(Interface_constructPreferences) );
+ Mouse_registerPreferencesPage();
+
+ ui::Window dialog = ui::Window(create_floating_window( RADIANT_NAME " Preferences", m_parent ));
+
+ gtk_window_set_transient_for( dialog, m_parent );
+ gtk_window_set_position( dialog, GTK_WIN_POS_CENTER_ON_PARENT );
+
+ {
+ auto mainvbox = ui::VBox( FALSE, 5 );
+ dialog.add(mainvbox);
+ gtk_container_set_border_width( GTK_CONTAINER( mainvbox ), 5 );
+ mainvbox.show();
+
+ {
+ auto hbox = ui::HBox( FALSE, 5 );
+ hbox.show();
+ mainvbox.pack_end(hbox, FALSE, TRUE, 0);
+
+ {
+ auto button = create_dialog_button( "OK", G_CALLBACK( dialog_button_ok ), &m_modal );
+ hbox.pack_end(button, FALSE, FALSE, 0);
+ }
+ {
+ auto button = create_dialog_button( "Cancel", G_CALLBACK( dialog_button_cancel ), &m_modal );
+ hbox.pack_end(button, FALSE, FALSE, 0);
+ }
+ {
+ auto button = create_dialog_button( "Clean", G_CALLBACK( OnButtonClean ), this );
+ hbox.pack_end(button, FALSE, FALSE, 0);
+ }
+ }
+
+ {
+ auto hbox = ui::HBox( FALSE, 5 );
+ mainvbox.pack_start( hbox, TRUE, TRUE, 0 );
+ hbox.show();
+
+ {
+ auto sc_win = ui::ScrolledWindow(ui::New);
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( sc_win ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+ hbox.pack_start( sc_win, FALSE, FALSE, 0 );
+ sc_win.show();
+ gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( sc_win ), GTK_SHADOW_IN );
+
+ // prefs pages notebook
+ m_notebook = ui::Widget::from(gtk_notebook_new());
+ // hide the notebook tabs since its not supposed to look like a notebook
+ gtk_notebook_set_show_tabs( GTK_NOTEBOOK( m_notebook ), FALSE );
+ hbox.pack_start( m_notebook, TRUE, TRUE, 0 );
+ m_notebook.show();
+
+
+ {
+ auto store = ui::TreeStore::from(gtk_tree_store_new( 2, G_TYPE_STRING, G_TYPE_POINTER ));
+
+ auto view = ui::TreeView(ui::TreeModel::from(store._handle));
+ gtk_tree_view_set_headers_visible(view, FALSE );
+
+ {
+ auto renderer = ui::CellRendererText(ui::New);
+ auto column = ui::TreeViewColumn( "Preferences", renderer, {{"text", 0}} );
+ gtk_tree_view_append_column(view, column );
+ }
+
+ {
+ auto selection = ui::TreeSelection::from(gtk_tree_view_get_selection(view));
+ selection.connect( "changed", G_CALLBACK( treeSelection ), this );
+ }
+
+ view.show();
+
+ sc_win.add(view);
+
+ {
+ /********************************************************************/
+ /* Add preference tree options */
+ /********************************************************************/
+ // Front page...
+ //GtkWidget* front =
+ PreferencePages_addPage( m_notebook, "Front Page" );
+
+ {
+ auto global = PreferencePages_addPage( m_notebook, "Global Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( global ) );
+ Global_constructPreferences( preferencesPage );
+ }
+ auto group = PreferenceTree_appendPage( store, 0, "Global", global );
+ {
+ auto game = PreferencePages_addPage( m_notebook, "Game" );
+ PreferencesPage preferencesPage( *this, getVBox( game ) );
+ g_GamesDialog.CreateGlobalFrame( preferencesPage );
+
+ PreferenceTree_appendPage( store, &group, "Game", game );
+ }
+ }
+
+ {
+ auto interfacePage = PreferencePages_addPage( m_notebook, "Interface Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( interfacePage ) );
+ PreferencesPageCallbacks_constructPage( g_interfacePreferences, preferencesPage );
+ }
+
+ auto group = PreferenceTree_appendPage( store, 0, "Interface", interfacePage );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_interfaceCallbacks, preferenceGroup );
+ }
+
+ {
+ auto display = PreferencePages_addPage( m_notebook, "Display Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( display ) );
+ PreferencesPageCallbacks_constructPage( g_displayPreferences, preferencesPage );
+ }
+ auto group = PreferenceTree_appendPage( store, 0, "Display", display );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_displayCallbacks, preferenceGroup );
+ }
+
+ {
+ auto settings = PreferencePages_addPage( m_notebook, "General Settings" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( settings ) );
+ PreferencesPageCallbacks_constructPage( g_settingsPreferences, preferencesPage );
+ }
+
+ auto group = PreferenceTree_appendPage( store, 0, "Settings", settings );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_settingsCallbacks, preferenceGroup );
+ }
+ }
+
+ gtk_tree_view_expand_all(view );
+
+ g_object_unref( G_OBJECT( store ) );
+ }
+ }
+ }
+ }
+
+ gtk_notebook_set_current_page( GTK_NOTEBOOK( m_notebook ), 0 );
+
+ return dialog;