diff options
author | Dario Lombardo <lomato@gmail.com> | 2016-11-09 13:56:12 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2016-12-09 04:49:33 +0000 |
commit | b7e7796e20d5b194a72658a0e3f88522e7f66ebc (patch) | |
tree | 54291ca366573e7719a8bfd453410b209c7db708 /ui/gtk | |
parent | fb0c288f99518eac830cf29e92c3543a8045878e (diff) |
extcap: add new option type (timestamp).
Bug: 12787
Change-Id: I941833c55fb607c8af2ef832082af58d7b94e965
Reviewed-on: https://code.wireshark.org/review/18721
Petri-Dish: Roland Knall <rknall@gmail.com>
Reviewed-by: Roland Knall <rknall@gmail.com>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org>
Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/gtk')
-rw-r--r-- | ui/gtk/extcap_gtk.c | 34 | ||||
-rw-r--r-- | ui/gtk/extcap_gtk.h | 1 |
2 files changed, 34 insertions, 1 deletions
diff --git a/ui/gtk/extcap_gtk.c b/ui/gtk/extcap_gtk.c index 55d93892c9..c2c679c353 100644 --- a/ui/gtk/extcap_gtk.c +++ b/ui/gtk/extcap_gtk.c @@ -24,6 +24,7 @@ #include <string.h> #include <gtk/gtk.h> +#include <glib.h> #include <ui/gtk/gui_utils.h> #include <wsutil/filesystem.h> @@ -134,6 +135,11 @@ GHashTable *extcap_gtk_get_state(GtkWidget *widget) { int multi_num = 0; + guint year; + guint month; + guint day; + guint64 unix_ts; + widget_list = (GSList *) g_object_get_data(G_OBJECT(widget), EXTCAP_GTK_DATA_KEY_WIDGETLIST); @@ -183,6 +189,16 @@ GHashTable *extcap_gtk_get_state(GtkWidget *widget) { continue; } break; + case EXTCAP_ARG_TIMESTAMP: { + GTimeZone* tz = g_time_zone_new("UTC"); + gtk_calendar_get_date((GtkCalendar*)list_widget, &year, &month, &day); + GDateTime* datetime = g_date_time_new(tz, year, month, day, 0, 0, 0); + unix_ts = g_date_time_to_unix(datetime); + call_string = g_strdup_printf("%" G_GINT64_MODIFIER "u", unix_ts); + g_date_time_unref(datetime); + g_time_zone_unref(tz); + } + break; case EXTCAP_ARG_RADIO: if ((radio_widget = (GtkWidget *) g_object_get_data( G_OBJECT(list_widget), @@ -765,7 +781,7 @@ GSList *extcap_populate_gtk_vbox(GList *arguments, GtkWidget *vbox, extcap_arg *arg_iter = NULL; extcap_complex *prev_complex = NULL; - gchar *prev_call, *default_str; + gchar *prev_call = NULL, *default_str; GList * arg_list = g_list_first(arguments); if ( arg_list == NULL ) @@ -850,6 +866,22 @@ GSList *extcap_populate_gtk_vbox(GList *arguments, GtkWidget *vbox, if (default_str != NULL) g_free(default_str); break; + case EXTCAP_ARG_TIMESTAMP: + default_str = NULL; + if (prev_complex != NULL) + default_str = extcap_get_complex_as_string(prev_complex); + else if (arg_iter->default_complex != NULL) + default_str = extcap_get_complex_as_string( + arg_iter->default_complex); + label = gtk_label_new(arg_iter->display); + gtk_misc_set_alignment(GTK_MISC(label), 0.0f, 0.1f); + if (default_str != NULL) { + gtk_entry_set_text(GTK_ENTRY(item), default_str); + g_free(default_str); + } + + item = gtk_calendar_new(); + break; case EXTCAP_ARG_BOOLEAN: case EXTCAP_ARG_BOOLFLAG: item = gtk_check_button_new_with_label(arg_iter->display); diff --git a/ui/gtk/extcap_gtk.h b/ui/gtk/extcap_gtk.h index 614a76c787..cdc26167ab 100644 --- a/ui/gtk/extcap_gtk.h +++ b/ui/gtk/extcap_gtk.h @@ -40,6 +40,7 @@ #define EXTCAP_GTK_DATA_KEY_WIDGETLIST "EXTCAP_WIDGETLIST" #define EXTCAP_GTK_DATA_KEY_TREEVIEW "EXTCAP_TREEVIEW" #define EXTCAP_GTK_DATA_KEY_FILENAME "EXTCAP_FILENAME" +#define EXTCAP_GTK_DATA_KEY_TIMESTAMP "EXTCAP_TIMESTAMP" #define EXTCAP_GTK_DATA_KEY_ARGUMENT "EXTCAP_ARGUMENT" /* |