]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/gtkgensurf/gendlgs.cpp
Revert partially (auto) "reformat code! now the code is only ugly on the *inside*"
[xonotic/netradiant.git] / contrib / gtkgensurf / gendlgs.cpp
index 0c3b7b42f6a18d717422597dce8d9d323cb3ac13..e64a6598b5fc68c5bc63cb8dd8d8d9019dd82a22 100644 (file)
 #define TEXTURE_TAB   4
 //#define BUFF_SIZE    32768
 
-#define ENABLE_WIDGET(name, enable) \
-    gtk_widget_set_sensitive( g_object_get_data( G_OBJECT( g_pWnd , ( name ) ) ), ( enable ) )
-#define CHECK_WIDGET(name, check) \
-    gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), name ) ), check )
+#define ENABLE_WIDGET( name,enable ) \
+       gtk_widget_set_sensitive( g_object_get_data( G_OBJECT( g_pWnd , ( name ) ) ), ( enable ) )
+#define CHECK_WIDGET( name,check ) \
+       gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), name ) ), check )
 
 static GtkWidget *game_radios[NUMGAMES];
 static GtkWidget *wave_radios[5];
@@ -45,8 +45,7 @@ static int WasDetail;
 static GtkTooltips *tooltips;
 static int FirstPassComplete = 0;
 
-void About(GtkWidget *parent)
-{
+void About( GtkWidget *parent ){
 /*
    char *icon_xpm[] = {
    "32 32 4 1",
@@ -88,332 +87,336 @@ void About(GtkWidget *parent)
    "................................"
    };
  */
-    // leo: I'm too lazy to create a nice about box
-    // ^Fishman - I am lazy too :P.
-    g_FuncTable.m_pfnMessageBox(parent, "GtkGenSurf 1.05\n\n"
-                                        "Original version\n"
-                                        "David Hyde (rascal@vicksburg.com)\n\n"
-                                        "Porting\n"
-                                        "Leonardo Zide (leo@lokigames.com)\n\n"
-                                        "Enhancements\n"
-                                        "Pablo Zurita (pablo@qeradiant.com)\n"
-                                        "Hydra (hydra@hydras-world.com)",
-                                "About GtkGenSurf", eMB_OK);
+       // leo: I'm too lazy to create a nice about box
+       // ^Fishman - I am lazy too :P.
+       g_FuncTable.m_pfnMessageBox( parent, "GtkGenSurf 1.05\n\n"
+                                                                                "Original version\n"
+                                                                                "David Hyde (rascal@vicksburg.com)\n\n"
+                                                                                "Porting\n"
+                                                                                "Leonardo Zide (leo@lokigames.com)\n\n"
+                                                                                "Enhancements\n"
+                                                                                "Pablo Zurita (pablo@qeradiant.com)\n"
+                                                                                "Hydra (hydra@hydras-world.com)",
+                                                                "About GtkGenSurf", eMB_OK );
 }
 
 // =============================================================================
 // main dialog
 
-static void SetupControls()
-{
-    switch (current_tab) {
-        case GENERAL_TAB:
-            break;
-
-        case EXTENTS_TAB:
-            if (Game != QUAKE3) {
-                gtk_widget_hide(g_object_get_data(G_OBJECT(g_pWnd, "use_patches")));
-                ENABLE_WIDGET("use_patches", FALSE);
-            } else {
-                gtk_widget_show(g_object_get_data(G_OBJECT(g_pWnd, "use_patches")));
-                ENABLE_WIDGET("use_patches", TRUE);
-            }
-
-            if (Game == QUAKE3 && UsePatches != 0) {
-                ENABLE_WIDGET("decimate", FALSE);
-            }
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "snap_text")),
-                               "Snap to grid:"); // ^Fishman - Snap to grid.
-            break;
-
-        case BITMAP_TAB:
-            if (WaveType != WAVE_BITMAP) {
-                ENABLE_WIDGET("bmp_file", FALSE);
-                ENABLE_WIDGET("bmp_file_browse", FALSE);
-                ENABLE_WIDGET("bmp_black", FALSE);
-                ENABLE_WIDGET("bmp_white", FALSE);
-                ENABLE_WIDGET("bmp_text1", FALSE);
-                ENABLE_WIDGET("bmp_text2", FALSE);
-                ENABLE_WIDGET("bmp_text3", FALSE);
-                ENABLE_WIDGET("bmp_reload", FALSE);
-                gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "bmp_note")),
-                                   "These options are disabled unless \"From Bitmap\"\n"
-                                           "is selected as the Waveform on the General tab.");
-            } else {
-                ENABLE_WIDGET("bmp_file", TRUE);
-                ENABLE_WIDGET("bmp_file_browse", TRUE);
-                ENABLE_WIDGET("bmp_black", TRUE);
-                ENABLE_WIDGET("bmp_white", TRUE);
-                ENABLE_WIDGET("bmp_text1", TRUE);
-                ENABLE_WIDGET("bmp_text2", TRUE);
-                ENABLE_WIDGET("bmp_text3", TRUE);
-                ENABLE_WIDGET("bmp_reload", strlen(gbmp.name) != 0);
-                gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "bmp_note")),
-                                   "GenSurf works only with 8-bit bitmaps. Color indices are\n"
-                                           "mapped to values for each vertex. Generally, gray scale\n"
-                                           "images are stored with black as color 0, white as color 255.");
-            }
-            break;
-
-        case FIXPOINTS_TAB:
-            ENABLE_WIDGET("fix_value", (NumVerticesSelected != 0));
-            ENABLE_WIDGET("fix_value_text", (NumVerticesSelected != 0));
-            ENABLE_WIDGET("fix_free", (NumVerticesSelected != 0));
-            ENABLE_WIDGET("fix_range", ((NumVerticesSelected != 0) && (WaveType != WAVE_ROUGH_ONLY)));
-            ENABLE_WIDGET("fix_range_text", ((NumVerticesSelected != 0) && (WaveType != WAVE_ROUGH_ONLY)));
-            ENABLE_WIDGET("fix_rate", ((NumVerticesSelected != 0) && (WaveType != WAVE_ROUGH_ONLY)));
-            ENABLE_WIDGET("fix_rate_text", ((NumVerticesSelected != 0) && (WaveType != WAVE_ROUGH_ONLY)));
-            break;
-
-        case TEXTURE_TAB:
-            ENABLE_WIDGET("texture2", (UsePatches == 0));
-            ENABLE_WIDGET("texture3", (UsePatches == 0));
-            ENABLE_WIDGET("tex_slant", (UsePatches == 0));
-            ENABLE_WIDGET("detail", (UsePatches == 0));
-            if (Game != QUAKE3) {
-                ENABLE_WIDGET("terrain_ent", FALSE); // ^Fishman - Adds terrain key to func_group.
-                ENABLE_WIDGET("hint", (UsePatches == 0));
-            }
-            break;
-    }
-
-    switch (WaveType) {
-        case WAVE_HCYLINDER:
-        case WAVE_VCYLINDER:
-            ENABLE_WIDGET("amplitude", TRUE);
-            ENABLE_WIDGET("wavelength", TRUE);
-            ENABLE_WIDGET("z00", TRUE);
-            ENABLE_WIDGET("z01", TRUE);
-            ENABLE_WIDGET("z10", TRUE);
-            ENABLE_WIDGET("z11", TRUE);
-            ENABLE_WIDGET("linearborder", TRUE);
-            ENABLE_WIDGET("go", TRUE);
-            break;
-        case WAVE_BITMAP:
-            ENABLE_WIDGET("amplitude", FALSE);
-            ENABLE_WIDGET("wavelength", FALSE);
-            ENABLE_WIDGET("z00", FALSE);
-            ENABLE_WIDGET("z01", FALSE);
-            ENABLE_WIDGET("z10", FALSE);
-            ENABLE_WIDGET("z11", FALSE);
-            ENABLE_WIDGET("linearborder", FALSE);
-            ENABLE_WIDGET("go", (gbmp.colors != NULL ? TRUE : FALSE));
-            break;
-        case WAVE_ROUGH_ONLY:
-            ENABLE_WIDGET("amplitude", FALSE);
-            ENABLE_WIDGET("wavelength", FALSE);
-            ENABLE_WIDGET("z00", TRUE);
-            ENABLE_WIDGET("z01", TRUE);
-            ENABLE_WIDGET("z10", TRUE);
-            ENABLE_WIDGET("z11", TRUE);
-            ENABLE_WIDGET("linearborder", TRUE);
-            ENABLE_WIDGET("go", TRUE);
-            break;
-        default:
-            ENABLE_WIDGET("amplitude", TRUE);
-            ENABLE_WIDGET("wavelength", TRUE);
-            ENABLE_WIDGET("z00", TRUE);
-            ENABLE_WIDGET("z01", TRUE);
-            ENABLE_WIDGET("z10", TRUE);
-            ENABLE_WIDGET("z11", TRUE);
-            ENABLE_WIDGET("linearborder", TRUE);
-            ENABLE_WIDGET("go", TRUE);
-    }
-
-    switch (Plane) {
-        case PLANE_XZ0:
-        case PLANE_XZ1:
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmin_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmax_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmin_text")), "Z:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmax_text")), "Z:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nh_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nv_text")), "Z:");
-            break;
-        case PLANE_YZ0:
-        case PLANE_YZ1:
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmin_text")), "Y:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmax_text")), "Y:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmin_text")), "Z:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmax_text")), "Z:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nh_text")), "Y:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nv_text")), "Z:");
-            break;
-        default:
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmin_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "hmax_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmin_text")), "Y:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "vmax_text")), "Y:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nh_text")), "X:");
-            gtk_label_set_text(GTK_LABEL(g_object_get_data(G_OBJECT(g_pWnd), "nv_text")), "Y:");
-            break;
-    }
+static void SetupControls(){
+       switch ( current_tab )
+       {
+       case GENERAL_TAB:
+               break;
+
+       case EXTENTS_TAB:
+               if ( Game != QUAKE3 ) {
+                       gtk_widget_hide( g_object_get_data( G_OBJECT( g_pWnd , "use_patches" ) ) );
+                       ENABLE_WIDGET( "use_patches", FALSE );
+               }
+               else
+               {
+                       gtk_widget_show( g_object_get_data( G_OBJECT( g_pWnd , "use_patches" ) ) );
+                       ENABLE_WIDGET( "use_patches", TRUE );
+               }
+
+               if ( Game == QUAKE3 && UsePatches != 0 ) {
+                       ENABLE_WIDGET( "decimate", FALSE );
+               }
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "snap_text" ) ), "Snap to grid:" ); // ^Fishman - Snap to grid.
+               break;
+
+       case BITMAP_TAB:
+               if ( WaveType != WAVE_BITMAP ) {
+                       ENABLE_WIDGET( "bmp_file", FALSE );
+                       ENABLE_WIDGET( "bmp_file_browse", FALSE );
+                       ENABLE_WIDGET( "bmp_black", FALSE );
+                       ENABLE_WIDGET( "bmp_white", FALSE );
+                       ENABLE_WIDGET( "bmp_text1", FALSE );
+                       ENABLE_WIDGET( "bmp_text2", FALSE );
+                       ENABLE_WIDGET( "bmp_text3", FALSE );
+                       ENABLE_WIDGET( "bmp_reload", FALSE );
+                       gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_note" ) ),
+                                                               "These options are disabled unless \"From Bitmap\"\n"
+                                                               "is selected as the Waveform on the General tab." );
+               }
+               else
+               {
+                       ENABLE_WIDGET( "bmp_file", TRUE );
+                       ENABLE_WIDGET( "bmp_file_browse", TRUE );
+                       ENABLE_WIDGET( "bmp_black", TRUE );
+                       ENABLE_WIDGET( "bmp_white", TRUE );
+                       ENABLE_WIDGET( "bmp_text1", TRUE );
+                       ENABLE_WIDGET( "bmp_text2", TRUE );
+                       ENABLE_WIDGET( "bmp_text3", TRUE );
+                       ENABLE_WIDGET( "bmp_reload", strlen( gbmp.name ) != 0 );
+                       gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_note" ) ),
+                                                               "GenSurf works only with 8-bit bitmaps. Color indices are\n"
+                                                               "mapped to values for each vertex. Generally, gray scale\n"
+                                                               "images are stored with black as color 0, white as color 255." );
+               }
+               break;
+
+       case FIXPOINTS_TAB:
+               ENABLE_WIDGET( "fix_value", ( NumVerticesSelected != 0 ) );
+               ENABLE_WIDGET( "fix_value_text", ( NumVerticesSelected != 0 ) );
+               ENABLE_WIDGET( "fix_free", ( NumVerticesSelected != 0 ) );
+               ENABLE_WIDGET( "fix_range", ( ( NumVerticesSelected != 0 ) && ( WaveType != WAVE_ROUGH_ONLY ) ) );
+               ENABLE_WIDGET( "fix_range_text", ( ( NumVerticesSelected != 0 ) && ( WaveType != WAVE_ROUGH_ONLY ) ) );
+               ENABLE_WIDGET( "fix_rate", ( ( NumVerticesSelected != 0 ) && ( WaveType != WAVE_ROUGH_ONLY ) ) );
+               ENABLE_WIDGET( "fix_rate_text", ( ( NumVerticesSelected != 0 ) && ( WaveType != WAVE_ROUGH_ONLY ) ) );
+               break;
+
+       case TEXTURE_TAB:
+               ENABLE_WIDGET( "texture2", ( UsePatches == 0 ) );
+               ENABLE_WIDGET( "texture3", ( UsePatches == 0 ) );
+               ENABLE_WIDGET( "tex_slant", ( UsePatches == 0 ) );
+               ENABLE_WIDGET( "detail", ( UsePatches == 0 ) );
+               if ( Game != QUAKE3 ) {
+                       ENABLE_WIDGET( "terrain_ent", FALSE ); // ^Fishman - Adds terrain key to func_group.
+                       ENABLE_WIDGET( "hint", ( UsePatches == 0 ) );
+               }
+               break;
+       }
+
+       switch ( WaveType )
+       {
+       case WAVE_HCYLINDER:
+       case WAVE_VCYLINDER:
+               ENABLE_WIDGET( "amplitude", TRUE );
+               ENABLE_WIDGET( "wavelength", TRUE );
+               ENABLE_WIDGET( "z00", TRUE );
+               ENABLE_WIDGET( "z01", TRUE );
+               ENABLE_WIDGET( "z10", TRUE );
+               ENABLE_WIDGET( "z11", TRUE );
+               ENABLE_WIDGET( "linearborder", TRUE );
+               ENABLE_WIDGET( "go", TRUE );
+               break;
+       case WAVE_BITMAP:
+               ENABLE_WIDGET( "amplitude", FALSE );
+               ENABLE_WIDGET( "wavelength", FALSE );
+               ENABLE_WIDGET( "z00", FALSE );
+               ENABLE_WIDGET( "z01", FALSE );
+               ENABLE_WIDGET( "z10", FALSE );
+               ENABLE_WIDGET( "z11", FALSE );
+               ENABLE_WIDGET( "linearborder", FALSE );
+               ENABLE_WIDGET( "go", ( gbmp.colors != NULL ? TRUE : FALSE ) );
+               break;
+       case WAVE_ROUGH_ONLY:
+               ENABLE_WIDGET( "amplitude", FALSE );
+               ENABLE_WIDGET( "wavelength", FALSE );
+               ENABLE_WIDGET( "z00", TRUE );
+               ENABLE_WIDGET( "z01", TRUE );
+               ENABLE_WIDGET( "z10", TRUE );
+               ENABLE_WIDGET( "z11", TRUE );
+               ENABLE_WIDGET( "linearborder", TRUE );
+               ENABLE_WIDGET( "go", TRUE );
+               break;
+       default:
+               ENABLE_WIDGET( "amplitude", TRUE );
+               ENABLE_WIDGET( "wavelength", TRUE );
+               ENABLE_WIDGET( "z00", TRUE );
+               ENABLE_WIDGET( "z01", TRUE );
+               ENABLE_WIDGET( "z10", TRUE );
+               ENABLE_WIDGET( "z11", TRUE );
+               ENABLE_WIDGET( "linearborder", TRUE );
+               ENABLE_WIDGET( "go", TRUE );
+       }
+
+       switch ( Plane )
+       {
+       case PLANE_XZ0:
+       case PLANE_XZ1:
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmin_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmax_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmin_text" ) ), "Z:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmax_text" ) ), "Z:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nh_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nv_text" ) ), "Z:" );
+               break;
+       case PLANE_YZ0:
+       case PLANE_YZ1:
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmin_text" ) ), "Y:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmax_text" ) ), "Y:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmin_text" ) ), "Z:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmax_text" ) ), "Z:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nh_text" ) ), "Y:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nv_text" ) ), "Z:" );
+               break;
+       default:
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmin_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "hmax_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmin_text" ) ), "Y:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "vmax_text" ) ), "Y:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nh_text" ) ), "X:" );
+               gtk_label_set_text( GTK_LABEL( g_object_get_data( G_OBJECT( g_pWnd ), "nv_text" ) ), "Y:" );
+               break;
+       }
 }
 
 // SetDlgValues fills in text boxes and initializes other input controls
