From 167e741e93acf018566531d01c2c85a309741116 Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Thu, 9 Nov 2000 04:51:53 +0000 Subject: Add visible and visible_set args, don't know where these had gone, I 2000-11-08 Havoc Pennington * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and visible_set args, don't know where these had gone, I thought they used to be there * gtk/testtext.c: Add a menu item to apply invisibility tag; now we can test the feature and see that it's totally broken. --- ChangeLog | 11 ++++++++++- ChangeLog.pre-2-0 | 11 ++++++++++- ChangeLog.pre-2-10 | 11 ++++++++++- ChangeLog.pre-2-2 | 11 ++++++++++- ChangeLog.pre-2-4 | 11 ++++++++++- ChangeLog.pre-2-6 | 11 ++++++++++- ChangeLog.pre-2-8 | 11 ++++++++++- gtk/gtktexttag.c | 23 ++++++++++++++++++++--- gtk/testtext.c | 34 ++++++++++++++++++++++++++++++++++ tests/testtext.c | 34 ++++++++++++++++++++++++++++++++++ 10 files changed, 158 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index c099cb80a6..842f540d94 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-0 b/ChangeLog.pre-2-0 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-0 +++ b/ChangeLog.pre-2-0 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-2 b/ChangeLog.pre-2-2 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-2 +++ b/ChangeLog.pre-2-2 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index c099cb80a6..842f540d94 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,12 @@ +2000-11-08 Havoc Pennington + + * gtk/gtktexttag.c (gtk_text_tag_class_init): Add visible and + visible_set args, don't know where these had gone, I thought they + used to be there + + * gtk/testtext.c: Add a menu item to apply invisibility tag; + now we can test the feature and see that it's totally broken. + 2000-11-08 Havoc Pennington Make DND copy pixbufs and tags when source and target share a @@ -6,7 +15,7 @@ * gtk/gtktextview.c (gtk_text_view_drag_data_get): provide the in-process GTK_TEXT_BUFFER_CONTENTS target (gtk_text_view_drag_data_received): Paste from - GTK_TEXT_BUFFER_CONTENTS if we receive it. + GTK_TEXT_BUFFER_CONTENTS if we receive it. 2000-11-08 Alexander Larsson diff --git a/gtk/gtktexttag.c b/gtk/gtktexttag.c index 03d8aa9eac..af9a300879 100644 --- a/gtk/gtktexttag.c +++ b/gtk/gtktexttag.c @@ -92,7 +92,8 @@ enum { ARG_BG_FULL_HEIGHT, ARG_LANGUAGE, ARG_TABS, - + ARG_INVISIBLE, + /* Whether-a-style-arg-is-set args */ ARG_BACKGROUND_SET, ARG_FOREGROUND_SET, @@ -116,6 +117,7 @@ enum { ARG_BG_FULL_HEIGHT_SET, ARG_LANGUAGE_SET, ARG_TABS_SET, + ARG_INVISIBLE_SET, LAST_ARG }; @@ -223,7 +225,9 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) GTK_ARG_READWRITE, ARG_WRAP_MODE); gtk_object_add_arg_type ("GtkTextTag::tabs", GTK_TYPE_POINTER, GTK_ARG_READWRITE, ARG_TABS); - + gtk_object_add_arg_type ("GtkTextTag::invisible", GTK_TYPE_BOOL, + GTK_ARG_READWRITE, ARG_INVISIBLE); + /* Style args are set or not */ gtk_object_add_arg_type ("GtkTextTag::background_set", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_BACKGROUND_SET); @@ -269,7 +273,9 @@ gtk_text_tag_class_init (GtkTextTagClass *klass) GTK_ARG_READWRITE, ARG_WRAP_MODE_SET); gtk_object_add_arg_type ("GtkTextTag::tabs_set", GTK_TYPE_BOOL, GTK_ARG_READWRITE, ARG_TABS_SET); - + gtk_object_add_arg_type ("GtkTextTag::invisible_set", GTK_TYPE_BOOL, + GTK_ARG_READWRITE, ARG_INVISIBLE_SET); + signals[EVENT] = gtk_signal_new ("event", @@ -610,6 +616,12 @@ gtk_text_tag_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) size_changed = TRUE; break; + case ARG_INVISIBLE: + text_tag->invisible_set = TRUE; + text_tag->values->invisible = GTK_VALUE_BOOL (*arg); + size_changed = TRUE; + break; + /* Whether the value should be used... */ case ARG_BACKGROUND_SET: @@ -706,6 +718,11 @@ gtk_text_tag_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) size_changed = TRUE; break; + case ARG_INVISIBLE_SET: + text_tag->invisible_set = GTK_VALUE_BOOL (*arg); + size_changed = TRUE; + break; + default: g_assert_not_reached (); break; diff --git a/gtk/testtext.c b/gtk/testtext.c index 12cfcd0899..5424dc0f7f 100644 --- a/gtk/testtext.c +++ b/gtk/testtext.c @@ -20,6 +20,7 @@ struct _Buffer GtkTextBuffer *buffer; char *filename; gint untitled_serial; + GtkTextTag *invisible_tag; GtkTextTag *not_editable_tag; GtkTextTag *found_text_tag; GtkTextTag *custom_tabs_tag; @@ -905,6 +906,32 @@ do_apply_editable (gpointer callback_data, } } +static void +do_apply_invisible (gpointer callback_data, + guint callback_action, + GtkWidget *widget) +{ + View *view = view_from_widget (widget); + GtkTextIter start; + GtkTextIter end; + + if (gtk_text_buffer_get_selection_bounds (view->buffer->buffer, + &start, &end)) + { + if (callback_action) + { + gtk_text_buffer_remove_tag (view->buffer->buffer, + view->buffer->invisible_tag, + &start, &end); + } + else + { + gtk_text_buffer_apply_tag (view->buffer->buffer, + view->buffer->invisible_tag, + &start, &end); + } + } +} static void do_apply_tabs (gpointer callback_data, @@ -1087,6 +1114,8 @@ static GtkItemFactoryEntry menu_items[] = { "/_Attributes", NULL, 0, 0, "" }, { "/Attributes/Editable", NULL, do_apply_editable, TRUE, NULL }, { "/Attributes/Not editable", NULL, do_apply_editable, FALSE, NULL }, + { "/Attributes/Invisible", NULL, do_apply_invisible, FALSE, NULL }, + { "/Attributes/Visible", NULL, do_apply_invisible, TRUE, NULL }, { "/Attributes/Custom tabs", NULL, do_apply_tabs, FALSE, NULL }, { "/Attributes/Default tabs", NULL, do_apply_tabs, TRUE, NULL }, { "/_Test", NULL, 0, 0, "" }, @@ -1254,6 +1283,11 @@ create_buffer (void) buffer->filename = NULL; buffer->untitled_serial = -1; + buffer->invisible_tag = gtk_text_buffer_create_tag (buffer->buffer, NULL); + gtk_object_set (GTK_OBJECT (buffer->invisible_tag), + "invisible", TRUE, + NULL); + buffer->not_editable_tag = gtk_text_buffer_create_tag (buffer->buffer, NULL); gtk_object_set (GTK_OBJECT (buffer->not_editable_tag), "editable", FALSE, diff --git a/tests/testtext.c b/tests/testtext.c index 12cfcd0899..5424dc0f7f 100644 --- a/tests/testtext.c +++ b/tests/testtext.c @@ -20,6 +20,7 @@ struct _Buffer GtkTextBuffer *buffer; char *filename; gint untitled_serial; + GtkTextTag *invisible_tag; GtkTextTag *not_editable_tag; GtkTextTag *found_text_tag; GtkTextTag *custom_tabs_tag; @@ -905,6 +906,32 @@ do_apply_editable (gpointer callback_data, } } +static void +do_apply_invisible (gpointer callback_data, + guint callback_action, + GtkWidget *widget) +{ + View *view = view_from_widget (widget); + GtkTextIter start; + GtkTextIter end; + + if (gtk_text_buffer_get_selection_bounds (view->buffer->buffer, + &start, &end)) + { + if (callback_action) + { + gtk_text_buffer_remove_tag (view->buffer->buffer, + view->buffer->invisible_tag, + &start, &end); + } + else + { + gtk_text_buffer_apply_tag (view->buffer->buffer, + view->buffer->invisible_tag, + &start, &end); + } + } +} static void do_apply_tabs (gpointer callback_data, @@ -1087,6 +1114,8 @@ static GtkItemFactoryEntry menu_items[] = { "/_Attributes", NULL, 0, 0, "" }, { "/Attributes/Editable", NULL, do_apply_editable, TRUE, NULL }, { "/Attributes/Not editable", NULL, do_apply_editable, FALSE, NULL }, + { "/Attributes/Invisible", NULL, do_apply_invisible, FALSE, NULL }, + { "/Attributes/Visible", NULL, do_apply_invisible, TRUE, NULL }, { "/Attributes/Custom tabs", NULL, do_apply_tabs, FALSE, NULL }, { "/Attributes/Default tabs", NULL, do_apply_tabs, TRUE, NULL }, { "/_Test", NULL, 0, 0, "" }, @@ -1254,6 +1283,11 @@ create_buffer (void) buffer->filename = NULL; buffer->untitled_serial = -1; + buffer->invisible_tag = gtk_text_buffer_create_tag (buffer->buffer, NULL); + gtk_object_set (GTK_OBJECT (buffer->invisible_tag), + "invisible", TRUE, + NULL); + buffer->not_editable_tag = gtk_text_buffer_create_tag (buffer->buffer, NULL); gtk_object_set (GTK_OBJECT (buffer->not_editable_tag), "editable", FALSE, -- cgit v1.2.1