X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fsp-font.cpp;h=75fb186383a56bb64449f01852d9e6c409329762;hb=d91c7044b45dde766203822b19e4affead5ce10f;hp=a78f92cc00733abbd40f9d0d787a36194275eee2;hpb=8e7cbe6ccffda034f2d3cc8873276de3d6ea7a7b;p=inkscape.git diff --git a/src/sp-font.cpp b/src/sp-font.cpp index a78f92cc0..75fb18638 100644 --- a/src/sp-font.cpp +++ b/src/sp-font.cpp @@ -1,4 +1,8 @@ -#define __SP_FONT_C__ +#ifdef HAVE_CONFIG_H +# include +#endif + +#ifdef ENABLE_SVG_FONTS /* * SVG element implementation @@ -19,13 +23,15 @@ #include "document.h" #include "helper-fns.h" +#include "display/nr-svgfonts.h" + static void sp_font_class_init(SPFontClass *fc); static void sp_font_init(SPFont *font); static void sp_font_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr); static void sp_font_release(SPObject *object); static void sp_font_set(SPObject *object, unsigned int key, const gchar *value); -static Inkscape::XML::Node *sp_font_write(SPObject *object, Inkscape::XML::Node *repr, guint flags); +static Inkscape::XML::Node *sp_font_write(SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, guint flags); static void sp_font_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref); static void sp_font_remove_child(SPObject *object, Inkscape::XML::Node *child); @@ -42,15 +48,15 @@ GType sp_font_get_type(void) if (!type) { GTypeInfo info = { sizeof(SPFontClass), - NULL, /* base_init */ - NULL, /* base_finalize */ + NULL, /* base_init */ + NULL, /* base_finalize */ (GClassInitFunc) sp_font_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ + NULL, /* class_finalize */ + NULL, /* class_data */ sizeof(SPFont), - 16, /* n_preallocs */ + 16, /* n_preallocs */ (GInstanceInitFunc) sp_font_init, - NULL, /* value_table */ + NULL, /* value_table */ }; type = g_type_register_static(SP_TYPE_OBJECT, "SPFont", &info, (GTypeFlags) 0); } @@ -96,23 +102,13 @@ static void sp_font_build(SPObject *object, SPDocument *document, Inkscape::XML: sp_object_read_attr(object, "vert-origin-x"); sp_object_read_attr(object, "vert-origin-y"); sp_object_read_attr(object, "vert-adv-y"); + + sp_document_add_resource(document, "font", object); } -static void sp_font_children_modified(SPFont *sp_font) +static void sp_font_children_modified(SPFont */*sp_font*/) { - SPObject* node = sp_font->children; - for(;node;node=node->next){ - if (SP_IS_GLYPH(node)){ - g_warning("We have a childnode:\n\td=%s\n\tvert-origin-x=%f\n\tvert-origin-y=%f\n\tvert-adv-y=%f", ((SPGlyph*)node)->d, ((SPGlyph*)node)->vert_origin_x, ((SPGlyph*)node)->vert_origin_y, ((SPGlyph*)node)->vert_adv_y ); - - } - if (SP_IS_MISSING_GLYPH(node)){ -g_warning("We have a childnode:\n\td=%s\n\thoriz-origin-x=%f\n\thoriz-origin-y=%f\n\thoriz-adv-x=%f", ((SPMissingGlyph*)node)->d, ((SPMissingGlyph*)node)->vert_origin_x, ((SPMissingGlyph*)node)->vert_origin_y, ((SPMissingGlyph*)node)->vert_adv_y ); - } -// if (SP_IS_FONT_FACE_SRC(node)){ -// } - } } /** @@ -149,6 +145,7 @@ sp_font_remove_child(SPObject *object, Inkscape::XML::Node *child) static void sp_font_release(SPObject *object) { //SPFont *font = SP_FONT(object); + sp_document_remove_resource(SP_OBJECT_DOCUMENT(object), "font", object); if (((SPObjectClass *) parent_class)->release) { ((SPObjectClass *) parent_class)->release(object); @@ -161,55 +158,49 @@ static void sp_font_set(SPObject *object, unsigned int key, const gchar *value) double number; switch (key) { - case SP_ATTR_HORIZ_ORIGIN_X: + case SP_ATTR_HORIZ_ORIGIN_X: number = helperfns_read_number(value); if (number != font->horiz_origin_x){ font->horiz_origin_x = number; -g_warning(": SP_ATTR_HORIZ_ORIGIN_X: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - case SP_ATTR_HORIZ_ORIGIN_Y: + case SP_ATTR_HORIZ_ORIGIN_Y: number = helperfns_read_number(value); if (number != font->horiz_origin_y){ font->horiz_origin_y = number; -g_warning(": SP_ATTR_HORIZ_ORIGIN_Y: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - case SP_ATTR_HORIZ_ADV_X: + case SP_ATTR_HORIZ_ADV_X: number = helperfns_read_number(value); if (number != font->horiz_adv_x){ font->horiz_adv_x = number; -g_warning(": SP_ATTR_HORIZ_ADV_X: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - case SP_ATTR_VERT_ORIGIN_X: + case SP_ATTR_VERT_ORIGIN_X: number = helperfns_read_number(value); if (number != font->vert_origin_x){ font->vert_origin_x = number; -g_warning(": SP_ATTR_VERT_ORIGIN_X: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - case SP_ATTR_VERT_ORIGIN_Y: + case SP_ATTR_VERT_ORIGIN_Y: number = helperfns_read_number(value); if (number != font->vert_origin_y){ font->vert_origin_y = number; -g_warning(": SP_ATTR_VERT_ORIGIN_Y: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - case SP_ATTR_VERT_ADV_Y: + case SP_ATTR_VERT_ADV_Y: number = helperfns_read_number(value); if (number != font->vert_adv_y){ font->vert_adv_y = number; -g_warning(": SP_ATTR_VERT_ADV_Y: %f", number); object->requestModified(SP_OBJECT_MODIFIED_FLAG); } break; - default: + default: if (((SPObjectClass *) (parent_class))->set) { ((SPObjectClass *) (parent_class))->set(object, key, value); } @@ -239,12 +230,11 @@ sp_font_update(SPObject *object, SPCtx *ctx, guint flags) #define COPY_ATTR(rd,rs,key) (rd)->setAttribute((key), rs->attribute(key)); -static Inkscape::XML::Node *sp_font_write(SPObject *object, Inkscape::XML::Node *repr, guint flags) +static Inkscape::XML::Node *sp_font_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { SPFont *font = SP_FONT(object); if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { - Inkscape::XML::Document *xml_doc = sp_document_repr_doc(SP_OBJECT_DOCUMENT(object)); repr = xml_doc->createElement("svg:font"); } @@ -265,12 +255,12 @@ static Inkscape::XML::Node *sp_font_write(SPObject *object, Inkscape::XML::Node } if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, repr, flags); + ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); } return repr; } - +#endif //#ifdef ENABLE_SVG_FONTS /* Local Variables: mode:c++