- /**********************************************************************/
- /* 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 and Intel cards w/ buggy drivers (disappearing polygons)" ) );
- gtk_widget_show( check );
- gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, FALSE, 0 );
- AddDialogData( check, &m_bGlATIHack, DLG_CHECK_BOOL );
-#endif
-
-#ifdef NVIDIA_AERO_HACK
- check = gtk_check_button_new_with_label( _( "NVIDIA/Aero bug - disable Windows composition" ) );
- gtk_widget_show( check );
- gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, FALSE, 0 );
- AddDialogData( check, &m_bGlNvidiaAeroHack, 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" ) );