-static void SetDlgValues(int tab)
-{
-    char Text[256];
-    char RForm[16] = "%.5g";
-    int i;
-
-    switch (tab) {
-        case GENERAL_TAB:
-            // 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) {
-                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));
-                }
-            }
-            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);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "random")),
-                                      RandomSeed);
-            sprintf(Text, RForm, WaveLength);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "wavelength")), Text);
-            sprintf(Text, RForm, Amplitude);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "amplitude")), Text);
-            sprintf(Text, RForm, Roughness);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "roughness")), Text);
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data
-                                                                   (G_OBJECT(g_pWnd), "main_antialiasing")),
-                                         Antialiasing);
-            break;
-
-        case EXTENTS_TAB:
-            sprintf(Text, RForm, Hll);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "hmin")), Text);
-            sprintf(Text, RForm, Vll);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "vmin")), Text);
-            sprintf(Text, RForm, Hur);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "hmax")), Text);
-            sprintf(Text, RForm, Vur);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "vmax")), Text);
-            sprintf(Text, RForm, Z00);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "z00")), Text);
-            sprintf(Text, RForm, Z01);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "z01")), Text);
-            sprintf(Text, RForm, Z10);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "z10")), Text);
-            sprintf(Text, RForm, Z11);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "z11")), Text);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "nh")), NH);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "nv")), NV);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "sp")),
-                                      SP); // ^Fishman - Snap to grid.
-
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data
-                                                                   (G_OBJECT(g_pWnd), "linearborder")), FixBorders);
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data
-                                                                   (G_OBJECT(g_pWnd), "use_patches")), UsePatches);
-            gtk_adjustment_set_value(GTK_ADJUSTMENT(g_object_get_data(G_OBJECT(g_pWnd), "decimate_adj")),
-                                     Decimate);
-
-            if (Game == QUAKE3 && UsePatches) {
-                gtk_widget_set_sensitive(g_object_get_data(G_OBJECT(g_pWnd, "decimate")), FALSE);
-
-                if (NH % 2) {
-                    NH++;
-                    if (NH > MAX_ROWS) {
-                        NH -= 2;
-                    }
-                    SetDlgValues(current_tab);
-                }
-
-                if (NV % 2) {
-                    NV++;
-                    if (NV > MAX_ROWS) {
-                        NV -= 2;
-                    }
-                    SetDlgValues(current_tab);
-                }
-                if (NH % 2) {
-                    NH++;
-                }
-                if (NH < 2) {
-                    NH = 2;
-                }
-                if (NH > MAX_ROWS) {
-                    NH = MAX_ROWS;
-                }
-                if (NV % 2) {
-                    NV++;
-                }
-                if (NV < 2) {
-                    NV = 2;
-                }
-                if (NV > MAX_ROWS) {
-                    NV = MAX_ROWS;
-                }
-
-                gpointer spin = g_object_get_data(G_OBJECT(g_pWnd), "nh");
-                GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(spin));
-                adj->lower = 2;
-                gtk_adjustment_changed(adj);
-                spin = g_object_get_data(G_OBJECT(g_pWnd), "nv");
-                adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(spin));
-                adj->lower = 2;
-                gtk_adjustment_changed(adj);
-            } else {
-                gtk_widget_set_sensitive(g_object_get_data(G_OBJECT(g_pWnd, "decimate")), TRUE);
-
-                gpointer spin = g_object_get_data(G_OBJECT(g_pWnd), "nh");
-                GtkAdjustment *adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(spin));
-                adj->lower = 1;
-                gtk_adjustment_changed(adj);
-                spin = g_object_get_data(G_OBJECT(g_pWnd), "nv");
-                adj = gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(spin));
-                adj->lower = 1;
-                gtk_adjustment_changed(adj);
-            }
-
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "nh")), NH);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "nv")), NV);
-
-            break;
-
-        case BITMAP_TAB:
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "bmp_file")), gbmp.name);
-            sprintf(Text, "%g", gbmp.black_value);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "bmp_black")), Text);
-            sprintf(Text, "%g", gbmp.white_value);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "bmp_white")), Text);
-            break;
-
-        case FIXPOINTS_TAB:
-            break;
-
-        case TEXTURE_TAB:
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texture1")), Texture[Game][0]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texture2")), Texture[Game][1]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texture3")), Texture[Game][2]);
-            gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "tex_slant")),
-                                      SlantAngle);
-            sprintf(Text, RForm, TexOffset[0]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texoffsetx")), Text);
-            sprintf(Text, RForm, TexOffset[1]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texoffsety")), Text);
-            sprintf(Text, RForm, TexScale[0]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texscalex")), Text);
-            sprintf(Text, RForm, TexScale[1]);
-            gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "texscaley")), Text);
-            CHECK_WIDGET("detail", UseDetail);
-
-            if (Game == QUAKE3) {
-                ENABLE_WIDGET("hint", FALSE);
-                AddHints = 0;
-            } else {
-                ENABLE_WIDGET("hint", TRUE);
-            }
-            CHECK_WIDGET("hint", AddHints);
-
-            /*
+static void SetDlgValues( int tab ){
+       char Text[256];
+       char RForm[16] = "%.5g";
+       int i;
+
+       switch ( tab )
+       {
+       case GENERAL_TAB:
+               // 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 ) {
+                       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 ) );
+               }
+               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 );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "random" ) ),
+                                                                  RandomSeed );
+               sprintf( Text, RForm, WaveLength );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "wavelength" ) ), Text );
+               sprintf( Text, RForm, Amplitude );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "amplitude" ) ), Text );
+               sprintf( Text, RForm, Roughness );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "roughness" ) ), Text );
+               gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data
+                                                                                                                        ( G_OBJECT( g_pWnd ), "main_antialiasing" ) ), Antialiasing );
+               break;
+
+       case EXTENTS_TAB:
+               sprintf( Text,RForm,Hll );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "hmin" ) ), Text );
+               sprintf( Text,RForm,Vll );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "vmin" ) ), Text );
+               sprintf( Text,RForm,Hur );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "hmax" ) ), Text );
+               sprintf( Text,RForm,Vur );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "vmax" ) ), Text );
+               sprintf( Text,RForm,Z00 );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "z00" ) ), Text );
+               sprintf( Text,RForm,Z01 );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "z01" ) ), Text );
+               sprintf( Text,RForm,Z10 );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "z10" ) ), Text );
+               sprintf( Text,RForm,Z11 );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "z11" ) ), Text );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "nh" ) ), NH );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "nv" ) ), NV );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "sp" ) ), SP ); // ^Fishman - Snap to grid.
+
+               gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data
+                                                                                                                        ( G_OBJECT( g_pWnd ), "linearborder" ) ), FixBorders );
+               gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data
+                                                                                                                        ( G_OBJECT( g_pWnd ), "use_patches" ) ), UsePatches );
+               gtk_adjustment_set_value( GTK_ADJUSTMENT( g_object_get_data( G_OBJECT( g_pWnd ), "decimate_adj" ) ),
+                                                                 Decimate );
+
+               if ( Game == QUAKE3 && UsePatches ) {
+                       gtk_widget_set_sensitive( g_object_get_data( G_OBJECT( g_pWnd , "decimate" ) ), FALSE );
+
+                       if ( NH % 2 ) {
+                               NH++;
+                               if ( NH > MAX_ROWS ) {
+                                       NH -= 2;
+                               }
+                               SetDlgValues( current_tab );
+                       }
+
+                       if ( NV % 2 ) {
+                               NV++;
+                               if ( NV > MAX_ROWS ) {
+                                       NV -= 2;
+                               }
+                               SetDlgValues( current_tab );
+                       }
+                       if ( NH % 2 ) {
+                               NH++;
+                       }
+                       if ( NH < 2 ) {
+                               NH = 2;
+                       }
+                       if ( NH > MAX_ROWS ) {
+                               NH = MAX_ROWS;
+                       }
+                       if ( NV % 2 ) {
+                               NV++;
+                       }
+                       if ( NV < 2 ) {
+                               NV = 2;
+                       }
+                       if ( NV > MAX_ROWS ) {
+                               NV = MAX_ROWS;
+                       }
+
+                       gpointer spin = g_object_get_data( G_OBJECT( g_pWnd ), "nh" );
+                       GtkAdjustment *adj = gtk_spin_button_get_adjustment( GTK_SPIN_BUTTON( spin ) );
+                       adj->lower = 2;
+                       gtk_adjustment_changed( adj );
+                       spin = g_object_get_data( G_OBJECT( g_pWnd ), "nv" );
+                       adj = gtk_spin_button_get_adjustment( GTK_SPIN_BUTTON( spin ) );
+                       adj->lower = 2;
+                       gtk_adjustment_changed( adj );
+               }
+               else
+               {
+                       gtk_widget_set_sensitive( g_object_get_data( G_OBJECT( g_pWnd , "decimate" ) ), TRUE );
+
+                       gpointer spin = g_object_get_data( G_OBJECT( g_pWnd ), "nh" );
+                       GtkAdjustment *adj = gtk_spin_button_get_adjustment( GTK_SPIN_BUTTON( spin ) );
+                       adj->lower = 1;
+                       gtk_adjustment_changed( adj );
+                       spin = g_object_get_data( G_OBJECT( g_pWnd ), "nv" );
+                       adj = gtk_spin_button_get_adjustment( GTK_SPIN_BUTTON( spin ) );
+                       adj->lower = 1;
+                       gtk_adjustment_changed( adj );
+               }
+
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "nh" ) ), NH );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "nv" ) ), NV );
+
+               break;
+
+       case BITMAP_TAB:
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_file" ) ), gbmp.name );
+               sprintf( Text,"%g",gbmp.black_value );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_black" ) ), Text );
+               sprintf( Text,"%g",gbmp.white_value );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_white" ) ), Text );
+               break;
+
+       case FIXPOINTS_TAB:
+               break;
+
+       case TEXTURE_TAB:
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texture1" ) ), Texture[Game][0] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texture2" ) ), Texture[Game][1] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texture3" ) ), Texture[Game][2] );
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "tex_slant" ) ),
+                                                                  SlantAngle );
+               sprintf( Text,RForm,TexOffset[0] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texoffsetx" ) ), Text );
+               sprintf( Text,RForm,TexOffset[1] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texoffsety" ) ), Text );
+               sprintf( Text,RForm,TexScale[0] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texscalex" ) ), Text );
+               sprintf( Text,RForm,TexScale[1] );
+               gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "texscaley" ) ), Text );
+               CHECK_WIDGET( "detail", UseDetail );
+
+               if ( Game == QUAKE3 ) {
+                       ENABLE_WIDGET( "hint", FALSE );
+                       AddHints = 0;
+               }
+               else{
+                       ENABLE_WIDGET( "hint", TRUE );
+               }
+               CHECK_WIDGET( "hint", AddHints );
+
+               /*
                   if (Game==SIN)
                   {
                   // ArghRad doesn't currently support SiN
@@ -427,8 +430,8 @@ static void SetDlgValues(int tab)
                   }
                 */
 
-            if (Game == QUAKE3) {
-                /*
+               if ( Game == QUAKE3 ) {
+                       /*
                           // ArghRad sun is inapplicable (so far)
                           EnableWindow(GetDlgItem(hwndDisplay,DLG_ARGHRAD2),       0);
                           EnableWindow(GetDlgItem(hwndDisplay,DLG_ARGHRAD2_SPIN),  0);
@@ -441,7 +444,7 @@ static void SetDlgValues(int tab)
                           SetDlgItemText(hwndDisplay,DLG_TEX_USEPAK,"Use pk3 file");
                           SetDlgItemText(hwndDisplay,DLG_TEX_PAK_TEXT,"PK3:");
                         */
-            }
+               }
 
 /*trix if(Game==HERETIC2)
         {
@@ -455,7 +458,7 @@ static void SetDlgValues(int tab)
             SetDlgItemText(hwndDisplay,DLG_TEX_USEPAK,"Use pak file");
             SetDlgItemText(hwndDisplay,DLG_TEX_PAK_TEXT,"Pak:");
         } */
