]> git.street.me.uk Git - andy/viking.git/blobdiff - src/vikgeoreflayer.c
Filter out irrelevant modifiers.
[andy/viking.git] / src / vikgeoreflayer.c
index 94cdaee90dd50d1628bed14187e41ae55939611e..9134e9f96aa659ab92f6ec01ecdd90b529d132d9 100644 (file)
 #endif
 
 #include "viking.h"
 #endif
 
 #include "viking.h"
-#include "vikgeoreflayer_pixmap.h"
-#include <stdlib.h>
-#include <string.h>
+#include <glib.h>
+#include <glib/gstdio.h>
 #include <glib/gi18n.h>
 #include <glib/gi18n.h>
+#include <string.h>
 
 #include "icons/icons.h"
 
 
 #include "icons/icons.h"
 
@@ -65,16 +65,16 @@ static gboolean georef_layer_zoom_press ( VikGeorefLayer *vgl, GdkEventButton *e
 static VikToolInterface georef_tools[] = {
   { N_("Georef Move Map"), (VikToolConstructorFunc) georef_layer_move_create, NULL, NULL, NULL,
     (VikToolMouseFunc) georef_layer_move_press, NULL, (VikToolMouseFunc) georef_layer_move_release,
 static VikToolInterface georef_tools[] = {
   { N_("Georef Move Map"), (VikToolConstructorFunc) georef_layer_move_create, NULL, NULL, NULL,
     (VikToolMouseFunc) georef_layer_move_press, NULL, (VikToolMouseFunc) georef_layer_move_release,
-    (VikToolKeyFunc) NULL, GDK_CURSOR_IS_PIXMAP, &cursor_geomove },
+    (VikToolKeyFunc) NULL, GDK_CURSOR_IS_PIXMAP, &cursor_geomove_pixbuf },
 
   { N_("Georef Zoom Tool"), (VikToolConstructorFunc) georef_layer_zoom_create, NULL, NULL, NULL,
     (VikToolMouseFunc) georef_layer_zoom_press, NULL, NULL,
 
   { N_("Georef Zoom Tool"), (VikToolConstructorFunc) georef_layer_zoom_create, NULL, NULL, NULL,
     (VikToolMouseFunc) georef_layer_zoom_press, NULL, NULL,
-    (VikToolKeyFunc) NULL, GDK_CURSOR_IS_PIXMAP, &cursor_geozoom },
+    (VikToolKeyFunc) NULL, GDK_CURSOR_IS_PIXMAP, &cursor_geozoom_pixbuf },
 };
 
 VikLayerInterface vik_georef_layer_interface = {
   "GeoRef Map",
 };
 
 VikLayerInterface vik_georef_layer_interface = {
   "GeoRef Map",
-  &georeflayer_pixbuf, /*icon */
+  &vikgeoreflayer_pixbuf, /*icon */
 
   georef_tools,
   sizeof(georef_tools) / sizeof(VikToolInterface),
 
   georef_tools,
   sizeof(georef_tools) / sizeof(VikToolInterface),
@@ -293,11 +293,12 @@ static gboolean world_file_read_line ( gchar *buffer, gint size, FILE *f, GtkWid
     a_dialog_error_msg ( VIK_GTK_WINDOW_FROM_WIDGET(widget), _("Unexpected end of file reading World file.") );
     g_free ( buffer );
     fclose ( f );
     a_dialog_error_msg ( VIK_GTK_WINDOW_FROM_WIDGET(widget), _("Unexpected end of file reading World file.") );
     g_free ( buffer );
     fclose ( f );
+    f = NULL;
     return FALSE;
   }
   if ( use_value )
   {
     return FALSE;
   }
   if ( use_value )
   {
-    gdouble val = strtod ( buffer, NULL );
+    gdouble val = g_strtod ( buffer, NULL );
     gtk_spin_button_set_value ( GTK_SPIN_BUTTON(widget), val > 0 ? val : -val );
   }
   return TRUE;
     gtk_spin_button_set_value ( GTK_SPIN_BUTTON(widget), val > 0 ? val : -val );
   }
   return TRUE;
@@ -305,11 +306,16 @@ static gboolean world_file_read_line ( gchar *buffer, gint size, FILE *f, GtkWid
 
 static void georef_layer_dialog_load ( GtkWidget *pass_along[4] )
 {
 
 static void georef_layer_dialog_load ( GtkWidget *pass_along[4] )
 {
-  GtkWidget *file_selector = gtk_file_selection_new (_("Choose World file"));
-
-  if ( gtk_dialog_run ( GTK_DIALOG ( file_selector ) ) == GTK_RESPONSE_OK )
+  GtkWidget *file_selector = gtk_file_chooser_dialog_new (_("Choose World file"),
+                                     NULL,
+                                     GTK_FILE_CHOOSER_ACTION_OPEN,
+                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                     NULL);
+
+  if ( gtk_dialog_run ( GTK_DIALOG ( file_selector ) ) == GTK_RESPONSE_ACCEPT )
   {
   {
-    FILE *f = fopen ( gtk_file_selection_get_filename ( GTK_FILE_SELECTION(file_selector) ), "r" );
+    FILE *f = g_fopen ( gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(file_selector) ), "r" );
     gtk_widget_destroy ( file_selector ); 
     if ( !f )
     {
     gtk_widget_destroy ( file_selector ); 
     if ( !f )
     {
@@ -319,12 +325,13 @@ static void georef_layer_dialog_load ( GtkWidget *pass_along[4] )
     else
     {
       gchar *buffer = g_malloc ( 1024 * sizeof(gchar) );
     else
     {
       gchar *buffer = g_malloc ( 1024 * sizeof(gchar) );
-      if ( world_file_read_line ( buffer, 1024, f, pass_along[0], TRUE ) && world_file_read_line ( buffer, 1024, f, pass_along[1], TRUE )
-        && world_file_read_line ( buffer, 1024, f, pass_along[0], FALSE ) && world_file_read_line ( buffer, 1024, f, pass_along[0], FALSE )
+      if ( world_file_read_line ( buffer, 1024, f, pass_along[0], TRUE ) && world_file_read_line ( buffer, 1024, f, pass_along[0], FALSE)
+        && world_file_read_line ( buffer, 1024, f, pass_along[0], FALSE ) && world_file_read_line ( buffer, 1024, f, pass_along[1], TRUE)
         && world_file_read_line ( buffer, 1024, f, pass_along[2], TRUE ) && world_file_read_line ( buffer, 1024, f, pass_along[3], TRUE ) )
       {
         g_free ( buffer );
         fclose ( f );
         && world_file_read_line ( buffer, 1024, f, pass_along[2], TRUE ) && world_file_read_line ( buffer, 1024, f, pass_along[3], TRUE ) )
       {
         g_free ( buffer );
         fclose ( f );
+       f = NULL;
       }
     }
   }
       }
     }
   }
@@ -344,11 +351,16 @@ We need a
 static void georef_layer_export_params ( gpointer *pass_along[2] )
 {
   VikGeorefLayer *vgl = VIK_GEOREF_LAYER(pass_along[0]);
 static void georef_layer_export_params ( gpointer *pass_along[2] )
 {
   VikGeorefLayer *vgl = VIK_GEOREF_LAYER(pass_along[0]);
-  GtkWidget *file_selector = gtk_file_selection_new (_("Choose World file"));
-
-  if ( gtk_dialog_run ( GTK_DIALOG ( file_selector ) ) == GTK_RESPONSE_OK )
+  GtkWidget *file_selector = gtk_file_chooser_dialog_new (_("Choose World file"),
+                                     NULL,
+                                     GTK_FILE_CHOOSER_ACTION_SAVE,
+                                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
+                                     NULL);
+  if ( gtk_dialog_run ( GTK_DIALOG ( file_selector ) ) == GTK_RESPONSE_ACCEPT )
   {
   {
-    FILE *f = fopen ( gtk_file_selection_get_filename ( GTK_FILE_SELECTION(file_selector) ), "w" );
+    FILE *f = g_fopen ( gtk_file_chooser_get_filename ( GTK_FILE_CHOOSER(file_selector) ), "w" );
+    
     gtk_widget_destroy ( file_selector ); 
     if ( !f )
     {
     gtk_widget_destroy ( file_selector ); 
     if ( !f )
     {
@@ -359,6 +371,7 @@ static void georef_layer_export_params ( gpointer *pass_along[2] )
     {
       fprintf ( f, "%f\n%f\n%f\n%f\n%f\n%f\n", vgl->mpp_easting, vgl->mpp_northing, 0.0, 0.0, vgl->corner.easting, vgl->corner.northing );
       fclose ( f );
     {
       fprintf ( f, "%f\n%f\n%f\n%f\n%f\n%f\n", vgl->mpp_easting, vgl->mpp_northing, 0.0, 0.0, vgl->corner.easting, vgl->corner.northing );
       fclose ( f );
+      f = NULL;
     }
   }
   else
     }
   }
   else
@@ -403,7 +416,7 @@ static gboolean georef_layer_dialog ( VikGeorefLayer **vgl, gpointer vp, GtkWind
   yspin = gtk_spin_button_new ( (GtkAdjustment *) gtk_adjustment_new ( 4, VIK_VIEWPORT_MIN_ZOOM, VIK_VIEWPORT_MAX_ZOOM, 1, 5, 5 ), 1, 8 );
 
   imagelabel = gtk_label_new ( _("Map Image:") );
   yspin = gtk_spin_button_new ( (GtkAdjustment *) gtk_adjustment_new ( 4, VIK_VIEWPORT_MIN_ZOOM, VIK_VIEWPORT_MAX_ZOOM, 1, 5, 5 ), 1, 8 );
 
   imagelabel = gtk_label_new ( _("Map Image:") );
-  imageentry = vik_file_entry_new ();
+  imageentry = vik_file_entry_new (GTK_FILE_CHOOSER_ACTION_OPEN);
 
   if (*vgl)
   {
 
   if (*vgl)
   {