source: trunk/third/libgnomecanvas/libgnomecanvas/gnome-canvas-text.h @ 18323

Revision 18323, 6.7 KB checked in by ghudson, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18322, which included commits to RCS files with non-trunk default branches.
Line 
1/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2/*
3 * Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation
4 * All rights reserved.
5 *
6 * This file is part of the Gnome Library.
7 *
8 * The Gnome Library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public License as
10 * published by the Free Software Foundation; either version 2 of the
11 * License, or (at your option) any later version.
12 *
13 * The Gnome Library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with the Gnome Library; see the file COPYING.LIB.  If not,
20 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
22 */
23/*
24  @NOTATION@
25 */
26/* Text item type for GnomeCanvas widget
27 *
28 * GnomeCanvas is basically a port of the Tk toolkit's most excellent canvas widget.  Tk is
29 * copyrighted by the Regents of the University of California, Sun Microsystems, and other parties.
30 *
31 *
32 * Author: Federico Mena <federico@nuclecu.unam.mx>
33 * Port to Pango co-done by Gergõ Érdi <cactus@cactus.rulez.org>
34 */
35
36#ifndef GNOME_CANVAS_TEXT_H
37#define GNOME_CANVAS_TEXT_H
38
39
40#include <libgnomecanvas/gnome-canvas.h>
41
42
43G_BEGIN_DECLS
44
45
46/* Text item for the canvas.  Text items are positioned by an anchor point and an anchor direction.
47 *
48 * A clipping rectangle may be specified for the text.  The rectangle is anchored at the text's anchor
49 * point, and is specified by clipping width and height parameters.  If the clipping rectangle is
50 * enabled, it will clip the text.
51 *
52 * In addition, x and y offset values may be specified.  These specify an offset from the anchor
53 * position.  If used in conjunction with the clipping rectangle, these could be used to implement
54 * simple scrolling of the text within the clipping rectangle.
55 *
56 * Properties marked with [*] also have _set properties associated
57 * with them, that determine if the specified value should be used
58 * instead of the default (style-defined) values
59 *
60 * The following object arguments are available:
61 *
62 * name                 type                    read/write      description
63 * ------------------------------------------------------------------------------------------
64 * text                 string                  RW              The string of the text label
65 * markup               string                   W              A Pango markup string for the text label
66 *
67 * x                    double                  RW              X coordinate of anchor point
68 * y                    double                  RW              Y coordinate of anchor point
69 *
70 * font                 string                   W              A string describing the font
71 * font_desc            PangoFontDescription*   RW              Pointer to a PangoFontDescriptor
72 * attributes           PangoAttrList*          RW              Pointer to a Pango attribute list
73 * style                PangoStyle              RW              Pango style of font to use      [*]
74 * variant              PangoVariant            RW              Pango variant of font to use    [*]
75 * weight               int                     RW              Pango weight of font to use     [*]
76 * stretch              PangoStretch            RW              Pango stretch of font to use    [*]
77 * size                 int                     RW              Size (in pixels) of font        [*]
78 * size_points          double                  RW              Size (in points) of font
79 * scale                double                  RW              Ratio to scale font             [*]
80 *
81 * anchor               GtkAnchorType           RW              Anchor side for the text
82 * justification        GtkJustification        RW              Justification for multiline text
83 * clip_width           double                  RW              Width of clip rectangle
84 * clip_height          double                  RW              Height of clip rectangle
85 * clip                 boolean                 RW              Use clipping rectangle?
86 * x_offset             double                  RW              Horizontal offset distance from anchor position
87 * y_offset             double                  RW              Vertical offset distance from anchor position
88 *
89 * text_width           double                  R               Used to query the width of the rendered text
90 * text_height          double                  R               Used to query the rendered height of the text
91 *
92 * fill_color           string                   W              X color specification for text
93 * fill_color_gdk       GdkColor*               RW              Pointer to an allocated GdkColor
94 * fill_color_rgba      guint                   RW              RGBA value used for AA color.
95 * fill_stipple         GdkBitmap*              RW              Stipple pattern for filling the text
96 */
97
98#define GNOME_TYPE_CANVAS_TEXT            (gnome_canvas_text_get_type ())
99#define GNOME_CANVAS_TEXT(obj)            (GTK_CHECK_CAST ((obj), GNOME_TYPE_CANVAS_TEXT, GnomeCanvasText))
100#define GNOME_CANVAS_TEXT_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), GNOME_TYPE_CANVAS_TEXT, GnomeCanvasTextClass))
101#define GNOME_IS_CANVAS_TEXT(obj)         (GTK_CHECK_TYPE ((obj), GNOME_TYPE_CANVAS_TEXT))
102#define GNOME_IS_CANVAS_TEXT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GNOME_TYPE_CANVAS_TEXT))
103#define GNOME_CANVAS_TEXT_GET_CLASS(obj)  (GTK_CHECK_GET_CLASS ((obj), GNOME_TYPE_CANVAS_TEXT, GnomeCanvasTextClass))
104
105
106typedef struct _GnomeCanvasText GnomeCanvasText;
107typedef struct _GnomeCanvasTextClass GnomeCanvasTextClass;
108
109typedef struct _GnomeCanvasTextPrivate GnomeCanvasTextPrivate;
110
111struct _GnomeCanvasText {
112        GnomeCanvasItem item;
113
114        PangoFontDescription *font_desc; /* Font description for text */
115        PangoAttrList *attr_list;        /* Attribute list of the text (caching) */
116        PangoUnderline underline;
117        gboolean       strikethrough;
118        int            rise;
119        double         scale;
120       
121        char *text;                     /* Text to display */
122        GdkBitmap *stipple;             /* Stipple for text */
123        GdkGC *gc;                      /* GC for drawing text */
124        PangoLayout *layout;            /* The PangoLayout containing the text */
125
126        gulong pixel;                   /* Fill color */
127
128        double x, y;                    /* Position at anchor */
129
130        double clip_width;              /* Width of optional clip rectangle */
131        double clip_height;             /* Height of optional clip rectangle */
132
133        double xofs, yofs;              /* Text offset distance from anchor position */
134
135        double affine[6];               /* The item -> canvas affine */ /*AA*/
136
137        GtkAnchorType anchor;           /* Anchor side for text */
138        GtkJustification justification; /* Justification for text */
139
140        int cx, cy;                     /* Top-left canvas coordinates for text */
141        int clip_cx, clip_cy;           /* Top-left canvas coordinates for clip rectangle */
142        int clip_cwidth, clip_cheight;  /* Size of clip rectangle in pixels */
143        int max_width;                  /* Maximum width of text lines */
144        int height;                     /* Rendered text height in pixels */
145
146        guint32 rgba;                   /* RGBA color for text */ /*AA*/
147
148        guint clip : 1;                 /* Use clip rectangle? */
149
150        guint underline_set : 1;        /* Apply specified underline style? */
151        guint strike_set    : 1;        /* Apply specified strikethrough style? */
152        guint rise_set      : 1;        /* Apply specified ascension/descension? */
153
154        guint scale_set     : 1;        /* Apply specified font scaling ratio? */
155
156        GnomeCanvasTextPrivate *priv;   
157};
158
159struct _GnomeCanvasTextClass {
160        GnomeCanvasItemClass parent_class;
161};
162
163
164/* Standard Gtk function */
165GType gnome_canvas_text_get_type (void) G_GNUC_CONST;
166
167
168G_END_DECLS
169
170#endif
Note: See TracBrowser for help on using the repository browser.