-GtkWindow* PrefsDlg::BuildDialog()
-{
- PreferencesDialog_addInterfacePreferences(FreeCaller1<PreferencesPage&, Interface_constructPreferences>());
- Mouse_registerPreferencesPage();
-
- GtkWindow* dialog = create_floating_window("NetRadiant Preferences", m_parent);
-
- {
- GtkWidget* mainvbox = gtk_vbox_new(FALSE, 5);
- gtk_container_add(GTK_CONTAINER(dialog), mainvbox);
- gtk_container_set_border_width(GTK_CONTAINER(mainvbox), 5);
- gtk_widget_show(mainvbox);
-
- {
- GtkWidget* hbox = gtk_hbox_new(FALSE, 5);
- gtk_widget_show(hbox);
- gtk_box_pack_end(GTK_BOX(mainvbox), hbox, FALSE, TRUE, 0);
-
- {
- GtkButton* button = create_dialog_button("OK", G_CALLBACK(dialog_button_ok), &m_modal);
- gtk_box_pack_end(GTK_BOX(hbox), GTK_WIDGET(button), FALSE, FALSE, 0);
- }
- {
- GtkButton* button = create_dialog_button("Cancel", G_CALLBACK(dialog_button_cancel), &m_modal);
- gtk_box_pack_end(GTK_BOX(hbox), GTK_WIDGET(button), FALSE, FALSE, 0);
- }
- {
- GtkButton* button = create_dialog_button("Clean", G_CALLBACK(OnButtonClean), this);
- gtk_box_pack_end(GTK_BOX(hbox), GTK_WIDGET(button), FALSE, FALSE, 0);
- }
- }
-
- {
- GtkWidget* hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(mainvbox), hbox, TRUE, TRUE, 0);
- gtk_widget_show(hbox);
-
- {
- GtkWidget* sc_win = gtk_scrolled_window_new(0, 0);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sc_win), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
- gtk_box_pack_start(GTK_BOX(hbox), sc_win, FALSE, FALSE, 0);
- gtk_widget_show(sc_win);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sc_win), GTK_SHADOW_IN);
-
- // prefs pages notebook
- m_notebook = 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);
- gtk_box_pack_start(GTK_BOX(hbox), m_notebook, TRUE, TRUE, 0);
- gtk_widget_show(m_notebook);
-
-
- {
- GtkTreeStore* store = gtk_tree_store_new(2, G_TYPE_STRING, G_TYPE_POINTER);
-
- GtkWidget* view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);
-
- {
- GtkCellRenderer* renderer = gtk_cell_renderer_text_new();
- GtkTreeViewColumn* column = gtk_tree_view_column_new_with_attributes("Preferences", renderer, "text", 0, 0);
- gtk_tree_view_append_column(GTK_TREE_VIEW(view), column);
- }
-
- {
- GtkTreeSelection* selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(view));
- g_signal_connect(G_OBJECT(selection), "changed", G_CALLBACK(treeSelection), this);
- }
-
- gtk_widget_show(view);
-
- gtk_container_add(GTK_CONTAINER (sc_win), view);
-
- {
- /********************************************************************/
- /* Add preference tree options */
- /********************************************************************/
- // Front page...
- //GtkWidget* front =
- PreferencePages_addPage(m_notebook, "Front Page");
-
- {
- GtkWidget* global = PreferencePages_addPage(m_notebook, "Global Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(global));
- Global_constructPreferences(preferencesPage);
- }
- GtkTreeIter group = PreferenceTree_appendPage(store, 0, "Global", global);
- {
- GtkWidget* game = PreferencePages_addPage(m_notebook, "Game");
- PreferencesPage preferencesPage(*this, getVBox(game));
- g_GamesDialog.CreateGlobalFrame(preferencesPage);
-
- PreferenceTree_appendPage(store, &group, "Game", game);
- }
- }
-
- {
- GtkWidget* interfacePage = PreferencePages_addPage(m_notebook, "Interface Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(interfacePage));
- PreferencesPageCallbacks_constructPage(g_interfacePreferences, preferencesPage);
- }
-
- GtkTreeIter group = PreferenceTree_appendPage(store, 0, "Interface", interfacePage);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_interfaceCallbacks, preferenceGroup);
- }
-
- {
- GtkWidget* display = PreferencePages_addPage(m_notebook, "Display Preferences");
- {
- PreferencesPage preferencesPage(*this, getVBox(display));
- PreferencesPageCallbacks_constructPage(g_displayPreferences, preferencesPage);
- }
- GtkTreeIter group = PreferenceTree_appendPage(store, 0, "Display", display);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_displayCallbacks, preferenceGroup);
- }
-
- {
- GtkWidget* settings = PreferencePages_addPage(m_notebook, "General Settings");
- {
- PreferencesPage preferencesPage(*this, getVBox(settings));
- PreferencesPageCallbacks_constructPage(g_settingsPreferences, preferencesPage);
- }
-
- GtkTreeIter group = PreferenceTree_appendPage(store, 0, "Settings", settings);
- PreferenceTreeGroup preferenceGroup(*this, m_notebook, store, group);
-
- PreferenceGroupCallbacks_constructGroup(g_settingsCallbacks, preferenceGroup);
- }
- }
-
- gtk_tree_view_expand_all(GTK_TREE_VIEW(view));
-
- g_object_unref(G_OBJECT(store));
- }
- }
- }
- }
-
- gtk_notebook_set_page(GTK_NOTEBOOK(m_notebook), 0);
-
- return dialog;
+ui::Window PrefsDlg::BuildDialog(){
+ PreferencesDialog_addInterfacePreferences( FreeCaller1<PreferencesPage&, Interface_constructPreferences>() );
+ Mouse_registerPreferencesPage();
+
+ ui::Window dialog = ui::Window(create_floating_window( "NetRadiant Preferences", m_parent ));
+
+ {
+ ui::Widget mainvbox = ui::VBox( FALSE, 5 );
+ gtk_container_add( GTK_CONTAINER( dialog ), mainvbox );
+ gtk_container_set_border_width( GTK_CONTAINER( mainvbox ), 5 );
+ gtk_widget_show( mainvbox );
+
+ {
+ ui::Widget hbox = ui::HBox( FALSE, 5 );
+ gtk_widget_show( hbox );
+ gtk_box_pack_end( GTK_BOX( mainvbox ), hbox, FALSE, TRUE, 0 );
+
+ {
+ GtkButton* button = create_dialog_button( "OK", G_CALLBACK( dialog_button_ok ), &m_modal );
+ gtk_box_pack_end( GTK_BOX( hbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+ }
+ {
+ GtkButton* button = create_dialog_button( "Cancel", G_CALLBACK( dialog_button_cancel ), &m_modal );
+ gtk_box_pack_end( GTK_BOX( hbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+ }
+ {
+ GtkButton* button = create_dialog_button( "Clean", G_CALLBACK( OnButtonClean ), this );
+ gtk_box_pack_end( GTK_BOX( hbox ), GTK_WIDGET( button ), FALSE, FALSE, 0 );
+ }
+ }
+
+ {
+ ui::Widget hbox = ui::HBox( FALSE, 5 );
+ gtk_box_pack_start( GTK_BOX( mainvbox ), hbox, TRUE, TRUE, 0 );
+ gtk_widget_show( hbox );
+
+ {
+ ui::Widget sc_win = ui::ScrolledWindow();
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( sc_win ), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC );
+ gtk_box_pack_start( GTK_BOX( hbox ), sc_win, FALSE, FALSE, 0 );
+ gtk_widget_show( sc_win );
+ gtk_scrolled_window_set_shadow_type( GTK_SCROLLED_WINDOW( sc_win ), GTK_SHADOW_IN );
+
+ // prefs pages notebook
+ m_notebook = ui::Widget(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 );
+ gtk_box_pack_start( GTK_BOX( hbox ), m_notebook, TRUE, TRUE, 0 );
+ gtk_widget_show( m_notebook );
+
+
+ {
+ GtkTreeStore* store = gtk_tree_store_new( 2, G_TYPE_STRING, G_TYPE_POINTER );
+
+ ui::Widget view = ui::TreeView(ui::TreeModel( GTK_TREE_MODEL( store ) ));
+ gtk_tree_view_set_headers_visible( GTK_TREE_VIEW( view ), FALSE );
+
+ {
+ auto renderer = ui::CellRendererText();
+ GtkTreeViewColumn* column = ui::TreeViewColumn( "Preferences", renderer, {{"text", 0}} );
+ gtk_tree_view_append_column( GTK_TREE_VIEW( view ), column );
+ }
+
+ {
+ GtkTreeSelection* selection = gtk_tree_view_get_selection( GTK_TREE_VIEW( view ) );
+ g_signal_connect( G_OBJECT( selection ), "changed", G_CALLBACK( treeSelection ), this );
+ }
+
+ gtk_widget_show( view );
+
+ gtk_container_add( GTK_CONTAINER( sc_win ), view );
+
+ {
+ /********************************************************************/
+ /* Add preference tree options */
+ /********************************************************************/
+ // Front page...
+ //GtkWidget* front =
+ PreferencePages_addPage( m_notebook, "Front Page" );
+
+ {
+ ui::Widget global = PreferencePages_addPage( m_notebook, "Global Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( global ) );
+ Global_constructPreferences( preferencesPage );
+ }
+ GtkTreeIter group = PreferenceTree_appendPage( store, 0, "Global", global );
+ {
+ ui::Widget game = PreferencePages_addPage( m_notebook, "Game" );
+ PreferencesPage preferencesPage( *this, getVBox( game ) );
+ g_GamesDialog.CreateGlobalFrame( preferencesPage );
+
+ PreferenceTree_appendPage( store, &group, "Game", game );
+ }
+ }
+
+ {
+ ui::Widget interfacePage = PreferencePages_addPage( m_notebook, "Interface Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( interfacePage ) );
+ PreferencesPageCallbacks_constructPage( g_interfacePreferences, preferencesPage );
+ }
+
+ GtkTreeIter group = PreferenceTree_appendPage( store, 0, "Interface", interfacePage );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_interfaceCallbacks, preferenceGroup );
+ }
+
+ {
+ ui::Widget display = PreferencePages_addPage( m_notebook, "Display Preferences" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( display ) );
+ PreferencesPageCallbacks_constructPage( g_displayPreferences, preferencesPage );
+ }
+ GtkTreeIter group = PreferenceTree_appendPage( store, 0, "Display", display );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_displayCallbacks, preferenceGroup );
+ }
+
+ {
+ ui::Widget settings = PreferencePages_addPage( m_notebook, "General Settings" );
+ {
+ PreferencesPage preferencesPage( *this, getVBox( settings ) );
+ PreferencesPageCallbacks_constructPage( g_settingsPreferences, preferencesPage );
+ }
+
+ GtkTreeIter group = PreferenceTree_appendPage( store, 0, "Settings", settings );
+ PreferenceTreeGroup preferenceGroup( *this, m_notebook, store, group );
+
+ PreferenceGroupCallbacks_constructGroup( g_settingsCallbacks, preferenceGroup );
+ }
+ }
+
+ gtk_tree_view_expand_all( GTK_TREE_VIEW( view ) );
+
+ g_object_unref( G_OBJECT( store ) );
+ }
+ }
+ }
+ }
+
+ gtk_notebook_set_current_page( GTK_NOTEBOOK( m_notebook ), 0 );
+
+ return dialog;