From 7fae37ecd544da77884410971b69c5d481bbea4c Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Thu, 6 Jan 2011 21:45:58 +0100 Subject: [PATCH] textview: Move GtkTextAttributes to its own header --- gtk/gtk.h | 1 + gtk/gtktextattributes.h | 166 ++++++++++++++++++++++++++++++++++++++++ gtk/gtktextiter.h | 3 +- gtk/gtktexttag.h | 102 ------------------------ 4 files changed, 169 insertions(+), 103 deletions(-) create mode 100644 gtk/gtktextattributes.h diff --git a/gtk/gtk.h b/gtk/gtk.h index cc08332e90..6f984eab9d 100644 --- a/gtk/gtk.h +++ b/gtk/gtk.h @@ -189,6 +189,7 @@ #include #include #include +#include #include #include #include diff --git a/gtk/gtktextattributes.h b/gtk/gtktextattributes.h new file mode 100644 index 0000000000..5d43676f18 --- /dev/null +++ b/gtk/gtktextattributes.h @@ -0,0 +1,166 @@ +/* gtktexttag.c - text tag object + * + * Copyright (c) 1992-1994 The Regents of the University of California. + * Copyright (c) 1994-1997 Sun Microsystems, Inc. + * Copyright (c) 2000 Red Hat, Inc. + * Tk -> Gtk port by Havoc Pennington + * + * This software is copyrighted by the Regents of the University of + * California, Sun Microsystems, Inc., and other parties. The + * following terms apply to all files associated with the software + * unless explicitly disclaimed in individual files. + * + * The authors hereby grant permission to use, copy, modify, + * distribute, and license this software and its documentation for any + * purpose, provided that existing copyright notices are retained in + * all copies and that this notice is included verbatim in any + * distributions. No written agreement, license, or royalty fee is + * required for any of the authorized uses. Modifications to this + * software may be copyrighted by their authors and need not follow + * the licensing terms described here, provided that the new terms are + * clearly indicated on the first page of each file where they apply. + * + * IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY + * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL + * DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, + * OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, + * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND + * NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, + * AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE + * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * GOVERNMENT USE: If you are acquiring this software on behalf of the + * U.S. government, the Government shall have only "Restricted Rights" + * in the software and related documentation as defined in the Federal + * Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you + * are acquiring the software on behalf of the Department of Defense, + * the software shall be classified as "Commercial Computer Software" + * and the Government shall have only "Restricted Rights" as defined + * in Clause 252.227-7013 (c) (1) of DFARs. Notwithstanding the + * foregoing, the authors grant the U.S. Government and others acting + * in its behalf permission to use and distribute the software in + * accordance with the terms specified in this license. + * + */ + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only can be included directly." +#endif + +#ifndef __GTK_TEXT_ATTRIBUTES_H__ +#define __GTK_TEXT_ATTRIBUTES_H__ + + +#include +#include + + +G_BEGIN_DECLS + +typedef struct _GtkTextAttributes GtkTextAttributes; + +#define GTK_TYPE_TEXT_ATTRIBUTES (gtk_text_attributes_get_type ()) + +typedef struct _GtkTextAppearance GtkTextAppearance; + +struct _GtkTextAppearance +{ + /*< public >*/ + GdkColor bg_color; + GdkColor fg_color; + + /* super/subscript rise, can be negative */ + gint rise; + + /*< public >*/ + guint underline : 4; /* PangoUnderline */ + guint strikethrough : 1; + + /* Whether to use background-related values; this is irrelevant for + * the values struct when in a tag, but is used for the composite + * values struct; it's true if any of the tags being composited + * had background stuff set. + */ + guint draw_bg : 1; + + /* These are only used when we are actually laying out and rendering + * a paragraph; not when a GtkTextAppearance is part of a + * GtkTextAttributes. + */ + guint inside_selection : 1; + guint is_text : 1; + + /*< private >*/ + guint padding[4]; +}; + +struct _GtkTextAttributes +{ + /*< private >*/ + guint refcount; + + /*< public >*/ + GtkTextAppearance appearance; + + GtkJustification justification; + GtkTextDirection direction; + + /* Individual chunks of this can be set/unset as a group */ + PangoFontDescription *font; + + gdouble font_scale; + + gint left_margin; + gint right_margin; + gint indent; + + gint pixels_above_lines; + gint pixels_below_lines; + gint pixels_inside_wrap; + + PangoTabArray *tabs; + + GtkWrapMode wrap_mode; /* How to handle wrap-around for this tag. + * Must be GTK_WRAPMODE_CHAR, + * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD + */ + + PangoLanguage *language; + + /*< private >*/ + GdkColor *pg_bg_color; + + /*< public >*/ + /* hide the text */ + guint invisible : 1; + + /* Background is fit to full line height rather than + * baseline +/- ascent/descent (font height) + */ + guint bg_full_height : 1; + + /* can edit this text */ + guint editable : 1; + + /*< private >*/ + guint padding[4]; +}; + +GtkTextAttributes* gtk_text_attributes_new (void); +GtkTextAttributes* gtk_text_attributes_copy (GtkTextAttributes *src); +void gtk_text_attributes_copy_values (GtkTextAttributes *src, + GtkTextAttributes *dest); +void gtk_text_attributes_unref (GtkTextAttributes *values); +GtkTextAttributes *gtk_text_attributes_ref (GtkTextAttributes *values); + +GType gtk_text_attributes_get_type (void) G_GNUC_CONST; + + +G_END_DECLS + +#endif + diff --git a/gtk/gtktextiter.h b/gtk/gtktextiter.h index a4187eb8e9..9d636bfd19 100644 --- a/gtk/gtktextiter.h +++ b/gtk/gtktextiter.h @@ -31,8 +31,9 @@ #ifndef __GTK_TEXT_ITER_H__ #define __GTK_TEXT_ITER_H__ -#include +#include #include +#include G_BEGIN_DECLS diff --git a/gtk/gtktexttag.h b/gtk/gtktexttag.h index db7245b3d3..1286b37dd9 100644 --- a/gtk/gtktexttag.h +++ b/gtk/gtktexttag.h @@ -64,8 +64,6 @@ G_BEGIN_DECLS typedef struct _GtkTextIter GtkTextIter; typedef struct _GtkTextTagTable GtkTextTagTable; -typedef struct _GtkTextAttributes GtkTextAttributes; - #define GTK_TYPE_TEXT_TAG (gtk_text_tag_get_type ()) #define GTK_TEXT_TAG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_TAG, GtkTextTag)) #define GTK_TEXT_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_TAG, GtkTextTagClass)) @@ -73,8 +71,6 @@ typedef struct _GtkTextAttributes GtkTextAttributes; #define GTK_IS_TEXT_TAG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_TAG)) #define GTK_TEXT_TAG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_TAG, GtkTextTagClass)) -#define GTK_TYPE_TEXT_ATTRIBUTES (gtk_text_attributes_get_type ()) - typedef struct _GtkTextTag GtkTextTag; typedef struct _GtkTextTagPrivate GtkTextTagPrivate; typedef struct _GtkTextTagClass GtkTextTagClass; @@ -112,104 +108,6 @@ gboolean gtk_text_tag_event (GtkTextTag *tag, GdkEvent *event, const GtkTextIter *iter); -/* - * Style object created by folding a set of tags together - */ - -typedef struct _GtkTextAppearance GtkTextAppearance; - -struct _GtkTextAppearance -{ - /*< public >*/ - GdkColor bg_color; - GdkColor fg_color; - - /* super/subscript rise, can be negative */ - gint rise; - - /*< public >*/ - guint underline : 4; /* PangoUnderline */ - guint strikethrough : 1; - - /* Whether to use background-related values; this is irrelevant for - * the values struct when in a tag, but is used for the composite - * values struct; it's true if any of the tags being composited - * had background stuff set. - */ - guint draw_bg : 1; - - /* These are only used when we are actually laying out and rendering - * a paragraph; not when a GtkTextAppearance is part of a - * GtkTextAttributes. - */ - guint inside_selection : 1; - guint is_text : 1; - - /*< private >*/ - guint padding[4]; -}; - -struct _GtkTextAttributes -{ - /*< private >*/ - guint refcount; - - /*< public >*/ - GtkTextAppearance appearance; - - GtkJustification justification; - GtkTextDirection direction; - - /* Individual chunks of this can be set/unset as a group */ - PangoFontDescription *font; - - gdouble font_scale; - - gint left_margin; - gint right_margin; - gint indent; - - gint pixels_above_lines; - gint pixels_below_lines; - gint pixels_inside_wrap; - - PangoTabArray *tabs; - - GtkWrapMode wrap_mode; /* How to handle wrap-around for this tag. - * Must be GTK_WRAPMODE_CHAR, - * GTK_WRAPMODE_NONE, GTK_WRAPMODE_WORD - */ - - PangoLanguage *language; - - /*< private >*/ - GdkColor *pg_bg_color; - - /*< public >*/ - /* hide the text */ - guint invisible : 1; - - /* Background is fit to full line height rather than - * baseline +/- ascent/descent (font height) - */ - guint bg_full_height : 1; - - /* can edit this text */ - guint editable : 1; - - /*< private >*/ - guint padding[4]; -}; - -GtkTextAttributes* gtk_text_attributes_new (void); -GtkTextAttributes* gtk_text_attributes_copy (GtkTextAttributes *src); -void gtk_text_attributes_copy_values (GtkTextAttributes *src, - GtkTextAttributes *dest); -void gtk_text_attributes_unref (GtkTextAttributes *values); -GtkTextAttributes *gtk_text_attributes_ref (GtkTextAttributes *values); - -GType gtk_text_attributes_get_type (void) G_GNUC_CONST; - G_END_DECLS