-            /*
+               /*
                    if(Game==HALFLIFE)
                    {
                        // A bunch of controls aren't applicable to HL
@@ -493,55 +496,55 @@ static void SetDlgValues(int tab)
                        SetDlgItemText(hwndDisplay,DLG_TEX_PAK_TEXT,"Sin:");
                    }
                 */
-            break;
-    }
-    SetupControls();
+               break;
+       }
+       SetupControls();
 }
 
-static void ReadDlgValues(int tab)
-{
-    //  char Text[256];
-    //  int i;
-
-    switch (tab) {
-        case GENERAL_TAB:
-            gpointer spin;
-            Roughness = atof(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "roughness"))));
-            WaveLength = atof(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "wavelength"))));
-            Amplitude = atof(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "amplitude"))));
-            spin = g_object_get_data(G_OBJECT(g_pWnd), "random");
-            RandomSeed = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin));
-            break;
-
-        case EXTENTS_TAB:
-            SP = atoi(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "sp"))));
-            NH = atoi(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "nh"))));
-            NV = atoi(gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "nv"))));
-
-            if (Game == QUAKE3 && UsePatches != 0) {
-                if (NH % 2) {
-                    NH++;
-                }
-                if (NH < 2) {
-                    NH = 2;
-                }
-                if (NH > MAX_ROWS) {
-                    NH = MAX_ROWS;
-                }
-                if (NV % 2) {
-                    NV++;
-                }
-                if (NV < 2) {
-                    NV = 2;
-                }
-                if (NV > MAX_ROWS) {
-                    NV = MAX_ROWS;
-                }
-            }
-            break;
+static void ReadDlgValues( int tab ){
+       //  char Text[256];
+       //  int i;
+
+       switch ( tab )
+       {
+       case GENERAL_TAB:
+               gpointer spin;
+               Roughness  = atof( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "roughness" ) ) ) );
+               WaveLength = atof( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "wavelength" ) ) ) );
+               Amplitude  = atof( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "amplitude" ) ) ) );
+               spin = g_object_get_data( G_OBJECT( g_pWnd ), "random" );
+               RandomSeed = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( spin ) );
+               break;
+
+       case EXTENTS_TAB:
+               SP = atoi( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "sp" ) ) ) );
+               NH = atoi( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "nh" ) ) ) );
+               NV = atoi( gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "nv" ) ) ) );
+
+               if ( Game == QUAKE3 && UsePatches != 0 ) {
+                       if ( NH % 2 ) {
+                               NH++;
+                       }
+                       if ( NH < 2 ) {
+                               NH = 2;
+                       }
+                       if ( NH > MAX_ROWS ) {
+                               NH = MAX_ROWS;
+                       }
+                       if ( NV % 2 ) {
+                               NV++;
+                       }
+                       if ( NV < 2 ) {
+                               NV = 2;
+                       }
+                       if ( NV > MAX_ROWS ) {
+                               NV = MAX_ROWS;
+                       }
+               }
+               break;
 
 #if 0
-                                                                                                                                case BITMAP_TAB:
+       case BITMAP_TAB:
 
                if ( WaveType == WAVE_BITMAP ) {
                        GetDlgItemText( hwnd,DLG_BMP_FILE,gbmp.name,sizeof( gbmp.name ) );
@@ -632,139 +635,128 @@ static void ReadDlgValues(int tab)
                ArghRad2 = atoi( Text );
                break;
 #endif
-    }
+       }
 }
 
 // =============================================================================
 // main dialog callbacks
 
-static void switch_page(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer data)
-{
-    if (current_tab != page_num) {
-        if (page_num == FIXPOINTS_TAB) {
-            OldPreview = Preview;
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(g_pWnd),
-                                                                             "main_preview")), TRUE);
-            VertexMode = 1;
-            UpdatePreview(true);
-            NumVerticesSelected = 0;
-        }
-
-        if (current_tab == FIXPOINTS_TAB) {
-            if (!OldPreview) {
-                gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(g_object_get_data(G_OBJECT(g_pWnd),
-                                                                                 "main_preview")), FALSE);
-            }
-            VertexMode = 0;
-            UpdatePreview(true);
-            NumVerticesSelected = 0;
-        }
-
-        if (page_num == TEXTURE_TAB) {
-            WasDetail = UseDetail;
-            if (AddHints) {
-                UseDetail = 1;
-                ENABLE_WIDGET("detail", FALSE);
-            }
-        }
-
-        ReadDlgValues(current_tab);
-        current_tab = page_num;
-        SetDlgValues(current_tab);
-    }
+static void switch_page( GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer data ){
+       if ( current_tab != page_num ) {
+               if ( page_num == FIXPOINTS_TAB ) {
+                       OldPreview = Preview;
+                       gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ),
+                                                                                                                                                               "main_preview" ) ), TRUE );
+                       VertexMode = 1;
+                       UpdatePreview( true );
+                       NumVerticesSelected = 0;
+               }
+
+               if ( current_tab == FIXPOINTS_TAB ) {
+                       if ( !OldPreview ) {
+                               gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ),
+                                                                                                                                                                       "main_preview" ) ), FALSE );
+                       }
+                       VertexMode = 0;
+                       UpdatePreview( true );
+                       NumVerticesSelected = 0;
+               }
+
+               if ( page_num == TEXTURE_TAB ) {
+                       WasDetail = UseDetail;
+                       if ( AddHints ) {
+                               UseDetail = 1;
+                               ENABLE_WIDGET( "detail", FALSE );
+                       }
+               }
+
+               ReadDlgValues( current_tab );
+               current_tab = page_num;
+               SetDlgValues( current_tab );
+       }
 }
 
-static gint main_close(GtkWidget *widget, gpointer data)
-{
-    gtk_widget_hide(g_pWnd);
-    gtk_widget_hide(g_pWndPreview);
+static gint main_close( GtkWidget *widget, gpointer data ){
+       gtk_widget_hide( g_pWnd );
+       gtk_widget_hide( g_pWndPreview );
 
-    return TRUE;
+       return TRUE;
 }
 
-static void main_save(GtkWidget *widget, gpointer data)
-{
-    ReadDlgValues(current_tab);
-    SaveSetup(g_pWnd);
+static void main_save( GtkWidget *widget, gpointer data ){
+       ReadDlgValues( current_tab );
+       SaveSetup( g_pWnd );
 }
 
-static void main_open(GtkWidget *widget, gpointer data)
-{
-    OpenSetup(g_pWnd, 0);
-    for (int i = 0; i < 5; i++) {
-        SetDlgValues(i);
-    }
-    ShowPreview();
+static void main_open( GtkWidget *widget, gpointer data ){
+       OpenSetup( g_pWnd, 0 );
+       for ( int i = 0; i < 5; i++ )
+               SetDlgValues( i );
+       ShowPreview();
 }
 
-static void main_defaults(GtkWidget *widget, gpointer data)
-{
-    OpenSetup(g_pWnd, 1);
-    for (int i = 0; i < 5; i++) {
-        SetDlgValues(i);
-    }
-    ShowPreview();
+static void main_defaults( GtkWidget *widget, gpointer data ){
+       OpenSetup( g_pWnd, 1 );
+       for ( int i = 0; i < 5; i++ )
+               SetDlgValues( i );
+       ShowPreview();
 }
 
-static void main_preview(GtkWidget *widget, gpointer data)
-{
-    Preview = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-    ShowPreview();
+static void main_preview( GtkWidget *widget, gpointer data ){
+       Preview = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( widget ) );
+       ShowPreview();
 }
 
 // ^Fishman - Antializing for the preview window.
-static void main_antialiasing(GtkWidget *widget, gpointer data)
-{
-    Antialiasing = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
-    UpdatePreview(true);
+static void main_antialiasing( GtkWidget *widget, gpointer data ){
+       Antialiasing = gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( widget ) );
+       UpdatePreview( true );
 }
 
-static void main_about(GtkWidget *widget, gpointer data)
-{
-    About(g_pWnd);
+static void main_about( GtkWidget *widget, gpointer data ){
+       About( g_pWnd );
 }
 
-static void main_go(GtkWidget *widget, gpointer data)
-{
-    GtkWidget *notebook = g_object_get_data(G_OBJECT(g_pWnd, "notebook"));
-    char Text[256];
-
-    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", 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", eMB_OK, eMB_ICONWARNING);
-        gtk_notebook_set_page(GTK_NOTEBOOK(notebook), EXTENTS_TAB);
-        return;
-    }
-
-    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", eMB_OK, eMB_ICONWARNING);
-        gtk_notebook_set_page(GTK_NOTEBOOK(notebook), EXTENTS_TAB);
-        return;
-    }
-
-    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", 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", eMB_OK, eMB_ICONWARNING);
-        gtk_notebook_set_page(GTK_NOTEBOOK(notebook), EXTENTS_TAB);
-        return;
-    }
+static void main_go( GtkWidget *widget, gpointer data ){
+       GtkWidget *notebook = g_object_get_data( G_OBJECT( g_pWnd , "notebook" ) );
+       char Text[256];
+
+       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", 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", eMB_OK, eMB_ICONWARNING );
+               gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
+               return;
+       }
+
+       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", eMB_OK, eMB_ICONWARNING );
+               gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
+               return;
+       }
+
+       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", 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", eMB_OK, eMB_ICONWARNING );
+               gtk_notebook_set_page( GTK_NOTEBOOK( notebook ), EXTENTS_TAB );
+               return;
+       }
 
 /*  if (Decimate>0 && GimpHints!=0)
    {
@@ -775,100 +767,94 @@ static void main_go(GtkWidget *widget, gpointer data)
     GimpHints = 0;
    } */
 
-    gtk_widget_hide(g_pWnd);
-    if (g_pWndPreview) {
-        gtk_widget_hide(g_pWndPreview);
-    }
+       gtk_widget_hide( g_pWnd );
+       if ( g_pWndPreview ) {
+               gtk_widget_hide( g_pWndPreview );
+       }
 
-    GenerateMap();
-    WriteIniFile(gszIni);
+       GenerateMap();
+       WriteIniFile( gszIni );
 }
 
 // =============================================================================
 // general tab callbacks
 
