move insert_text and delete_text virtual functions to do_insert_text and
Wed Oct 3 23:47:25 Kristian Rietveld <kristian@planet.nl> * gtk/gtkeditable.[ch]: move insert_text and delete_text virtual functions to do_insert_text and do_delete_text, add signals insert_text, delete_text and changed * gtk/gtkentry.[ch]: remove signals insert_text, delete_text and changed. Updates to match new situation. * gtk/gtkspinbutton.c: updates to match new situation * gtk/gtkoldeditable.h: remove signals changed, insert_text and delete_text * gtk/gtkoldeditable.c: updates to match new situation * gtk/gtktext.c: updates to match new situation Fixes bug #59803
This commit is contained in:
committed by
Kristian Rietveld
parent
77dc57e960
commit
3c09d348d3
@ -204,6 +204,7 @@ static void gtk_text_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gtk_text_editable_init (GtkEditableClass *iface);
|
||||
static void gtk_text_init (GtkText *text);
|
||||
static void gtk_text_destroy (GtkObject *object);
|
||||
static void gtk_text_finalize (GObject *object);
|
||||
@ -220,11 +221,11 @@ static void gtk_text_size_allocate (GtkWidget *widget,
|
||||
GtkAllocation *allocation);
|
||||
static void gtk_text_adjustment (GtkAdjustment *adjustment,
|
||||
GtkText *text);
|
||||
static void gtk_text_insert_text (GtkOldEditable *old_editable,
|
||||
static void gtk_text_insert_text (GtkEditable *editable,
|
||||
const gchar *new_text,
|
||||
gint new_text_length,
|
||||
gint *position);
|
||||
static void gtk_text_delete_text (GtkOldEditable *old_editable,
|
||||
static void gtk_text_delete_text (GtkEditable *editable,
|
||||
gint start_pos,
|
||||
gint end_pos);
|
||||
static void gtk_text_update_text (GtkOldEditable *old_editable,
|
||||
@ -526,8 +527,18 @@ gtk_text_get_type (void)
|
||||
/* reserved_2 */ NULL,
|
||||
(GtkClassInitFunc) NULL,
|
||||
};
|
||||
|
||||
static const GInterfaceInfo editable_info =
|
||||
{
|
||||
(GInterfaceInitFunc) gtk_text_editable_init, /* interface_init */
|
||||
NULL, /* interface_finalize */
|
||||
NULL /* interface_data */
|
||||
};
|
||||
|
||||
text_type = gtk_type_unique (GTK_TYPE_OLD_EDITABLE, &text_info);
|
||||
g_type_add_interface_static (text_type,
|
||||
GTK_TYPE_EDITABLE,
|
||||
&editable_info);
|
||||
}
|
||||
|
||||
return text_type;
|
||||
@ -568,8 +579,6 @@ gtk_text_class_init (GtkTextClass *class)
|
||||
widget_class->focus_out_event = gtk_text_focus_out;
|
||||
|
||||
old_editable_class->set_editable = gtk_text_real_set_editable;
|
||||
old_editable_class->insert_text = gtk_text_insert_text;
|
||||
old_editable_class->delete_text = gtk_text_delete_text;
|
||||
|
||||
old_editable_class->move_cursor = gtk_text_move_cursor;
|
||||
old_editable_class->move_word = gtk_text_move_word;
|
||||
@ -693,6 +702,13 @@ gtk_text_get_property (GObject *object,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_editable_init (GtkEditableClass *iface)
|
||||
{
|
||||
iface->insert_text = gtk_text_insert_text;
|
||||
iface->delete_text = gtk_text_delete_text;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_init (GtkText *text)
|
||||
{
|
||||
@ -1861,12 +1877,12 @@ gtk_text_motion_notify (GtkWidget *widget,
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_insert_text (GtkOldEditable *old_editable,
|
||||
gtk_text_insert_text (GtkEditable *editable,
|
||||
const gchar *new_text,
|
||||
gint new_text_length,
|
||||
gint *position)
|
||||
{
|
||||
GtkText *text = GTK_TEXT (old_editable);
|
||||
GtkText *text = GTK_TEXT (editable);
|
||||
GdkFont *font;
|
||||
GdkColor *fore, *back;
|
||||
|
||||
@ -1885,7 +1901,7 @@ gtk_text_insert_text (GtkOldEditable *old_editable,
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_delete_text (GtkOldEditable *old_editable,
|
||||
gtk_text_delete_text (GtkEditable *editable,
|
||||
gint start_pos,
|
||||
gint end_pos)
|
||||
{
|
||||
@ -1893,7 +1909,7 @@ gtk_text_delete_text (GtkOldEditable *old_editable,
|
||||
|
||||
g_return_if_fail (start_pos >= 0);
|
||||
|
||||
text = GTK_TEXT (old_editable);
|
||||
text = GTK_TEXT (editable);
|
||||
|
||||
gtk_text_set_point (text, start_pos);
|
||||
if (end_pos < 0)
|
||||
|
||||
Reference in New Issue
Block a user