-void PrefsDlg::BuildDialog ()
-{
- // Main Preferences dialog
- GtkWidget *dialog, *mainvbox, *hbox, *sc_win, *preflabel;
-
- // Widgets on notebook pages
- GtkWidget *check, *label, *scale, *hbox2, *combo,
- *table, *spin, *entry, *pixmap,
- *radio, *button, *pageframe, *vbox;
-
- GList *combo_list = (GList*)NULL;
-
- GtkObject *adj;
-
- dialog = m_pWidget;
- gtk_window_set_title(GTK_WINDOW(dialog), _("GtkRadiant Preferences"));
- gtk_widget_realize(dialog);
-
- 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);
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_widget_show(hbox);
- gtk_box_pack_end(GTK_BOX(mainvbox), hbox, FALSE, TRUE, 0);
-
- button = gtk_button_new_with_label(_("OK"));
- gtk_widget_show(button);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize(button, 60, -2);
- AddModalButton(button, IDOK);
-
- button = gtk_button_new_with_label(_("Cancel"));
- gtk_widget_show(button);
- gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize(button, 60, -2);
- AddModalButton(button, IDCANCEL);
-
- button = gtk_button_new_with_label (_("Clean"));
- gtk_widget_show(button);
- gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(OnButtonClean), this);
- gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0);
- gtk_widget_set_usize (button, 60, -2);
-
- hbox = gtk_hbox_new(FALSE, 5);
- gtk_box_pack_start(GTK_BOX(mainvbox), hbox, TRUE, TRUE, 0);
- gtk_widget_show(hbox);
-
- sc_win = gtk_scrolled_window_new(NULL, NULL);
- 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);
-
- // prefs pages notebook
- notebook = gtk_notebook_new();
- // hide the notebook tabs since its not supposed to look like a notebook
- gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE);
- gtk_box_pack_start(GTK_BOX(hbox), notebook, TRUE, TRUE, 0);
- gtk_widget_show(notebook);
-
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sc_win), GTK_SHADOW_IN);
-
- {
- 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, NULL);
- 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 */
- /********************************************************************/
- {
- GtkTreeIter group;
- gtk_tree_store_append(store, &group, NULL);
- gtk_tree_store_set(store, &group, 0, _("Globals"), 1, PTAB_FRONT, -1);
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Game settings"), 1, (gpointer)PTAB_GAME_SETTINGS, -1);
- }
- }
-
- {
- GtkTreeIter group;
- gtk_tree_store_append(store, &group, NULL);
- gtk_tree_store_set(store, &group, 0, _("Display"), 1, PTAB_FRONT, -1);
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("2D Display/Rendering"), 1, (gpointer)PTAB_2D, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("3D View"), 1, (gpointer)PTAB_CAMERA, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Texture Settings"), 1, (gpointer)PTAB_TEXTURE, -1);
- }
- }
-
- {
- GtkTreeIter group;
- gtk_tree_store_append(store, &group, NULL);
- gtk_tree_store_set(store, &group, 0, _("Interface"), 1, PTAB_FRONT, -1);
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Layout"), 1, (gpointer)PTAB_LAYOUT, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Mouse"), 1, (gpointer)PTAB_MOUSE, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Editing"), 1, (gpointer)PTAB_EDITING, -1);
- }
- }
-
- {
- GtkTreeIter group;
- gtk_tree_store_append(store, &group, NULL);
- gtk_tree_store_set(store, &group, 0, _("Other"), 1, PTAB_FRONT, -1);
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Startup/Auto save"), 1, (gpointer)PTAB_STARTUP, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Paths"), 1, (gpointer)PTAB_PATHS, -1);
- }
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("Misc"), 1, (gpointer)PTAB_MISC, -1);
- }
- if (!g_qeglobals.bBSPFrontendPlugin)
- {
- GtkTreeIter tab;
- gtk_tree_store_append(store, &tab, &group);
- gtk_tree_store_set(store, &tab, 0, _("BSP Monitoring"), 1, (gpointer)PTAB_BSPMONITOR, -1);
- }
- }
- }
-
- gtk_tree_view_expand_all(GTK_TREE_VIEW(view));
-
- g_object_unref(G_OBJECT(store));
- }
-
- /**********************************************************************/
- /* build the prefs pages */
- /**********************************************************************/
-
- // Front page...
- // todo : add something interesting here
- // NOTE TTimo: tip of the day? or a logo?
- preflabel = gtk_label_new(_("Front Page"));
- gtk_widget_show(preflabel);
- pageframe = gtk_frame_new(NULL);
- gtk_container_set_border_width(GTK_CONTAINER(pageframe), 5);
- gtk_widget_show(pageframe);
- vbox = gtk_vbox_new(FALSE, 5);
- gtk_widget_show(vbox);
- gtk_widget_set_usize(GTK_WIDGET(vbox), 350, -2);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
- gtk_container_add(GTK_CONTAINER(pageframe), vbox);
-
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
-
- /******** global preferences group ****************************/
- preflabel = gtk_label_new(_("Globals"));
- gtk_widget_show(preflabel);
-
- pageframe = mGamesDialog.GetGlobalFrame();
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
-
- /******** 2D prefs group (xy views/rendering options) *********/
- preflabel = gtk_label_new(_("2D Display"));
- gtk_widget_show(preflabel);
- pageframe = gtk_frame_new(_("2D Display"));
- gtk_container_set_border_width(GTK_CONTAINER(pageframe), 5);
- gtk_widget_show(pageframe);
- vbox = gtk_vbox_new(FALSE, 5);
- gtk_widget_show(vbox);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
- gtk_container_add(GTK_CONTAINER(pageframe), vbox);
-
- // OpenGL Display Lists
- check = gtk_check_button_new_with_label(_("OpenGL Display Lists"));
- gtk_widget_show(check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData(check, &m_bDisplayLists, DLG_CHECK_BOOL);
-
- // Antialiased points & lines
- // Fishman - Add antialiazed points and lines support. 09/03/00
- check = gtk_check_button_new_with_label (_("OpenGL antialiased points and lines"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bAntialiasedPointsAndLines, DLG_CHECK_BOOL);
-
- // Solid selection boxes
- check = gtk_check_button_new_with_label (_("Solid selection boxes"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bNoStipple, DLG_CHECK_BOOL);
-
- // Display size info
- check = gtk_check_button_new_with_label (_("Display size info"));
- gtk_widget_show (check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bSizePaint, DLG_CHECK_BOOL);
-
- // Alternate vertex/edge handles
- // Gef: Kyro GL_POINT work around 25-aug-2001
- check = gtk_check_button_new_with_label (_("Alternate vertex/edge handles"));
- gtk_widget_show(check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData(check, &m_bGlPtWorkaround, DLG_CHECK_BOOL);
-
- g_list_free (combo_list);
-
-#ifdef ATIHACK_812
- // ATI bugs
- check = gtk_check_button_new_with_label (_("ATI cards with broken drivers - bug #802"));
- gtk_widget_show(check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData(check, &m_bGlATIHack, DLG_CHECK_BOOL);
-#endif
-
- // Add the page to the notebook
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
-
- /******** 3D Camera view group *********/
- preflabel = gtk_label_new(_("3D View"));
- gtk_widget_show(preflabel);
- pageframe = gtk_frame_new(_("3D View"));
- gtk_container_set_border_width(GTK_CONTAINER(pageframe), 5);
- gtk_widget_show(pageframe);
- vbox = gtk_vbox_new(FALSE, 5);
- gtk_widget_show(vbox);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
- gtk_container_add(GTK_CONTAINER(pageframe), vbox);
-
- // Directional velocity (Movement Velocity)
- // label container
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
-
- // label
- label = gtk_label_new(_("Movement Velocity"));
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
- gtk_widget_show(label);
- gtk_box_pack_start(GTK_BOX(hbox2), label, FALSE, FALSE, 0);
-
- // adjustment
- adj = gtk_adjustment_new(100, 50, 300, 1, 10, 10);
- AddDialogData(adj, &m_nMoveSpeed, DLG_ADJ_INT);
-
- // scale
- scale = gtk_hscale_new(GTK_ADJUSTMENT(adj));
- gtk_widget_show(scale);
- gtk_box_pack_start(GTK_BOX (vbox), scale, FALSE, TRUE, 2);
-
- gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
-
- // Angular velocity (Rotational Velocity)
- // label container
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
-
- // label
- label = gtk_label_new (_("Rotational Velocity"));
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
- gtk_widget_show (label);
- gtk_box_pack_start(GTK_BOX(hbox2), label, FALSE, FALSE, 0);
-
- // adjustment
- adj = gtk_adjustment_new (3, 1, 180, 1, 10, 10); // value, low, high, step, page_step, page_size
- AddDialogData (adj, &m_nAngleSpeed, DLG_ADJ_INT);
-
- // scale
- scale = gtk_hscale_new (GTK_ADJUSTMENT (adj));
- gtk_widget_show (scale);
- gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, TRUE, 2);
- gtk_scale_set_draw_value (GTK_SCALE (scale), TRUE);
-
- // Text under the velocity sliders
- // container
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
-
- // label
- label = gtk_label_new (_("slow"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
-
- // label
- label = gtk_label_new (_("fast"));
- gtk_widget_show (label);
- gtk_box_pack_end (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
-
- // Allow drag to select multiple faces/brushes
- // container
- table = gtk_table_new(2, 1, FALSE);
- gtk_widget_show(table);
- gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 5);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- label = gtk_label_new (_("Use paint-select in camera view:"));
- gtk_widget_show (label);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- combo_list = NULL;
- combo_list = g_list_append (combo_list, (void *)_("No"));
- combo_list = g_list_append (combo_list, (void *)_("Yes"));
- combo_list = g_list_append (combo_list, (void *)_("Yes (Classic Key Setup)"));
-
- combo = gtk_combo_new ();
- gtk_combo_set_popdown_strings (GTK_COMBO (combo), combo_list);
- gtk_widget_show (combo);
- gtk_table_attach(GTK_TABLE(table), combo, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (combo)->entry), FALSE);
- AddDialogData (combo, &m_nCamDragMultiSelect, DLG_COMBO_INT);
-
- // Freelook in Camera view
- check = gtk_check_button_new_with_label (_("Freelook in Camera view"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (GTK_BIN (check)->child), GTK_JUSTIFY_LEFT);
- AddDialogData (check, &m_bCamFreeLook, DLG_CHECK_BOOL);
-
- // Freelook in Camera view w/ forward & back strafing instead of up and down looking
- check = gtk_check_button_new_with_label (_("Freelook strafes Forward and Back"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (GTK_BIN (check)->child), GTK_JUSTIFY_LEFT);
- AddDialogData (check, &m_bCamFreeLookStrafe, DLG_CHECK_BOOL);
-
- // Invert mouse in freelook
- check = gtk_check_button_new_with_label (_("Invert mouse in freelook"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (GTK_BIN (check)->child), GTK_JUSTIFY_LEFT);
- AddDialogData (check, &m_bCamInverseMouse, DLG_CHECK_BOOL);
-
- // Discrete movement
- check = gtk_check_button_new_with_label (_("Discrete movement"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (GTK_BIN (check)->child), GTK_JUSTIFY_LEFT);
- AddDialogData (check, &m_bCamDiscrete, DLG_CHECK_BOOL);
-
- // Update XY views on camera move
- check = gtk_check_button_new_with_label (_("Update XY views on camera move"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- gtk_label_set_justify (GTK_LABEL (GTK_BIN (check)->child), GTK_JUSTIFY_LEFT);
- AddDialogData (check, &m_bCamXYUpdate, DLG_CHECK_BOOL);
-
- // Add the page to the notebook
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
-
- /******** Texture group *********/
- preflabel = gtk_label_new(_("Textures"));
- gtk_widget_show(preflabel);
- pageframe = gtk_frame_new(_("Textures"));
- gtk_container_set_border_width(GTK_CONTAINER(pageframe), 5);
- gtk_widget_show(pageframe);
- vbox = gtk_vbox_new(FALSE, 6);
- gtk_widget_show(vbox);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
- gtk_container_add(GTK_CONTAINER(pageframe), vbox);
-
- // Texture quality slider
- // label
- label = gtk_label_new (_("Texture quality"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
-
- // adjustment
- adj = gtk_adjustment_new (0, 0, 4, 1, 1, 1);
- AddDialogData (adj, &m_nLatchedTextureQuality, DLG_ADJ_INT);
-
- // scale
- scale = gtk_hscale_new (GTK_ADJUSTMENT (adj));
- gtk_widget_show (scale);
- gtk_box_pack_start (GTK_BOX (vbox), scale, FALSE, FALSE, 0);
- gtk_scale_set_draw_value (GTK_SCALE (scale), FALSE);
-
- // text under the texture slider
- hbox2 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox2);
- gtk_box_pack_start (GTK_BOX (vbox), hbox2, FALSE, FALSE, 0);
- label = gtk_label_new (_("low"));
- gtk_widget_show (label);
- gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
- label = gtk_label_new (_("high"));
- gtk_widget_show (label);
- gtk_box_pack_end (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
-
- // texture subsets
- check = gtk_check_button_new_with_label (_("Texture subsets"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bTextureWindow, DLG_CHECK_BOOL);
-
- // texture scrollbar
- check = gtk_check_button_new_with_label (_("Texture scrollbar"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bTextureScrollbar, DLG_CHECK_BOOL);
-
- // texture increment matches grid
- check = gtk_check_button_new_with_label (_("Tex increment matches grid"));
- gtk_widget_show (check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bSnapTToGrid, DLG_CHECK_BOOL);
-
- // RIANT
- // Texture compression choice label
- // container
- table = gtk_table_new(2, 1, FALSE);
- gtk_widget_show(table);
- gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 5);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- label = gtk_label_new (_("Texture Compression (if available):"));
- gtk_widget_show (label);
- gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-
- // Texture compression choice label
- combo_list = NULL;
- // NONE will always be in pos 0
- combo_list = g_list_append (combo_list, (void *)_("None"));
-
- // if OpenGL compression is enabled it will always be
- // in pos 1
- if (g_qeglobals.m_bOpenGLCompressionSupported)
- {
- combo_list = g_list_append (combo_list, (void *)_("OpenGL ARB"));
- }
-
- // If S3 is enabled offer all 3 valid compression schemes in RGBA
- if (g_qeglobals.m_bS3CompressionSupported)
- {
- combo_list = g_list_append (combo_list, (void *)_("S3TC DXT1"));
- combo_list = g_list_append (combo_list, (void *)_("S3TC DXT3"));
- combo_list = g_list_append (combo_list, (void *)_("S3TC DXT5"));
- }
-
- combo = gtk_combo_new ();
- gtk_combo_set_popdown_strings (GTK_COMBO (combo), combo_list);
- gtk_widget_show (combo);
- gtk_table_attach(GTK_TABLE(table), combo, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (combo)->entry), FALSE);
- AddDialogData (combo, &m_nTextureCompressionFormat, DLG_COMBO_INT);
- g_list_free (combo_list);
-
- // container
- table = gtk_table_new(2, 1, FALSE);
- gtk_widget_show(table);
- gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 5);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- // Startup shaders
- // label
- label = gtk_label_new (_("Startup Shaders:"));
- gtk_widget_show (label);
- gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT);
- gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
-
- // combo list
- combo_list = NULL;
- combo_list = g_list_append (combo_list, (void *)_("None"));
- if (g_pGameDescription->mGameFile == "jk2.game" || g_pGameDescription->mGameFile == "ja.game")
- combo_list = g_list_append (combo_list, (void *)_("System"));
- else if (g_pGameDescription->mGameFile == "sof2.game")
- combo_list = g_list_append (combo_list, (void *)("Tools"));
- else
- combo_list = g_list_append (combo_list, (void *)_("Common"));
- combo_list = g_list_append (combo_list, (void *)_("All"));
- combo = gtk_combo_new ();
- gtk_combo_set_popdown_strings (GTK_COMBO (combo), combo_list);
- gtk_widget_show (combo);
- gtk_table_attach(GTK_TABLE(table), combo, 1, 2, 0, 1,
- (GtkAttachOptions) (GTK_FILL),
- (GtkAttachOptions) (0), 0, 0);
- gtk_entry_set_editable (GTK_ENTRY (GTK_COMBO (combo)->entry), FALSE);
- AddDialogData (combo, &m_nLatchedShader, DLG_COMBO_INT);
- g_list_free (combo_list);
-
- // Add the page to the notebook
- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
-
- /******** Layout group *********/
- preflabel = gtk_label_new(_("Layout"));
- gtk_widget_show(preflabel);
- pageframe = gtk_frame_new(_("Layout"));
- gtk_container_set_border_width(GTK_CONTAINER(pageframe), 5);
- gtk_widget_show(pageframe);
- vbox = gtk_vbox_new(FALSE, 5);
- gtk_widget_show(vbox);
- gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
- gtk_container_add(GTK_CONTAINER(pageframe), vbox);
-
- // View types
- // table
- table = gtk_table_new (2, 4, FALSE);
- gtk_widget_show (table);
- gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
- gtk_table_set_row_spacings (GTK_TABLE (table), 5);
- gtk_table_set_col_spacings (GTK_TABLE (table), 5);
-
- // view type 1
- pixmap = new_pixmap (g_pParentWnd->m_pWidget, "window1.bmp");
- gtk_widget_show (pixmap);
- gtk_table_attach (GTK_TABLE (table), pixmap, 0, 1, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 2
- pixmap = new_pixmap (g_pParentWnd->m_pWidget, "window2.bmp");
- gtk_widget_show (pixmap);
- gtk_table_attach (GTK_TABLE (table), pixmap, 1, 2, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 3
- pixmap = new_pixmap (g_pParentWnd->m_pWidget, "window3.bmp");
- gtk_widget_show (pixmap);
- gtk_table_attach (GTK_TABLE (table), pixmap, 2, 3, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 4
- pixmap = new_pixmap (g_pParentWnd->m_pWidget, "window4.bmp");
- gtk_widget_show (pixmap);
- gtk_table_attach (GTK_TABLE (table), pixmap, 3, 4, 0, 1,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 1 selector
- radio = gtk_radio_button_new (NULL);
- gtk_widget_show (radio);
- gtk_table_attach (GTK_TABLE (table), radio, 0, 1, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 2 selector
- radio = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (radio));
- gtk_widget_show (radio);
- gtk_table_attach (GTK_TABLE (table), radio, 1, 2, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 3 selector
- radio = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (radio));
- gtk_widget_show (radio);
- gtk_table_attach (GTK_TABLE (table), radio, 2, 3, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
-
- // view type 4 selector
- radio = gtk_radio_button_new_from_widget (GTK_RADIO_BUTTON (radio));
- gtk_widget_show (radio);
- gtk_table_attach (GTK_TABLE (table), radio, 3, 4, 1, 2,
- (GtkAttachOptions) (0),
- (GtkAttachOptions) (0), 0, 0);
- AddDialogData (radio, &m_nLatchedView, DLG_RADIO_INT);
-
- // Floating Z window
- check = gtk_check_button_new_with_label (_("Floating Z Window"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bLatchedFloatingZ, DLG_CHECK_BOOL);
-
- // show menu tear-off seperators
- check = gtk_check_button_new_with_label (_("Detachable Menus"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bLatchedDetachableMenus, DLG_CHECK_BOOL);
-
- if (!g_pGameDescription->mNoPatch)
- {
- // show patch toolbar
- check = gtk_check_button_new_with_label (_("Patch Toolbar"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- g_object_set_data (G_OBJECT (dialog), "check_patchtoolbar", check); // Allow to be disabled for Q1/Q2
- AddDialogData (check, &m_bLatchedPatchToolbar, DLG_CHECK_BOOL);
- }
-
- // use wide toolbar
- check = gtk_check_button_new_with_label (_("Wide Toolbar"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bLatchedWideToolbar, DLG_CHECK_BOOL);
-
- // use plugin toolbar
- check = gtk_check_button_new_with_label (_("Plugin Toolbar"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bLatchedPluginToolbar, DLG_CHECK_BOOL);
-
-#ifdef _WIN32
- // win32 file dialog
- check = gtk_check_button_new_with_label (_("Use win32 file load dialog"));
- gtk_widget_show (check);
- // gtk_container_add (GTK_CONTAINER (vbox), check);
- gtk_box_pack_start(GTK_BOX(vbox), check, FALSE, FALSE, 0);
- AddDialogData (check, &m_bNativeGUI, DLG_CHECK_BOOL);
-
- // position on primary monitor
- check = gtk_check_button_new_with_label (_("Start on Primary Monitor"));
- gtk_widget_show (check);
- gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
- g_object_set_data (G_OBJECT (dialog), "check_startonprimary", check);
- gtk_signal_connect( GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC(UpdateSensitivity), this );
- AddDialogData (check, &m_bStartOnPrimMon, DLG_CHECK_BOOL);
-#endif