-static void general_game(GtkToggleButton *widget, gpointer data)
-{
-    if (gtk_toggle_button_get_active(widget)) {
-        Game = GPOINTER_TO_INT(data);
-        UpdatePreview(TRUE);
-    }
+static void general_game( GtkToggleButton *widget, gpointer data ){
+       if ( gtk_toggle_button_get_active( widget ) ) {
+               Game = GPOINTER_TO_INT( data );
+               UpdatePreview( TRUE );
+       }
 }
 
-static void general_plane(GtkToggleButton *widget, gpointer data)
-{
-    if (gtk_toggle_button_get_active(widget)) {
-        Plane = GPOINTER_TO_INT(data);
-        SetupControls();
-        UpdatePreview(TRUE);
-    }
+static void general_plane( GtkToggleButton *widget, gpointer data ){
+       if ( gtk_toggle_button_get_active( widget ) ) {
+               Plane = GPOINTER_TO_INT( data );
+               SetupControls();
+               UpdatePreview( TRUE );
+       }
 }
 
-static void general_wave(GtkToggleButton *widget, gpointer data)
-{
-    if (gtk_toggle_button_get_active(widget)) {
-        WaveType = GPOINTER_TO_INT(data);
-        SetupControls();
-        UpdatePreview(TRUE);
-    }
+static void general_wave( GtkToggleButton *widget, gpointer data ){
+       if ( gtk_toggle_button_get_active( widget ) ) {
+               WaveType = GPOINTER_TO_INT( data );
+               SetupControls();
+               UpdatePreview( TRUE );
+       }
 }
 
-static void general_random(GtkAdjustment *adj, gpointer data)
-{
-    int nPos = (int) adj->value;
+static void general_random( GtkAdjustment *adj, gpointer data ){
+       int nPos = (int)adj->value;
 
-    if (RandomSeed != nPos) {
-        RandomSeed = nPos;
-        UpdatePreview(true);
-    }
+       if ( RandomSeed != nPos ) {
+               RandomSeed = nPos;
+               UpdatePreview( true );
+       }
 }
 
 // =============================================================================
 // extents tab callbacks
 
-static void extents_linearborder(GtkToggleButton *check, gpointer data)
-{
-    FixBorders = gtk_toggle_button_get_active(check);
-    UpdatePreview(true);
+static void extents_linearborder( GtkToggleButton *check, gpointer data ){
+       FixBorders = gtk_toggle_button_get_active( check );
+       UpdatePreview( true );
 }
 
-static void extents_use_patches(GtkToggleButton *check, gpointer data)
-{
-    if (Game != QUAKE3) {
-        return;
-    }
+static void extents_use_patches( GtkToggleButton *check, gpointer data ){
+       if ( Game != QUAKE3 ) {
+               return;
+       }
 
-    UsePatches = gtk_toggle_button_get_active(check);
-    SetDlgValues(current_tab);
-    SetupControls();
-    UpdatePreview(true);
+       UsePatches = gtk_toggle_button_get_active( check );
+       SetDlgValues( current_tab );
+       SetupControls();
+       UpdatePreview( true );
 }
 
-static void extents_nhnv_spin(GtkAdjustment *adj, int *data)
-{
-    int nPos = (int) adj->value;
-
-    if (*data != nPos) {
-        if (Game == QUAKE3 && UsePatches && (nPos % 2)) {
-            if (*data < nPos) {
-                *data += 2;
-            } else {
-                *data -= 2;
-            }
-            gtk_adjustment_set_value(adj, *data);
-        } else {
-            *data = nPos;
-        }
-        UpdatePreview(true);
-    }
+static void extents_nhnv_spin( GtkAdjustment *adj, int *data ){
+       int nPos = (int)adj->value;
+
+       if ( *data != nPos ) {
+               if ( Game == QUAKE3 && UsePatches && ( nPos % 2 ) ) {
+                       if ( *data < nPos ) {
+                               *data += 2;
+                       }
+                       else{
+                               *data -= 2;
+                       }
+                       gtk_adjustment_set_value( adj, *data );
+               }
+               else{
+                       *data = nPos;
+               }
+               UpdatePreview( true );
+       }
 }
 
-static void extents_decimate(GtkAdjustment *adj, gpointer data)
-{
-    int nPos = (int) adj->value;
+static void extents_decimate( GtkAdjustment *adj, gpointer data ){
+       int nPos = (int)adj->value;
 
-    Decimate = nPos;
-    UpdatePreview(true);
+       Decimate = nPos;
+       UpdatePreview( true );
 }
 
 // Hydra : snap to grid begin
@@ -881,1237 +867,1216 @@ static void extents_decimate(GtkAdjustment *adj, gpointer data)
    }*/
 
 // ^Fishman - Modified version of Hydra's snap to grid code.
-static void extents_snaptogrid_spin(GtkAdjustment *adj, int *data)
-{
-    int nPos = (int) adj->value;
-    SnapToGrid = nPos;
-    UpdatePreview(true);
+static void extents_snaptogrid_spin( GtkAdjustment *adj, int *data ){
+       int nPos = (int)adj->value;
+       SnapToGrid = nPos;
+       UpdatePreview( true );
 }
 
 // =============================================================================
 // bitmap tab callbacks
 
-static gint bitmap_file_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    char filename[NAME_MAX];
-
-    strcpy(filename, gtk_entry_get_text(GTK_ENTRY(widget)));
-    if (strcmp(filename, gbmp.name)) {
-        strcpy(gbmp.name, filename);
-        if (strlen(gbmp.name)) {
-            OpenBitmap();
-        }
-        ENABLE_WIDGET("go", (gbmp.colors != NULL ? TRUE : FALSE));
-    }
-    return FALSE;
+static gint bitmap_file_entryfocusout( GtkWidget* widget, GdkEventFocus* event, gpointer data ){
+       char filename[NAME_MAX];
+
+       strcpy( filename, gtk_entry_get_text( GTK_ENTRY( widget ) ) );
+       if ( strcmp( filename,gbmp.name ) ) {
+               strcpy( gbmp.name,filename );
+               if ( strlen( gbmp.name ) ) {
+                       OpenBitmap();
+               }
+               ENABLE_WIDGET( "go", ( gbmp.colors != NULL ? TRUE : FALSE ) );
+       }
+       return FALSE;
 }
 
-static void bitmap_browse(GtkWidget *widget, gpointer data)
-{
-    const char *filename;
-    char *ptr;
+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);
+       filename = g_FuncTable.m_pfnFileDialog( g_pWnd, TRUE, "Bitmap File", gbmp.defpath );
 
-    if (filename != NULL) {
-        strcpy(gbmp.name, filename);
+       if ( filename != NULL ) {
+               strcpy( gbmp.name, filename );
 
-        ptr = strrchr(filename, G_DIR_SEPARATOR);
-        if (ptr != NULL) {
-            *(ptr + 1) = '\0';
-            strcpy(gbmp.defpath, filename);
-        }
+               ptr = strrchr( filename, G_DIR_SEPARATOR );
+               if ( ptr != NULL ) {
+                       *( ptr + 1 ) = '\0';
+                       strcpy( gbmp.defpath, filename );
+               }
 
-        OpenBitmap();
-        ENABLE_WIDGET("go", (gbmp.colors != NULL ? TRUE : FALSE));
-    }
+               OpenBitmap();
+               ENABLE_WIDGET( "go", ( gbmp.colors != NULL ? TRUE : FALSE ) );
+       }
 }
 
-static void bitmap_reload(GtkWidget *widget, gpointer data)
-{
-    strcpy(gbmp.name, gtk_entry_get_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "bmp_file"))));
-    if (strlen(gbmp.name)) {
-        OpenBitmap();
-        ENABLE_WIDGET("go", (gbmp.colors != NULL ? TRUE : FALSE));
-    } else {
-        ENABLE_WIDGET("go", FALSE);
-    }
+static void bitmap_reload( GtkWidget *widget, gpointer data ){
+       strcpy( gbmp.name, gtk_entry_get_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "bmp_file" ) ) ) );
+       if ( strlen( gbmp.name ) ) {
+               OpenBitmap();
+               ENABLE_WIDGET( "go", ( gbmp.colors != NULL ? TRUE : FALSE ) );
+       }
+       else{
+               ENABLE_WIDGET( "go", FALSE );
+       }
 }
 
 // =============================================================================
 // fix points tab callbacks
 
-static gint fix_value_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    int i = atoi(gtk_entry_get_text(GTK_ENTRY(widget))), k;
-    char Text[32];
-
-    if (i < -65536 || i > 65536) {
-        gdk_beep();
-        g_FuncTable.m_pfnMessageBox(g_pWnd, "The value must be between -65536 and 65536, inclusive.",
-                                    "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(widget.window(), widget);
-    } else if (i != xyz[Vertex[0].i][Vertex[0].j].fixed_value) {
-        for (k = 0; k < NumVerticesSelected; k++) {
-            xyz[Vertex[k].i][Vertex[k].j].fixed_value = i;
-        }
-
-        gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "fix_value")),
-                                  (int) xyz[Vertex[0].i][Vertex[0].j].fixed_value);
-        UpdatePreview(true);
-    }
-    return FALSE;
+static gint fix_value_entryfocusout( GtkWidget* widget, GdkEventFocus *event, gpointer data ){
+       int i = atoi( gtk_entry_get_text( GTK_ENTRY( widget ) ) ), k;
+       char Text[32];
+
+       if ( i < -65536 || i > 65536 ) {
+               gdk_beep();
+               g_FuncTable.m_pfnMessageBox( g_pWnd, "The value must be between -65536 and 65536, inclusive.",
+                                                                        "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( widget.window(), widget );
+       }
+       else if ( i != xyz[Vertex[0].i][Vertex[0].j].fixed_value ) {
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].fixed_value = i;
+
+               gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "fix_value" ) ),
+                                                                  (int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
+               UpdatePreview( true );
+       }
+       return FALSE;
 }
 
-static void fix_value_changed(GtkAdjustment *adj, gpointer data)
-{
-    int k, i = (int) adj->value;
+static void fix_value_changed( GtkAdjustment *adj, gpointer data ){
+       int k, i = (int)adj->value;
 
-    if (xyz[Vertex[0].i][Vertex[0].j].fixed_value != i) {
-        for (k = 0; k < NumVerticesSelected; k++) {
-            xyz[Vertex[k].i][Vertex[k].j].fixed_value = i;
-        }
-        UpdatePreview(true);
-    }
+       if ( xyz[Vertex[0].i][Vertex[0].j].fixed_value != i ) {
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].fixed_value = i;
+               UpdatePreview( true );
+       }
 }
 
-static gint fix_range_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    int i = atoi(gtk_entry_get_text(GTK_ENTRY(widget))), k;
-
-    if (i != xyz[Vertex[0].i][Vertex[0].j].range) {
-        for (k = 0; k < NumVerticesSelected; k++) {
-            xyz[Vertex[k].i][Vertex[k].j].range = i;
-        }
-        UpdatePreview(true);
-    }
-    return FALSE;
+static gint fix_range_entryfocusout( GtkWidget *widget, GdkEventFocus *event, gpointer data ){
+       int i = atoi( gtk_entry_get_text( GTK_ENTRY( widget ) ) ), k;
+
+       if ( i != xyz[Vertex[0].i][Vertex[0].j].range ) {
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].range = i;
+               UpdatePreview( true );
+       }
+       return FALSE;
 }
 
-static gint fix_rate_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    double r = atof(gtk_entry_get_text(GTK_ENTRY(widget)));
-    int k;
-
-    if (r != xyz[Vertex[0].i][Vertex[0].j].rate) {
-        for (k = 0; k < NumVerticesSelected; k++) {
-            xyz[Vertex[k].i][Vertex[k].j].rate = r;
-        }
-        UpdatePreview(true);
-    }
-    return FALSE;
+static gint fix_rate_entryfocusout( GtkWidget *widget, GdkEventFocus *event, gpointer data ){
+       double r = atof( gtk_entry_get_text( GTK_ENTRY( widget ) ) );
+       int k;
+
+       if ( r != xyz[Vertex[0].i][Vertex[0].j].rate ) {
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].rate = r;
+               UpdatePreview( true );
+       }
+       return FALSE;
 }
 
-static void fix_free(GtkWidget *widget, gpointer data)
-{
-    int k;
+static void fix_free( GtkWidget *widget, gpointer data ){
+       int k;
 
-    for (k = 0; k < NumVerticesSelected; k++) {
-        xyz[Vertex[k].i][Vertex[k].j].fixed = 0;
-    }
-    NumVerticesSelected = 0;
-    SetupControls();
-    UpdatePreview(true);
+       for ( k = 0; k < NumVerticesSelected; k++ )
+               xyz[Vertex[k].i][Vertex[k].j].fixed = 0;
+       NumVerticesSelected = 0;
+       SetupControls();
+       UpdatePreview( true );
 }
 
-static void fix_freeall(GtkWidget *widget, gpointer data)
-{
-    int i, j;
+static void fix_freeall( GtkWidget *widget, gpointer data ){
+       int i, j;
 
-    for (i = 0; i <= NH; i++) {
-        for (j = 0; j <= NV; j++) {
-            xyz[i][j].fixed = 0;
-        }
-    }
-    fix_free(NULL, data); // keep these together
+       for ( i = 0; i <= NH; i++ )
+       {
+               for ( j = 0; j <= NV; j++ )
+                       xyz[i][j].fixed = 0;
+       }
+       fix_free( NULL, data ); // keep these together
 }
 
-void vertex_selected()
-{
-    char Text[32];
-    int k;
-
-    SetupControls();
-
-    switch (Plane) {
-        case PLANE_XZ0:
-        case PLANE_XZ1:
-            for (k = 0; k < NumVerticesSelected; k++) {
-                xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[1];
-            }
-            break;
-        case PLANE_YZ0:
-        case PLANE_YZ1:
-            for (k = 0; k < NumVerticesSelected; k++) {
-                xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[0];
-            }
-            break;
-        default:
-            for (k = 0; k < NumVerticesSelected; k++) {
-                xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[2];
-            }
-            break;
-    }
-
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(g_object_get_data(G_OBJECT(g_pWnd), "fix_value")),
-                              (int) xyz[Vertex[0].i][Vertex[0].j].fixed_value);
-
-    sprintf(Text, "%d", (int) xyz[Vertex[0].i][Vertex[0].j].range);
-    gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "fix_range")), Text);
-    sprintf(Text, "%.5g", xyz[Vertex[0].i][Vertex[0].j].rate);
-    gtk_entry_set_text(GTK_ENTRY(g_object_get_data(G_OBJECT(g_pWnd), "fix_rate")), Text);
-
-    for (k = 0; k < NumVerticesSelected; k++) {
-        xyz[Vertex[k].i][Vertex[k].j].fixed = 1;
-    }
-
-    UpdatePreview(true);
+void vertex_selected(){
+       char Text[32];
+       int k;
+
+       SetupControls();
+
+       switch ( Plane )
+       {
+       case PLANE_XZ0:
+       case PLANE_XZ1:
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[1];
+               break;
+       case PLANE_YZ0:
+       case PLANE_YZ1:
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[0];
+               break;
+       default:
+               for ( k = 0; k < NumVerticesSelected; k++ )
+                       xyz[Vertex[k].i][Vertex[k].j].fixed_value = xyz[Vertex[0].i][Vertex[0].j].p[2];
+               break;
+       }
+
+       gtk_spin_button_set_value( GTK_SPIN_BUTTON( g_object_get_data( G_OBJECT( g_pWnd ), "fix_value" ) ),
+                                                          (int)xyz[Vertex[0].i][Vertex[0].j].fixed_value );
+
+       sprintf( Text,"%d",(int)xyz[Vertex[0].i][Vertex[0].j].range );
+       gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "fix_range" ) ), Text );
+       sprintf( Text,"%.5g",xyz[Vertex[0].i][Vertex[0].j].rate );
+       gtk_entry_set_text( GTK_ENTRY( g_object_get_data( G_OBJECT( g_pWnd ), "fix_rate" ) ), Text );
+
+       for ( k = 0; k < NumVerticesSelected; k++ )
+               xyz[Vertex[k].i][Vertex[k].j].fixed = 1;
+
+       UpdatePreview( true );
 }
 
 // =============================================================================
 // texture tab callbacks
 
