[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r25192 - in gnunet-gtk/src: include setup
From: |
gnunet |
Subject: |
[GNUnet-SVN] r25192 - in gnunet-gtk/src: include setup |
Date: |
Mon, 3 Dec 2012 16:18:11 +0100 |
Author: grothoff
Date: 2012-12-03 16:18:11 +0100 (Mon, 03 Dec 2012)
New Revision: 25192
Modified:
gnunet-gtk/src/include/gnunet_gtk.h
gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
gnunet-gtk/src/setup/gnunet-setup-gns-edit.h
Log:
-towards A dialog
Modified: gnunet-gtk/src/include/gnunet_gtk.h
===================================================================
--- gnunet-gtk/src/include/gnunet_gtk.h 2012-12-03 15:09:10 UTC (rev 25191)
+++ gnunet-gtk/src/include/gnunet_gtk.h 2012-12-03 15:18:11 UTC (rev 25192)
@@ -225,6 +225,10 @@
GtkBuilder *
GNUNET_GTK_main_loop_get_builder (struct GNUNET_GTK_MainLoop *ml);
+
+/**
+ * FIXME!
+ */
int
GNUNET_GTK_main_loop_build_window (struct GNUNET_GTK_MainLoop *ml,
gpointer data);
Modified: gnunet-gtk/src/setup/gnunet-setup-gns-edit.c
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns-edit.c 2012-12-03 15:09:10 UTC
(rev 25191)
+++ gnunet-gtk/src/setup/gnunet-setup-gns-edit.c 2012-12-03 15:18:11 UTC
(rev 25192)
@@ -24,7 +24,102 @@
*/
#include "gnunet-setup-gns-edit.h"
+
/**
+ * Initialize widgets of the edit dialog that are the same regardless of
+ * the type of the record.
+ *
+ * @param edc dialog context
+ */
+static void
+edit_dialog_setup_common_elements (struct EditDialogContext *edc)
+{
+ if (GNUNET_YES !=
+ edc->old_record_in_namestore)
+ {
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_delete_button")));
+ gtk_widget_set_sensitive (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_save_button")),
+ FALSE);
+ }
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_name_entry")),
+ edc->n_new_name);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_options_public_checkbutton")),
+ edc->n_public);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_options_shadow_checkbutton")),
+ edc->n_is_shadow);
+ if (GNUNET_TIME_UNIT_FOREVER_REL.rel_value == edc->n_exp_time)
+ {
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_never_radiobutton")),
+ TRUE);
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_absolute_calendar")));
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_absolute_hbox")));
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_relative_combobox")));
+ }
+ else
+ {
+ if (edc->n_is_relative)
+ {
+ struct GNUNET_TIME_Relative rt;
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_relative_radiobutton")),
+ TRUE);
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_relative_combobox")));
+ rt.rel_value = edc->n_exp_time;
+ gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_relative_combobox")),
+ GNUNET_STRINGS_relative_time_to_string (rt,
GNUNET_NO));
+
+ }
+ else
+ {
+ struct GNUNET_TIME_Absolute at;
+ time_t tp;
+ struct tm *ymd;
+ GtkCalendar *cal;
+
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_absolute_radiobutton")),
+ TRUE);
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_absolute_calendar")));
+ gtk_widget_hide (GTK_WIDGET (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_absolute_hbox")));
+ at.abs_value = edc->n_exp_time;
+ tp = (time_t) (at.abs_value / 1000LL); /* convert to seconds */
+ ymd = gmtime (&tp);
+ cal = GTK_CALENDAR (gtk_builder_get_object (edc->builder,
+
"edit_dialog_expiration_absolute_calendar"));
+ gtk_calendar_select_month (cal,
+ ymd->tm_mon,
+ ymd->tm_year + 1900);
+ gtk_calendar_mark_day (cal,
+ ymd->tm_mday);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_absolute_hours_spinbutton")),
+ (double) ymd->tm_hour);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_absolute_minutes_spinbutton")),
+ (double) ymd->tm_min);
+ gtk_spin_button_set_value (GTK_SPIN_BUTTON (gtk_builder_get_object
(edc->builder,
+
"edit_dialog_expiration_absolute_seconds_spinbutton")),
+ (double) ymd->tm_sec);
+ }
+ }
+}
+
+
+/**
* Run an GNS Edit dialog for an 'A' Record.
*
* @param cont continuation to call when done
@@ -33,6 +128,23 @@
void
GNS_edit_dialog_a (struct EditDialogContext *edc)
{
+ GtkDialog *dialog;
+
+ edc->builder = GNUNET_GTK_get_new_builder ("gnunet_setup_gns_edit_a.glade",
+ edc);
+ if (NULL == edc->builder)
+ {
+ GNUNET_break (0);
+ edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
+ return;
+ }
+ edit_dialog_setup_common_elements (edc);
+ dialog = GTK_DIALOG (gtk_builder_get_object (edc->builder,
+ "edit_a_dialog"));
+ gtk_dialog_set_default_response (GTK_DIALOG (dialog),
+ GTK_RESPONSE_OK);
+ gtk_window_present (GTK_WINDOW (dialog));
+
GNUNET_break (0); /* not implemented */
edc->cont (edc, GTK_RESPONSE_CANCEL); /* treat as 'cancel' */
}
Modified: gnunet-gtk/src/setup/gnunet-setup-gns-edit.h
===================================================================
--- gnunet-gtk/src/setup/gnunet-setup-gns-edit.h 2012-12-03 15:09:10 UTC
(rev 25191)
+++ gnunet-gtk/src/setup/gnunet-setup-gns-edit.h 2012-12-03 15:18:11 UTC
(rev 25192)
@@ -57,11 +57,6 @@
{
/**
- * Function to call at the end.
- */
- GNS_EditContinuation cont;
-
- /**
* Where in the tree view are we editing?
*/
GtkTreeIter it;
@@ -72,6 +67,16 @@
guint64 n_exp_time;
/**
+ * Function to call at the end.
+ */
+ GNS_EditContinuation cont;
+
+ /**
+ * Builder for the dialog (internal to gnunet-setup-gns-edit.c).
+ */
+ GtkBuilder *builder;
+
+ /**
* Old name of the record (for deletion).
*/
gchar *n_name;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r25192 - in gnunet-gtk/src: include setup,
gnunet <=