aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/extcap_gtk.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gtk/extcap_gtk.c')
-rw-r--r--ui/gtk/extcap_gtk.c34
1 files changed, 33 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);