1
#ifndef __NR_ARENA_GLYPHS_H__
2
#define __NR_ARENA_GLYPHS_H__
5
* RGBA display list system for inkscape
8
* Lauris Kaplinski <lauris@kaplinski.com>
10
* Copyright (C) 2002 Lauris Kaplinski
12
* Released under GNU GPL
16
#define NR_TYPE_ARENA_GLYPHS (nr_arena_glyphs_get_type ())
17
#define NR_ARENA_GLYPHS(obj) (NR_CHECK_INSTANCE_CAST ((obj), NR_TYPE_ARENA_GLYPHS, NRArenaGlyphs))
18
#define NR_IS_ARENA_GLYPHS(obj) (NR_CHECK_INSTANCE_TYPE ((obj), NR_TYPE_ARENA_GLYPHS))
20
#include <libnrtype/nrtype-forward.h>
22
#include <display/display-forward.h>
24
#include <sp-paint-server.h>
25
#include <display/nr-arena-item.h>
27
#define test_glyph_liv
31
NRType nr_arena_glyphs_get_type (void);
33
struct NRArenaGlyphs : public NRArenaItem {
36
Geom::Matrix g_transform;
44
// Geom::Matrix cached_tr;
46
// bool cached_shp_dirty;
47
// bool cached_style_dirty;
51
static NRArenaGlyphs *create(NRArena *arena) {
52
NRArenaGlyphs *obj=reinterpret_cast<NRArenaGlyphs *>(nr_object_new(NR_TYPE_ARENA_GLYPHS));
58
struct NRArenaGlyphsClass {
59
NRArenaItemClass parent_class;
62
void nr_arena_glyphs_set_path ( NRArenaGlyphs *glyphs,
63
SPCurve *curve, unsigned int lieutenant,
64
font_instance *font, int glyph,
65
Geom::Matrix const *transform );
66
void nr_arena_glyphs_set_style (NRArenaGlyphs *glyphs, SPStyle *style);
68
/* Integrated group of component glyphss */
70
typedef struct NRArenaGlyphsGroup NRArenaGlyphsGroup;
71
typedef struct NRArenaGlyphsGroupClass NRArenaGlyphsGroupClass;
73
#include "nr-arena-group.h"
75
#define NR_TYPE_ARENA_GLYPHS_GROUP (nr_arena_glyphs_group_get_type ())
76
#define NR_ARENA_GLYPHS_GROUP(obj) (NR_CHECK_INSTANCE_CAST ((obj), NR_TYPE_ARENA_GLYPHS_GROUP, NRArenaGlyphsGroup))
77
#define NR_IS_ARENA_GLYPHS_GROUP(obj) (NR_CHECK_INSTANCE_TYPE ((obj), NR_TYPE_ARENA_GLYPHS_GROUP))
79
NRType nr_arena_glyphs_group_get_type (void);
81
struct NRArenaGlyphsGroup : public NRArenaGroup {
85
SPPainter *fill_painter;
86
SPPainter *stroke_painter;
88
static NRArenaGlyphsGroup *create(NRArena *arena) {
89
NRArenaGlyphsGroup *obj=reinterpret_cast<NRArenaGlyphsGroup *>(nr_object_new(NR_TYPE_ARENA_GLYPHS_GROUP));
95
struct NRArenaGlyphsGroupClass {
96
NRArenaGroupClass parent_class;
99
/* Utility functions */
101
void nr_arena_glyphs_group_clear (NRArenaGlyphsGroup *group);
103
void nr_arena_glyphs_group_add_component (NRArenaGlyphsGroup *group, font_instance *font, int glyph, Geom::Matrix const &transform);
105
void nr_arena_glyphs_group_set_style (NRArenaGlyphsGroup *group, SPStyle *style);
107
void nr_arena_glyphs_group_set_paintbox (NRArenaGlyphsGroup *group, const NRRect *pbox);