diff options
author | Tim Janik <timj@gtk.org> | 1998-07-16 20:23:12 +0000 |
---|---|---|
committer | Tim Janik <timj@src.gnome.org> | 1998-07-16 20:23:12 +0000 |
commit | 81517a6d4c09663ba97335affe5b1ec047a567d3 (patch) | |
tree | 4638e036b6e692136a617d1fdd7d8f8a05f6a3bf /gtk/gtktext.c | |
parent | 5e3acecc12dc9b7671ea56150a66e2ae41a65a6e (diff) | |
download | gtk+-81517a6d4c09663ba97335affe5b1ec047a567d3.tar.gz |
signdness corrections all ove the place. implementation of object
Thu Jul 16 18:24:41 1998 Tim Janik <timj@gtk.org>
* gtk/gtknotebook.h:
* gtk/gtknotebook.c: signdness corrections all ove the place.
implementation of object arguments: GtkNotebook::enable_popup,
GtkNotebook::tab_pos, GtkNotebook::tab_border, GtkNotebook::show_tabs,
GtkNotebook::show_border, GtkNotebook::scrollable and GtkNotebook::page.
begun implementation of child args, we have GtkNotebook::tab_label, but
GtkNotebook::menu_label and GtkNotebook::position still lack the
implementation.
(gtk_notebook_remove_page):
(gtk_notebook_current_page): allow negative indices (-1) as alias for
the last page.
* gtk/gtkentry.h:
* gtk/gtkentry.c: GtkType and macro fixups. implementation of object
arguments GtkEntry::max_length and GtkEntry::visibility.
(gtk_entry_adjust_scroll): queue a redraw.
* gtk/gtkeditable.h:
* gtk/gtkeditable.c: GtkType und macro fixups. implementation of
object arguments GtkEditable::text_position and GtkEditable::editable.
new (action) signal GtkEditable::set_editable.
provide a default handler for GtkEditable::changed that queues a redraw.
* gtk/gtktext.h:
* gtk/gtktext.c: GtkType und macro fixups. override GtkEditable::
set_editable.
Diffstat (limited to 'gtk/gtktext.c')
-rw-r--r-- | gtk/gtktext.c | 70 |
1 files changed, 42 insertions, 28 deletions
diff --git a/gtk/gtktext.c b/gtk/gtktext.c index cacbf181ce..f15d62f23a 100644 --- a/gtk/gtktext.c +++ b/gtk/gtktext.c @@ -174,23 +174,25 @@ static void gtk_text_adjustment (GtkAdjustment *adjustment, static void gtk_text_disconnect (GtkAdjustment *adjustment, GtkText *text); -static void gtk_text_insert_text (GtkEditable *editable, - const gchar *new_text, - gint new_text_length, - gint *position); -static void gtk_text_delete_text (GtkEditable *editable, - gint start_pos, - gint end_pos); -static void gtk_text_update_text (GtkEditable *editable, - gint start_pos, - gint end_pos); -static gchar *gtk_text_get_chars (GtkEditable *editable, - gint start, - gint end); -static void gtk_text_set_selection (GtkEditable *editable, - gint start, - gint end); - +static void gtk_text_insert_text (GtkEditable *editable, + const gchar *new_text, + gint new_text_length, + gint *position); +static void gtk_text_delete_text (GtkEditable *editable, + gint start_pos, + gint end_pos); +static void gtk_text_update_text (GtkEditable *editable, + gint start_pos, + gint end_pos); +static gchar *gtk_text_get_chars (GtkEditable *editable, + gint start, + gint end); +static void gtk_text_set_selection (GtkEditable *editable, + gint start, + gint end); +static void gtk_text_real_set_editable (GtkEditable *editable, + gboolean is_editable); + /* Event handlers */ static void gtk_text_draw (GtkWidget *widget, GdkRectangle *area); @@ -445,10 +447,10 @@ static GtkTextFunction alt_keys[26] = /* Widget Crap */ /**********************************************************************/ -guint +GtkType gtk_text_get_type (void) { - static guint text_type = 0; + static GtkType text_type = 0; if (!text_type) { @@ -464,7 +466,7 @@ gtk_text_get_type (void) (GtkClassInitFunc) NULL, }; - text_type = gtk_type_unique (gtk_editable_get_type (), &text_info); + text_type = gtk_type_unique (GTK_TYPE_EDITABLE, &text_info); } return text_type; @@ -481,7 +483,7 @@ gtk_text_class_init (GtkTextClass *class) widget_class = (GtkWidgetClass*) class; editable_class = (GtkEditableClass*) class; - parent_class = gtk_type_class (gtk_editable_get_type ()); + parent_class = gtk_type_class (GTK_TYPE_EDITABLE); object_class->destroy = gtk_text_destroy; object_class->finalize = gtk_text_finalize; @@ -501,6 +503,7 @@ gtk_text_class_init (GtkTextClass *class) widget_class->focus_in_event = gtk_text_focus_in; widget_class->focus_out_event = gtk_text_focus_out; + editable_class->set_editable = gtk_text_real_set_editable; editable_class->insert_text = gtk_text_insert_text; editable_class->delete_text = gtk_text_delete_text; @@ -555,7 +558,7 @@ gtk_text_new (GtkAdjustment *hadj, { GtkText *text; - text = gtk_type_new (gtk_text_get_type ()); + text = gtk_type_new (GTK_TYPE_TEXT); gtk_text_set_adjustments (text, hadj, vadj); @@ -580,17 +583,28 @@ gtk_text_set_word_wrap (GtkText *text, void gtk_text_set_editable (GtkText *text, - gint editable) + gboolean is_editable) { - GtkWidget *widget; - g_return_if_fail (text != NULL); g_return_if_fail (GTK_IS_TEXT (text)); - widget = GTK_WIDGET (text); - GTK_EDITABLE(text)->editable = (editable != FALSE); + gtk_editable_set_editable (GTK_EDITABLE (text), is_editable); +} + +static void +gtk_text_real_set_editable (GtkEditable *editable, + gboolean is_editable) +{ + GtkText *text; + + g_return_if_fail (editable != NULL); + g_return_if_fail (GTK_IS_TEXT (editable)); + + text = GTK_TEXT (editable); + + editable->editable = (is_editable != FALSE); - if (editable) + if (is_editable) draw_cursor (text, TRUE); else undraw_cursor (text, TRUE); |