- // 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);
+ // 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 );