summaryrefslogtreecommitdiff
path: root/trunk/pango/pango-attributes.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/pango/pango-attributes.h')
-rw-r--r--trunk/pango/pango-attributes.h274
1 files changed, 274 insertions, 0 deletions
diff --git a/trunk/pango/pango-attributes.h b/trunk/pango/pango-attributes.h
new file mode 100644
index 00000000..98ee9868
--- /dev/null
+++ b/trunk/pango/pango-attributes.h
@@ -0,0 +1,274 @@
+/* Pango
+ * pango-attributes.h: Attributed text
+ *
+ * Copyright (C) 2000 Red Hat Software
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PANGO_ATTRIBUTES_H__
+#define __PANGO_ATTRIBUTES_H__
+
+#include <pango/pango-font.h>
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* PangoColor */
+
+typedef struct _PangoColor PangoColor;
+
+struct _PangoColor
+{
+ guint16 red;
+ guint16 green;
+ guint16 blue;
+};
+
+#define PANGO_TYPE_COLOR pango_color_get_type ()
+GType pango_color_get_type (void) G_GNUC_CONST;
+
+PangoColor *pango_color_copy (const PangoColor *src);
+void pango_color_free (PangoColor *color);
+gboolean pango_color_parse (PangoColor *color,
+ const char *spec);
+gchar *pango_color_to_string(const PangoColor *color);
+
+
+/* Attributes */
+
+typedef struct _PangoAttribute PangoAttribute;
+typedef struct _PangoAttrClass PangoAttrClass;
+
+typedef struct _PangoAttrString PangoAttrString;
+typedef struct _PangoAttrLanguage PangoAttrLanguage;
+typedef struct _PangoAttrInt PangoAttrInt;
+typedef struct _PangoAttrSize PangoAttrSize;
+typedef struct _PangoAttrFloat PangoAttrFloat;
+typedef struct _PangoAttrColor PangoAttrColor;
+typedef struct _PangoAttrFontDesc PangoAttrFontDesc;
+typedef struct _PangoAttrShape PangoAttrShape;
+
+#define PANGO_TYPE_ATTR_LIST pango_attr_list_get_type ()
+typedef struct _PangoAttrList PangoAttrList;
+typedef struct _PangoAttrIterator PangoAttrIterator;
+
+typedef enum
+{
+ PANGO_ATTR_INVALID, /* 0 is an invalid attribute type */
+ PANGO_ATTR_LANGUAGE, /* PangoAttrLanguage */
+ PANGO_ATTR_FAMILY, /* PangoAttrString */
+ PANGO_ATTR_STYLE, /* PangoAttrInt */
+ PANGO_ATTR_WEIGHT, /* PangoAttrInt */
+ PANGO_ATTR_VARIANT, /* PangoAttrInt */
+ PANGO_ATTR_STRETCH, /* PangoAttrInt */
+ PANGO_ATTR_SIZE, /* PangoAttrSize */
+ PANGO_ATTR_FONT_DESC, /* PangoAttrFontDesc */
+ PANGO_ATTR_FOREGROUND, /* PangoAttrColor */
+ PANGO_ATTR_BACKGROUND, /* PangoAttrColor */
+ PANGO_ATTR_UNDERLINE, /* PangoAttrInt */
+ PANGO_ATTR_STRIKETHROUGH, /* PangoAttrInt */
+ PANGO_ATTR_RISE, /* PangoAttrInt */
+ PANGO_ATTR_SHAPE, /* PangoAttrShape */
+ PANGO_ATTR_SCALE, /* PangoAttrFloat */
+ PANGO_ATTR_FALLBACK, /* PangoAttrInt */
+ PANGO_ATTR_LETTER_SPACING, /* PangoAttrInt */
+ PANGO_ATTR_UNDERLINE_COLOR, /* PangoAttrColor */
+ PANGO_ATTR_STRIKETHROUGH_COLOR,/* PangoAttrColor */
+ PANGO_ATTR_ABSOLUTE_SIZE, /* PangoAttrSize */
+ PANGO_ATTR_GRAVITY, /* PangoAttrInt */
+ PANGO_ATTR_GRAVITY_HINT /* PangoAttrInt */
+} PangoAttrType;
+
+typedef enum {
+ PANGO_UNDERLINE_NONE,
+ PANGO_UNDERLINE_SINGLE,
+ PANGO_UNDERLINE_DOUBLE,
+ PANGO_UNDERLINE_LOW,
+ PANGO_UNDERLINE_ERROR
+} PangoUnderline;
+
+struct _PangoAttribute
+{
+ const PangoAttrClass *klass;
+ guint start_index; /* in bytes */
+ guint end_index; /* in bytes. The character at this index is not included */
+};
+
+typedef gboolean (*PangoAttrFilterFunc) (PangoAttribute *attribute,
+ gpointer data);
+
+typedef gpointer (*PangoAttrDataCopyFunc) (gconstpointer data);
+
+struct _PangoAttrClass
+{
+ /*< public >*/
+ PangoAttrType type;
+ PangoAttribute * (*copy) (const PangoAttribute *attr);
+ void (*destroy) (PangoAttribute *attr);
+ gboolean (*equal) (const PangoAttribute *attr1, const PangoAttribute *attr2);
+};
+
+struct _PangoAttrString
+{
+ PangoAttribute attr;
+ char *value;
+};
+
+struct _PangoAttrLanguage
+{
+ PangoAttribute attr;
+ PangoLanguage *value;
+};
+
+struct _PangoAttrInt
+{
+ PangoAttribute attr;
+ int value;
+};
+
+struct _PangoAttrFloat
+{
+ PangoAttribute attr;
+ double value;
+};
+
+struct _PangoAttrColor
+{
+ PangoAttribute attr;
+ PangoColor color;
+};
+
+struct _PangoAttrSize
+{
+ PangoAttribute attr;
+ int size;
+ guint absolute : 1;
+};
+
+struct _PangoAttrShape
+{
+ PangoAttribute attr;
+ PangoRectangle ink_rect;
+ PangoRectangle logical_rect;
+
+ gpointer data;
+ PangoAttrDataCopyFunc copy_func;
+ GDestroyNotify destroy_func;
+};
+
+struct _PangoAttrFontDesc
+{
+ PangoAttribute attr;
+ PangoFontDescription *desc;
+};
+
+PangoAttrType pango_attr_type_register (const gchar *name);
+
+PangoAttribute * pango_attribute_copy (const PangoAttribute *attr);
+void pango_attribute_destroy (PangoAttribute *attr);
+gboolean pango_attribute_equal (const PangoAttribute *attr1,
+ const PangoAttribute *attr2) G_GNUC_PURE;
+
+PangoAttribute *pango_attr_language_new (PangoLanguage *language);
+PangoAttribute *pango_attr_family_new (const char *family);
+PangoAttribute *pango_attr_foreground_new (guint16 red,
+ guint16 green,
+ guint16 blue);
+PangoAttribute *pango_attr_background_new (guint16 red,
+ guint16 green,
+ guint16 blue);
+PangoAttribute *pango_attr_size_new (int size);
+PangoAttribute *pango_attr_size_new_absolute (int size);
+PangoAttribute *pango_attr_style_new (PangoStyle style);
+PangoAttribute *pango_attr_weight_new (PangoWeight weight);
+PangoAttribute *pango_attr_variant_new (PangoVariant variant);
+PangoAttribute *pango_attr_stretch_new (PangoStretch stretch);
+PangoAttribute *pango_attr_font_desc_new (const PangoFontDescription *desc);
+
+PangoAttribute *pango_attr_underline_new (PangoUnderline underline);
+PangoAttribute *pango_attr_underline_color_new (guint16 red,
+ guint16 green,
+ guint16 blue);
+PangoAttribute *pango_attr_strikethrough_new (gboolean strikethrough);
+PangoAttribute *pango_attr_strikethrough_color_new (guint16 red,
+ guint16 green,
+ guint16 blue);
+
+PangoAttribute *pango_attr_rise_new (int rise);
+PangoAttribute *pango_attr_scale_new (double scale_factor);
+PangoAttribute *pango_attr_fallback_new (gboolean enable_fallback);
+PangoAttribute *pango_attr_letter_spacing_new (int letter_spacing);
+
+PangoAttribute *pango_attr_shape_new (const PangoRectangle *ink_rect,
+ const PangoRectangle *logical_rect);
+PangoAttribute *pango_attr_shape_new_with_data (const PangoRectangle *ink_rect,
+ const PangoRectangle *logical_rect,
+ gpointer data,
+ PangoAttrDataCopyFunc copy_func,
+ GDestroyNotify destroy_func);
+
+PangoAttribute *pango_attr_gravity_new (PangoGravity gravity);
+PangoAttribute *pango_attr_gravity_hint_new (PangoGravityHint hint);
+
+GType pango_attr_list_get_type (void) G_GNUC_CONST;
+PangoAttrList * pango_attr_list_new (void);
+PangoAttrList * pango_attr_list_ref (PangoAttrList *list);
+void pango_attr_list_unref (PangoAttrList *list);
+PangoAttrList * pango_attr_list_copy (PangoAttrList *list);
+void pango_attr_list_insert (PangoAttrList *list,
+ PangoAttribute *attr);
+void pango_attr_list_insert_before (PangoAttrList *list,
+ PangoAttribute *attr);
+void pango_attr_list_change (PangoAttrList *list,
+ PangoAttribute *attr);
+void pango_attr_list_splice (PangoAttrList *list,
+ PangoAttrList *other,
+ gint pos,
+ gint len);
+
+PangoAttrList *pango_attr_list_filter (PangoAttrList *list,
+ PangoAttrFilterFunc func,
+ gpointer data);
+
+PangoAttrIterator *pango_attr_list_get_iterator (PangoAttrList *list);
+
+void pango_attr_iterator_range (PangoAttrIterator *iterator,
+ gint *start,
+ gint *end);
+gboolean pango_attr_iterator_next (PangoAttrIterator *iterator);
+PangoAttrIterator *pango_attr_iterator_copy (PangoAttrIterator *iterator);
+void pango_attr_iterator_destroy (PangoAttrIterator *iterator);
+PangoAttribute * pango_attr_iterator_get (PangoAttrIterator *iterator,
+ PangoAttrType type);
+void pango_attr_iterator_get_font (PangoAttrIterator *iterator,
+ PangoFontDescription *desc,
+ PangoLanguage **language,
+ GSList **extra_attrs);
+GSList * pango_attr_iterator_get_attrs (PangoAttrIterator *iterator);
+
+
+gboolean pango_parse_markup (const char *markup_text,
+ int length,
+ gunichar accel_marker,
+ PangoAttrList **attr_list,
+ char **text,
+ gunichar *accel_char,
+ GError **error);
+
+G_END_DECLS
+
+#endif /* __PANGO_ATTRIBUTES_H__ */