[libgda] Added gdaui_entry_set_width_chars()



commit af67adc4e8308cbae646f07c113e5b370b9326d7
Author: Vivien Malerba <malerba gnome-db org>
Date:   Mon Sep 28 20:40:03 2009 +0200

    Added gdaui_entry_set_width_chars()

 libgda-ui/data-entries/gdaui-entry.c           |   26 ++++++++++++++++++++---
 libgda-ui/data-entries/gdaui-entry.h           |    2 +
 libgda-ui/data-entries/gdaui-formatted-entry.c |    3 +-
 libgda-ui/libgda-ui.symbols                    |    1 +
 4 files changed, 27 insertions(+), 5 deletions(-)
---
diff --git a/libgda-ui/data-entries/gdaui-entry.c b/libgda-ui/data-entries/gdaui-entry.c
index cf54df0..5cc8662 100644
--- a/libgda-ui/data-entries/gdaui-entry.c
+++ b/libgda-ui/data-entries/gdaui-entry.c
@@ -384,7 +384,6 @@ gdaui_entry_get_text (GdauiEntry *entry)
 	gchar *text;
 
 	g_return_val_if_fail (GDAUI_IS_ENTRY (entry), NULL);
-	g_return_val_if_fail (entry->priv, NULL);
 
 	if (entry->priv->isnull)
 		text = NULL;
@@ -428,7 +427,6 @@ void
 gdaui_entry_set_text (GdauiEntry *entry, const gchar *text)
 {
 	g_return_if_fail (GDAUI_IS_ENTRY (entry));
-	g_return_if_fail (entry->priv);
 
 	if (text) {
 		entry->priv->isnull = TRUE;
@@ -461,7 +459,6 @@ void
 gdaui_entry_set_prefix (GdauiEntry *entry, const gchar *prefix)
 {
 	g_return_if_fail (GDAUI_IS_ENTRY (entry));
-	g_return_if_fail (entry->priv);
 
 	g_object_set (G_OBJECT (entry), "prefix", prefix, NULL);
 }
@@ -478,12 +475,33 @@ void
 gdaui_entry_set_suffix (GdauiEntry *entry, const gchar *suffix)
 {
 	g_return_if_fail (GDAUI_IS_ENTRY (entry));
-	g_return_if_fail (entry->priv);
 
 	g_object_set (G_OBJECT (entry), "suffix", suffix, NULL);
 }
 
 
+/**
+ * gdaui_entry_set_width_chars
+ * @entry: a #GdauiEntry widget
+ * @max_width: maximum width, or -1
+ *
+ * Sets @entry's maximum width in characters, without taking into account
+ * any prefix or suffix (which will automatically be handled). If you want to take
+ * a prefix or suffix into account direclty, then use gtk_entry_set_width_chars()
+ */
+void
+gdaui_entry_set_width_chars (GdauiEntry *entry, gint max_width)
+{
+	g_return_if_fail (GDAUI_IS_ENTRY (entry));
+	if (max_width < 0)
+		gtk_entry_set_width_chars (GTK_ENTRY (entry), -1);
+	else {
+		max_width += entry->priv->prefix_clen;
+		max_width += entry->priv->suffix_clen;
+		gtk_entry_set_width_chars (GTK_ENTRY (entry), max_width);
+	}
+}
+
 /*
  * callbacks
  */
diff --git a/libgda-ui/data-entries/gdaui-entry.h b/libgda-ui/data-entries/gdaui-entry.h
index a5f3875..2de6968 100644
--- a/libgda-ui/data-entries/gdaui-entry.h
+++ b/libgda-ui/data-entries/gdaui-entry.h
@@ -92,6 +92,8 @@ void                  gdaui_entry_set_suffix         (GdauiEntry *entry, const g
 void                  gdaui_entry_set_text           (GdauiEntry *entry, const gchar *text);
 gchar                *gdaui_entry_get_text           (GdauiEntry *entry);
 
+void                  gdaui_entry_set_width_chars    (GdauiEntry *entry, gint max_width);
+
 /* for sub classes */
 void                  _gdaui_entry_block_changes     (GdauiEntry *entry);
 void                  _gdaui_entry_unblock_changes   (GdauiEntry *entry);
diff --git a/libgda-ui/data-entries/gdaui-formatted-entry.c b/libgda-ui/data-entries/gdaui-formatted-entry.c
index f0640c3..c48c7e6 100644
--- a/libgda-ui/data-entries/gdaui-formatted-entry.c
+++ b/libgda-ui/data-entries/gdaui-formatted-entry.c
@@ -159,7 +159,8 @@ gdaui_formatted_entry_set_property (GObject *object,
 				else {
 					entry->priv->format = g_strdup (str);
 					entry->priv->format_clen = g_utf8_strlen (str, -1);
-					gtk_entry_set_max_length (GTK_ENTRY (entry), entry->priv->format_clen);
+					gdaui_entry_set_width_chars (GDAUI_ENTRY (entry),
+								     entry->priv->format_clen);
 				}
 			}
                         break;
diff --git a/libgda-ui/libgda-ui.symbols b/libgda-ui/libgda-ui.symbols
index 3337f5d..4a7a235 100644
--- a/libgda-ui/libgda-ui.symbols
+++ b/libgda-ui/libgda-ui.symbols
@@ -108,6 +108,7 @@
 	gdaui_entry_set_prefix
 	gdaui_entry_set_suffix
 	gdaui_entry_set_text
+	gdaui_entry_set_width_chars
 	gdaui_entry_shell_get_type
 	gdaui_entry_shell_pack_entry
 	gdaui_entry_shell_refresh



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]