-static void texture_detail(GtkToggleButton *check, gpointer data)
-{
-    UseDetail = gtk_toggle_button_get_active(check);
-    WasDetail = UseDetail;
+static void texture_detail( GtkToggleButton *check, gpointer data ){
+       UseDetail = gtk_toggle_button_get_active( check );
+       WasDetail = UseDetail;
 }
 
-static void texture_hint(GtkToggleButton *check, gpointer data)
-{
-    AddHints = gtk_toggle_button_get_active(check);
-    if (AddHints == 1) {
-        UseDetail = 1;
-        ENABLE_WIDGET("detail", FALSE);
-    } else {
-        UseDetail = WasDetail;
-        ENABLE_WIDGET("detail", FALSE);
-    }
-    CHECK_WIDGET("detail", UseDetail);
+static void texture_hint( GtkToggleButton *check, gpointer data ){
+       AddHints = gtk_toggle_button_get_active( check );
+       if ( AddHints == 1 ) {
+               UseDetail = 1;
+               ENABLE_WIDGET( "detail", FALSE );
+       }
+       else
+       {
+               UseDetail = WasDetail;
+               ENABLE_WIDGET( "detail", FALSE );
+       }
+       CHECK_WIDGET( "detail", UseDetail );
 }
 
 // ^Fishman - Add terrain key to func_group.
-static void texture_terrainent(GtkToggleButton *check, gpointer data)
-{
-    AddTerrainKey = gtk_toggle_button_get_active(check);
+static void texture_terrainent( GtkToggleButton *check, gpointer data ){
+       AddTerrainKey = gtk_toggle_button_get_active( check );
 }
 
-static void texture_set(int index, const char *name)
-{
-    strcpy(Texture[Game][index], name);
+static void texture_set( int index, const char* name ){
+       strcpy( Texture[Game][index], name );
 }
 
-static gint texture_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    texture_set(GPOINTER_TO_INT(data), gtk_entry_get_text(GTK_ENTRY(widget)));
-    return FALSE;
+static gint texture_entryfocusout( GtkWidget* widget, GdkEventFocus* event, gpointer data ){
+       texture_set( GPOINTER_TO_INT( data ), gtk_entry_get_text( GTK_ENTRY( widget ) ) );
+       return FALSE;
 }
 
 // =============================================================================
 // misc stuff
 
-static void UpdateVariable(GtkEntry *entry, GdkEventFocus *event, double *data)
-{
-    double x = atof(gtk_entry_get_text(entry));
+static void UpdateVariable( GtkEntry *entry, GdkEventFocus *event, double *data ){
+       double x = atof( gtk_entry_get_text( entry ) );
 
-    if (x != *data) {
-        *data = x;
-        UpdatePreview(true);
-    }
+       if ( x != *data ) {
+               *data = x;
+               UpdatePreview( true );
+       }
 }
 
-static gint doublevariable_entryfocusout(GtkWidget *widget, GdkEventFocus *event, gpointer data)
-{
-    UpdateVariable(GTK_ENTRY(widget), event, reinterpret_cast<double *>( data ));
-    return FALSE;
+static gint doublevariable_entryfocusout( GtkWidget* widget, GdkEventFocus* event, gpointer data ){
+       UpdateVariable( GTK_ENTRY( widget ), event, reinterpret_cast<double*>( data ) );
+       return FALSE;
 }
 
 // =============================================================================
 // create tooltips
 
-void create_tooltips()
-{
-    tooltips = gtk_tooltips_new();
-
-    // Main
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "go")),
-                         "Accept all input and generate a surface in Q3Radiant",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "open")),
-                         "Open a previously saved GenSurf settings file.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "save")),
-                         "Save all settings to a file.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "defaults")),
-                         "Restore default values from DEFAULTS.SRF. If this file does not exist, GenSurf "
-                                 "initializes all input parameters to reasonable values. You can create your own "
-                                 "default surface by setting all parameters to your liking, then saving a settings "
-                                 "file as DEFAULTS.SRF with the Save As button.",
-                         "");
-
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "main_preview")),
-                         "View a wire-frame representation of the surface",
-                         "");
-
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "main_antialiasing")),
-                         "The lines in the preview window are antialiased for better quality",
-                         "");
-
-    // General tab
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         wave_radios[0],
-                         "Builds a surface with alternating hills and valleys. Uses the general form Z=cos(X) "
-                                 "x sin(Y)",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         wave_radios[1],
-                         "Builds a surface with ridges parallel to the vertical axis.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         wave_radios[2],
-                         "Builds a surface with ridges parallel to the horizontal axis.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         wave_radios[3],
-                         "Builds a map from a bitmap image representing a contour plot. Click the \"Bitmap\" "
-                                 "tab to select the image. GenSurf only supports 256-color (8 bit) "
-                                 "bitmaps. GenSurf will work with any 256-color bitmap, but gray scale bitmaps are a bit "
-                                 "more intuitive.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         wave_radios[4],
-                         "Builds a random surface using the Plasma Cloud technique. Variance is controlled "
-                                 "by the Roughness input. To build a surface with completely random values not "
-                                 "dependent on neighboring vertices, use one of the other waveforms with 0 amplitude.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "wavelength")),
-                         "Enter the wavelength (distance between crests). NOTE: Wavelengths equal to the grid "
-                                 "size or 2 times the grid size will result in 0 amplitudes. For best results, the "
-                                 "wavelength value should be at least 4 times the grid size (extents divided by the "
-                                 "number of divisions",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "amplitude")),
-                         "Enter the height of hills/ridges.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "roughness")),
-                         "Enter the roughness value (noise) for the surface. For fractal surfaces, this value "
-                                 "is used as a variance in the fractal calculations.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "random")),
-                         "Seed value for the pseudo-random number generator.",
-                         "");
-    // Extents tab
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "hmin")),
-                         "Minimum horizontal coordinate of the surface, i.e. X for a surface parallel to "
-                                 "the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, "
-                                 "the extents (maximum-minimum values) in a given direction should be evenly "
-                                 "divisible by the number of divisions in that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "hmax")),
-                         "Maximum horizontal coordinate of the surface, i.e. X for a surface parallel to "
-                                 "the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, "
-                                 "the extents (maximum-minimum values) in a given direction should be evenly "
-                                 "divisible by the number of divisions in that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "vmin")),
-                         "Minimum vertical coordinate of the surface, i.e. Y for a surface parallel to "
-                                 "the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, "
-                                 "the extents (maximum-minimum values) in a given direction should be evenly "
-                                 "divisible by the number of divisions in that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "vmax")),
-                         "Maximum vertical coordinate of the surface, i.e. Y for a surface parallel to "
-                                 "the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, "
-                                 "the extents (maximum-minimum values) in a given direction should be evenly "
-                                 "divisible by the number of divisions in that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "nh")),
-                         "Number of divisions in the horizontal direction. For best results, the extents "
-                                 "in a given direction should be evenly divisible by the number of divisions in "
-                                 "that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "nv")),
-                         "Number of divisions in the vertical direction. For best results, the extents "
-                                 "in a given direction should be evenly divisible by the number of divisions in "
-                                 "that direction.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "use_patches")),
-                         "Produce one or more curved patches in the shape of your selected surface rather "
-                                 "than producing solid brushes. Depending on the size of your surface (and the "
-                                 "user's graphic detail settings, which you cannot control), curved surfaces will "
-                                 "be represented in the game by a very large number of polygons. Read the warnings "
-                                 "concerning curved surfaces on the GenSurf web page before using this feature.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "decimate")),
-                         "Use the slider to control the number of vertices discarded by GenSurf. For many "
-                                 "surfaces, you can produce roughly the same shape surface with a high decimation "
-                                 "value. This will generally result in a map with lower polygon counts (and better "
-                                 "in-game performance). However, this feature should NOT be used for large terrain "
-                                 "surfaces in Q3",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "z00")),
-                         "Enter the height of the surface at the lower left corner. This value will likely "
-                                 "be modified unless \"Linear Borders\" is checked.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "z01")),
-                         "Enter the height of the surface at the upper left corner. This value will likely "
-                                 "be modified unless \"Linear Borders\" is checked.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "z10")),
-                         "Enter the height of the surface at the lower right corner. This value will likely "
-                                 "be modified unless \"Linear Borders\" is checked.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "z11")),
-                         "Enter the height of the surface at the upper right corner. This value will likely "
-                                 "be modified unless \"Linear Borders\" is checked.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "linearborder")),
-                         "Restrict the edges of the surface to a straight line. This will help match up "
-                                 "brush edges if you drop this surface into another map.",
-                         "");
-    // Bitmap tab
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "bmp_file")),
-                         "Type the name of an 8-bit bitmap image file, or click Browse to select an image "
-                                 "from a list of those available on your system.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "bmp_file_browse")),
-                         "Select a bitmap image file from a list of those available on your system.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "bmp_reload")),
-                         "Reload the selected bitmap file after making changes in an external image editor.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "bmp_black")),
-                         "Enter the value corresponding to color index 0 in the bitmap file. For gray scale "
-                                 "images, color 0 is normally black.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "bmp_white")),
-                         "Enter the value corresponding to color index 255 in the bitmap file. For gray scale "
-                                 "images, color 255 is normally white.",
-                         "");
-    // Fixpoints tab
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "fix_value")),
-                         "Enter a value for the selected vertex. This value will not be adjusted when applying "
-                                 "a waveform or roughness to the surface. Unlock this vertex (so that it will be "
-                                 "adjusted normally) by clicking \"Free\". This vertex will influence vertices within "
-                                 "the \"Range affected\" of this vertex.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "fix_range")),
-                         "Enter the range away from the selected vertex that other vertices will be affected. "
-                                 "Use 0 if you don't want other vertices to be influenced by the currently selected "
-                                 "one. Note: this box is disabled if you've chosen the fractal generator, as it uses "
-                                 "a completely different method for determining values.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "fix_rate")),
-                         "Enter a rate of change for the surface affected by the fixed value. 0 gives a smooth "
-                                 "sinusoidal curve, values less than 0 give progressively sharper spikes, and values "
-                                 "greater than 0 take on a square shape. Values less than -30 or greater than 30 are "
-                                 "set to -30 and 30, respectively. Note that this entry will have no effect unless "
-                                 "you also specify a \"range affected\".",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "fix_free")),
-                         "Click this to free (unlock the value of) the currently selected vertex.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "fix_freeall")),
-                         "Click this to free (unlock the values of) all vertices.",
-                         "");
-    // Texture tab
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "texture1")),
-                         "Enter the name of the texture or shader used for the surface faces.",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "texture2")),
-                         "Enter the name of the texture or shader used for faces other than the surface. Under "
-                                 "normal circumstances this should be \"common/caulk\"",
-                         "");
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "texture3")),
-                         "Enter the name of the texture or shader used for \"steep\" surface faces, where \"steep\" "
-                                 "is the angle specified below. If this entry is left blank or if the \"steep\" angle is 0, "
-                                 "all surface faces will use the texture specified by \"Surface\".",
-                         "");
-
-    gtk_tooltips_set_tip(GTK_TOOLTIPS(tooltips),
-                         g_object_get_data(G_OBJECT(g_pWnd, "detail")),
-                         "Check this box to use the detail content property on the generated brushes. Compile "
-                                 "times will be considerably shorter if the detail property is used, though the surface "
-                                 "will not block visibility at all. If you use the detail property, you should make sure "
-                                 "that \"common/caulk\" is used for the non-surface faces, or the polygon count will be "
-                                 "much higher than necessary.",
-                         "");
+void create_tooltips(){
+       tooltips = gtk_tooltips_new();
+
+       // Main
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "go" ) ),
+                                                 "Accept all input and generate a surface in Q3Radiant",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "open" ) ),
+                                                 "Open a previously saved GenSurf settings file.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "save" ) ),
+                                                 "Save all settings to a file.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "defaults" ) ),
+                                                 "Restore default values from DEFAULTS.SRF. If this file does not exist, GenSurf "
+                                                 "initializes all input parameters to reasonable values. You can create your own "
+                                                 "default surface by setting all parameters to your liking, then saving a settings "
+                                                 "file as DEFAULTS.SRF with the Save As button.",
+                                                 "" );
+
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "main_preview" ) ),
+                                                 "View a wire-frame representation of the surface",
+                                                 "" );
+
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "main_antialiasing" ) ),
+                                                 "The lines in the preview window are antialiased for better quality",
+                                                 "" );
+
+       // General tab
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 wave_radios[0] ,
+                                                 "Builds a surface with alternating hills and valleys. Uses the general form Z=cos(X) "
+                                                 "x sin(Y)",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 wave_radios[1] ,
+                                                 "Builds a surface with ridges parallel to the vertical axis.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 wave_radios[2] ,
+                                                 "Builds a surface with ridges parallel to the horizontal axis.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 wave_radios[3] ,
+                                                 "Builds a map from a bitmap image representing a contour plot. Click the \"Bitmap\" "
+                                                 "tab to select the image. GenSurf only supports 256-color (8 bit) "
+                                                 "bitmaps. GenSurf will work with any 256-color bitmap, but gray scale bitmaps are a bit "
+                                                 "more intuitive.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 wave_radios[4] ,
+                                                 "Builds a random surface using the Plasma Cloud technique. Variance is controlled "
+                                                 "by the Roughness input. To build a surface with completely random values not "
+                                                 "dependent on neighboring vertices, use one of the other waveforms with 0 amplitude.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "wavelength" ) ),
+                                                 "Enter the wavelength (distance between crests). NOTE: Wavelengths equal to the grid "
+                                                 "size or 2 times the grid size will result in 0 amplitudes. For best results, the "
+                                                 "wavelength value should be at least 4 times the grid size (extents divided by the "
+                                                 "number of divisions",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "amplitude" ) ),
+                                                 "Enter the height of hills/ridges.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "roughness" ) ),
+                                                 "Enter the roughness value (noise) for the surface. For fractal surfaces, this value "
+                                                 "is used as a variance in the fractal calculations.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "random" ) ),
+                                                 "Seed value for the pseudo-random number generator.",
+                                                 "" );
+       // Extents tab
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "hmin" ) ),
+                                                 "Minimum horizontal coordinate of the surface, i.e. X for a surface parallel to "
+                                                 "the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, "
+                                                 "the extents (maximum-minimum values) in a given direction should be evenly "
+                                                 "divisible by the number of divisions in that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "hmax" ) ),
+                                                 "Maximum horizontal coordinate of the surface, i.e. X for a surface parallel to "
+                                                 "the XY or XZ planes, Y for a surface parallel to the YZ plane. For best results, "
+                                                 "the extents (maximum-minimum values) in a given direction should be evenly "
+                                                 "divisible by the number of divisions in that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "vmin" ) ),
+                                                 "Minimum vertical coordinate of the surface, i.e. Y for a surface parallel to "
+                                                 "the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, "
+                                                 "the extents (maximum-minimum values) in a given direction should be evenly "
+                                                 "divisible by the number of divisions in that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "vmax" ) ),
+                                                 "Maximum vertical coordinate of the surface, i.e. Y for a surface parallel to "
+                                                 "the XY plane, Z for a surface parallel to the XZ or YZ planes. For best results, "
+                                                 "the extents (maximum-minimum values) in a given direction should be evenly "
+                                                 "divisible by the number of divisions in that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "nh" ) ),
+                                                 "Number of divisions in the horizontal direction. For best results, the extents "
+                                                 "in a given direction should be evenly divisible by the number of divisions in "
+                                                 "that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "nv" ) ),
+                                                 "Number of divisions in the vertical direction. For best results, the extents "
+                                                 "in a given direction should be evenly divisible by the number of divisions in "
+                                                 "that direction.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "use_patches" ) ),
+                                                 "Produce one or more curved patches in the shape of your selected surface rather "
+                                                 "than producing solid brushes. Depending on the size of your surface (and the "
+                                                 "user's graphic detail settings, which you cannot control), curved surfaces will "
+                                                 "be represented in the game by a very large number of polygons. Read the warnings "
+                                                 "concerning curved surfaces on the GenSurf web page before using this feature.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "decimate" ) ),
+                                                 "Use the slider to control the number of vertices discarded by GenSurf. For many "
+                                                 "surfaces, you can produce roughly the same shape surface with a high decimation "
+                                                 "value. This will generally result in a map with lower polygon counts (and better "
+                                                 "in-game performance). However, this feature should NOT be used for large terrain "
+                                                 "surfaces in Q3",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "z00" ) ),
+                                                 "Enter the height of the surface at the lower left corner. This value will likely "
+                                                 "be modified unless \"Linear Borders\" is checked.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "z01" ) ),
+                                                 "Enter the height of the surface at the upper left corner. This value will likely "
+                                                 "be modified unless \"Linear Borders\" is checked.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "z10" ) ),
+                                                 "Enter the height of the surface at the lower right corner. This value will likely "
+                                                 "be modified unless \"Linear Borders\" is checked.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "z11" ) ),
+                                                 "Enter the height of the surface at the upper right corner. This value will likely "
+                                                 "be modified unless \"Linear Borders\" is checked.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "linearborder" ) ),
+                                                 "Restrict the edges of the surface to a straight line. This will help match up "
+                                                 "brush edges if you drop this surface into another map.",
+                                                 "" );
+       // Bitmap tab
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "bmp_file" ) ),
+                                                 "Type the name of an 8-bit bitmap image file, or click Browse to select an image "
+                                                 "from a list of those available on your system.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "bmp_file_browse" ) ),
+                                                 "Select a bitmap image file from a list of those available on your system.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "bmp_reload" ) ),
+                                                 "Reload the selected bitmap file after making changes in an external image editor.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "bmp_black" ) ),
+                                                 "Enter the value corresponding to color index 0 in the bitmap file. For gray scale "
+                                                 "images, color 0 is normally black.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "bmp_white" ) ),
+                                                 "Enter the value corresponding to color index 255 in the bitmap file. For gray scale "
+                                                 "images, color 255 is normally white.",
+                                                 "" );
+       // Fixpoints tab
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "fix_value" ) ),
+                                                 "Enter a value for the selected vertex. This value will not be adjusted when applying "
+                                                 "a waveform or roughness to the surface. Unlock this vertex (so that it will be "
+                                                 "adjusted normally) by clicking \"Free\". This vertex will influence vertices within "
+                                                 "the \"Range affected\" of this vertex.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "fix_range" ) ),
+                                                 "Enter the range away from the selected vertex that other vertices will be affected. "
+                                                 "Use 0 if you don't want other vertices to be influenced by the currently selected "
+                                                 "one. Note: this box is disabled if you've chosen the fractal generator, as it uses "
+                                                 "a completely different method for determining values.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "fix_rate" ) ),
+                                                 "Enter a rate of change for the surface affected by the fixed value. 0 gives a smooth "
+                                                 "sinusoidal curve, values less than 0 give progressively sharper spikes, and values "
+                                                 "greater than 0 take on a square shape. Values less than -30 or greater than 30 are "
+                                                 "set to -30 and 30, respectively. Note that this entry will have no effect unless "
+                                                 "you also specify a \"range affected\".",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "fix_free" ) ),
+                                                 "Click this to free (unlock the value of) the currently selected vertex.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "fix_freeall" ) ),
+                                                 "Click this to free (unlock the values of) all vertices.",
+                                                 "" );
+       // Texture tab
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "texture1" ) ),
+                                                 "Enter the name of the texture or shader used for the surface faces.",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "texture2" ) ),
+                                                 "Enter the name of the texture or shader used for faces other than the surface. Under "
+                                                 "normal circumstances this should be \"common/caulk\"",
+                                                 "" );
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "texture3" ) ),
+                                                 "Enter the name of the texture or shader used for \"steep\" surface faces, where \"steep\" "
+                                                 "is the angle specified below. If this entry is left blank or if the \"steep\" angle is 0, "
+                                                 "all surface faces will use the texture specified by \"Surface\".",
+                                                 "" );
+
+       gtk_tooltips_set_tip( GTK_TOOLTIPS( tooltips ),
+                                                 g_object_get_data( G_OBJECT( g_pWnd , "detail" ) ),
+                                                 "Check this box to use the detail content property on the generated brushes. Compile "
+                                                 "times will be considerably shorter if the detail property is used, though the surface "
+                                                 "will not block visibility at all. If you use the detail property, you should make sure "
+                                                 "that \"common/caulk\" is used for the non-surface faces, or the polygon count will be "
+                                                 "much higher than necessary.",
+                                                 "" );
 }
 
 // =============================================================================
 // create main dialog
 
