X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkentrybuffer.c;h=2190a10f71a416b9887c8af090eb9289a0f7c030;hb=HEAD;hp=7c6d2186a552df7533a1964d9674ebde2c621084;hpb=eab02f697a29f2bfd388f6318adf18e2936e7e96;p=~andy%2Fgtk diff --git a/gtk/gtkentrybuffer.c b/gtk/gtkentrybuffer.c index 7c6d2186a..2190a10f7 100644 --- a/gtk/gtkentrybuffer.c +++ b/gtk/gtkentrybuffer.c @@ -12,9 +12,7 @@ * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library. If not, see . */ #include "config.h" @@ -69,13 +67,13 @@ static guint signals[LAST_SIGNAL] = { 0 }; struct _GtkEntryBufferPrivate { - guint max_length; - /* Only valid if this class is not derived */ gchar *normal_text; gsize normal_text_size; gsize normal_text_bytes; guint normal_text_chars; + + gint max_length; }; G_DEFINE_TYPE (GtkEntryBuffer, gtk_entry_buffer, G_TYPE_OBJECT); @@ -131,6 +129,8 @@ gtk_entry_buffer_normal_insert_text (GtkEntryBuffer *buffer, /* Need more memory */ if (n_bytes + pv->normal_text_bytes + 1 > pv->normal_text_size) { + gchar *et_new; + prev_size = pv->normal_text_size; /* Calculate our new buffer size */ @@ -157,7 +157,7 @@ gtk_entry_buffer_normal_insert_text (GtkEntryBuffer *buffer, } /* Could be a password, so can't leave stuff in memory. */ - gchar *et_new = g_malloc (pv->normal_text_size); + et_new = g_malloc (pv->normal_text_size); memcpy (et_new, pv->normal_text, MIN (prev_size, pv->normal_text_size)); trash_area (pv->normal_text, prev_size); g_free (pv->normal_text); @@ -285,7 +285,7 @@ gtk_entry_buffer_set_property (GObject *obj, gtk_entry_buffer_set_text (buffer, g_value_get_string (value), -1); break; case PROP_MAX_LENGTH: - gtk_entry_buffer_set_max_length (buffer, g_value_get_uint (value)); + gtk_entry_buffer_set_max_length (buffer, g_value_get_int (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec); @@ -310,7 +310,7 @@ gtk_entry_buffer_get_property (GObject *obj, g_value_set_uint (value, gtk_entry_buffer_get_length (buffer)); break; case PROP_MAX_LENGTH: - g_value_set_uint (value, gtk_entry_buffer_get_max_length (buffer)); + g_value_set_int (value, gtk_entry_buffer_get_max_length (buffer)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, prop_id, pspec); @@ -344,10 +344,13 @@ gtk_entry_buffer_class_init (GtkEntryBufferClass *klass) * * Since: 2.18 */ - g_object_class_install_property (gobject_class, PROP_TEXT, - g_param_spec_string ("text", P_("Text"), - P_("The contents of the buffer"), - "", GTK_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_TEXT, + g_param_spec_string ("text", + P_("Text"), + P_("The contents of the buffer"), + "", + GTK_PARAM_READWRITE)); /** * GtkEntryBuffer:length: @@ -356,10 +359,13 @@ gtk_entry_buffer_class_init (GtkEntryBufferClass *klass) * * Since: 2.18 */ - g_object_class_install_property (gobject_class, PROP_LENGTH, - g_param_spec_uint ("length", P_("Text length"), - P_("Length of the text currently in the buffer"), - 0, GTK_ENTRY_BUFFER_MAX_SIZE, 0, GTK_PARAM_READABLE)); + g_object_class_install_property (gobject_class, + PROP_LENGTH, + g_param_spec_uint ("length", + P_("Text length"), + P_("Length of the text currently in the buffer"), + 0, GTK_ENTRY_BUFFER_MAX_SIZE, 0, + GTK_PARAM_READABLE)); /** * GtkEntryBuffer:max-length: @@ -368,13 +374,16 @@ gtk_entry_buffer_class_init (GtkEntryBufferClass *klass) * * Since: 2.18 */ - g_object_class_install_property (gobject_class, PROP_MAX_LENGTH, - g_param_spec_uint ("max-length", P_("Maximum length"), - P_("Maximum number of characters for this entry. Zero if no maximum"), - 0, GTK_ENTRY_BUFFER_MAX_SIZE, 0, GTK_PARAM_READWRITE)); + g_object_class_install_property (gobject_class, + PROP_MAX_LENGTH, + g_param_spec_int ("max-length", + P_("Maximum length"), + P_("Maximum number of characters for this entry. Zero if no maximum"), + 0, GTK_ENTRY_BUFFER_MAX_SIZE, 0, + GTK_PARAM_READWRITE)); /** - * GtkEntry::inserted-text: + * GtkEntryBuffer::inserted-text: * @buffer: a #GtkEntryBuffer * @position: the position the text was inserted at. * @chars: The text that was inserted. @@ -396,7 +405,7 @@ gtk_entry_buffer_class_init (GtkEntryBufferClass *klass) G_TYPE_UINT); /** - * GtkEntry::deleted-text: + * GtkEntryBuffer::deleted-text: * @buffer: a #GtkEntryBuffer * @position: the position the text was deleted at. * @n_chars: The number of characters that were deleted. @@ -422,7 +431,7 @@ gtk_entry_buffer_class_init (GtkEntryBufferClass *klass) /** * gtk_entry_buffer_new: - * @initial_chars: initial buffer text, or %NULL + * @initial_chars: (allow-none): initial buffer text, or %NULL * @n_initial_chars: number of characters in @initial_chars, or -1 * * Create a new GtkEntryBuffer object. @@ -565,12 +574,11 @@ gtk_entry_buffer_set_text (GtkEntryBuffer *buffer, **/ void gtk_entry_buffer_set_max_length (GtkEntryBuffer *buffer, - guint max_length) + gint max_length) { g_return_if_fail (GTK_IS_ENTRY_BUFFER (buffer)); - if (max_length > GTK_ENTRY_BUFFER_MAX_SIZE) - max_length = GTK_ENTRY_BUFFER_MAX_SIZE; + max_length = CLAMP (max_length, 0, GTK_ENTRY_BUFFER_MAX_SIZE); if (max_length > 0 && gtk_entry_buffer_get_length (buffer) > max_length) gtk_entry_buffer_delete_text (buffer, max_length, -1); @@ -590,8 +598,8 @@ gtk_entry_buffer_set_max_length (GtkEntryBuffer *buffer, * in #GtkEntryBuffer, or 0 if there is no maximum. * * Since: 2.18 - **/ -guint + */ +gint gtk_entry_buffer_get_max_length (GtkEntryBuffer *buffer) { g_return_val_if_fail (GTK_IS_ENTRY_BUFFER (buffer), 0); @@ -738,4 +746,3 @@ gtk_entry_buffer_emit_deleted_text (GtkEntryBuffer *buffer, g_return_if_fail (GTK_IS_ENTRY_BUFFER (buffer)); g_signal_emit (buffer, signals[DELETED_TEXT], 0, position, n_chars); } -