+ /******** Save/Load group *********/
+ preflabel = gtk_label_new(_("Startup/Auto save"));
+ gtk_widget_show(preflabel);
+ pageframe = gtk_frame_new(_("Startup/Auto save"));
+ 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);
+
+ // Snapshots
+ check = gtk_check_button_new_with_label (_("Snapshots"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ AddDialogData (check, &m_bSnapShots, DLG_CHECK_BOOL);
+
+ // load last project on open
+ check = gtk_check_button_new_with_label (_("Load last project on open"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ AddDialogData (check, &m_bLoadLast, DLG_CHECK_BOOL);
+
+ // load last map on open
+ check = gtk_check_button_new_with_label (_("Load last map on open"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ AddDialogData (check, &m_bLoadLastMap, DLG_CHECK_BOOL);
+
+ // Auto save..
+ // container
+ hbox2 = gtk_hbox_new (FALSE, 5);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox2, FALSE, FALSE, 0);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox2), 0);
+
+ // label
+ check = gtk_check_button_new_with_label (_("Auto save every"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (hbox2), check, FALSE, FALSE, 0);
+ AddDialogData (check, &m_bAutoSave, DLG_CHECK_BOOL);
+
+ // spinner
+ spin = gtk_spin_button_new (GTK_ADJUSTMENT (gtk_adjustment_new (1, 1, 60, 1, 10, 10)), 1, 0);
+ gtk_widget_show (spin);
+ gtk_box_pack_start (GTK_BOX (hbox2), spin, FALSE, FALSE, 0);
+ gtk_widget_set_usize (spin, 60, -2);
+ AddDialogData (spin, &m_nAutoSave, DLG_SPIN_INT);
+
+ // label
+ label = gtk_label_new (_("minutes"));
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
+
+ // Add the page to the notebook
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
+
+ /******** Paths group *********/
+ preflabel = gtk_label_new(_("Paths"));
+ gtk_widget_show(preflabel);
+ pageframe = gtk_frame_new(_("Paths"));
+ 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);
+
+ // prefab path
+ // table
+ table = gtk_table_new (3, 3, 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
+ label = gtk_label_new (_("Prefab path:"));
+ gtk_widget_show (label);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
+
+ // path entry
+ entry = gtk_entry_new ();
+ gtk_widget_show (entry);
+ gtk_widget_set_usize(GTK_WIDGET(entry), 240, -2);
+ gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 1, 0);
+ AddDialogData (entry, &m_strPrefabPath, DLG_ENTRY_TEXT);
+
+#if 0
+ // browse button
+ button = gtk_button_new_with_label ("...");
+ gtk_widget_show (button);
+ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (OnBtnBrowseprefab), this);
+ gtk_table_attach (GTK_TABLE (table), button, 2, 3, 0, 1,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+#endif
+
+ // User ini path
+ // label
+ label = gtk_label_new (_("User INI path:"));
+ gtk_widget_show (label);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
+
+ // user ini path entry
+ entry = gtk_entry_new ();
+ gtk_widget_show (entry);
+ gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 1, 2,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 1, 0);
+ AddDialogData (entry, &m_strUserPath, DLG_ENTRY_TEXT);
+
+ // user ini browse button
+ button = gtk_button_new_with_label ("...");
+ gtk_widget_show (button);
+ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (OnBtnBrowseuserini), this);
+ gtk_table_attach (GTK_TABLE (table), button, 2, 3, 1, 2,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+
+ // Add the page to the notebook
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
+
+ /******** Misc group *********/
+ preflabel = gtk_label_new(_("Misc"));
+ gtk_widget_show(preflabel);
+ pageframe = gtk_frame_new(_("Misc"));
+ 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);
+
+ // Light drawing
+ check = gtk_check_button_new_with_label (_("Light drawing"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ AddDialogData (check, &m_bNewLightDraw, DLG_CHECK_BOOL);
+
+ // Light radiuses
+ // 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 (_("Light radiuses:"));
+ 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 *)_("Disabled"));
+ combo_list = g_list_append (combo_list, (void *)_("True Q3Map2 Style"));
+ combo_list = g_list_append (combo_list, (void *)_("Classic Style"));
+
+ 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_nLightRadiuses, DLG_COMBO_INT);
+
+#ifdef _WIN32
+ check = gtk_check_button_new_with_label (_("Use win32 file associations to open text files instead of builtin editor"));
+ gtk_widget_show(check);
+ gtk_box_pack_start(GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ AddDialogData (check, &g_PrefsDlg.m_bUseWin32Editor, DLG_CHECK_BOOL);
+#else
+ // use custom shader editor
+ check = gtk_check_button_new_with_label (_("Use Custom Shader Editor"));
+ gtk_widget_show(check);
+ gtk_box_pack_start(GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ gtk_signal_connect( GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC(UpdateEditorSensitivity), this);
+ g_object_set_data (G_OBJECT(dialog), "check_customeditor", check);
+ AddDialogData (check, &g_PrefsDlg.m_bUseCustomEditor, DLG_CHECK_BOOL);
+
+ // custom shader editor executable
+ // table
+ table = gtk_table_new (3, 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
+ label = gtk_label_new(_("Custom Editor Command"));
+ gtk_widget_show(label);
+ gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+ gtk_misc_set_alignment (GTK_MISC (label), 1, 0.5);
+ g_object_set_data (G_OBJECT(dialog), "label_customeditor", label);
+ gtk_widget_set_sensitive (label, g_PrefsDlg.m_bUseCustomEditor);
+
+ // custom editor command entry
+ entry = gtk_entry_new ();
+ gtk_widget_show (entry);
+ gtk_widget_set_usize(GTK_WIDGET(entry), 240, -2);
+ gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1,
+ (GtkAttachOptions) (GTK_FILL),
+ (GtkAttachOptions) (0), 1, 0);
+ AddDialogData (entry, &m_strEditorCommand, DLG_ENTRY_TEXT);
+ gtk_widget_set_sensitive (entry, g_PrefsDlg.m_bUseCustomEditor);
+ g_object_set_data (G_OBJECT(dialog), "entry_customeditor", entry);
+
+ // browse button
+ button = gtk_button_new_with_label (_("..."));
+ gtk_widget_show (button);
+ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (OnBtnBrowseEditor), this);
+ gtk_table_attach (GTK_TABLE (table), button, 2, 3, 0, 1,
+ (GtkAttachOptions) (0),
+ (GtkAttachOptions) (0), 0, 0);
+ g_object_set_data (G_OBJECT(dialog), "button_customeditor", button);
+ gtk_widget_set_sensitive (button, g_PrefsDlg.m_bUseCustomEditor);
+#endif
+
+ // Add the page to the notebook
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
+
+ /******** BSP Monitoring group *********/
+ // this is never displayed if the plugin isn't available
+ preflabel = gtk_label_new(_("BSP Monitoring"));
+ gtk_widget_show(preflabel);
+ pageframe = gtk_frame_new(_("BSP Monitoring"));
+ 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);
+
+ // Enable BSP process monitoring
+ check = gtk_check_button_new_with_label (_("Enable BSP process monitoring"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (dialog), "check_monitorbsp", check);
+ gtk_signal_connect( GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC(UpdateSensitivity), this );
+ AddDialogData (check, &g_PrefsDlg.m_bWatchBSP, DLG_CHECK_BOOL);
+
+ // Stop on leak
+ check = gtk_check_button_new_with_label (_("Stop compilation on leak"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (dialog), "check_leakstop", check);
+ AddDialogData (check, &g_PrefsDlg.m_bLeakStop, DLG_CHECK_BOOL);
+
+ // engine after compile
+ check = gtk_check_button_new_with_label (_("Run engine after compile"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (dialog), "check_runengine", check);
+ gtk_signal_connect( GTK_OBJECT (check), "clicked", GTK_SIGNAL_FUNC(UpdateSensitivity), this );
+ AddDialogData( check, &g_PrefsDlg.m_bRunQuake, DLG_CHECK_BOOL );
+
+ // sleep mode when running engine
+ check = gtk_check_button_new_with_label (_("Activate sleep mode when running the engine"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (dialog), "check_sleep", check);
+ AddDialogData( check, &g_PrefsDlg.m_bDoSleep, DLG_CHECK_BOOL );
+
+ // use q3map2's texture projection
+ check = gtk_check_button_new_with_label (_("Texturing compatible with q3map2"));
+ gtk_widget_show (check);
+ gtk_box_pack_start (GTK_BOX (vbox), check, FALSE, FALSE, 0);
+ g_object_set_data (G_OBJECT (dialog), "check_q3map2", check);
+ AddDialogData( check, &g_PrefsDlg.m_bQ3Map2Texturing, DLG_CHECK_BOOL );
+
+ // Add the page to the notebook
+ gtk_notebook_append_page(GTK_NOTEBOOK(notebook), pageframe, preflabel);
+
+ gtk_notebook_set_page(GTK_NOTEBOOK(notebook), PTAB_FRONT);
+
+ return;