-GtkWidget *create_main_dialog()
-{
-    GtkWidget *hbox2, *button, *notebook, *table2;
-    GtkWidget *check, *spin, *radio, *label, *entry, *scale;
-    ui::Adjustment adj;
-    GSList *group;
-    int i;
-    const char *games[] = {"Quake 2", "Half-Life", "SiN", "Heretic 2", "Kingpin", "Genesis3D", "Quake 3 Arena"};
-    const char *waveforms[] = {"Alternating hill/valley", "Cylindrical left-to-right", "Cylindrical top-to-bottom",
-                               "From bitmap", "Fractal"};
-    const char *orientations[] = {"Ground surface", "Ceiling", "Wall facing 0", "Wall facing 90",
-                                  "Wall facing 180", "Wall facing 270"};
-
-    auto dlg = g_pWnd = ui::Window(ui::window_type::TOP);
-    gtk_window_set_title(dlg, gszCaption);
-    dlg.connect("delete_event", G_CALLBACK(main_close), NULL);
-    //  dlg.connect( "destroy", G_CALLBACK (gtk_widget_destroy), NULL);
-    gtk_window_set_transient_for(dlg, g_pRadiantWnd);
-
-    auto hbox = ui::HBox(FALSE, 5);
-    hbox.show();
-    dlg.add(hbox);
-    gtk_container_set_border_width(GTK_CONTAINER(hbox), 5);
-
-    notebook = gtk_notebook_new();
-    notebook.show();
-    hbox.pack_start(notebook, TRUE, TRUE, 0);
-    notebook.connect("switch_page",
-                     G_CALLBACK(switch_page), NULL);
-    gtk_notebook_set_tab_pos(GTK_NOTEBOOK(notebook), GTK_POS_TOP);
-    g_object_set_data(G_OBJECT(dlg), "notebook", notebook);
-
-    table = ui::Table(2, 2, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
+GtkWidget* create_main_dialog(){
+       GtkWidget *hbox2, *button, *notebook, *table2;
+       GtkWidget *check, *spin, *radio, *label, *entry, *scale;
+       ui::Adjustment adj;
+       GSList *group;
+       int i;
+       const char *games[] = { "Quake 2", "Half-Life", "SiN", "Heretic 2", "Kingpin", "Genesis3D", "Quake 3 Arena" };
+       const char *waveforms[] = { "Alternating hill/valley", "Cylindrical left-to-right", "Cylindrical top-to-bottom",
+                                                               "From bitmap", "Fractal" };
+       const char *orientations[] = { "Ground surface", "Ceiling", "Wall facing 0", "Wall facing 90",
+                                                                  "Wall facing 180","Wall facing 270" };
+
+       auto dlg = g_pWnd = ui::Window( ui::window_type::TOP );
+       gtk_window_set_title( dlg, gszCaption );
+       dlg.connect( "delete_event", G_CALLBACK( main_close ), NULL );
+       //  dlg.connect( "destroy", G_CALLBACK (gtk_widget_destroy), NULL);
+       gtk_window_set_transient_for( dlg, g_pRadiantWnd );
+
+       auto hbox = ui::HBox( FALSE, 5 );
+       hbox.show();
+       dlg.add(hbox);
+       gtk_container_set_border_width( GTK_CONTAINER( hbox ), 5 );
+
+       notebook = gtk_notebook_new();
+       notebook.show();
+       hbox.pack_start( notebook, TRUE, TRUE, 0 );
+       notebook.connect( "switch_page",
+                                         G_CALLBACK( switch_page ), NULL );
+       gtk_notebook_set_tab_pos( GTK_NOTEBOOK( notebook ), GTK_POS_TOP );
+       g_object_set_data( G_OBJECT( dlg ), "notebook", notebook );
+
+       table = ui::Table( 2, 2, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("General");
-    label.show();
-    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), table, label);
-
-    auto frame = ui::Frame("Game");
-    frame.show();
-    table.attach(frame, {0, 1, 0, 1});
-
-    auto vbox = ui::VBox(TRUE, 5);
-    vbox.show();
-    frame.add(vbox);
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    for (i = 0, group = NULL; i < NUMGAMES; i++) {
-        radio = gtk_radio_button_new_with_label(group, games[i]);
-        radio.show();
-        vbox.pack_start(radio, TRUE, TRUE, 0);
-        group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
-        game_radios[i] = radio;
-        radio.connect("toggled", G_CALLBACK(general_game), GINT_TO_POINTER(i));
-    }
-
-    frame = ui::Frame("Waveform");
-    frame.show();
-    table.attach(frame, {1, 2, 0, 1});
-
-    vbox = ui::VBox(TRUE, 5);
-    vbox.show();
-    frame.add(vbox);
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    for (i = 0, group = NULL; i < 5; i++) {
-        radio = gtk_radio_button_new_with_label(group, waveforms[i]);
-        radio.show();
-        vbox.pack_start(radio, TRUE, TRUE, 0);
-        group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
-        wave_radios[i] = radio;
-        radio.connect("toggled", G_CALLBACK(general_wave), GINT_TO_POINTER(i));
-    }
-
-    frame = ui::Frame("Orientation");
-    frame.show();
-    table.attach(frame, {0, 1, 1, 2});
-
-    vbox = ui::VBox(TRUE, 5);
-    vbox.show();
-    frame.add(vbox);
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    for (i = 0, group = NULL; i < 6; i++) {
-        radio = gtk_radio_button_new_with_label(group, orientations[i]);
-        radio.show();
-        vbox.pack_start(radio, TRUE, TRUE, 0);
-        group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(radio));
-        plane_radios[i] = radio;
-        radio.connect("toggled", G_CALLBACK(general_plane), GINT_TO_POINTER(i));
-    }
-
-    table2 = ui::Table(4, 2, FALSE);
-    table2.show();
+       label = ui::Label( "General" );
+       label.show();
+       gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), table, label );
+
+       auto frame = ui::Frame( "Game" );
+       frame.show();
+       table.attach(frame, {0, 1, 0, 1});
+
+       auto vbox = ui::VBox( TRUE, 5 );
+       vbox.show();
+       frame.add(vbox);
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       for ( i = 0, group = NULL; i < NUMGAMES; i++ )
+       {
+               radio = gtk_radio_button_new_with_label( group, games[i] );
+               radio.show();
+               vbox.pack_start( radio, TRUE, TRUE, 0 );
+               group = gtk_radio_button_get_group( GTK_RADIO_BUTTON( radio ) );
+               game_radios[i] = radio;
+               radio.connect( "toggled", G_CALLBACK( general_game ), GINT_TO_POINTER( i ) );
+       }
+
+       frame = ui::Frame( "Waveform" );
+       frame.show();
+       table.attach(frame, {1, 2, 0, 1});
+
+       vbox = ui::VBox( TRUE, 5 );
+       vbox.show();
+       frame.add(vbox);
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       for ( i = 0, group = NULL; i < 5; i++ )
+       {
+               radio = gtk_radio_button_new_with_label( group, waveforms[i] );
+               radio.show();
+               vbox.pack_start( radio, TRUE, TRUE, 0 );
+               group = gtk_radio_button_get_group( GTK_RADIO_BUTTON( radio ) );
+               wave_radios[i] = radio;
+               radio.connect( "toggled", G_CALLBACK( general_wave ), GINT_TO_POINTER( i ) );
+       }
+
+       frame = ui::Frame( "Orientation" );
+       frame.show();
+       table.attach(frame, {0, 1, 1, 2});
+
+       vbox = ui::VBox( TRUE, 5 );
+       vbox.show();
+       frame.add(vbox);
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       for ( i = 0, group = NULL; i < 6; i++ )
+       {
+               radio = gtk_radio_button_new_with_label( group, orientations[i] );
+               radio.show();
+               vbox.pack_start( radio, TRUE, TRUE, 0 );
+               group = gtk_radio_button_get_group( GTK_RADIO_BUTTON( radio ) );
+               plane_radios[i] = radio;
+               radio.connect( "toggled", G_CALLBACK( general_plane ), GINT_TO_POINTER( i ) );
+       }
+
+       table2 = ui::Table( 4, 2, FALSE );
+       table2.show();
     gtk_table_set_row_spacings(table2, 5);
     gtk_table_set_col_spacings(table2, 5);
-    table.attach(table2, {1, 2, 1, 2});
-
-    label = ui::Label("Wavelength:");
-    label.show();
-    table2.attach(label, {0, 1, 0, 1});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
-
-    label = ui::Label("Max. amplitude:");
-    label.show();
-    table2.attach(label, {0, 1, 1, 2});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
-
-    label = ui::Label("Roughness:");
-    label.show();
+       table.attach(table2, {1, 2, 1, 2});
+
+       label = ui::Label( "Wavelength:" );
+       label.show();
+       table2.attach(label, {0, 1, 0, 1});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
+
+       label = ui::Label( "Max. amplitude:" );
+       label.show();
+       table2.attach(label, {0, 1, 1, 2});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
+
+       label = ui::Label( "Roughness:" );
+       label.show();
     table2.attach(label, {0, 1, 2, 3});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-    label = ui::Label("Random seed:");
-    label.show();
+       label = ui::Label( "Random seed:" );
+       label.show();
     table2.attach(label, {0, 1, 3, 4});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
 
-    entry = ui::Entry();
-    entry.show();
+       entry = ui::Entry();
+       entry.show();
     table2.attach(entry, {1, 2, 0, 1});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "wavelength", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &WaveLength);
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "wavelength", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &WaveLength );
 
-    entry = ui::Entry();
-    entry.show();
+       entry = ui::Entry();
+       entry.show();
     table2.attach(entry, {1, 2, 1, 2});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "amplitude", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Amplitude);
