forked from AuroraMiddleware/gtk
Add construct-only property "tag_table" and make use of it in
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net> * gtk/gtktextbuffer.c: Add construct-only property "tag_table" and make use of it in gtk_text_buffer_new(). (#70227)
This commit is contained in:
parent
913f2681ff
commit
22e3d3b937
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -1,3 +1,8 @@
|
||||
2002-09-30 Daniel Elstner <daniel.elstner@gmx.net>
|
||||
|
||||
* gtk/gtktextbuffer.c: Add construct-only property "tag_table"
|
||||
and make use of it in gtk_text_buffer_new(). (#70227)
|
||||
|
||||
2002-09-30 Stanislav Brabec <sbrabec@suse.cz>
|
||||
|
||||
* gtk/gtkimcontextsimple.c: Completed ISO-8859-2 characters
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include "gtktextbuffer.h"
|
||||
#include "gtktextbtree.h"
|
||||
#include "gtktextiterprivate.h"
|
||||
#include <string.h>
|
||||
#include "gtkintl.h"
|
||||
|
||||
typedef struct _ClipboardRequest ClipboardRequest;
|
||||
|
||||
@ -66,8 +66,10 @@ enum {
|
||||
};
|
||||
|
||||
enum {
|
||||
ARG_0,
|
||||
LAST_ARG
|
||||
PROP_0,
|
||||
|
||||
/* Construct */
|
||||
PROP_TAG_TABLE
|
||||
};
|
||||
|
||||
enum {
|
||||
@ -116,6 +118,16 @@ static void update_selection_clipboards (GtkTextBuffer *buffer);
|
||||
static GObjectClass *parent_class = NULL;
|
||||
static guint signals[LAST_SIGNAL] = { 0 };
|
||||
|
||||
static void gtk_text_buffer_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gtk_text_buffer_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
|
||||
GType
|
||||
gtk_text_buffer_get_type (void)
|
||||
{
|
||||
@ -153,7 +165,9 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass)
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gtk_text_buffer_finalize;
|
||||
|
||||
object_class->set_property = gtk_text_buffer_set_property;
|
||||
object_class->get_property = gtk_text_buffer_get_property;
|
||||
|
||||
klass->insert_text = gtk_text_buffer_real_insert_text;
|
||||
klass->insert_pixbuf = gtk_text_buffer_real_insert_pixbuf;
|
||||
klass->insert_child_anchor = gtk_text_buffer_real_insert_anchor;
|
||||
@ -162,6 +176,15 @@ gtk_text_buffer_class_init (GtkTextBufferClass *klass)
|
||||
klass->remove_tag = gtk_text_buffer_real_remove_tag;
|
||||
klass->changed = gtk_text_buffer_real_changed;
|
||||
|
||||
/* Construct */
|
||||
g_object_class_install_property (object_class,
|
||||
PROP_TAG_TABLE,
|
||||
g_param_spec_object ("tag_table",
|
||||
_("Tag Table"),
|
||||
_("Text Tag Table"),
|
||||
GTK_TYPE_TEXT_TAG_TABLE,
|
||||
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
||||
|
||||
signals[INSERT_TEXT] =
|
||||
g_signal_new ("insert_text",
|
||||
G_OBJECT_CLASS_TYPE (object_class),
|
||||
@ -305,6 +328,74 @@ static void
|
||||
gtk_text_buffer_init (GtkTextBuffer *buffer)
|
||||
{
|
||||
buffer->clipboard_contents_buffers = NULL;
|
||||
buffer->tag_table = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
set_table (GtkTextBuffer *buffer, GtkTextTagTable *table)
|
||||
{
|
||||
g_return_if_fail (buffer->tag_table == NULL);
|
||||
|
||||
if (table)
|
||||
{
|
||||
buffer->tag_table = table;
|
||||
g_object_ref (G_OBJECT (buffer->tag_table));
|
||||
_gtk_text_tag_table_add_buffer (table, buffer);
|
||||
}
|
||||
}
|
||||
|
||||
static GtkTextTagTable*
|
||||
get_table (GtkTextBuffer *buffer)
|
||||
{
|
||||
if (buffer->tag_table == NULL)
|
||||
{
|
||||
buffer->tag_table = gtk_text_tag_table_new ();
|
||||
_gtk_text_tag_table_add_buffer (buffer->tag_table, buffer);
|
||||
}
|
||||
|
||||
return buffer->tag_table;
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_buffer_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkTextBuffer *text_buffer;
|
||||
|
||||
text_buffer = GTK_TEXT_BUFFER (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_TAG_TABLE:
|
||||
set_table (text_buffer, g_value_get_object (value));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_text_buffer_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkTextBuffer *text_buffer;
|
||||
|
||||
text_buffer = GTK_TEXT_BUFFER (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_TAG_TABLE:
|
||||
g_value_set_object (value, get_table (text_buffer));
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -320,17 +411,10 @@ gtk_text_buffer_new (GtkTextTagTable *table)
|
||||
{
|
||||
GtkTextBuffer *text_buffer;
|
||||
|
||||
text_buffer = GTK_TEXT_BUFFER (g_object_new (gtk_text_buffer_get_type (), NULL));
|
||||
text_buffer = GTK_TEXT_BUFFER (g_object_new (GTK_TYPE_TEXT_BUFFER,
|
||||
"tag_table", table,
|
||||
NULL));
|
||||
|
||||
if (table)
|
||||
{
|
||||
text_buffer->tag_table = table;
|
||||
|
||||
g_object_ref (G_OBJECT (text_buffer->tag_table));
|
||||
|
||||
_gtk_text_tag_table_add_buffer (table, text_buffer);
|
||||
}
|
||||
|
||||
return text_buffer;
|
||||
}
|
||||
|
||||
@ -365,18 +449,6 @@ gtk_text_buffer_finalize (GObject *object)
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static GtkTextTagTable*
|
||||
get_table (GtkTextBuffer *buffer)
|
||||
{
|
||||
if (buffer->tag_table == NULL)
|
||||
{
|
||||
buffer->tag_table = gtk_text_tag_table_new ();
|
||||
_gtk_text_tag_table_add_buffer (buffer->tag_table, buffer);
|
||||
}
|
||||
|
||||
return buffer->tag_table;
|
||||
}
|
||||
|
||||
static GtkTextBTree*
|
||||
get_btree (GtkTextBuffer *buffer)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user