]> Pileus Git - ~andy/gtk/commitdiff
Added Gordon Matzigkeit's patch for fixed length gtk entry fields
authorManish Singh <yosh@src.gnome.org>
Sat, 3 Jan 1998 08:35:21 +0000 (08:35 +0000)
committerManish Singh <yosh@src.gnome.org>
Sat, 3 Jan 1998 08:35:21 +0000 (08:35 +0000)
-Yosh

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkentry.c
gtk/gtkentry.h

index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index d5de96b7ccfb5f52aa490008b39a28a96c3a3eba..6aca5144d1953a2fd823db34a9a34b22327eedbc 100644 (file)
@@ -1,3 +1,9 @@
+Sat Jan  3 00:41:28 PST 1998 Manish Singh <yosh@gimp.org>
+
+       * gtk/gtkentry.c:
+       * gtk/gtkentry.h: applied Gordon Matzigkeit's patch to add
+       fixed-length entry fields (gtk_entry_new_with_max_length)
+       
 Fri Jay  2 23:52 PST 1998 Jay Painter <jpaint@serv.net>
        * reverted glibconfig.h and glib.h files back to the
        way they were before my ugly hack
index 42ffc7194d56e07087c01eda52619653c7d42442..1e9684b39b66ecd8eae817167af48c161a8d087d 100644 (file)
@@ -320,6 +320,7 @@ gtk_entry_init (GtkEntry *entry)
   entry->text = NULL;
   entry->text_size = 0;
   entry->text_length = 0;
+  entry->text_max_length = 0;
   entry->current_pos = 0;
   entry->selection_start_pos = 0;
   entry->selection_end_pos = 0;
@@ -374,6 +375,15 @@ gtk_entry_new ()
   return GTK_WIDGET (gtk_type_new (gtk_entry_get_type ()));
 }
 
+GtkWidget*
+gtk_entry_new_with_max_length (guint16 max)
+{
+  GtkEntry *entry;
+  entry = gtk_type_new (gtk_entry_get_type ());
+  entry->text_max_length = max;
+  return GTK_WIDGET (entry);
+}
+
 void
 gtk_entry_set_text (GtkEntry *entry,
                    const gchar *text)
@@ -1651,6 +1661,15 @@ gtk_real_entry_insert_text (GtkEntry *entry,
   g_return_if_fail (entry != NULL);
   g_return_if_fail (GTK_IS_ENTRY (entry));
 
+  /* Make sure we do not exceed the maximum size of the entry. */
+  if (entry->text_max_length != 0 &&
+      new_text_length + entry->text_length > entry->text_max_length)
+    new_text_length = entry->text_max_length - entry->text_length;
+
+  /* Don't insert anything, if there was nothing to insert. */
+  if (new_text_length == 0)
+    return;
+
   start_pos = *position;
   end_pos = start_pos + new_text_length;
   last_pos = new_text_length + entry->text_length;
index c4395fba35c3be88e7fae61b2f9007b6ce0c02da..a1f6c77d4505569c1c0302d4cf7ea2c941cbb662 100644 (file)
@@ -45,6 +45,7 @@ struct _GtkEntry
 
   guint16 text_size;
   guint16 text_length;
+  guint16 text_max_length;
   gint16  current_pos;
   gint16  selection_start_pos;
   gint16  selection_end_pos;
@@ -76,6 +77,7 @@ struct _GtkEntryClass
 
 guint      gtk_entry_get_type     (void);
 GtkWidget* gtk_entry_new          (void);
+GtkWidget* gtk_entry_new_with_max_length (guint16 max);
 void       gtk_entry_set_text     (GtkEntry      *entry,
                                   const gchar   *text);
 void       gtk_entry_append_text  (GtkEntry      *entry,