]> git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/gtkgensurf/gendlgs.cpp
Wrap GtkCheckButton
[xonotic/netradiant.git] / contrib / gtkgensurf / gendlgs.cpp
index 5766aa90a98d0743069b47b156cf52f48301675f..f3faae300cba027df8c1a9c9d410675045387292 100644 (file)
 
 #include <gtk/gtk.h>
 #include <stdio.h>
-#include <stdlib.h>
+#include <cstdlib>
 #include <string.h>
 #include <math.h>
 #include "gensurf.h"
-#include <glib/gi18n.h>
 
 #define GENERAL_TAB   0
 #define EXTENTS_TAB   1
@@ -98,7 +97,7 @@ void About( GtkWidget *parent ){
                                                                                 "Enhancements\n"
                                                                                 "Pablo Zurita (pablo@qeradiant.com)\n"
                                                                                 "Hydra (hydra@hydras-world.com)",
-                                                                "About GtkGenSurf", MB_OK, NULL );
+                                                                "About GtkGenSurf", eMB_OK );
 }
 
 // =============================================================================
@@ -259,23 +258,20 @@ static void SetupControls(){
 static void SetDlgValues( int tab ){
        char Text[256];
        char RForm[16] = "%.5g";
+       int i;
 
        switch ( tab )
        {
        case GENERAL_TAB:
-               // mattn: Deactivated because one wasn't able to switch the gametype or orientation
-#if 0
                // Hell if I know why, but in the release build the 2nd pass thru the
                // set_sensitive loop for game_radios crashes. No need to do this more
                // than once anyhow.
                if ( !FirstPassComplete ) {
-                       int i;
                        for ( i = 0; i < NUMGAMES; i++ )
                                gtk_widget_set_sensitive( game_radios[i], ( i == Game ? TRUE : FALSE ) );
                        for ( i = 0; i < 6; i++ )
                                gtk_widget_set_sensitive( plane_radios[i], ( i == Plane ? TRUE : FALSE ) );
                }
-#endif
                gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( game_radios[Game] ), TRUE );
                gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( plane_radios[Plane] ), TRUE );
                gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( wave_radios[WaveType] ), TRUE );
@@ -728,14 +724,14 @@ static void main_go( GtkWidget *widget, gpointer data ){
        ReadDlgValues( current_tab );
        if ( NH < 1 || NH > MAX_ROWS ) {
                sprintf( Text, "The number of divisions must be > 0 and no greater than %d.", MAX_ROWS );
-               g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", MB_ICONEXCLAMATION, NULL );
+               g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", eMB_OK, eMB_ICONWARNING );
                gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
                return;
        }
 
        if ( NV < 1 || NV > MAX_ROWS ) {
                sprintf( Text, "The number of divisions must be > 0 and no greater than %d.", MAX_ROWS );
-               g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", MB_ICONEXCLAMATION, NULL );
+               g_FuncTable.m_pfnMessageBox( g_pWnd, Text, "GenSurf", eMB_OK, eMB_ICONWARNING );
                gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
                return;
        }
@@ -743,7 +739,7 @@ static void main_go( GtkWidget *widget, gpointer data ){
        if ( Hll >= Hur ) {
                g_FuncTable.m_pfnMessageBox( g_pWnd, "The \"lower-left\" values must be less than "
                                                                                         "the corresponding \"upper-right\" values in "
-                                                                                        "the \"Extent\" box.","GenSurf", MB_OK | MB_ICONEXCLAMATION, NULL );
+                                                                                        "the \"Extent\" box.","GenSurf", eMB_OK, eMB_ICONWARNING );
                gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
                return;
        }
@@ -751,13 +747,13 @@ static void main_go( GtkWidget *widget, gpointer data ){
        if ( Vll >= Vur ) {
                g_FuncTable.m_pfnMessageBox( g_pWnd,"The \"lower-left\" values must be less than "
                                                                                        "the corresponding \"upper-right\" values in "
-                                                                                       "the \"Extent\" box.","GenSurf", MB_OK | MB_ICONEXCLAMATION, NULL );
+                                                                                       "the \"Extent\" box.","GenSurf", eMB_OK, eMB_ICONWARNING );
                gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
                return;
        }
 
        if ( !strlen( Texture[Game][0] ) ) {
-               g_FuncTable.m_pfnMessageBox( g_pWnd, "You must supply a texture name.", "GenSurf", MB_ICONEXCLAMATION, NULL );
+               g_FuncTable.m_pfnMessageBox( g_pWnd, "You must supply a texture name.", "GenSurf", eMB_OK, eMB_ICONWARNING );
                gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
                return;
        }
@@ -767,7 +763,7 @@ static void main_go( GtkWidget *widget, gpointer data ){
     MessageBox(hwnd,"You've elected to use a decimated grid and gimp's non-detail hint brushes. "
                "This combination usually produces bizarre visual errors in the game, "
                "so GenSurf has turned off the hint brush option.",
-               "GenSurf",MB_ICONEXCLAMATION);
+               "GenSurf",eMB_ICONWARNING);
     GimpHints = 0;
    } */
 
