#ifndef _VIKING_DIALOG_H
#define _VIKING_DIALOG_H
+#include <glib.h>
+#include <gtk/gtk.h>
+
+#include "coords.h"
+#include "vikwaypoint.h"
+#include "vikcoord.h"
+
/* most of this file is an architechtural flaw. */
#define a_dialog_info_msg(win,info) a_dialog_msg(win,GTK_MESSAGE_INFO,info,NULL)
+#define a_dialog_warning_msg(win,info) a_dialog_msg(win,GTK_MESSAGE_WARNING,info,NULL)
#define a_dialog_error_msg(win,info) a_dialog_msg(win,GTK_MESSAGE_ERROR,info,NULL)
#define a_dialog_info_msg_extra(win,info,extra) a_dialog_msg(win,GTK_MESSAGE_INFO,info,extra)
void a_dialog_response_accept ( GtkDialog *dialog );
+void a_dialog_about ( GtkWindow *parent );
+
/* okay, everthing below here is an architechtural flaw. */
gboolean a_dialog_goto_latlon ( GtkWindow *parent, struct LatLon *ll, const struct LatLon *old );
gboolean a_dialog_goto_utm ( GtkWindow *parent, struct UTM *utm, const struct UTM *old );
-gboolean a_dialog_new_waypoint ( GtkWindow *parent, gchar **dest, VikWaypoint *wp, GHashTable *waypoints, VikCoordMode coord_mode );
+/* Specify if a new waypoint or not */
+/* If a new waypoint then it uses the default_name for the suggested name allowing the user to change it.
+ The name to use is returned
+ When an existing waypoint the name is shown but is not allowed to be changed and NULL is returned
+ */
+gchar *a_dialog_waypoint ( GtkWindow *parent, gchar *default_name, VikWaypoint *wp, VikCoordMode coord_mode, gboolean is_new, gboolean *updated );
-gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks );
+gchar *a_dialog_new_track ( GtkWindow *parent, GHashTable *tracks, gchar *default_name );
-gboolean a_dialog_overwrite ( GtkWindow *parent, const gchar *message, const gchar *extra );
+gboolean a_dialog_yes_or_no ( GtkWindow *parent, const gchar *message, const gchar *extra );
gboolean a_dialog_custom_zoom ( GtkWindow *parent, gdouble *xmpp, gdouble *ympp );
+gboolean a_dialog_time_threshold ( GtkWindow *parent, gchar *title_text, gchar *label_text, guint *thr );
+
+/**
+ * Dialog to return a positive number via a spinbox within the supplied limits
+ * A return value of zero indicates the dialog was cancelled
+ */
+guint a_dialog_get_positive_number ( GtkWindow *parent, gchar *title_text, gchar *label_text, guint default_num, guint min, guint max, guint step );
void a_dialog_choose_dir ( GtkWidget *entry );
+gboolean a_dialog_map_n_zoom(GtkWindow *parent, gchar *mapnames[], gint default_map, gchar *zoom_list[], gint default_zoom, gint *selected_map, gint *selected_zoom);
+
+GList *a_dialog_select_from_list ( GtkWindow *parent, GList *names, gboolean multiple_selection_allowed, const gchar *title, const gchar *msg );
+
+void a_dialog_license ( GtkWindow *parent, const gchar *map, const gchar *license, const gchar *url);
#endif