projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added tooltip for statistics in dialogs
[pspp]
/
src
/
ui
/
gui
/
psppire-value-entry.c
diff --git
a/src/ui/gui/psppire-value-entry.c
b/src/ui/gui/psppire-value-entry.c
index c45db101bb7c2f958e357acd81824ba97c315631..650fed8c144e2cdd0d2654f669cf4e4c71c6868d 100644
(file)
--- a/
src/ui/gui/psppire-value-entry.c
+++ b/
src/ui/gui/psppire-value-entry.c
@@
-48,6
+48,12
@@
enum
PROP_WIDTH
};
PROP_WIDTH
};
+enum {EDIT_DONE, /* Emitted when the entry has changed and is ready to be fetched */
+ n_SIGNALS};
+
+static guint signals [n_SIGNALS];
+
+
static void
psppire_value_entry_set_property (GObject *object,
guint prop_id,
static void
psppire_value_entry_set_property (GObject *object,
guint prop_id,
@@
-137,6
+143,11
@@
psppire_value_entry_text_changed (GtkEntryBuffer *buffer,
obj->cur_value = NULL;
}
obj->cur_value = NULL;
}
+static void
+on_entry_activate (GtkWidget *w)
+{
+ g_signal_emit (w, signals [EDIT_DONE], 0);
+}
static void
on_realize (GtkWidget *w)
static void
on_realize (GtkWidget *w)
@@
-149,6
+160,9
@@
on_realize (GtkWidget *w)
g_signal_connect (buffer, "notify::text",
G_CALLBACK (psppire_value_entry_text_changed), w);
g_signal_connect (buffer, "notify::text",
G_CALLBACK (psppire_value_entry_text_changed), w);
+ g_signal_connect_swapped (entry, "activate",
+ G_CALLBACK (on_entry_activate), w);
+
gtk_widget_set_can_focus (GTK_WIDGET (entry), TRUE);
GTK_WIDGET_CLASS (psppire_value_entry_parent_class)->realize (w);
gtk_widget_set_can_focus (GTK_WIDGET (entry), TRUE);
GTK_WIDGET_CLASS (psppire_value_entry_parent_class)->realize (w);
@@
-243,6
+257,16
@@
psppire_value_entry_class_init (PsppireValueEntryClass *class)
0, MAX_STRING,
0,
G_PARAM_READABLE | G_PARAM_WRITABLE));
0, MAX_STRING,
0,
G_PARAM_READABLE | G_PARAM_WRITABLE));
+
+ signals [EDIT_DONE] =
+ g_signal_new ("edit-done",
+ G_TYPE_FROM_CLASS (class),
+ G_SIGNAL_RUN_FIRST,
+ 0,
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
static void
}
static void
@@
-442,6
+466,10
@@
psppire_value_entry_set_value (PsppireValueEntry *obj,
gchar *string;
obj->cur_value = NULL;
gchar *string;
obj->cur_value = NULL;
+
+ if (value == NULL)
+ return;
+
if (obj->show_value_label)
{
struct val_lab *vl = val_labs_lookup (obj->val_labs, value);
if (obj->show_value_label)
{
struct val_lab *vl = val_labs_lookup (obj->val_labs, value);