@@ -898,12 +894,12 @@ static void bitmap_browse( GtkWidget *widget, gpointer data ){
        const char *filename;
        char *ptr;
 
-       filename = g_FuncTable.m_pfnFileDialog( g_pWnd, TRUE, "Bitmap File", gbmp.defpath, "gtkgensurf", NULL );
+       filename = g_FuncTable.m_pfnFileDialog( g_pWnd, TRUE, "Bitmap File", gbmp.defpath );
 
        if ( filename != NULL ) {
                strcpy( gbmp.name, filename );
 
-               ptr = (char *) strrchr( filename, G_DIR_SEPARATOR );
+               ptr = strrchr( filename, G_DIR_SEPARATOR );
                if ( ptr != NULL ) {
                        *( ptr + 1 ) = '\0';
                        strcpy( gbmp.defpath, filename );
@@ -935,7 +931,7 @@ static gint fix_value_entryfocusout( GtkWidget* widget, GdkEventFocus *event, gp
        if ( i < -65536 || i > 65536 ) {
                gdk_beep();
                g_FuncTable.m_pfnMessageBox( g_pWnd, "The value must be between -65536 and 65536, inclusive.",
-                                                                        "GenSurf", MB_OK | MB_ICONEXCLAMATION, NULL );
+                                                                        "GenSurf", eMB_OK, eMB_ICONWARNING );
                sprintf( Text, "%d", (int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
                gtk_entry_set_text( GTK_ENTRY( widget ), Text );
                gtk_window_set_focus( GTK_WINDOW( gtk_widget_get_toplevel( widget ) ), widget );
@@ -1384,17 +1380,17 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "General" ) );
+       label = ui::Label( "General" );
        gtk_widget_show( label );
        gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), table, label );
 
-       frame = gtk_frame_new( _( "Game" ) );
+       frame = gtk_frame_new( "Game" );
        gtk_widget_show( frame );
        gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
 
-       vbox = gtk_vbox_new( TRUE, 5 );
+       vbox = ui::VBox( TRUE, 5 );
        gtk_widget_show( vbox );
        gtk_container_add( GTK_CONTAINER( frame ), vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
@@ -1409,13 +1405,13 @@ GtkWidget* create_main_dialog(){
                g_signal_connect( G_OBJECT( radio ), "toggled", G_CALLBACK( general_game ), GINT_TO_POINTER( i ) );
        }
 
-       frame = gtk_frame_new( _( "Waveform" ) );
+       frame = gtk_frame_new( "Waveform" );
        gtk_widget_show( frame );
        gtk_table_attach( GTK_TABLE( table ), frame, 1, 2, 0, 1,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
 
-       vbox = gtk_vbox_new( TRUE, 5 );
+       vbox = ui::VBox( TRUE, 5 );
        gtk_widget_show( vbox );
        gtk_container_add( GTK_CONTAINER( frame ), vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
@@ -1430,13 +1426,13 @@ GtkWidget* create_main_dialog(){
                g_signal_connect( G_OBJECT( radio ), "toggled", G_CALLBACK( general_wave ), GINT_TO_POINTER( i ) );
        }
 
-       frame = gtk_frame_new( _( "Orientation" ) );
+       frame = gtk_frame_new( "Orientation" );
        gtk_widget_show( frame );
        gtk_table_attach( GTK_TABLE( table ), frame, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
 
-       vbox = gtk_vbox_new( TRUE, 5 );
+       vbox = ui::VBox( TRUE, 5 );
        gtk_widget_show( vbox );
        gtk_container_add( GTK_CONTAINER( frame ), vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
@@ -1459,7 +1455,7 @@ GtkWidget* create_main_dialog(){
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Wavelength:" ) );
+       label = ui::Label( "Wavelength:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table2 ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1467,7 +1463,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-       label = gtk_label_new( _( "Max. amplitude:" ) );
+       label = ui::Label( "Max. amplitude:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table2 ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1475,7 +1471,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-       label = gtk_label_new( _( "Roughness:" ) );
+       label = ui::Label( "Roughness:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table2 ), label, 0, 1, 2, 3,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1483,7 +1479,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-       label = gtk_label_new( _( "Random seed:" ) );
+       label = ui::Label( "Random seed:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table2 ), label, 0, 1, 3, 4,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1518,7 +1514,7 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "roughness", entry );
        g_signal_connect( G_OBJECT( entry ), "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Roughness );
 
-       adj = gtk_adjustment_new( 1, 1, 32767, 1, 10, 10 );
+       adj = gtk_adjustment_new( 1, 1, 32767, 1, 10, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( general_random ), NULL );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
@@ -1528,11 +1524,11 @@ GtkWidget* create_main_dialog(){
        gtk_widget_set_usize( spin, 60, -2 );
        g_object_set_data( G_OBJECT( dlg ), "random", spin );
 
-       vbox = gtk_vbox_new( FALSE, 5 );
+       vbox = ui::VBox( FALSE, 5 );
        gtk_widget_show( vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
 
-       label = gtk_label_new( _( "Extents" ) );
+       label = ui::Label( "Extents" );
        gtk_widget_show( label );
        gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
 
@@ -1540,7 +1536,7 @@ GtkWidget* create_main_dialog(){
        gtk_widget_show( hbox2 );
        gtk_box_pack_start( GTK_BOX( vbox ), hbox2, FALSE, TRUE, 0 );
 
-       frame = gtk_frame_new( _( "Extents" ) );
+       frame = gtk_frame_new( "Extents" );
        gtk_widget_show( frame );
        gtk_box_pack_start( GTK_BOX( hbox2 ), frame, TRUE, TRUE, 0 );
 
@@ -1551,41 +1547,41 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "X:" ) );
+       label = ui::Label( "X:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "hmin_text", label );
 
-       label = gtk_label_new( _( "X:" ) );
+       label = ui::Label( "X:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 2, 3, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "hmax_text", label );
 
-       label = gtk_label_new( _( "Y:" ) );
+       label = ui::Label( "Y:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 2, 3,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "vmin_text", label );
 
-       label = gtk_label_new( _( "Y:" ) );
+       label = ui::Label( "Y:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 2, 3, 2, 3,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "vmax_text", label );
 
-       label = gtk_label_new( _( "Lower-left" ) );
+       label = ui::Label( "Lower-left" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 1, 2, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Upper-right" ) );
+       label = ui::Label( "Upper-right" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 3, 4, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1627,7 +1623,7 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "vmax", entry );
        g_signal_connect( G_OBJECT( entry ), "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Vur );
 
-       frame = gtk_frame_new( _( "Divisions" ) );
+       frame = gtk_frame_new( "Divisions" );
        gtk_widget_show( frame );
        gtk_box_pack_start( GTK_BOX( hbox2 ), frame, TRUE, TRUE, 0 );
 
@@ -1638,21 +1634,21 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "X:" ) );
+       label = ui::Label( "X:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "nh_text", label );
 
-       label = gtk_label_new( _( "Y:" ) );
+       label = ui::Label( "Y:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
        g_object_set_data( G_OBJECT( dlg ), "nv_text", label );
 
-       adj = gtk_adjustment_new( 8, 1, MAX_ROWS, 1, 10, 10 );
+       adj = gtk_adjustment_new( 8, 1, MAX_ROWS, 1, 10, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( extents_nhnv_spin ), &NH );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
@@ -1662,7 +1658,7 @@ GtkWidget* create_main_dialog(){
        gtk_widget_set_usize( spin, 60, -2 );
        g_object_set_data( G_OBJECT( dlg ), "nh", spin );
 
-       adj = gtk_adjustment_new( 8, 1, MAX_ROWS, 1, 10, 10 );
+       adj = gtk_adjustment_new( 8, 1, MAX_ROWS, 1, 10, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( extents_nhnv_spin ), &NV );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
@@ -1672,19 +1668,19 @@ GtkWidget* create_main_dialog(){
        gtk_widget_set_usize( spin, 60, -2 );
        g_object_set_data( G_OBJECT( dlg ), "nv", spin );
 
-       check = gtk_check_button_new_with_label( "Use Bezier patches" );
+       check = ui::CheckButton( "Use Bezier patches" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "use_patches", check );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( extents_use_patches ), NULL );
 
        // ^Fishman - Snap to grid, replaced scroll bar with a texbox.
-       label = gtk_label_new( _( "Snap to grid:" ) );
+       label = ui::Label( "Snap to grid:" );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, TRUE, 0 );
        gtk_object_set_data( GTK_OBJECT( dlg ), "snap_text", label );
 
-       adj = gtk_adjustment_new( 8, 0, 256, 1, 10, 10 );
+       adj = gtk_adjustment_new( 8, 0, 256, 1, 10, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( extents_snaptogrid_spin ), &SP );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
@@ -1697,11 +1693,11 @@ GtkWidget* create_main_dialog(){
        gtk_widget_show( hbox2 );
        gtk_box_pack_start( GTK_BOX( vbox ), hbox2, FALSE, TRUE, 10 );
 
-       label = gtk_label_new( _( "Decimate:" ) );
+       label = ui::Label( "Decimate:" );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( hbox2 ), label, FALSE, TRUE, 0 );
 
-       adj = gtk_adjustment_new( 0, 0, 110, 1, 10, 10 );
+       adj = gtk_adjustment_new( 0, 0, 110, 1, 10, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( extents_decimate ), NULL );
        g_object_set_data( G_OBJECT( dlg ), "decimate_adj", adj );
        scale = gtk_hscale_new( GTK_ADJUSTMENT( adj ) );
@@ -1711,7 +1707,7 @@ GtkWidget* create_main_dialog(){
        gtk_scale_set_digits( GTK_SCALE( scale ), 0 );
        g_object_set_data( G_OBJECT( dlg ), "decimate", scale );
 
-       frame = gtk_frame_new( _( "Corner values" ) );
+       frame = gtk_frame_new( "Corner values" );
        gtk_widget_show( frame );
        gtk_box_pack_start( GTK_BOX( vbox ), frame, FALSE, TRUE, 0 );
 
@@ -1722,25 +1718,25 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Upper-left:" ) );
+       label = ui::Label( "Upper-left:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Lower-left:" ) );
+       label = ui::Label( "Lower-left:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Upper-right:" ) );
+       label = ui::Label( "Upper-right:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 2, 3, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Lower-right:" ) );
+       label = ui::Label( "Lower-right:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 2, 3, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1782,7 +1778,7 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "z10", entry );
        g_signal_connect( G_OBJECT( entry ), "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Z10 );
 
-       check = gtk_check_button_new_with_label( "Linear borders" );
+       check = ui::CheckButton( "Linear borders" );
        gtk_widget_show( check );
        gtk_table_attach( GTK_TABLE( table ), check, 0, 4, 2, 3,
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ),
@@ -1790,15 +1786,15 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "linearborder", check );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( extents_linearborder ), NULL );
 
-       vbox = gtk_vbox_new( FALSE, 10 );
+       vbox = ui::VBox( FALSE, 10 );
        gtk_widget_show( vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
 
-       label = gtk_label_new( _( "Bitmap" ) );
+       label = ui::Label( "Bitmap" );
        gtk_widget_show( label );
        gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
 
-       label = gtk_label_new( "" );
+       label = ui::Label( "" );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "bmp_note", label );
@@ -1810,7 +1806,7 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Filename:" ) );
+       label = ui::Label( "Filename:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1831,14 +1827,14 @@ GtkWidget* create_main_dialog(){
                                          (GtkAttachOptions) ( 0 ),
                                          (GtkAttachOptions) ( GTK_EXPAND | GTK_FILL ), 0, 0 );
 
-       button = gtk_button_new_with_label( _( "Browse..." ) );
+       button = gtk_button_new_with_label( "Browse..." );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( hbox2 ), button, FALSE, FALSE, 0 );
        gtk_widget_set_usize( button, 60, -2 );
        g_object_set_data( G_OBJECT( dlg ), "bmp_file_browse", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( bitmap_browse ), NULL );
 
-       button = gtk_button_new_with_label( _( "Reload" ) );
+       button = gtk_button_new_with_label( "Reload" );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( hbox2 ), button, FALSE, FALSE, 0 );
        gtk_widget_set_usize( button, 60, -2 );
@@ -1852,7 +1848,7 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Map color 0 to:" ) );
+       label = ui::Label( "Map color 0 to:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL | GTK_EXPAND ),
@@ -1861,7 +1857,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-       label = gtk_label_new( _( "Map color 255 to:" ) );
+       label = ui::Label( "Map color 255 to:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL | GTK_EXPAND ),
@@ -1896,20 +1892,20 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "bmp_white", entry );
        g_signal_connect( G_OBJECT( entry ), "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &gbmp.white_value );
 
-       vbox = gtk_vbox_new( FALSE, 10 );
+       vbox = ui::VBox( FALSE, 10 );
        gtk_widget_show( vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
 
-       label = gtk_label_new( _( "Fix Points" ) );
+       label = ui::Label( "Fix Points" );
        gtk_widget_show( label );
        gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
 
-       label = gtk_label_new( _( "Click on a vertex in the lower half of the preview window,\n"
-                                                         "then use the arrow keys or text box to assign a value.\n"
-                                                         "Use Ctrl+Click to select multiple vertices/toggle a\n"
-                                                         "selection. Use Shift+Click to select a range of vertices.\n\n"
-                                                         "Click \"Free\" to unlock a vertex. Vertices within \"Range\n"
-                                                         "affected\" will be influenced by this vertex." ) );
+       label = ui::Label( "Click on a vertex in the lower half of the preview window,\n"
+                                                  "then use the arrow keys or text box to assign a value.\n"
+                                                  "Use Ctrl+Click to select multiple vertices/toggle a\n"
+                                                  "selection. Use Shift+Click to select a range of vertices.\n\n"
+                                                  "Click \"Free\" to unlock a vertex. Vertices within \"Range\n"
+                                                  "affected\" will be influenced by this vertex." );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, TRUE, 0 );
 
@@ -1920,7 +1916,7 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Value:" ) );
+       label = ui::Label( "Value:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1928,7 +1924,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        g_object_set_data( G_OBJECT( dlg ), "fix_value_text", label );
 
-       label = gtk_label_new( _( "Range affected:" ) );
+       label = ui::Label( "Range affected:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1936,7 +1932,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        g_object_set_data( G_OBJECT( dlg ), "fix_range_text", label );
 
-       label = gtk_label_new( _( "Rate of change:" ) );
+       label = ui::Label( "Rate of change:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 2, 3,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -1944,7 +1940,7 @@ GtkWidget* create_main_dialog(){
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        g_object_set_data( G_OBJECT( dlg ), "fix_rate_text", label );
 
-       adj = gtk_adjustment_new( 0, -65536, 65536, 1, 16, 16 );
+       adj = gtk_adjustment_new( 0, -65536, 65536, 1, 16, 0 );
        g_signal_connect( G_OBJECT( adj ), "value_changed", G_CALLBACK( fix_value_changed ), NULL );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
@@ -1973,7 +1969,7 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "fix_rate", entry );
        g_signal_connect( G_OBJECT( entry ), "focus_out_event", G_CALLBACK( fix_rate_entryfocusout ), NULL );
 
-       button = gtk_button_new_with_label( _( "Free" ) );
+       button = gtk_button_new_with_label( "Free" );
        gtk_widget_show( button );
        gtk_table_attach( GTK_TABLE( table ), button, 2, 3, 0, 1,
                                          (GtkAttachOptions) ( GTK_EXPAND ),
@@ -1982,7 +1978,7 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "fix_free", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( fix_free ), NULL );
 
-       button = gtk_button_new_with_label( _( "Free All" ) );
+       button = gtk_button_new_with_label( "Free All" );
        gtk_widget_show( button );
        gtk_table_attach( GTK_TABLE( table ), button, 2, 3, 1, 2,
                                          (GtkAttachOptions) ( GTK_EXPAND ),
@@ -1991,11 +1987,11 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "fix_freeall", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( fix_freeall ), NULL );
 
-       vbox = gtk_vbox_new( FALSE, 10 );
+       vbox = ui::VBox( FALSE, 10 );
        gtk_widget_show( vbox );
        gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
 
-       label = gtk_label_new( _( "Texture" ) );
+       label = ui::Label( "Texture" );
        gtk_widget_show( label );
        gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
 
@@ -2006,21 +2002,21 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Surface:" ) );
+       label = ui::Label( "Surface:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
 
-       label = gtk_label_new( _( "Other:" ) );
+       label = ui::Label( "Other:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 1, 2,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
 
-       label = gtk_label_new( _( "Steep:" ) );
+       label = ui::Label( "Steep:" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 1, 2, 3,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -2057,11 +2053,11 @@ GtkWidget* create_main_dialog(){
        gtk_widget_show( hbox2 );
        gtk_box_pack_start( GTK_BOX( vbox ), hbox2, FALSE, TRUE, 0 );
 
-       label = gtk_label_new( _( "\"Steep\" angle:" ) );
+       label = ui::Label( "\"Steep\" angle:" );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( hbox2 ), label, FALSE, TRUE, 0 );
 
-       adj = gtk_adjustment_new( 60, 0, 90, 1, 10, 10 );
+       adj = gtk_adjustment_new( 60, 0, 90, 1, 10, 0 );
        spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
        gtk_widget_show( spin );
        gtk_box_pack_start( GTK_BOX( hbox2 ), spin, FALSE, TRUE, 0 );
@@ -2073,13 +2069,13 @@ GtkWidget* create_main_dialog(){
        gtk_table_set_row_spacings( GTK_TABLE( table ), 5 );
        gtk_table_set_col_spacings( GTK_TABLE( table ), 5 );
 
-       label = gtk_label_new( _( "Offset <h,v>" ) );
+       label = ui::Label( "Offset <h,v>" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 0, 2, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
                                          (GtkAttachOptions) ( GTK_FILL ), 0, 0 );
 
-       label = gtk_label_new( _( "Scale <h,v>" ) );
+       label = ui::Label( "Scale <h,v>" );
        gtk_widget_show( label );
        gtk_table_attach( GTK_TABLE( table ), label, 2, 4, 0, 1,
                                          (GtkAttachOptions) ( GTK_FILL ),
@@ -2119,37 +2115,37 @@ GtkWidget* create_main_dialog(){
 
 
 
-       check = gtk_check_button_new_with_label( _( "Use detail brushes" ) );
+       check = ui::CheckButton( "Use detail brushes" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "detail", check );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( texture_detail ), NULL );
 
-       check = gtk_check_button_new_with_label( _( "Detail hint brushes" ) );
+       check = ui::CheckButton( "Detail hint brushes" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "hint", check );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( texture_hint ), NULL );
 
        // ^Fishman - Add terrain key to func_group.
-       check = gtk_check_button_new_with_label( _( "Add terrain key" ) );
+       check = ui::CheckButton( "Add terrain key" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "terrain_ent", check );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( texture_terrainent ), NULL );
 
-       vbox = gtk_vbox_new( FALSE, 5 );
+       vbox = ui::VBox( FALSE, 5 );
        gtk_widget_show( vbox );
        gtk_box_pack_start( GTK_BOX( hbox ), vbox, FALSE, TRUE, 0 );
 
-       button = gtk_button_new_with_label( _( "OK" ) );
+       button = gtk_button_new_with_label( "OK" );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( vbox ), button, FALSE, TRUE, 0 );
        gtk_widget_set_usize( button, 60, -2 );
        g_object_set_data( G_OBJECT( dlg ), "go", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( main_go ), NULL );
 
-       label = gtk_label_new( _( "Settings:" ) );
+       label = ui::Label( "Settings:" );
        gtk_widget_show( label );
        gtk_box_pack_start( GTK_BOX( vbox ), label, FALSE, TRUE, 0 );
 
@@ -2159,31 +2155,31 @@ GtkWidget* create_main_dialog(){
        g_object_set_data( G_OBJECT( dlg ), "open", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( main_open ), NULL );
 
-       button = gtk_button_new_with_label( _( "Save as..." ) );
+       button = gtk_button_new_with_label( "Save as..." );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( vbox ), button, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "save", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( main_save ), NULL );
 
-       button = gtk_button_new_with_label( _( "Defaults" ) );
+       button = gtk_button_new_with_label( "Defaults" );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( vbox ), button, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "defaults", button );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( main_defaults ), NULL );
 
-       button = gtk_button_new_with_label( _( "About..." ) );
+       button = gtk_button_new_with_label( "About..." );
        gtk_widget_show( button );
        gtk_box_pack_start( GTK_BOX( vbox ), button, FALSE, TRUE, 0 );
        g_signal_connect( G_OBJECT( button ), "clicked", G_CALLBACK( main_about ), NULL );
 
-       check = gtk_check_button_new_with_label( _( "Preview" ) );
+       check = ui::CheckButton( "Preview" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_signal_connect( G_OBJECT( check ), "toggled", G_CALLBACK( main_preview ), NULL );
        g_object_set_data( G_OBJECT( dlg ), "main_preview", check );
 
        // ^Fishman - Antializing for the preview window.
-       check = gtk_check_button_new_with_label( _( "Antialised lines" ) );
+       check = ui::CheckButton( "Antialised lines" );
        gtk_widget_show( check );
        gtk_box_pack_start( GTK_BOX( vbox ), check, FALSE, TRUE, 0 );
        g_object_set_data( G_OBJECT( dlg ), "main_antialiasing", check );
@@ -2207,7 +2203,7 @@ GtkWidget* create_main_dialog(){
 HWND hwndDisplay = (HWND)NULL;
 HWND ghwndTab    = (HWND)NULL;
 int iTab = 0;
-RECT rcTab;
+Rect rcTab;
 FILE *ftex;
 
 char GenSurfURL[40] = {"http://tarot.telefragged.com/gensurf"};
@@ -2223,7 +2219,7 @@ qboolean CALLBACK AboutDlgProc( HWND hwnd, unsigned msg, UINT wparam, LONG lpara
        HDC hdc;
        HPEN hpen;
        HWND hwndURL;
-       RECT rc;
+       Rect rc;
        SIZE size;
 
        lparam = lparam;                    /* turn off warning */
@@ -2316,7 +2312,7 @@ void About(){
        if ( DialogBox( ghInst,"About", ghwnd_main, (DLGPROC)AboutDlgProc ) < 0 ) {
                char Text[256];
                sprintf( Text,"In About(), GetLastError()=0x%08x",GetLastError() );
-               MessageBox( ghwnd_main,Text,"GenSurf",MB_ICONEXCLAMATION );
+               MessageBox( ghwnd_main,Text,"GenSurf",eMB_ICONWARNING );
        }
 }