#include "acquire.h"
#include "datasources.h"
-#define VIKING_TITLE " - Viking " VIKING_VERSION " " VIKING_VERSION_NAME " " VIKING_URL
+#define VIKING_TITLE " - Viking"
#include <glib/gprintf.h>
#include <stdlib.h>
#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 {
vw->viking_vvp = vik_viewport_new();
vw->viking_vlp = vik_layers_panel_new();
- vik_layers_panel_set_window(vw->viking_vlp, vw);
vik_layers_panel_set_viewport ( vw->viking_vlp, vw->viking_vvp );
vw->viking_vs = vik_statusbar_new();
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) );
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);
+ 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 },
{ "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 },