1 /* GTK - The GIMP Toolkit
2 * gtktexttagprivate.h Copyright (C) 2000 Red Hat, Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the
16 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 * Boston, MA 02111-1307, USA.
21 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
22 * file for a list of people on the GTK+ Team. See the ChangeLog
23 * files for a list of changes. These files are distributed with
24 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
27 #ifndef __GTK_TEXT_TAG_PRIVATE_H__
28 #define __GTK_TEXT_TAG_PRIVATE_H__
32 typedef struct _GtkTextBTreeNode GtkTextBTreeNode;
35 struct _GtkTextTagPrivate
37 GtkTextTagTable *table;
39 char *name; /* Name of this tag. This field is actually
40 * a pointer to the key from the entry in
41 * tkxt->tagTable, so it needn't be freed
43 int priority; /* Priority of this tag within widget. 0
44 * means lowest priority. Exactly one tag
45 * has each integer value between 0 and
48 * Information for displaying text with this tag. The information
49 * belows acts as an override on information specified by lower-priority
50 * tags. If no value is specified, then the next-lower-priority tag
51 * on the text determins the value. The text widget itself provides
52 * defaults if no tag specifies an override.
55 GtkTextAttributes *values;
57 /* Flags for whether a given value is set; if a value is unset, then
58 * this tag does not affect it.
60 guint bg_color_set : 1;
61 guint fg_color_set : 1;
63 guint justification_set : 1;
64 guint left_margin_set : 1;
67 guint strikethrough_set : 1;
68 guint right_margin_set : 1;
69 guint pixels_above_lines_set : 1;
70 guint pixels_below_lines_set : 1;
71 guint pixels_inside_wrap_set : 1;
73 guint underline_set : 1;
74 guint wrap_mode_set : 1;
75 guint bg_full_height_set : 1;
76 guint invisible_set : 1;
77 guint editable_set : 1;
78 guint language_set : 1;
79 guint pg_bg_color_set : 1;
81 /* Whether these margins accumulate or override */
82 guint accumulative_margin : 1;
88 /* values should already have desired defaults; this function will override
89 * the defaults with settings in the given tags, which should be sorted in
90 * ascending order of priority
92 void _gtk_text_attributes_fill_from_tags (GtkTextAttributes *values,
95 void _gtk_text_tag_array_sort (GtkTextTag **tag_array_p,
98 gboolean _gtk_text_tag_affects_size (GtkTextTag *tag);
99 gboolean _gtk_text_tag_affects_nonsize_appearance (GtkTextTag *tag);