[libgda] GdauiBasicForm: handle data entries changing their expanding requirements
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdauiBasicForm: handle data entries changing their expanding requirements
- Date: Fri, 16 Jul 2010 20:57:40 +0000 (UTC)
commit 1f21044004a6155345850cc60691c2af30add0e5
Author: Vivien Malerba <malerba gnome-db org>
Date: Fri Jul 16 22:09:30 2010 +0200
GdauiBasicForm: handle data entries changing their expanding requirements
libgda-ui/data-entries/gdaui-entry-string.c | 3 ++-
libgda-ui/gdaui-basic-form.c | 16 +++++++++++++++-
libgda-ui/gdaui-data-entry.c | 13 +++++++++++--
libgda-ui/gdaui-data-entry.h | 6 ++++--
4 files changed, 32 insertions(+), 6 deletions(-)
---
diff --git a/libgda-ui/data-entries/gdaui-entry-string.c b/libgda-ui/data-entries/gdaui-entry-string.c
index eaf27cb..46aef3d 100644
--- a/libgda-ui/data-entries/gdaui-entry-string.c
+++ b/libgda-ui/data-entries/gdaui-entry-string.c
@@ -1,6 +1,6 @@
/* gdaui-entry-string.c
*
- * Copyright (C) 2003 - 2008 Vivien Malerba
+ * Copyright (C) 2003 - 2010 Vivien Malerba
*
* This Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License as
@@ -285,6 +285,7 @@ gdaui_entry_string_set_property (GObject *object,
gtk_widget_show (mgstr->priv->entry);
gtk_widget_hide (mgstr->priv->sw);
}
+ g_signal_emit_by_name (object, "expand-changed");
}
break;
case PROP_OPTIONS:
diff --git a/libgda-ui/gdaui-basic-form.c b/libgda-ui/gdaui-basic-form.c
index 57bda2e..2fd20dd 100644
--- a/libgda-ui/gdaui-basic-form.c
+++ b/libgda-ui/gdaui-basic-form.c
@@ -74,6 +74,7 @@ typedef struct {
gulong label_shown_id; /* signal ID */
gulong entry_contents_modified_id; /* signal ID */
+ gulong entry_expand_changed_id; /* signal ID */
gulong entry_contents_activated_id; /* signal ID */
GdaHolder *single_param;
@@ -108,6 +109,7 @@ static void paramlist_param_attr_changed_cb (GdaSet *paramlist, GdaHolder *param
const gchar *att_name, const GValue *att_value, GdauiBasicForm *form);
static void entry_contents_modified (GdauiDataEntry *entry, SingleEntry *sentry);
+static void entry_expand_changed_cb (GdauiDataEntry *entry, SingleEntry *sentry);
static void entry_contents_activated (GdauiDataEntry *entry, GdauiBasicForm *form);
static void parameter_changed_cb (GdaHolder *param, SingleEntry *sentry);
@@ -568,9 +570,12 @@ gdaui_basic_form_get_property (GObject *object,
static void
disconnect_single_entry_signals (SingleEntry *sentry)
{
- if (sentry->entry)
+ if (sentry->entry) {
g_signal_handler_disconnect (sentry->entry, sentry->entry_contents_modified_id);
+ g_signal_handler_disconnect (sentry->entry, sentry->entry_expand_changed_id);
+ }
sentry->entry_contents_modified_id = 0;
+ sentry->entry_expand_changed_id = 0;
if (sentry->entry)
g_signal_handler_disconnect (sentry->entry, sentry->entry_contents_activated_id);
sentry->entry_contents_activated_id = 0;
@@ -862,6 +867,9 @@ create_entry_widget (SingleEntry *sentry)
sentry->entry_contents_modified_id = g_signal_connect (G_OBJECT (entry), "contents-modified",
G_CALLBACK (entry_contents_modified),
sentry);
+ sentry->entry_expand_changed_id = g_signal_connect (sentry->entry, "expand-changed",
+ G_CALLBACK (entry_expand_changed_cb), sentry);
+
sentry->entry_contents_activated_id = g_signal_connect (G_OBJECT (entry), "contents-activated",
G_CALLBACK (entry_contents_activated),
sentry->form);
@@ -1336,6 +1344,12 @@ entry_contents_modified (GdauiDataEntry *entry, SingleEntry *sentry)
}
}
+static void
+entry_expand_changed_cb (GdauiDataEntry *entry, SingleEntry *sentry)
+{
+ pack_entry_widget (sentry);
+}
+
/*
* Called when a parameter changes
diff --git a/libgda-ui/gdaui-data-entry.c b/libgda-ui/gdaui-data-entry.c
index 5899011..608a124 100644
--- a/libgda-ui/gdaui-data-entry.c
+++ b/libgda-ui/gdaui-data-entry.c
@@ -1,6 +1,6 @@
/* gdaui-data-entry.c
*
- * Copyright (C) 2003 - 2009 Vivien Malerba
+ * Copyright (C) 2003 - 2010 Vivien Malerba
*
* This Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License as
@@ -27,10 +27,11 @@ enum {
CONTENTS_ACTIVATED,
STATUS_CHANGED,
CONTENTS_VALID,
+ EXPAND_CHANGED,
LAST_SIGNAL
};
-static gint gdaui_data_entry_signals[LAST_SIGNAL] = { 0, 0, 0, 0 };
+static gint gdaui_data_entry_signals[LAST_SIGNAL] = { 0, 0, 0, 0, 0 };
static void gdaui_data_entry_iface_init (gpointer g_class);
GType
@@ -114,6 +115,14 @@ gdaui_data_entry_iface_init (gpointer g_class)
contents_valid_accumulator, NULL,
_gdaui_marshal_BOOLEAN__POINTER,
G_TYPE_BOOLEAN, 1, G_TYPE_POINTER);
+ gdaui_data_entry_signals[EXPAND_CHANGED] =
+ g_signal_new ("expand-changed",
+ GDAUI_TYPE_DATA_ENTRY,
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdauiDataEntryIface, expand_changed),
+ NULL, NULL,
+ _gdaui_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
((GdauiDataEntryIface*) g_class)->contents_valid = m_class_contents_valid;
initialized = TRUE;
diff --git a/libgda-ui/gdaui-data-entry.h b/libgda-ui/gdaui-data-entry.h
index e3bec67..18a173d 100644
--- a/libgda-ui/gdaui-data-entry.h
+++ b/libgda-ui/gdaui-data-entry.h
@@ -1,6 +1,6 @@
/* gdaui-data-entry.h
*
- * Copyright (C) 2009 Vivien Malerba
+ * Copyright (C) 2009 - 2010 Vivien Malerba
*
* This Library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public License as
@@ -63,9 +63,11 @@ struct _GdauiDataEntryIface
gboolean (*get_editable) (GdauiDataEntry *de);
void (*grab_focus) (GdauiDataEntry *de);
+ /* another signal */
+ void (* expand_changed) (GdauiDataEntry *de);
+
/*< private >*/
/* Padding for future expansion */
- void (*_gdaui_reserved1) (void);
void (*_gdaui_reserved2) (void);
void (*_gdaui_reserved3) (void);
void (*_gdaui_reserved4) (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]