-
-    entry = ui::Entry();
-    entry.show();
-    table2.attach(entry, {1, 2, 2, 3});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "roughness", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Roughness);
-
-    adj = ui::Adjustment(1, 1, 32767, 1, 10, 0);
-    adj.connect("value_changed", G_CALLBACK(general_random), NULL);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    table2.attach(spin, {1, 2, 3, 4});
-    spin.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "random", spin);
-
-    vbox = ui::VBox(FALSE, 5);
-    vbox.show();
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    label = ui::Label("Extents");
-    label.show();
-    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
-
-    hbox2 = ui::HBox(FALSE, 5);
-    hbox2.show();
-    vbox.pack_start(hbox2, FALSE, TRUE, 0);
-
-    frame = ui::Frame("Extents");
-    frame.show();
-    hbox2.pack_start(frame, TRUE, TRUE, 0);
-
-    auto table = ui::Table(3, 4, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    frame.add(table);
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "amplitude", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Amplitude );
+
+       entry = ui::Entry();
+       entry.show();
+       table2.attach(entry, {1, 2, 2, 3});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "roughness", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Roughness );
+
+       adj = ui::Adjustment( 1, 1, 32767, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( general_random ), NULL );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       table2.attach(spin, {1, 2, 3, 4});
+       spin.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "random", spin );
+
+       vbox = ui::VBox( FALSE, 5 );
+       vbox.show();
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       label = ui::Label( "Extents" );
+       label.show();
+       gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
+
+       hbox2 = ui::HBox( FALSE, 5 );
+       hbox2.show();
+       vbox.pack_start( hbox2, FALSE, TRUE, 0 );
+
+       frame = ui::Frame( "Extents" );
+       frame.show();
+       hbox2.pack_start( frame, TRUE, TRUE, 0 );
+
+       auto table = ui::Table( 3, 4, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       frame.add(table);
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("X:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "hmin_text", label);
-
-    label = ui::Label("X:");
-    label.show();
-    table.attach(label, {2, 3, 1, 2}, {GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "hmax_text", label);
-
-    label = ui::Label("Y:");
-    label.show();
-    table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "vmin_text", label);
-
-    label = ui::Label("Y:");
-    label.show();
-    table.attach(label, {2, 3, 2, 3}, {GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "vmax_text", label);
-
-    label = ui::Label("Lower-left");
-    label.show();
-    table.attach(label, {1, 2, 0, 1}, {GTK_FILL, GTK_FILL});
-
-    label = ui::Label("Upper-right");
-    label.show();
-    table.attach(label, {3, 4, 0, 1}, , {GTK_FILL, GTK_FILL});
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 1, 2});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "hmin", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Hll);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {3, 4, 1, 2});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "hmax", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Hur);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 2, 3});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "vmin", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Vll);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {3, 4, 2, 3});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "vmax", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Vur);
-
-    frame = ui::Frame("Divisions");
-    frame.show();
-    hbox2.pack_start(frame, TRUE, TRUE, 0);
-
-    table = ui::Table(2, 2, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    frame.add(table);
+       label = ui::Label( "X:" );
+       label.show();
+       table.attach( label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "hmin_text", label );
+
+       label = ui::Label( "X:" );
+       label.show();
+       table.attach(label, {2, 3, 1, 2}, {GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "hmax_text", label );
+
+       label = ui::Label( "Y:" );
+       label.show();
+       table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "vmin_text", label );
+
+       label = ui::Label( "Y:" );
+       label.show();
+       table.attach(label, {2, 3, 2, 3}, {GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "vmax_text", label );
+
+       label = ui::Label( "Lower-left" );
+       label.show();
+       table.attach(label, {1, 2, 0, 1}, {GTK_FILL, GTK_FILL});
+
+       label = ui::Label( "Upper-right" );
+       label.show();
+       table.attach(label, {3, 4, 0, 1},, {GTK_FILL, GTK_FILL});
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 1, 2});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "hmin", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Hll );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {3, 4, 1, 2});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "hmax", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Hur );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 2, 3});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "vmin", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Vll );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {3, 4, 2, 3});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "vmax", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Vur );
+
+       frame = ui::Frame( "Divisions" );
+       frame.show();
+       hbox2.pack_start( frame, TRUE, TRUE, 0 );
+
+       table = ui::Table( 2, 2, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       frame.add(table);
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("X:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_EXPAND | GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "nh_text", label);
-
-    label = ui::Label("Y:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_EXPAND | GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "nv_text", label);
-
-    adj = ui::Adjustment(8, 1, MAX_ROWS, 1, 10, 0);
-    adj.connect("value_changed", G_CALLBACK(extents_nhnv_spin), &NH);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    table.attach(spin, {1, 2, 0, 1});
-    spin.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "nh", spin);
-
-    adj = ui::Adjustment(8, 1, MAX_ROWS, 1, 10, 0);
-    adj.connect("value_changed", G_CALLBACK(extents_nhnv_spin), &NV);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    table.attach(spin, {1, 2, 1, 2});
-    spin.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "nv", spin);
-
-    check = ui::CheckButton("Use Bezier patches");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "use_patches", check);
-    check.connect("toggled", G_CALLBACK(extents_use_patches), NULL);
-
-    // ^Fishman - Snap to grid, replaced scroll bar with a texbox.
-    label = ui::Label("Snap to grid:");
-    label.show();
-    vbox.pack_start(label, FALSE, TRUE, 0);
-    gtk_object_set_data(GTK_OBJECT(dlg), "snap_text", label);
-
-    adj = ui::Adjustment(8, 0, 256, 1, 10, 0);
-    adj.connect("value_changed", G_CALLBACK(extents_snaptogrid_spin), &SP);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    vbox.pack_start(spin, FALSE, TRUE, 0);
-    spin.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "sp", spin);
-    // ^Fishman - End of Snap to grid code.
-
-    hbox2 = ui::HBox(FALSE, 5);
-    hbox2.show();
-    vbox.pack_start(hbox2, FALSE, TRUE, 10);
-
-    label = ui::Label("Decimate:");
-    label.show();
-    hbox2.pack_start(label, FALSE, TRUE, 0);
-
-    adj = ui::Adjustment(0, 0, 110, 1, 10, 0);
-    adj.connect("value_changed", G_CALLBACK(extents_decimate), NULL);
-    g_object_set_data(G_OBJECT(dlg), "decimate_adj", adj);
-    scale = ui::HScale(adj);
-    scale.show();
-    hbox2.pack_start(scale, TRUE, TRUE, 0);
-    gtk_scale_set_value_pos(GTK_SCALE(scale), GTK_POS_RIGHT);
-    gtk_scale_set_digits(GTK_SCALE(scale), 0);
-    g_object_set_data(G_OBJECT(dlg), "decimate", scale);
-
-    frame = ui::Frame("Corner values");
-    frame.show();
-    vbox.pack_start(frame, FALSE, TRUE, 0);
-
-    table = ui::Table(3, 4, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    frame.add(table);
+       label = ui::Label( "X:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_EXPAND | GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "nh_text", label );
+
+       label = ui::Label( "Y:" );
+       label.show();
+       table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_EXPAND | GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "nv_text", label );
+
+       adj = ui::Adjustment( 8, 1, MAX_ROWS, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( extents_nhnv_spin ), &NH );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       table.attach(spin, {1, 2, 0, 1});
+       spin.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "nh", spin );
+
+       adj = ui::Adjustment( 8, 1, MAX_ROWS, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( extents_nhnv_spin ), &NV );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       table.attach(spin, {1, 2, 1, 2});
+       spin.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "nv", spin );
+
+       check = ui::CheckButton( "Use Bezier patches" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "use_patches", check );
+       check.connect( "toggled", G_CALLBACK( extents_use_patches ), NULL );
+
+       // ^Fishman - Snap to grid, replaced scroll bar with a texbox.
+       label = ui::Label( "Snap to grid:" );
+       label.show();
+       vbox.pack_start( label, FALSE, TRUE, 0 );
+       gtk_object_set_data( GTK_OBJECT( dlg ), "snap_text", label );
+
+       adj = ui::Adjustment( 8, 0, 256, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( extents_snaptogrid_spin ), &SP );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       vbox.pack_start( spin, FALSE, TRUE, 0 );
+       spin.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "sp", spin );
+       // ^Fishman - End of Snap to grid code.
+
+       hbox2 = ui::HBox( FALSE, 5 );
+       hbox2.show();
+       vbox.pack_start( hbox2, FALSE, TRUE, 10 );
+
+       label = ui::Label( "Decimate:" );
+       label.show();
+       hbox2.pack_start( label, FALSE, TRUE, 0 );
+
+       adj = ui::Adjustment( 0, 0, 110, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( extents_decimate ), NULL );
+       g_object_set_data( G_OBJECT( dlg ), "decimate_adj", adj );
+       scale = ui::HScale( adj );
+       scale.show();
+       hbox2.pack_start( scale, TRUE, TRUE, 0 );
+       gtk_scale_set_value_pos( GTK_SCALE( scale ), GTK_POS_RIGHT );
+       gtk_scale_set_digits( GTK_SCALE( scale ), 0 );
+       g_object_set_data( G_OBJECT( dlg ), "decimate", scale );
+
+       frame = ui::Frame( "Corner values" );
+       frame.show();
+       vbox.pack_start( frame, FALSE, TRUE, 0 );
+
+       table = ui::Table( 3, 4, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       frame.add(table);
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Upper-left:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
-
-    label = ui::Label("Lower-left:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
-
-    label = ui::Label("Upper-right:");
-    label.show();
-    table.attach(label, {2, 3, 0, 1}, {GTK_FILL, GTK_FILL});
-
-    label = ui::Label("Lower-right:");
-    label.show();
-    table.attach(label, {2, 3, 1, 2}, {GTK_FILL, GTK_FILL});
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 0, 1});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "z01", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Z01);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 1, 2});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "z00", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Z00);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {3, 4, 0, 1});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "z11", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Z11);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {3, 4, 1, 2});
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "z10", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &Z10);
-
-    check = ui::CheckButton("Linear borders");
-    check.show();
-    table.attach(check, {0, 4, 2, 3});
-    g_object_set_data(G_OBJECT(dlg), "linearborder", check);
-    check.connect("toggled", G_CALLBACK(extents_linearborder), NULL);
-
-    vbox = ui::VBox(FALSE, 10);
-    vbox.show();
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    label = ui::Label("Bitmap");
-    label.show();
-    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
-
-    label = ui::Label("");
-    label.show();
-    vbox.pack_start(label, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "bmp_note", label);
-
-    table = ui::Table(2, 2, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    vbox.pack_start(table, FALSE, TRUE, 0);
+       label = ui::Label( "Upper-left:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
+
+       label = ui::Label( "Lower-left:" );
+       label.show();
+       table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
+
+       label = ui::Label( "Upper-right:" );
+       label.show();
+       table.attach(label, {2, 3, 0, 1}, {GTK_FILL, GTK_FILL});
+
+       label = ui::Label( "Lower-right:" );
+       label.show();
+       table.attach(label, {2, 3, 1, 2}, {GTK_FILL, GTK_FILL});
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 0, 1});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "z01", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Z01 );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 1, 2});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "z00", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Z00 );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {3, 4, 0, 1});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "z11", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Z11 );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {3, 4, 1, 2});
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "z10", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &Z10 );
+
+       check = ui::CheckButton( "Linear borders" );
+       check.show();
+       table.attach(check, {0, 4, 2, 3});
+       g_object_set_data( G_OBJECT( dlg ), "linearborder", check );
+       check.connect( "toggled", G_CALLBACK( extents_linearborder ), NULL );
+
+       vbox = ui::VBox( FALSE, 10 );
+       vbox.show();
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       label = ui::Label( "Bitmap" );
+       label.show();
+       gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
+
+       label = ui::Label( "" );
+       label.show();
+       vbox.pack_start( label, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "bmp_note", label );
+
+       table = ui::Table( 2, 2, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       vbox.pack_start( table, FALSE, TRUE, 0 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Filename:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "bmp_text1", label);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 0, 1}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "bmp_file", entry);
-    entry.connect("focus_out_event", G_CALLBACK(bitmap_file_entryfocusout), NULL);
-
-    hbox2 = ui::HBox(TRUE, 5);
-    hbox2.show();
-    table.attach(hbox2, {1, 2, 1, 2}, {0, GTK_EXPAND | GTK_FILL});
-
-    button = ui::Button("Browse...");
-    button.show();
-    hbox2.pack_start(button, FALSE, FALSE, 0);
-    button.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "bmp_file_browse", button);
-    button.connect("clicked", G_CALLBACK(bitmap_browse), NULL);
-
-    button = ui::Button("Reload");
-    button.show();
-    hbox2.pack_start(button, FALSE, FALSE, 0);
-    button.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "bmp_reload", button);
-    button.connect("clicked", G_CALLBACK(bitmap_reload), NULL);
-
-    table = ui::Table(2, 2, TRUE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    vbox.pack_start(table, FALSE, TRUE, 0);
+       label = ui::Label( "Filename:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "bmp_text1", label );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 0, 1}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "bmp_file", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( bitmap_file_entryfocusout ), NULL );
+
+       hbox2 = ui::HBox( TRUE, 5 );
+       hbox2.show();
+       table.attach(hbox2, {1, 2, 1, 2}, {0, GTK_EXPAND | GTK_FILL});
+
+       button = ui::Button( "Browse..." );
+       button.show();
+       hbox2.pack_start( button, FALSE, FALSE, 0 );
+       button.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "bmp_file_browse", button );
+       button.connect( "clicked", G_CALLBACK( bitmap_browse ), NULL );
+
+       button = ui::Button( "Reload" );
+       button.show();
+       hbox2.pack_start( button, FALSE, FALSE, 0 );
+       button.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "bmp_reload", button );
+       button.connect( "clicked", G_CALLBACK( bitmap_reload ), NULL );
+
+       table = ui::Table( 2, 2, TRUE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       vbox.pack_start( table, FALSE, TRUE, 0 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Map color 0 to:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL | GTK_EXPAND, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "bmp_text2", label);
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
-
-    label = ui::Label("Map color 255 to:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL | GTK_EXPAND, GTK_FILL});
-    g_object_set_data(G_OBJECT(dlg), "bmp_text3", label);
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_RIGHT);
-
-    hbox2 = ui::HBox(FALSE, 5);
-    hbox2.show();
-    table.attach(hbox2, {1, 2, 0, 1});
-
-    entry = ui::Entry();
-    entry.show();
-    hbox2.pack_start(entry, FALSE, FALSE, 0);
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "bmp_black", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &gbmp.black_value);
-
-    hbox2 = ui::HBox(FALSE, 5);
-    hbox2.show();
-    table.attach(hbox2, {1, 2, 1, 2});
-
-    entry = ui::Entry();
-    entry.show();
-    hbox2.pack_start(entry, FALSE, FALSE, 0);
-    entry.dimensions(50, -1);
-    g_object_set_data(G_OBJECT(dlg), "bmp_white", entry);
-    entry.connect("focus_out_event", G_CALLBACK(doublevariable_entryfocusout), &gbmp.white_value);
-
-    vbox = ui::VBox(FALSE, 10);
-    vbox.show();
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    label = ui::Label("Fix Points");
-    label.show();
-    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
-
-    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.");
-    label.show();
-    vbox.pack_start(label, FALSE, TRUE, 0);
-
-    table = ui::Table(3, 3, FALSE);
-    table.show();
-    gtk_container_set_border_width(GTK_CONTAINER(table), 5);
-    vbox.pack_start(table, FALSE, TRUE, 0);
+       label = ui::Label( "Map color 0 to:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL | GTK_EXPAND, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "bmp_text2", label );
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
+
+       label = ui::Label( "Map color 255 to:" );
+       label.show();
+       table.attach(label, {0, 1, 1, 2}, {GTK_FILL | GTK_EXPAND, GTK_FILL});
+       g_object_set_data( G_OBJECT( dlg ), "bmp_text3", label );
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       gtk_label_set_justify( GTK_LABEL( label ), GTK_JUSTIFY_RIGHT );
+
+       hbox2 = ui::HBox( FALSE, 5 );
+       hbox2.show();
+       table.attach(hbox2, {1, 2, 0, 1});
+
+       entry = ui::Entry();
+       entry.show();
+       hbox2.pack_start( entry, FALSE, FALSE, 0 );
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "bmp_black", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &gbmp.black_value );
+
+       hbox2 = ui::HBox( FALSE, 5 );
+       hbox2.show();
+       table.attach(hbox2, {1, 2, 1, 2});
+
+       entry = ui::Entry();
+       entry.show();
+       hbox2.pack_start( entry, FALSE, FALSE, 0 );
+       entry.dimensions( 50, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "bmp_white", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( doublevariable_entryfocusout ), &gbmp.white_value );
+
+       vbox = ui::VBox( FALSE, 10 );
+       vbox.show();
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       label = ui::Label( "Fix Points" );
+       label.show();
+       gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
+
+       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." );
+       label.show();
+       vbox.pack_start( label, FALSE, TRUE, 0 );
+
+       table = ui::Table( 3, 3, FALSE );
+       table.show();
+       gtk_container_set_border_width( GTK_CONTAINER( table ), 5 );
+       vbox.pack_start( table, FALSE, TRUE, 0 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Value:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    g_object_set_data(G_OBJECT(dlg), "fix_value_text", label);
-
-    label = ui::Label("Range affected:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    g_object_set_data(G_OBJECT(dlg), "fix_range_text", label);
-
-    label = ui::Label("Rate of change:");
-    label.show();
-    table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-    g_object_set_data(G_OBJECT(dlg), "fix_rate_text", label);
-
-    adj = ui::Adjustment(0, -65536, 65536, 1, 16, 0);
-    adj.connect("value_changed", G_CALLBACK(fix_value_changed), NULL);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    table.attach(spin, {1, 2, 0, 1}, {GTK_EXPAND, GTK_EXPAND});
-    spin.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "fix_value", spin);
-    spin.connect("focus_out_event", G_CALLBACK(fix_value_entryfocusout), NULL);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "fix_range", entry);
-    entry.connect("focus_out_event", G_CALLBACK(fix_range_entryfocusout), NULL);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 2, 3}, {GTK_EXPAND, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "fix_rate", entry);
-    entry.connect("focus_out_event", G_CALLBACK(fix_rate_entryfocusout), NULL);
-
-    button = ui::Button("Free");
-    button.show();
-    table.attach(button, {2, 3, 0, 1}, {GTK_EXPAND, GTK_FILL});
-    button.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "fix_free", button);
-    button.connect("clicked", G_CALLBACK(fix_free), NULL);
-
-    button = ui::Button("Free All");
-    button.show();
-    table.attach(button, {2, 3, 1, 2}, {GTK_EXPAND, GTK_FILL});
-    button.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "fix_freeall", button);
-    button.connect("clicked", G_CALLBACK(fix_freeall), NULL);
-
-    vbox = ui::VBox(FALSE, 10);
-    vbox.show();
-    gtk_container_set_border_width(GTK_CONTAINER(vbox), 5);
-
-    label = ui::Label("Texture");
-    label.show();
-    gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox, label);
-
-    // ^Fishman - Modified to add more labels and textboxes.
-    table = ui::Table(5, 2, FALSE);
-    table.show();
-    vbox.pack_start(table, FALSE, TRUE, 0);
+       label = ui::Label( "Value:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_value_text", label );
+
+       label = ui::Label( "Range affected:" );
+       label.show();
+       table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_range_text", label );
+
+       label = ui::Label( "Rate of change:" );
+       label.show();
+       table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_rate_text", label );
+
+       adj = ui::Adjustment( 0, -65536, 65536, 1, 16, 0 );
+       adj.connect( "value_changed", G_CALLBACK( fix_value_changed ), NULL );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       table.attach(spin, {1, 2, 0, 1}, {GTK_EXPAND, GTK_EXPAND});
+       spin.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_value", spin );
+       spin.connect( "focus_out_event", G_CALLBACK( fix_value_entryfocusout ), NULL );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_range", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( fix_range_entryfocusout ), NULL );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 2, 3}, {GTK_EXPAND, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_rate", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( fix_rate_entryfocusout ), NULL );
+
+       button = ui::Button( "Free" );
+       button.show();
+       table.attach(button, {2, 3, 0, 1}, {GTK_EXPAND, GTK_FILL});
+       button.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_free", button );
+       button.connect( "clicked", G_CALLBACK( fix_free ), NULL );
+
+       button = ui::Button( "Free All" );
+       button.show();
+       table.attach(button, {2, 3, 1, 2}, {GTK_EXPAND, GTK_FILL});
+       button.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "fix_freeall", button );
+       button.connect( "clicked", G_CALLBACK( fix_freeall ), NULL );
+
+       vbox = ui::VBox( FALSE, 10 );
+       vbox.show();
+       gtk_container_set_border_width( GTK_CONTAINER( vbox ), 5 );
+
+       label = ui::Label( "Texture" );
+       label.show();
+       gtk_notebook_append_page( GTK_NOTEBOOK( notebook ), vbox, label );
+
+       // ^Fishman - Modified to add more labels and textboxes.
+       table = ui::Table( 5, 2, FALSE );
+       table.show();
+       vbox.pack_start( table, FALSE, TRUE, 0 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Surface:");
-    label.show();
-    table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-
-    label = ui::Label("Other:");
-    label.show();
-    table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-
-    label = ui::Label("Steep:");
-    label.show();
-    table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
-    gtk_misc_set_alignment(GTK_MISC(label), 1, 0.5);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 0, 1}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texture1", entry);
-    entry.connect("focus_out_event", G_CALLBACK(texture_entryfocusout), GINT_TO_POINTER(0));
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texture2", entry);
-    entry.connect("focus_out_event", G_CALLBACK(texture_entryfocusout), GINT_TO_POINTER(1));
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 2, 3}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texture3", entry);
-
-    hbox2 = ui::HBox(FALSE, 5);
-    hbox2.show();
-    vbox.pack_start(hbox2, FALSE, TRUE, 0);
-
-    label = ui::Label("\"Steep\" angle:");
-    label.show();
-    hbox2.pack_start(label, FALSE, TRUE, 0);
-
-    adj = ui::Adjustment(60, 0, 90, 1, 10, 0);
-    spin = ui::SpinButton(adj, 1, 0);
-    spin.show();
-    hbox2.pack_start(spin, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "tex_slant", spin);
-
-    table = ui::Table(2, 4, TRUE);
-    table.show();
-    vbox.pack_start(table, FALSE, TRUE, 0);
+       label = ui::Label( "Surface:" );
+       label.show();
+       table.attach(label, {0, 1, 0, 1}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+
+       label = ui::Label( "Other:" );
+       label.show();
+       table.attach(label, {0, 1, 1, 2}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+
+       label = ui::Label( "Steep:" );
+       label.show();
+       table.attach(label, {0, 1, 2, 3}, {GTK_FILL, GTK_FILL});
+       gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 0, 1}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texture1", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( texture_entryfocusout ), GINT_TO_POINTER( 0 ) );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texture2", entry );
+       entry.connect( "focus_out_event", G_CALLBACK( texture_entryfocusout ), GINT_TO_POINTER( 1 ) );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 2, 3}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texture3", entry );
+
+       hbox2 = ui::HBox( FALSE, 5 );
+       hbox2.show();
+       vbox.pack_start( hbox2, FALSE, TRUE, 0 );
+
+       label = ui::Label( "\"Steep\" angle:" );
+       label.show();
+       hbox2.pack_start( label, FALSE, TRUE, 0 );
+
+       adj = ui::Adjustment( 60, 0, 90, 1, 10, 0 );
+       spin = ui::SpinButton( adj, 1, 0 );
+       spin.show();
+       hbox2.pack_start( spin, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "tex_slant", spin );
+
+       table = ui::Table( 2, 4, TRUE );
+       table.show();
+       vbox.pack_start( table, FALSE, TRUE, 0 );
     gtk_table_set_row_spacings(table, 5);
     gtk_table_set_col_spacings(table, 5);
 
