diff options
author | Benjamin Otte <otte@redhat.com> | 2011-01-06 21:45:58 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2011-01-11 16:46:59 +0100 |
commit | 7fae37ecd544da77884410971b69c5d481bbea4c (patch) | |
tree | 4f370d6166e5348709540f5ba26503bedaf75050 /gtk/gtktextattributes.h | |
parent | b40dc528f65c2275eb066e2b43ba283a31122d72 (diff) | |
download | gtk+-7fae37ecd544da77884410971b69c5d481bbea4c.tar.gz |
textview: Move GtkTextAttributes to its own header
Diffstat (limited to 'gtk/gtktextattributes.h')
-rw-r--r-- | gtk/gtktextattributes.h | 166 |
1 files changed, 166 insertions, 0 deletions
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 <hp@redhat.com> + * + * 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 <gtk/gtk.h> can be included directly." +#endif + +#ifndef __GTK_TEXT_ATTRIBUTES_H__ +#define __GTK_TEXT_ATTRIBUTES_H__ + + +#include <gdk/gdk.h> +#include <gtk/gtkenums.h> + + +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 + |