#include "background.h"
#include "acquire.h"
#include "datasources.h"
+#include "googlesearch.h"
#define VIKING_TITLE " - Viking"
#define make_dir(dir) mkdir(dir,0777)
#endif
+#define VIKING_WINDOW_WIDTH 1000
+#define VIKING_WINDOW_HEIGHT 800
#define DRAW_IMAGE_DEFAULT_WIDTH 1280
#define DRAW_IMAGE_DEFAULT_HEIGHT 1024
#define DRAW_IMAGE_DEFAULT_SAVE_AS_PNG TRUE
static void load_file ( GtkAction *a, VikWindow *vw );
static gboolean save_file_as ( GtkAction *a, VikWindow *vw );
static gboolean save_file ( GtkAction *a, VikWindow *vw );
+static gboolean save_file_and_exit ( GtkAction *a, VikWindow *vw );
static gboolean window_save ( VikWindow *vw );
struct _VikWindow {
return vw_type;
}
+VikViewport * vik_window_viewport(VikWindow *vw)
+{
+ return(vw->viking_vvp);
+}
+
void vik_window_selected_layer(VikWindow *vw, VikLayer *vl)
{
int i, j, tool_count;
g_signal_connect_swapped (G_OBJECT(vw->viking_vvp), "motion_notify_event", G_CALLBACK(draw_mouse_motion), vw);
g_signal_connect_swapped (G_OBJECT(vw->viking_vlp), "update", G_CALLBACK(draw_update), vw);
- gtk_window_set_default_size ( GTK_WINDOW(vw), 1000, 800);
+ gtk_window_set_default_size ( GTK_WINDOW(vw), VIKING_WINDOW_WIDTH, VIKING_WINDOW_HEIGHT);
hpaned = gtk_hpaned_new ();
gtk_paned_add1 ( GTK_PANED(hpaned), GTK_WIDGET (vw->viking_vlp) );
static gboolean delete_event( VikWindow *vw )
{
+#ifdef VIKING_PROMPT_IF_MODIFIED
if ( vw->modified )
+#else
+ if (0)
+#endif
{
GtkDialog *dia;
dia = GTK_DIALOG ( gtk_message_dialog_new ( GTK_WINDOW(vw), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE,
if ( gtk_dialog_run ( GTK_DIALOG(vw->open_dia) ) == GTK_RESPONSE_OK )
{
gtk_widget_hide ( vw->open_dia );
+#ifdef VIKING_PROMPT_IF_MODIFIED
if ( (vw->modified || vw->filename) && newwindow )
+#else
+ if ( vw->filename && newwindow )
+#endif
g_signal_emit ( G_OBJECT(vw), window_signals[VW_OPENWINDOW_SIGNAL], 0, gtk_file_selection_get_selections (GTK_FILE_SELECTION(vw->open_dia) ) );
else {
gchar **files = gtk_file_selection_get_selections (GTK_FILE_SELECTION(vw->open_dia) );
a_acquire(vw, vw->viking_vlp, vw->viking_vvp, &vik_datasource_gc_interface );
}
+static void goto_address( GtkAction *a, VikWindow *vw)
+{
+ a_google_search(vw, vw->viking_vlp, vw->viking_vvp);
+}
+
static void clear_cb ( GtkAction *a, VikWindow *vw )
{
vik_layers_panel_clear ( vw->viking_vlp );
gtk_widget_destroy ( GTK_WIDGET(vw) );
}
+static gboolean save_file_and_exit ( GtkAction *a, VikWindow *vw )
+{
+ if (save_file( NULL, vw)) {
+ window_close( NULL, vw);
+ return(TRUE);
+ }
+ else
+ return(FALSE);
+}
+
static void zoom_to_cb ( GtkAction *a, VikWindow *vw )
{
gdouble xmpp = vik_viewport_get_xmpp ( vw->viking_vvp ), ympp = vik_viewport_get_ympp ( vw->viking_vvp );
{ "GenImg", GTK_STOCK_CLEAR, "_Generate Image File", NULL, "Save a snapshot of the workspace into a file", (GCallback)draw_to_image_file_cb },
{ "GenImgDir", GTK_STOCK_DND_MULTIPLE, "Generate _Directory of Images", NULL, "FIXME:IMGDIR", (GCallback)draw_to_image_dir_cb },
{ "Exit", GTK_STOCK_QUIT, "E_xit", "<control>W", "Exit the program", (GCallback)window_close },
+ { "SaveExit", GTK_STOCK_QUIT, "Save and Exit", NULL, "Save and Exit the program", (GCallback)save_file_and_exit },
+ { "GoogleMapsSearch", GTK_STOCK_GO_FORWARD, "Go To Google Maps location", NULL, "Go to address/place using Google Maps search", (GCallback)goto_address },
{ "GotoLL", GTK_STOCK_QUIT, "_Go to Lat\\/Lon...", NULL, "Go to arbitrary lat\\/lon coordinate", (GCallback)draw_goto_cb },
{ "GotoUTM", GTK_STOCK_QUIT, "Go to UTM...", NULL, "Go to arbitrary UTM coordinate", (GCallback)draw_goto_cb },
{ "SetBGColor",GTK_STOCK_SELECT_COLOR, "Set Background Color...", NULL, NULL, (GCallback)set_bg_color },