-    label = ui::Label("Offset <h,v>");
-    label.show();
-    table.attach(label, {0, 2, 0, 1}, {GTK_FILL, GTK_FILL});
-
-    label = ui::Label("Scale <h,v>");
-    label.show();
-    table.attach(label, {2, 4, 0, 1}, {GTK_FILL, GTK_FILL});
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {0, 1, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texoffsetx", entry);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texoffsety", entry);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {2, 3, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texscalex", entry);
-
-    entry = ui::Entry();
-    entry.show();
-    table.attach(entry, {3, 4, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
-    entry.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "texscaley", entry);
-
-
-    check = ui::CheckButton("Use detail brushes");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "detail", check);
-    check.connect("toggled", G_CALLBACK(texture_detail), NULL);
-
-    check = ui::CheckButton("Detail hint brushes");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "hint", check);
-    check.connect("toggled", G_CALLBACK(texture_hint), NULL);
-
-    // ^Fishman - Add terrain key to func_group.
-    check = ui::CheckButton("Add terrain key");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "terrain_ent", check);
-    check.connect("toggled", G_CALLBACK(texture_terrainent), NULL);
-
-    vbox = ui::VBox(FALSE, 5);
-    vbox.show();
-    hbox.pack_start(vbox, FALSE, TRUE, 0);
-
-    button = ui::Button("OK");
-    button.show();
-    vbox.pack_start(button, FALSE, TRUE, 0);
-    button.dimensions(60, -1);
-    g_object_set_data(G_OBJECT(dlg), "go", button);
-    button.connect("clicked", G_CALLBACK(main_go), NULL);
-
-    label = ui::Label("Settings:");
-    label.show();
-    vbox.pack_start(label, FALSE, TRUE, 0);
-
-    button = ui::Button("Open...");
-    button.show();
-    vbox.pack_start(button, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "open", button);
-    button.connect("clicked", G_CALLBACK(main_open), NULL);
-
-    button = ui::Button("Save as...");
-    button.show();
-    vbox.pack_start(button, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "save", button);
-    button.connect("clicked", G_CALLBACK(main_save), NULL);
-
-    button = ui::Button("Defaults");
-    button.show();
-    vbox.pack_start(button, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "defaults", button);
-    button.connect("clicked", G_CALLBACK(main_defaults), NULL);
-
-    button = ui::Button("About...");
-    button.show();
-    vbox.pack_start(button, FALSE, TRUE, 0);
-    button.connect("clicked", G_CALLBACK(main_about), NULL);
-
-    check = ui::CheckButton("Preview");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    check.connect("toggled", G_CALLBACK(main_preview), NULL);
-    g_object_set_data(G_OBJECT(dlg), "main_preview", check);
-
-    // ^Fishman - Antializing for the preview window.
-    check = ui::CheckButton("Antialised lines");
-    check.show();
-    vbox.pack_start(check, FALSE, TRUE, 0);
-    g_object_set_data(G_OBJECT(dlg), "main_antialiasing", check);
-    check.connect("toggled", G_CALLBACK(main_antialiasing), NULL);
-
-    for (i = 0; i < 5; i++) {
-        SetDlgValues(i);
-    }
-
-    CreateViewWindow();
-
-    create_tooltips();
-
-    FirstPassComplete = 1;
-
-    return dlg;
+       label = ui::Label( "Offset <h,v>" );
+       label.show();
+       table.attach(label, {0, 2, 0, 1}, {GTK_FILL, GTK_FILL});
+
+       label = ui::Label( "Scale <h,v>" );
+       label.show();
+       table.attach(label, {2, 4, 0, 1}, {GTK_FILL, GTK_FILL});
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {0, 1, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texoffsetx", entry );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {1, 2, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texoffsety", entry );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {2, 3, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texscalex", entry );
+
+       entry = ui::Entry();
+       entry.show();
+       table.attach(entry, {3, 4, 1, 2}, {GTK_EXPAND | GTK_FILL, GTK_FILL});
+       entry.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "texscaley", entry );
+
+
+
+       check = ui::CheckButton( "Use detail brushes" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "detail", check );
+       check.connect( "toggled", G_CALLBACK( texture_detail ), NULL );
+
+       check = ui::CheckButton( "Detail hint brushes" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "hint", check );
+       check.connect( "toggled", G_CALLBACK( texture_hint ), NULL );
+
+       // ^Fishman - Add terrain key to func_group.
+       check = ui::CheckButton( "Add terrain key" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "terrain_ent", check );
+       check.connect( "toggled", G_CALLBACK( texture_terrainent ), NULL );
+
+       vbox = ui::VBox( FALSE, 5 );
+       vbox.show();
+       hbox.pack_start( vbox, FALSE, TRUE, 0 );
+
+       button = ui::Button( "OK" );
+       button.show();
+       vbox.pack_start( button, FALSE, TRUE, 0 );
+       button.dimensions( 60, -1 );
+       g_object_set_data( G_OBJECT( dlg ), "go", button );
+       button.connect( "clicked", G_CALLBACK( main_go ), NULL );
+
+       label = ui::Label( "Settings:" );
+       label.show();
+       vbox.pack_start( label, FALSE, TRUE, 0 );
+
+       button = ui::Button( "Open..." );
+       button.show();
+       vbox.pack_start( button, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "open", button );
+       button.connect( "clicked", G_CALLBACK( main_open ), NULL );
+
+       button = ui::Button( "Save as..." );
+       button.show();
+       vbox.pack_start( button, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "save", button );
+       button.connect( "clicked", G_CALLBACK( main_save ), NULL );
+
+       button = ui::Button( "Defaults" );
+       button.show();
+       vbox.pack_start( button, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "defaults", button );
+       button.connect( "clicked", G_CALLBACK( main_defaults ), NULL );
+
+       button = ui::Button( "About..." );
+       button.show();
+       vbox.pack_start( button, FALSE, TRUE, 0 );
+       button.connect( "clicked", G_CALLBACK( main_about ), NULL );
+
+       check = ui::CheckButton( "Preview" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       check.connect( "toggled", G_CALLBACK( main_preview ), NULL );
+       g_object_set_data( G_OBJECT( dlg ), "main_preview", check );
+
+       // ^Fishman - Antializing for the preview window.
+       check = ui::CheckButton( "Antialised lines" );
+       check.show();
+       vbox.pack_start( check, FALSE, TRUE, 0 );
+       g_object_set_data( G_OBJECT( dlg ), "main_antialiasing", check );
+       check.connect( "toggled", G_CALLBACK( main_antialiasing ), NULL );
+
+       for ( i = 0; i < 5; i++ )
+               SetDlgValues( i );
+
+       CreateViewWindow();
+
+       create_tooltips();
+
+       FirstPassComplete = 1;
+
+       return dlg;
 }
 
 
 #if 0
 
-                                                                                                                        HWND hwndDisplay = (HWND)NULL;
+HWND hwndDisplay = (HWND)NULL;
 HWND ghwndTab    = (HWND)NULL;
 int iTab = 0;
 Rect rcTab;