diff options
| author | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:46:57 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2013-03-29 23:46:57 +0000 |
| commit | 957c3e4b7909d42c5a13f1b1dd583f877fc32259 (patch) | |
| tree | bd7bba5a2b55bdc882bd9c35d12897a922ba900b /src | |
| parent | Replaced calls to "pattern_new". (diff) | |
| download | inkscape-957c3e4b7909d42c5a13f1b1dd583f877fc32259.tar.gz inkscape-957c3e4b7909d42c5a13f1b1dd583f877fc32259.zip | |
Removed function pointers from SPObject and subclasses.
Added some missing virtual pads for classes that were hidden by preprocessor macros.
(bzr r11608.1.55)
Diffstat (limited to 'src')
78 files changed, 1520 insertions, 565 deletions
diff --git a/src/box3d-side.cpp b/src/box3d-side.cpp index c82344d46..e79d2f3e2 100644 --- a/src/box3d-side.cpp +++ b/src/box3d-side.cpp @@ -69,9 +69,9 @@ static void box3d_side_class_init(Box3DSideClass *klass) parent_class = (SPShapeClass *)g_type_class_ref (SP_TYPE_SHAPE); //sp_object_class->build = box3d_side_build; - sp_object_class->write = box3d_side_write; - sp_object_class->set = box3d_side_set; - sp_object_class->update = box3d_side_update; +// sp_object_class->write = box3d_side_write; +// sp_object_class->set = box3d_side_set; +// sp_object_class->update = box3d_side_update; //shape_class->set_shape = box3d_side_set_shape; } diff --git a/src/box3d.cpp b/src/box3d.cpp index d41e3757e..ba15e56e5 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -91,10 +91,10 @@ box3d_class_init(SPBox3DClass *klass) parent_class = (SPGroupClass *) g_type_class_ref(SP_TYPE_GROUP); //sp_object_class->build = box3d_build; - sp_object_class->release = box3d_release; - sp_object_class->set = box3d_set; - sp_object_class->write = box3d_write; - sp_object_class->update = box3d_update; +// sp_object_class->release = box3d_release; +// sp_object_class->set = box3d_set; +// sp_object_class->write = box3d_write; +// sp_object_class->update = box3d_update; // item_class->description = box3d_description; // item_class->set_transform = box3d_set_transform; diff --git a/src/color-profile.cpp b/src/color-profile.cpp index ac341dfe5..9be2ea335 100644 --- a/src/color-profile.cpp +++ b/src/color-profile.cpp @@ -220,10 +220,10 @@ void ColorProfile::classInit( ColorProfileClass *klass ) cprof_parent_class = static_cast<SPObjectClass*>(g_type_class_ref(SP_TYPE_OBJECT)); - sp_object_class->release = ColorProfile::release; - //sp_object_class->build = ColorProfile::build; - sp_object_class->set = ColorProfile::set; - sp_object_class->write = ColorProfile::write; +// sp_object_class->release = ColorProfile::release; +// //sp_object_class->build = ColorProfile::build; +// sp_object_class->set = ColorProfile::set; +// sp_object_class->write = ColorProfile::write; } CColorProfile::CColorProfile(ColorProfile* cp) : CObject(cp) { diff --git a/src/filters/blend.cpp b/src/filters/blend.cpp index 5292fdcbd..36811e8a1 100644 --- a/src/filters/blend.cpp +++ b/src/filters/blend.cpp @@ -74,10 +74,10 @@ sp_feBlend_class_init(SPFeBlendClass *klass) feBlend_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feBlend_build; - sp_object_class->release = sp_feBlend_release; - sp_object_class->write = sp_feBlend_write; - sp_object_class->set = sp_feBlend_set; - sp_object_class->update = sp_feBlend_update; +// sp_object_class->release = sp_feBlend_release; +// sp_object_class->write = sp_feBlend_write; +// sp_object_class->set = sp_feBlend_set; +// sp_object_class->update = sp_feBlend_update; //sp_primitive_class->build_renderer = sp_feBlend_build_renderer; } diff --git a/src/filters/colormatrix.cpp b/src/filters/colormatrix.cpp index 5e27043fd..b74b9e934 100644 --- a/src/filters/colormatrix.cpp +++ b/src/filters/colormatrix.cpp @@ -73,10 +73,10 @@ sp_feColorMatrix_class_init(SPFeColorMatrixClass *klass) feColorMatrix_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feColorMatrix_build; - sp_object_class->release = sp_feColorMatrix_release; - sp_object_class->write = sp_feColorMatrix_write; - sp_object_class->set = sp_feColorMatrix_set; - sp_object_class->update = sp_feColorMatrix_update; +// sp_object_class->release = sp_feColorMatrix_release; +// sp_object_class->write = sp_feColorMatrix_write; +// sp_object_class->set = sp_feColorMatrix_set; +// sp_object_class->update = sp_feColorMatrix_update; //sp_primitive_class->build_renderer = sp_feColorMatrix_build_renderer; } diff --git a/src/filters/componenttransfer-funcnode.cpp b/src/filters/componenttransfer-funcnode.cpp index 15436b452..0fa19b2b3 100644 --- a/src/filters/componenttransfer-funcnode.cpp +++ b/src/filters/componenttransfer-funcnode.cpp @@ -136,10 +136,10 @@ sp_fefuncnode_class_init(SPFeFuncNodeClass *klass) feFuncNode_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_fefuncnode_build; - sp_object_class->release = sp_fefuncnode_release; - sp_object_class->write = sp_fefuncnode_write; - sp_object_class->set = sp_fefuncnode_set; - sp_object_class->update = sp_fefuncnode_update; +// sp_object_class->release = sp_fefuncnode_release; +// sp_object_class->write = sp_fefuncnode_write; +// sp_object_class->set = sp_fefuncnode_set; +// sp_object_class->update = sp_fefuncnode_update; } CFeFuncNode::CFeFuncNode(SPFeFuncNode* funcnode) : CObject(funcnode) { diff --git a/src/filters/componenttransfer.cpp b/src/filters/componenttransfer.cpp index 792ff9a4d..623046201 100644 --- a/src/filters/componenttransfer.cpp +++ b/src/filters/componenttransfer.cpp @@ -71,12 +71,12 @@ sp_feComponentTransfer_class_init(SPFeComponentTransferClass *klass) feComponentTransfer_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feComponentTransfer_build; - sp_object_class->release = sp_feComponentTransfer_release; - sp_object_class->write = sp_feComponentTransfer_write; - sp_object_class->set = sp_feComponentTransfer_set; - sp_object_class->update = sp_feComponentTransfer_update; - sp_object_class->child_added = sp_feComponentTransfer_child_added; - sp_object_class->remove_child = sp_feComponentTransfer_remove_child; +// sp_object_class->release = sp_feComponentTransfer_release; +// sp_object_class->write = sp_feComponentTransfer_write; +// sp_object_class->set = sp_feComponentTransfer_set; +// sp_object_class->update = sp_feComponentTransfer_update; +// sp_object_class->child_added = sp_feComponentTransfer_child_added; +// sp_object_class->remove_child = sp_feComponentTransfer_remove_child; //sp_primitive_class->build_renderer = sp_feComponentTransfer_build_renderer; } diff --git a/src/filters/composite.cpp b/src/filters/composite.cpp index bd23243ea..9e4834cfc 100644 --- a/src/filters/composite.cpp +++ b/src/filters/composite.cpp @@ -69,10 +69,10 @@ sp_feComposite_class_init(SPFeCompositeClass *klass) feComposite_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feComposite_build; - sp_object_class->release = sp_feComposite_release; - sp_object_class->write = sp_feComposite_write; - sp_object_class->set = sp_feComposite_set; - sp_object_class->update = sp_feComposite_update; +// sp_object_class->release = sp_feComposite_release; +// sp_object_class->write = sp_feComposite_write; +// sp_object_class->set = sp_feComposite_set; +// sp_object_class->update = sp_feComposite_update; //sp_primitive_class->build_renderer = sp_feComposite_build_renderer; } diff --git a/src/filters/convolvematrix.cpp b/src/filters/convolvematrix.cpp index 759ebff16..d58b0de90 100644 --- a/src/filters/convolvematrix.cpp +++ b/src/filters/convolvematrix.cpp @@ -72,10 +72,10 @@ sp_feConvolveMatrix_class_init(SPFeConvolveMatrixClass *klass) feConvolveMatrix_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feConvolveMatrix_build; - sp_object_class->release = sp_feConvolveMatrix_release; - sp_object_class->write = sp_feConvolveMatrix_write; - sp_object_class->set = sp_feConvolveMatrix_set; - sp_object_class->update = sp_feConvolveMatrix_update; +// sp_object_class->release = sp_feConvolveMatrix_release; +// sp_object_class->write = sp_feConvolveMatrix_write; +// sp_object_class->set = sp_feConvolveMatrix_set; +// sp_object_class->update = sp_feConvolveMatrix_update; //sp_primitive_class->build_renderer = sp_feConvolveMatrix_build_renderer; } diff --git a/src/filters/diffuselighting.cpp b/src/filters/diffuselighting.cpp index 32e0b2438..64d6d97d0 100644 --- a/src/filters/diffuselighting.cpp +++ b/src/filters/diffuselighting.cpp @@ -83,13 +83,13 @@ sp_feDiffuseLighting_class_init(SPFeDiffuseLightingClass *klass) feDiffuseLighting_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feDiffuseLighting_build; - sp_object_class->release = sp_feDiffuseLighting_release; - sp_object_class->write = sp_feDiffuseLighting_write; - sp_object_class->set = sp_feDiffuseLighting_set; - sp_object_class->update = sp_feDiffuseLighting_update; - sp_object_class->child_added = sp_feDiffuseLighting_child_added; - sp_object_class->remove_child = sp_feDiffuseLighting_remove_child; - sp_object_class->order_changed = sp_feDiffuseLighting_order_changed; +// sp_object_class->release = sp_feDiffuseLighting_release; +// sp_object_class->write = sp_feDiffuseLighting_write; +// sp_object_class->set = sp_feDiffuseLighting_set; +// sp_object_class->update = sp_feDiffuseLighting_update; +// sp_object_class->child_added = sp_feDiffuseLighting_child_added; +// sp_object_class->remove_child = sp_feDiffuseLighting_remove_child; +// sp_object_class->order_changed = sp_feDiffuseLighting_order_changed; //sp_primitive_class->build_renderer = sp_feDiffuseLighting_build_renderer; } diff --git a/src/filters/displacementmap.cpp b/src/filters/displacementmap.cpp index 8e795564d..5d1141607 100644 --- a/src/filters/displacementmap.cpp +++ b/src/filters/displacementmap.cpp @@ -69,10 +69,10 @@ sp_feDisplacementMap_class_init(SPFeDisplacementMapClass *klass) feDisplacementMap_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feDisplacementMap_build; - sp_object_class->release = sp_feDisplacementMap_release; - sp_object_class->write = sp_feDisplacementMap_write; - sp_object_class->set = sp_feDisplacementMap_set; - sp_object_class->update = sp_feDisplacementMap_update; +// sp_object_class->release = sp_feDisplacementMap_release; +// sp_object_class->write = sp_feDisplacementMap_write; +// sp_object_class->set = sp_feDisplacementMap_set; +// sp_object_class->update = sp_feDisplacementMap_update; //sp_primitive_class->build_renderer = sp_feDisplacementMap_build_renderer; } diff --git a/src/filters/distantlight.cpp b/src/filters/distantlight.cpp index 9255275d3..797e1b45d 100644 --- a/src/filters/distantlight.cpp +++ b/src/filters/distantlight.cpp @@ -72,10 +72,10 @@ sp_fedistantlight_class_init(SPFeDistantLightClass *klass) feDistantLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_fedistantlight_build; - sp_object_class->release = sp_fedistantlight_release; - sp_object_class->write = sp_fedistantlight_write; - sp_object_class->set = sp_fedistantlight_set; - sp_object_class->update = sp_fedistantlight_update; +// sp_object_class->release = sp_fedistantlight_release; +// sp_object_class->write = sp_fedistantlight_write; +// sp_object_class->set = sp_fedistantlight_set; +// sp_object_class->update = sp_fedistantlight_update; } CFeDistantLight::CFeDistantLight(SPFeDistantLight* distantlight) : CObject(distantlight) { diff --git a/src/filters/flood.cpp b/src/filters/flood.cpp index b4a3cdc1a..c0d078f90 100644 --- a/src/filters/flood.cpp +++ b/src/filters/flood.cpp @@ -69,10 +69,10 @@ static void sp_feFlood_class_init(SPFeFloodClass *klass) feFlood_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feFlood_build; - sp_object_class->release = sp_feFlood_release; - sp_object_class->write = sp_feFlood_write; - sp_object_class->set = sp_feFlood_set; - sp_object_class->update = sp_feFlood_update; +// sp_object_class->release = sp_feFlood_release; +// sp_object_class->write = sp_feFlood_write; +// sp_object_class->set = sp_feFlood_set; +// sp_object_class->update = sp_feFlood_update; //sp_primitive_class->build_renderer = sp_feFlood_build_renderer; } diff --git a/src/filters/gaussian-blur.cpp b/src/filters/gaussian-blur.cpp index aa01d2226..cd948cd5a 100644 --- a/src/filters/gaussian-blur.cpp +++ b/src/filters/gaussian-blur.cpp @@ -74,10 +74,10 @@ sp_gaussianBlur_class_init(SPGaussianBlurClass *klass) gaussianBlur_parent_class = (SPFilterPrimitiveClass *)g_type_class_peek_parent(klass); //sp_object_class->build = sp_gaussianBlur_build; - sp_object_class->release = sp_gaussianBlur_release; - sp_object_class->write = sp_gaussianBlur_write; - sp_object_class->set = sp_gaussianBlur_set; - sp_object_class->update = sp_gaussianBlur_update; +// sp_object_class->release = sp_gaussianBlur_release; +// sp_object_class->write = sp_gaussianBlur_write; +// sp_object_class->set = sp_gaussianBlur_set; +// sp_object_class->update = sp_gaussianBlur_update; //sp_primitive_class->build_renderer = sp_gaussianBlur_build_renderer; } diff --git a/src/filters/image.cpp b/src/filters/image.cpp index 7e68d0932..07d3d5b07 100644 --- a/src/filters/image.cpp +++ b/src/filters/image.cpp @@ -71,10 +71,10 @@ static void sp_feImage_class_init(SPFeImageClass *klass) feImage_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feImage_build; - sp_object_class->release = sp_feImage_release; - sp_object_class->write = sp_feImage_write; - sp_object_class->set = sp_feImage_set; - sp_object_class->update = sp_feImage_update; +// sp_object_class->release = sp_feImage_release; +// sp_object_class->write = sp_feImage_write; +// sp_object_class->set = sp_feImage_set; +// sp_object_class->update = sp_feImage_update; //sp_primitive_class->build_renderer = sp_feImage_build_renderer; } diff --git a/src/filters/merge.cpp b/src/filters/merge.cpp index 73810483e..53d01f368 100644 --- a/src/filters/merge.cpp +++ b/src/filters/merge.cpp @@ -68,10 +68,10 @@ sp_feMerge_class_init(SPFeMergeClass *klass) feMerge_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feMerge_build; - sp_object_class->release = sp_feMerge_release; - sp_object_class->write = sp_feMerge_write; - sp_object_class->set = sp_feMerge_set; - sp_object_class->update = sp_feMerge_update; +// sp_object_class->release = sp_feMerge_release; +// sp_object_class->write = sp_feMerge_write; +// sp_object_class->set = sp_feMerge_set; +// sp_object_class->update = sp_feMerge_update; //sp_primitive_class->build_renderer = sp_feMerge_build_renderer; } diff --git a/src/filters/mergenode.cpp b/src/filters/mergenode.cpp index f5077b735..d1a855737 100644 --- a/src/filters/mergenode.cpp +++ b/src/filters/mergenode.cpp @@ -64,10 +64,10 @@ sp_feMergeNode_class_init(SPFeMergeNodeClass *klass) feMergeNode_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feMergeNode_build; - sp_object_class->release = sp_feMergeNode_release; - sp_object_class->write = sp_feMergeNode_write; - sp_object_class->set = sp_feMergeNode_set; - sp_object_class->update = sp_feMergeNode_update; +// sp_object_class->release = sp_feMergeNode_release; +// sp_object_class->write = sp_feMergeNode_write; +// sp_object_class->set = sp_feMergeNode_set; +// sp_object_class->update = sp_feMergeNode_update; } CFeMergeNode::CFeMergeNode(SPFeMergeNode* mergenode) : CObject(mergenode) { diff --git a/src/filters/morphology.cpp b/src/filters/morphology.cpp index 1fca4e2ac..beb903be5 100644 --- a/src/filters/morphology.cpp +++ b/src/filters/morphology.cpp @@ -70,10 +70,10 @@ sp_feMorphology_class_init(SPFeMorphologyClass *klass) feMorphology_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feMorphology_build; - sp_object_class->release = sp_feMorphology_release; - sp_object_class->write = sp_feMorphology_write; - sp_object_class->set = sp_feMorphology_set; - sp_object_class->update = sp_feMorphology_update; +// sp_object_class->release = sp_feMorphology_release; +// sp_object_class->write = sp_feMorphology_write; +// sp_object_class->set = sp_feMorphology_set; +// sp_object_class->update = sp_feMorphology_update; //sp_primitive_class->build_renderer = sp_feMorphology_build_renderer; } diff --git a/src/filters/offset.cpp b/src/filters/offset.cpp index d46e549cc..a62ecbad5 100644 --- a/src/filters/offset.cpp +++ b/src/filters/offset.cpp @@ -69,10 +69,10 @@ sp_feOffset_class_init(SPFeOffsetClass *klass) feOffset_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feOffset_build; - sp_object_class->release = sp_feOffset_release; - sp_object_class->write = sp_feOffset_write; - sp_object_class->set = sp_feOffset_set; - sp_object_class->update = sp_feOffset_update; +// sp_object_class->release = sp_feOffset_release; +// sp_object_class->write = sp_feOffset_write; +// sp_object_class->set = sp_feOffset_set; +// sp_object_class->update = sp_feOffset_update; //sp_primitive_class->build_renderer = sp_feOffset_build_renderer; } diff --git a/src/filters/pointlight.cpp b/src/filters/pointlight.cpp index 74ee41301..02af8afd8 100644 --- a/src/filters/pointlight.cpp +++ b/src/filters/pointlight.cpp @@ -72,10 +72,10 @@ sp_fepointlight_class_init(SPFePointLightClass *klass) fePointLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_fepointlight_build; - sp_object_class->release = sp_fepointlight_release; - sp_object_class->write = sp_fepointlight_write; - sp_object_class->set = sp_fepointlight_set; - sp_object_class->update = sp_fepointlight_update; +// sp_object_class->release = sp_fepointlight_release; +// sp_object_class->write = sp_fepointlight_write; +// sp_object_class->set = sp_fepointlight_set; +// sp_object_class->update = sp_fepointlight_update; } CFePointLight::CFePointLight(SPFePointLight* pointlight) : CObject(pointlight) { diff --git a/src/filters/specularlighting.cpp b/src/filters/specularlighting.cpp index f9fb26ddb..da41f8ac8 100644 --- a/src/filters/specularlighting.cpp +++ b/src/filters/specularlighting.cpp @@ -83,13 +83,13 @@ sp_feSpecularLighting_class_init(SPFeSpecularLightingClass *klass) feSpecularLighting_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feSpecularLighting_build; - sp_object_class->release = sp_feSpecularLighting_release; - sp_object_class->write = sp_feSpecularLighting_write; - sp_object_class->set = sp_feSpecularLighting_set; - sp_object_class->update = sp_feSpecularLighting_update; - sp_object_class->child_added = sp_feSpecularLighting_child_added; - sp_object_class->remove_child = sp_feSpecularLighting_remove_child; - sp_object_class->order_changed = sp_feSpecularLighting_order_changed; +// sp_object_class->release = sp_feSpecularLighting_release; +// sp_object_class->write = sp_feSpecularLighting_write; +// sp_object_class->set = sp_feSpecularLighting_set; +// sp_object_class->update = sp_feSpecularLighting_update; +// sp_object_class->child_added = sp_feSpecularLighting_child_added; +// sp_object_class->remove_child = sp_feSpecularLighting_remove_child; +// sp_object_class->order_changed = sp_feSpecularLighting_order_changed; //sp_primitive_class->build_renderer = sp_feSpecularLighting_build_renderer; } diff --git a/src/filters/spotlight.cpp b/src/filters/spotlight.cpp index 49cec8267..2fb9e18d5 100644 --- a/src/filters/spotlight.cpp +++ b/src/filters/spotlight.cpp @@ -72,10 +72,10 @@ sp_fespotlight_class_init(SPFeSpotLightClass *klass) feSpotLight_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_fespotlight_build; - sp_object_class->release = sp_fespotlight_release; - sp_object_class->write = sp_fespotlight_write; - sp_object_class->set = sp_fespotlight_set; - sp_object_class->update = sp_fespotlight_update; +// sp_object_class->release = sp_fespotlight_release; +// sp_object_class->write = sp_fespotlight_write; +// sp_object_class->set = sp_fespotlight_set; +// sp_object_class->update = sp_fespotlight_update; } CFeSpotLight::CFeSpotLight(SPFeSpotLight* spotlight) : CObject(spotlight) { diff --git a/src/filters/tile.cpp b/src/filters/tile.cpp index fd9fbe1f6..700af4b47 100644 --- a/src/filters/tile.cpp +++ b/src/filters/tile.cpp @@ -66,10 +66,10 @@ sp_feTile_class_init(SPFeTileClass *klass) feTile_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feTile_build; - sp_object_class->release = sp_feTile_release; - sp_object_class->write = sp_feTile_write; - sp_object_class->set = sp_feTile_set; - sp_object_class->update = sp_feTile_update; +// sp_object_class->release = sp_feTile_release; +// sp_object_class->write = sp_feTile_write; +// sp_object_class->set = sp_feTile_set; +// sp_object_class->update = sp_feTile_update; //sp_primitive_class->build_renderer = sp_feTile_build_renderer; } diff --git a/src/filters/turbulence.cpp b/src/filters/turbulence.cpp index 11b86dfe4..ce6921073 100644 --- a/src/filters/turbulence.cpp +++ b/src/filters/turbulence.cpp @@ -72,10 +72,10 @@ sp_feTurbulence_class_init(SPFeTurbulenceClass *klass) feTurbulence_parent_class = (SPFilterPrimitiveClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_feTurbulence_build; - sp_object_class->release = sp_feTurbulence_release; - sp_object_class->write = sp_feTurbulence_write; - sp_object_class->set = sp_feTurbulence_set; - sp_object_class->update = sp_feTurbulence_update; +// sp_object_class->release = sp_feTurbulence_release; +// sp_object_class->write = sp_feTurbulence_write; +// sp_object_class->set = sp_feTurbulence_set; +// sp_object_class->update = sp_feTurbulence_update; //sp_primitive_class->build_renderer = sp_feTurbulence_build_renderer; } diff --git a/src/live_effects/lpeobject.cpp b/src/live_effects/lpeobject.cpp index e9801fc11..0f9d09511 100644 --- a/src/live_effects/lpeobject.cpp +++ b/src/live_effects/lpeobject.cpp @@ -67,10 +67,10 @@ LivePathEffectObject::livepatheffect_class_init(LivePathEffectObjectClass *klass livepatheffect_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = livepatheffect_build; - sp_object_class->release = livepatheffect_release; - - sp_object_class->set = livepatheffect_set; - sp_object_class->write = livepatheffect_write; +// sp_object_class->release = livepatheffect_release; +// +// sp_object_class->set = livepatheffect_set; +// sp_object_class->write = livepatheffect_write; } CLivePathEffectObject::CLivePathEffectObject(LivePathEffectObject* lpeo) : CObject(lpeo) { diff --git a/src/marker.cpp b/src/marker.cpp index 8ee4813c6..0018612f6 100644 --- a/src/marker.cpp +++ b/src/marker.cpp @@ -87,10 +87,10 @@ static void sp_marker_class_init(SPMarkerClass *klass) parent_class = reinterpret_cast<SPGroupClass *>(g_type_class_ref(SP_TYPE_GROUP)); //sp_object_class->build = sp_marker_build; - sp_object_class->release = sp_marker_release; - sp_object_class->set = sp_marker_set; - sp_object_class->update = sp_marker_update; - sp_object_class->write = sp_marker_write; +// sp_object_class->release = sp_marker_release; +// sp_object_class->set = sp_marker_set; +// sp_object_class->update = sp_marker_update; +// sp_object_class->write = sp_marker_write; // sp_item_class->show = sp_marker_private_show; // sp_item_class->hide = sp_marker_private_hide; diff --git a/src/persp3d.cpp b/src/persp3d.cpp index 549dc2445..9c7f7b46c 100644 --- a/src/persp3d.cpp +++ b/src/persp3d.cpp @@ -95,10 +95,10 @@ static void persp3d_class_init(Persp3DClass *klass) persp3d_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = persp3d_build; - sp_object_class->release = persp3d_release; - sp_object_class->set = persp3d_set; - sp_object_class->update = persp3d_update; - sp_object_class->write = persp3d_write; +// sp_object_class->release = persp3d_release; +// sp_object_class->set = persp3d_set; +// sp_object_class->update = persp3d_update; +// sp_object_class->write = persp3d_write; } CPersp3D::CPersp3D(Persp3D* persp3d) : CObject(persp3d) { diff --git a/src/sp-anchor.cpp b/src/sp-anchor.cpp index 6659712c6..151603850 100644 --- a/src/sp-anchor.cpp +++ b/src/sp-anchor.cpp @@ -69,9 +69,9 @@ static void sp_anchor_class_init(SPAnchorClass *ac) parent_class = (SPGroupClass *) g_type_class_ref(SP_TYPE_GROUP); //sp_object_class->build = sp_anchor_build; - sp_object_class->release = sp_anchor_release; - sp_object_class->set = sp_anchor_set; - sp_object_class->write = sp_anchor_write; +// sp_object_class->release = sp_anchor_release; +// sp_object_class->set = sp_anchor_set; +// sp_object_class->write = sp_anchor_write; // item_class->description = sp_anchor_description; // item_class->event = sp_anchor_event; diff --git a/src/sp-animation.cpp b/src/sp-animation.cpp index 67181bba6..f5e224ef1 100644 --- a/src/sp-animation.cpp +++ b/src/sp-animation.cpp @@ -69,8 +69,8 @@ static void sp_animation_class_init(SPAnimationClass *klass) animation_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_animation_build; - sp_object_class->release = sp_animation_release; - sp_object_class->set = sp_animation_set; +// sp_object_class->release = sp_animation_release; +// sp_object_class->set = sp_animation_set; } CAnimation::CAnimation(SPAnimation* animation) : CObject(animation) { @@ -188,8 +188,8 @@ static void sp_ianimation_class_init(SPIAnimationClass *klass) ianimation_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_ianimation_build; - sp_object_class->release = sp_ianimation_release; - sp_object_class->set = sp_ianimation_set; +// sp_object_class->release = sp_ianimation_release; +// sp_object_class->set = sp_ianimation_set; } CIAnimation::CIAnimation(SPIAnimation* animation) : CAnimation(animation) { @@ -299,8 +299,8 @@ static void sp_animate_class_init(SPAnimateClass *klass) animate_parent_class = (SPIAnimationClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_animate_build; - sp_object_class->release = sp_animate_release; - sp_object_class->set = sp_animate_set; +// sp_object_class->release = sp_animate_release; +// sp_object_class->set = sp_animate_set; } CAnimate::CAnimate(SPAnimate* animate) : CIAnimation(animate) { diff --git a/src/sp-clippath.cpp b/src/sp-clippath.cpp index da4e2c0d1..3ad4a7cd1 100644 --- a/src/sp-clippath.cpp +++ b/src/sp-clippath.cpp @@ -69,12 +69,12 @@ void SPClipPathClass::sp_clippath_class_init(SPClipPathClass *klass) static_parent_class = (SPObjectGroupClass*)g_type_class_ref(SP_TYPE_OBJECTGROUP); //sp_object_class->build = SPClipPath::build; - sp_object_class->release = SPClipPath::release; - sp_object_class->set = SPClipPath::set; - sp_object_class->child_added = SPClipPath::childAdded; - sp_object_class->update = SPClipPath::update; - sp_object_class->modified = SPClipPath::modified; - sp_object_class->write = SPClipPath::write; +// sp_object_class->release = SPClipPath::release; +// sp_object_class->set = SPClipPath::set; +// sp_object_class->child_added = SPClipPath::childAdded; +// sp_object_class->update = SPClipPath::update; +// sp_object_class->modified = SPClipPath::modified; +// sp_object_class->write = SPClipPath::write; } CClipPath::CClipPath(SPClipPath* clippath) : CObjectGroup(clippath) { diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 9cd926d5b..47df56141 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -50,10 +50,10 @@ void SPDefsClass::sp_defs_class_init(SPDefsClass *dc) static_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); SPObjectClass *sp_object_class = (SPObjectClass *) dc; - sp_object_class->release = SPDefs::release; - sp_object_class->update = SPDefs::update; - sp_object_class->modified = SPDefs::modified; - sp_object_class->write = SPDefs::write; +// sp_object_class->release = SPDefs::release; +// sp_object_class->update = SPDefs::update; +// sp_object_class->modified = SPDefs::modified; +// sp_object_class->write = SPDefs::write; } CDefs::CDefs(SPDefs* defs) : CObject(defs) { diff --git a/src/sp-desc.cpp b/src/sp-desc.cpp index 6178ccbbf..5307854f0 100644 --- a/src/sp-desc.cpp +++ b/src/sp-desc.cpp @@ -47,7 +47,7 @@ static void sp_desc_class_init(SPDescClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *)(klass); desc_parent_class = (SPObjectClass *)(g_type_class_ref(SP_TYPE_OBJECT)); - sp_object_class->write = sp_desc_write; +// sp_object_class->write = sp_desc_write; } CDesc::CDesc(SPDesc* desc) : CObject(desc) { diff --git a/src/sp-ellipse.cpp b/src/sp-ellipse.cpp index f5c0c160c..c215e5b19 100644 --- a/src/sp-ellipse.cpp +++ b/src/sp-ellipse.cpp @@ -112,8 +112,8 @@ static void sp_genericellipse_class_init(SPGenericEllipseClass *klass) ge_parent_class = (SPShapeClass*) g_type_class_ref(SP_TYPE_SHAPE); - sp_object_class->update = sp_genericellipse_update; - sp_object_class->write = sp_genericellipse_write; +// sp_object_class->update = sp_genericellipse_update; +// sp_object_class->write = sp_genericellipse_write; //item_class->snappoints = sp_genericellipse_snappoints; @@ -462,8 +462,8 @@ static void sp_ellipse_class_init(SPEllipseClass *klass) ellipse_parent_class = (SPGenericEllipseClass*) g_type_class_ref(SP_TYPE_GENERICELLIPSE); //sp_object_class->build = sp_ellipse_build; - sp_object_class->write = sp_ellipse_write; - sp_object_class->set = sp_ellipse_set; +// sp_object_class->write = sp_ellipse_write; +// sp_object_class->set = sp_ellipse_set; // item_class->description = sp_ellipse_description; } @@ -637,8 +637,8 @@ sp_circle_class_init(SPCircleClass *klass) circle_parent_class = (SPGenericEllipseClass*) g_type_class_ref(SP_TYPE_GENERICELLIPSE); //sp_object_class->build = sp_circle_build; - sp_object_class->write = sp_circle_write; - sp_object_class->set = sp_circle_set; +// sp_object_class->write = sp_circle_write; +// sp_object_class->set = sp_circle_set; // item_class->description = sp_circle_description; } @@ -789,9 +789,9 @@ sp_arc_class_init(SPArcClass *klass) arc_parent_class = (SPGenericEllipseClass*) g_type_class_ref(SP_TYPE_GENERICELLIPSE); //sp_object_class->build = sp_arc_build; - sp_object_class->write = sp_arc_write; - sp_object_class->set = sp_arc_set; - sp_object_class->modified = sp_arc_modified; +// sp_object_class->write = sp_arc_write; +// sp_object_class->set = sp_arc_set; +// sp_object_class->modified = sp_arc_modified; // item_class->description = sp_arc_description; } diff --git a/src/sp-filter-primitive.cpp b/src/sp-filter-primitive.cpp index f389f7adb..ed72175f7 100644 --- a/src/sp-filter-primitive.cpp +++ b/src/sp-filter-primitive.cpp @@ -66,10 +66,10 @@ static void sp_filter_primitive_class_init(SPFilterPrimitiveClass *klass) filter_primitive_parent_class = static_cast<SPObjectClass *>(g_type_class_peek_parent(klass)); // sp_object_class->build = sp_filter_primitive_build; - sp_object_class->release = sp_filter_primitive_release; - sp_object_class->write = sp_filter_primitive_write; - sp_object_class->set = sp_filter_primitive_set; - sp_object_class->update = sp_filter_primitive_update; +// sp_object_class->release = sp_filter_primitive_release; +// sp_object_class->write = sp_filter_primitive_write; +// sp_object_class->set = sp_filter_primitive_set; +// sp_object_class->update = sp_filter_primitive_update; /* This should never be called on this base class, but only on derived * classes. */ diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index db6b933e7..1af450c8b 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -87,12 +87,12 @@ sp_filter_class_init(SPFilterClass *klass) filter_parent_class = (SPObjectClass*)g_type_class_peek_parent(klass); //sp_object_class->build = sp_filter_build; - sp_object_class->release = sp_filter_release; - sp_object_class->write = sp_filter_write; - sp_object_class->set = sp_filter_set; - sp_object_class->update = sp_filter_update; - sp_object_class->child_added = sp_filter_child_added; - sp_object_class->remove_child = sp_filter_remove_child; +// sp_object_class->release = sp_filter_release; +// sp_object_class->write = sp_filter_write; +// sp_object_class->set = sp_filter_set; +// sp_object_class->update = sp_filter_update; +// sp_object_class->child_added = sp_filter_child_added; +// sp_object_class->remove_child = sp_filter_remove_child; } CFilter::CFilter(SPFilter* filter) : CObject(filter) { diff --git a/src/sp-flowdiv.cpp b/src/sp-flowdiv.cpp index 556abfdf0..ca1e1db3c 100644 --- a/src/sp-flowdiv.cpp +++ b/src/sp-flowdiv.cpp @@ -87,11 +87,11 @@ static void sp_flowdiv_class_init(SPFlowdivClass *klass) flowdiv_parent_class = reinterpret_cast<SPItemClass *>(g_type_class_ref(SP_TYPE_ITEM)); //sp_object_class->build = sp_flowdiv_build; - sp_object_class->set = sp_flowdiv_set; - sp_object_class->release = sp_flowdiv_release; - sp_object_class->write = sp_flowdiv_write; - sp_object_class->update = sp_flowdiv_update; - sp_object_class->modified = sp_flowdiv_modified; +// sp_object_class->set = sp_flowdiv_set; +// sp_object_class->release = sp_flowdiv_release; +// sp_object_class->write = sp_flowdiv_write; +// sp_object_class->update = sp_flowdiv_update; +// sp_object_class->modified = sp_flowdiv_modified; } CFlowdiv::CFlowdiv(SPFlowdiv* flowdiv) : CItem(flowdiv) { @@ -298,11 +298,11 @@ static void sp_flowtspan_class_init(SPFlowtspanClass *klass) flowtspan_parent_class = reinterpret_cast<SPItemClass *>(g_type_class_ref(SP_TYPE_ITEM)); //sp_object_class->build = sp_flowtspan_build; - sp_object_class->set = sp_flowtspan_set; - sp_object_class->release = sp_flowtspan_release; - sp_object_class->write = sp_flowtspan_write; - sp_object_class->update = sp_flowtspan_update; - sp_object_class->modified = sp_flowtspan_modified; +// sp_object_class->set = sp_flowtspan_set; +// sp_object_class->release = sp_flowtspan_release; +// sp_object_class->write = sp_flowtspan_write; +// sp_object_class->update = sp_flowtspan_update; +// sp_object_class->modified = sp_flowtspan_modified; } CFlowtspan::CFlowtspan(SPFlowtspan* flowtspan) : CItem(flowtspan) { @@ -509,11 +509,11 @@ static void sp_flowpara_class_init(SPFlowparaClass *klass) flowpara_parent_class = reinterpret_cast<SPItemClass *>(g_type_class_ref(SP_TYPE_ITEM)); //sp_object_class->build = sp_flowpara_build; - sp_object_class->set = sp_flowpara_set; - sp_object_class->release = sp_flowpara_release; - sp_object_class->write = sp_flowpara_write; - sp_object_class->update = sp_flowpara_update; - sp_object_class->modified = sp_flowpara_modified; +// sp_object_class->set = sp_flowpara_set; +// sp_object_class->release = sp_flowpara_release; +// sp_object_class->write = sp_flowpara_write; +// sp_object_class->update = sp_flowpara_update; +// sp_object_class->modified = sp_flowpara_modified; } CFlowpara::CFlowpara(SPFlowpara* flowpara) : CItem(flowpara) { @@ -715,9 +715,9 @@ static void sp_flowline_class_init(SPFlowlineClass *klass) flowline_parent_class = reinterpret_cast<SPObjectClass *>(g_type_class_ref(SP_TYPE_OBJECT)); - sp_object_class->release = sp_flowline_release; - sp_object_class->write = sp_flowline_write; - sp_object_class->modified = sp_flowline_modified; +// sp_object_class->release = sp_flowline_release; +// sp_object_class->write = sp_flowline_write; +// sp_object_class->modified = sp_flowline_modified; } CFlowline::CFlowline(SPFlowline* flowline) : CObject(flowline) { @@ -809,9 +809,9 @@ static void sp_flowregionbreak_class_init(SPFlowregionbreakClass *klass) flowregionbreak_parent_class = reinterpret_cast<SPObjectClass *>(g_type_class_ref(SP_TYPE_OBJECT)); - sp_object_class->release = sp_flowregionbreak_release; - sp_object_class->write = sp_flowregionbreak_write; - sp_object_class->modified = sp_flowregionbreak_modified; +// sp_object_class->release = sp_flowregionbreak_release; +// sp_object_class->write = sp_flowregionbreak_write; +// sp_object_class->modified = sp_flowregionbreak_modified; } CFlowregionbreak::CFlowregionbreak(SPFlowregionbreak* flowregionbreak) : CObject(flowregionbreak) { diff --git a/src/sp-flowregion.cpp b/src/sp-flowregion.cpp index a72b2bea0..b81e18d32 100644 --- a/src/sp-flowregion.cpp +++ b/src/sp-flowregion.cpp @@ -92,11 +92,11 @@ sp_flowregion_class_init (SPFlowregionClass *klass) object_class->dispose = sp_flowregion_dispose; - sp_object_class->child_added = sp_flowregion_child_added; - sp_object_class->remove_child = sp_flowregion_remove_child; - sp_object_class->update = sp_flowregion_update; - sp_object_class->modified = sp_flowregion_modified; - sp_object_class->write = sp_flowregion_write; +// sp_object_class->child_added = sp_flowregion_child_added; +// sp_object_class->remove_child = sp_flowregion_remove_child; +// sp_object_class->update = sp_flowregion_update; +// sp_object_class->modified = sp_flowregion_modified; +// sp_object_class->write = sp_flowregion_write; // item_class->description = sp_flowregion_description; } @@ -337,11 +337,11 @@ sp_flowregionexclude_class_init (SPFlowregionExcludeClass *klass) object_class->dispose = sp_flowregionexclude_dispose; - sp_object_class->child_added = sp_flowregionexclude_child_added; - sp_object_class->remove_child = sp_flowregionexclude_remove_child; - sp_object_class->update = sp_flowregionexclude_update; - sp_object_class->modified = sp_flowregionexclude_modified; - sp_object_class->write = sp_flowregionexclude_write; +// sp_object_class->child_added = sp_flowregionexclude_child_added; +// sp_object_class->remove_child = sp_flowregionexclude_remove_child; +// sp_object_class->update = sp_flowregionexclude_update; +// sp_object_class->modified = sp_flowregionexclude_modified; +// sp_object_class->write = sp_flowregionexclude_write; // item_class->description = sp_flowregionexclude_description; } diff --git a/src/sp-flowtext.cpp b/src/sp-flowtext.cpp index b4d80e11d..7ee5827b0 100644 --- a/src/sp-flowtext.cpp +++ b/src/sp-flowtext.cpp @@ -88,13 +88,13 @@ sp_flowtext_class_init(SPFlowtextClass *klass) object_class->dispose = sp_flowtext_dispose; - sp_object_class->child_added = sp_flowtext_child_added; - sp_object_class->remove_child = sp_flowtext_remove_child; - sp_object_class->update = sp_flowtext_update; - sp_object_class->modified = sp_flowtext_modified; - sp_object_class->write = sp_flowtext_write; - //sp_object_class->build = sp_flowtext_build; - sp_object_class->set = sp_flowtext_set; +// sp_object_class->child_added = sp_flowtext_child_added; +// sp_object_class->remove_child = sp_flowtext_remove_child; +// sp_object_class->update = sp_flowtext_update; +// sp_object_class->modified = sp_flowtext_modified; +// sp_object_class->write = sp_flowtext_write; +// //sp_object_class->build = sp_flowtext_build; +// sp_object_class->set = sp_flowtext_set; // item_class->bbox = sp_flowtext_bbox; // item_class->print = sp_flowtext_print; diff --git a/src/sp-font-face.cpp b/src/sp-font-face.cpp index 6ca8f850c..42b447635 100644 --- a/src/sp-font-face.cpp +++ b/src/sp-font-face.cpp @@ -305,16 +305,26 @@ static void sp_fontface_class_init(SPFontFaceClass *fc) parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_fontface_build; - sp_object_class->release = sp_fontface_release; - sp_object_class->set = sp_fontface_set; - sp_object_class->write = sp_fontface_write; - sp_object_class->child_added = sp_fontface_child_added; - sp_object_class->remove_child = sp_fontface_remove_child; - sp_object_class->update = sp_fontface_update; +// sp_object_class->release = sp_fontface_release; +// sp_object_class->set = sp_fontface_set; +// sp_object_class->write = sp_fontface_write; +// sp_object_class->child_added = sp_fontface_child_added; +// sp_object_class->remove_child = sp_fontface_remove_child; +// sp_object_class->update = sp_fontface_update; +} + +CFontFace::CFontFace(SPFontFace* face) : CObject(face) { + this->spfontface = face; +} + +CFontFace::~CFontFace() { } static void sp_fontface_init(SPFontFace *face) { + face->cfontface = new CFontFace(face); + face->cobject = face->cfontface; + std::vector<FontFaceStyleType> style; style.push_back(SP_FONTFACE_STYLE_ALL); face->font_style = style; @@ -367,46 +377,88 @@ static void sp_fontface_init(SPFontFace *face) */ } -static void sp_fontface_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ -// if (((SPObjectClass *) (parent_class))->build) { -// ((SPObjectClass *) (parent_class))->build(object, document, repr); -// } - // CPPIFY: todo - - object->readAttr( "font-family" ); - object->readAttr( "font-style" ); - object->readAttr( "font-variant" ); - object->readAttr( "font-weight" ); - object->readAttr( "font-stretch" ); - object->readAttr( "font-size" ); - object->readAttr( "unicode-range" ); - object->readAttr( "units-per-em" ); - object->readAttr( "panose-1" ); - object->readAttr( "stem-v" ); - object->readAttr( "stem-h" ); - object->readAttr( "slope" ); - object->readAttr( "cap-height" ); - object->readAttr( "x-height" ); - object->readAttr( "accent-height" ); - object->readAttr( "ascent" ); - object->readAttr( "descent" ); - object->readAttr( "widths" ); - object->readAttr( "bbox" ); - object->readAttr( "ideographic" ); - object->readAttr( "alphabetic" ); - object->readAttr( "mathematical" ); - object->readAttr( "ranging" ); - object->readAttr( "v-ideogaphic" ); - object->readAttr( "v-alphabetic" ); - object->readAttr( "v-mathematical" ); - object->readAttr( "v-hanging" ); - object->readAttr( "underline-position" ); - object->readAttr( "underline-thickness" ); - object->readAttr( "strikethrough-position" ); - object->readAttr( "strikethrough-thickness" ); - object->readAttr( "overline-position" ); - object->readAttr( "overline-thickness" ); +//static void sp_fontface_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +//{ +//// if (((SPObjectClass *) (parent_class))->build) { +//// ((SPObjectClass *) (parent_class))->build(object, document, repr); +//// } +// +// object->readAttr( "font-family" ); +// object->readAttr( "font-style" ); +// object->readAttr( "font-variant" ); +// object->readAttr( "font-weight" ); +// object->readAttr( "font-stretch" ); +// object->readAttr( "font-size" ); +// object->readAttr( "unicode-range" ); +// object->readAttr( "units-per-em" ); +// object->readAttr( "panose-1" ); +// object->readAttr( "stem-v" ); +// object->readAttr( "stem-h" ); +// object->readAttr( "slope" ); +// object->readAttr( "cap-height" ); +// object->readAttr( "x-height" ); +// object->readAttr( "accent-height" ); +// object->readAttr( "ascent" ); +// object->readAttr( "descent" ); +// object->readAttr( "widths" ); +// object->readAttr( "bbox" ); +// object->readAttr( "ideographic" ); +// object->readAttr( "alphabetic" ); +// object->readAttr( "mathematical" ); +// object->readAttr( "ranging" ); +// object->readAttr( "v-ideogaphic" ); +// object->readAttr( "v-alphabetic" ); +// object->readAttr( "v-mathematical" ); +// object->readAttr( "v-hanging" ); +// object->readAttr( "underline-position" ); +// object->readAttr( "underline-thickness" ); +// object->readAttr( "strikethrough-position" ); +// object->readAttr( "strikethrough-thickness" ); +// object->readAttr( "overline-position" ); +// object->readAttr( "overline-thickness" ); +//} + +void CFontFace::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { + // if (((SPObjectClass *) (parent_class))->build) { + // ((SPObjectClass *) (parent_class))->build(object, document, repr); + // } + CObject::onBuild(document, repr); + + SPFontFace* object = this->spfontface; + + object->readAttr( "font-family" ); + object->readAttr( "font-style" ); + object->readAttr( "font-variant" ); + object->readAttr( "font-weight" ); + object->readAttr( "font-stretch" ); + object->readAttr( "font-size" ); + object->readAttr( "unicode-range" ); + object->readAttr( "units-per-em" ); + object->readAttr( "panose-1" ); + object->readAttr( "stem-v" ); + object->readAttr( "stem-h" ); + object->readAttr( "slope" ); + object->readAttr( "cap-height" ); + object->readAttr( "x-height" ); + object->readAttr( "accent-height" ); + object->readAttr( "ascent" ); + object->readAttr( "descent" ); + object->readAttr( "widths" ); + object->readAttr( "bbox" ); + object->readAttr( "ideographic" ); + object->readAttr( "alphabetic" ); + object->readAttr( "mathematical" ); + object->readAttr( "ranging" ); + object->readAttr( "v-ideogaphic" ); + object->readAttr( "v-alphabetic" ); + object->readAttr( "v-mathematical" ); + object->readAttr( "v-hanging" ); + object->readAttr( "underline-position" ); + object->readAttr( "underline-thickness" ); + object->readAttr( "strikethrough-position" ); + object->readAttr( "strikethrough-thickness" ); + object->readAttr( "overline-position" ); + object->readAttr( "overline-thickness" ); } static void sp_fontface_children_modified(SPFontFace */*sp_fontface*/) @@ -419,10 +471,24 @@ static void sp_fontface_children_modified(SPFontFace */*sp_fontface*/) static void sp_fontface_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref) { +// SPFontFace *f = SP_FONTFACE(object); +// +// if (((SPObjectClass *) parent_class)->child_added) +// (* ((SPObjectClass *) parent_class)->child_added)(object, child, ref); +// +// sp_fontface_children_modified(f); +// object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); + ((SPFontFace*)object)->cfontface->onChildAdded(child, ref); +} + +void CFontFace::onChildAdded(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) { + SPFontFace* object = this->spfontface; + SPFontFace *f = SP_FONTFACE(object); - if (((SPObjectClass *) parent_class)->child_added) - (* ((SPObjectClass *) parent_class)->child_added)(object, child, ref); +// if (((SPObjectClass *) parent_class)->child_added) +// (* ((SPObjectClass *) parent_class)->child_added)(object, child, ref); + CObject::onChildAdded(child, ref); sp_fontface_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -435,10 +501,24 @@ sp_fontface_child_added(SPObject *object, Inkscape::XML::Node *child, Inkscape:: static void sp_fontface_remove_child(SPObject *object, Inkscape::XML::Node *child) { +// SPFontFace *f = SP_FONTFACE(object); +// +// if (((SPObjectClass *) parent_class)->remove_child) +// (* ((SPObjectClass *) parent_class)->remove_child)(object, child); +// +// sp_fontface_children_modified(f); +// object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); + ((SPFontFace*)object)->cfontface->onRemoveChild(child); +} + +void CFontFace::onRemoveChild(Inkscape::XML::Node *child) { + SPFontFace* object = this->spfontface; + SPFontFace *f = SP_FONTFACE(object); - if (((SPObjectClass *) parent_class)->remove_child) - (* ((SPObjectClass *) parent_class)->remove_child)(object, child); +// if (((SPObjectClass *) parent_class)->remove_child) +// (* ((SPObjectClass *) parent_class)->remove_child)(object, child); + CObject::onRemoveChild(child); sp_fontface_children_modified(f); object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG); @@ -448,13 +528,311 @@ static void sp_fontface_release(SPObject *object) { //SPFontFace *font = SP_FONTFACE(object); - if (((SPObjectClass *) parent_class)->release) { - ((SPObjectClass *) parent_class)->release(object); - } +// if (((SPObjectClass *) parent_class)->release) { +// ((SPObjectClass *) parent_class)->release(object); +// } + ((SPFontFace*)object)->cfontface->onRelease(); +} + +void CFontFace::onRelease() { + CObject::onRelease(); } static void sp_fontface_set(SPObject *object, unsigned int key, const gchar *value) { +// SPFontFace *face = SP_FONTFACE(object); +// std::vector<FontFaceStyleType> style; +// std::vector<FontFaceVariantType> variant; +// std::vector<FontFaceWeightType> weight; +// std::vector<FontFaceStretchType> stretch; +// +// switch (key) { +// case SP_PROP_FONT_FAMILY: +// if (face->font_family) { +// g_free(face->font_family); +// } +// face->font_family = g_strdup(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// case SP_PROP_FONT_STYLE: +// style = sp_read_fontFaceStyleType(value); +// if (face->font_style.size() != style.size()){ +// face->font_style = style; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } else { +// for (unsigned int i=0;i<style.size();i++){ +// if (style[i] != face->font_style[i]){ +// face->font_style = style; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// } +// } +// break; +// case SP_PROP_FONT_VARIANT: +// variant = sp_read_fontFaceVariantType(value); +// if (face->font_variant.size() != variant.size()){ +// face->font_variant = variant; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } else { +// for (unsigned int i=0;i<variant.size();i++){ +// if (variant[i] != face->font_variant[i]){ +// face->font_variant = variant; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// } +// } +// break; +// case SP_PROP_FONT_WEIGHT: +// weight = sp_read_fontFaceWeightType(value); +// if (face->font_weight.size() != weight.size()){ +// face->font_weight = weight; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } else { +// for (unsigned int i=0;i<weight.size();i++){ +// if (weight[i] != face->font_weight[i]){ +// face->font_weight = weight; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// } +// } +// break; +// case SP_PROP_FONT_STRETCH: +// stretch = sp_read_fontFaceStretchType(value); +// if (face->font_stretch.size() != stretch.size()){ +// face->font_stretch = stretch; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } else { +// for (unsigned int i=0;i<stretch.size();i++){ +// if (stretch[i] != face->font_stretch[i]){ +// face->font_stretch = stretch; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// } +// } +// break; +// case SP_ATTR_UNITS_PER_EM: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->units_per_em){ +// face->units_per_em = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_STEMV: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->stemv){ +// face->stemv = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_STEMH: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->stemh){ +// face->stemh = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_SLOPE: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->slope){ +// face->slope = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_CAP_HEIGHT: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->cap_height){ +// face->cap_height = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_X_HEIGHT: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->x_height){ +// face->x_height = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_ACCENT_HEIGHT: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->accent_height){ +// face->accent_height = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_ASCENT: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->ascent){ +// face->ascent = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_DESCENT: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->descent){ +// face->descent = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_IDEOGRAPHIC: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->ideographic){ +// face->ideographic = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_ALPHABETIC: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->alphabetic){ +// face->alphabetic = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_MATHEMATICAL: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->mathematical){ +// face->mathematical = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_HANGING: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->hanging){ +// face->hanging = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_V_IDEOGRAPHIC: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->v_ideographic){ +// face->v_ideographic = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_V_ALPHABETIC: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->v_alphabetic){ +// face->v_alphabetic = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_V_MATHEMATICAL: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->v_mathematical){ +// face->v_mathematical = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_V_HANGING: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->v_hanging){ +// face->v_hanging = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_UNDERLINE_POSITION: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->underline_position){ +// face->underline_position = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_UNDERLINE_THICKNESS: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->underline_thickness){ +// face->underline_thickness = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_STRIKETHROUGH_POSITION: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->strikethrough_position){ +// face->strikethrough_position = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_STRIKETHROUGH_THICKNESS: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->strikethrough_thickness){ +// face->strikethrough_thickness = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_OVERLINE_POSITION: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->overline_position){ +// face->overline_position = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_OVERLINE_THICKNESS: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != face->overline_thickness){ +// face->overline_thickness = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// default: +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } +// break; +// } + ((SPFontFace*)object)->cfontface->onSet(key, value); +} + +void CFontFace::onSet(unsigned int key, const gchar *value) { + SPFontFace* object = this->spfontface; + SPFontFace *face = SP_FONTFACE(object); std::vector<FontFaceStyleType> style; std::vector<FontFaceVariantType> variant; @@ -737,9 +1115,10 @@ static void sp_fontface_set(SPObject *object, unsigned int key, const gchar *val break; } default: - if (((SPObjectClass *) (parent_class))->set) { - ((SPObjectClass *) (parent_class))->set(object, key, value); - } +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } + CObject::onSet(key, value); break; } } @@ -750,6 +1129,51 @@ static void sp_fontface_set(SPObject *object, unsigned int key, const gchar *val static void sp_fontface_update(SPObject *object, SPCtx *ctx, guint flags) { +// if (flags & (SP_OBJECT_MODIFIED_FLAG)) { +// object->readAttr( "font-family" ); +// object->readAttr( "font-style" ); +// object->readAttr( "font-variant" ); +// object->readAttr( "font-weight" ); +// object->readAttr( "font-stretch" ); +// object->readAttr( "font-size" ); +// object->readAttr( "unicode-range" ); +// object->readAttr( "units-per-em" ); +// object->readAttr( "panose-1" ); +// object->readAttr( "stemv" ); +// object->readAttr( "stemh" ); +// object->readAttr( "slope" ); +// object->readAttr( "cap-height" ); +// object->readAttr( "x-height" ); +// object->readAttr( "accent-height" ); +// object->readAttr( "ascent" ); +// object->readAttr( "descent" ); +// object->readAttr( "widths" ); +// object->readAttr( "bbox" ); +// object->readAttr( "ideographic" ); +// object->readAttr( "alphabetic" ); +// object->readAttr( "mathematical" ); +// object->readAttr( "hanging" ); +// object->readAttr( "v-ideographic" ); +// object->readAttr( "v-alphabetic" ); +// object->readAttr( "v-mathematical" ); +// object->readAttr( "v-hanging" ); +// object->readAttr( "underline-position" ); +// object->readAttr( "underline-thickness" ); +// object->readAttr( "strikethrough-position" ); +// object->readAttr( "strikethrough-thickness" ); +// object->readAttr( "overline-position" ); +// object->readAttr( "overline-thickness" ); +// } +// +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + ((SPFontFace*)object)->cfontface->onUpdate(ctx, flags); +} + +void CFontFace::onUpdate(SPCtx *ctx, guint flags) { + SPFontFace* object = this->spfontface; + if (flags & (SP_OBJECT_MODIFIED_FLAG)) { object->readAttr( "font-family" ); object->readAttr( "font-style" ); @@ -786,15 +1210,106 @@ sp_fontface_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "overline-thickness" ); } - if (((SPObjectClass *) parent_class)->update) { - ((SPObjectClass *) parent_class)->update(object, ctx, flags); - } +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + CObject::onUpdate(ctx, flags); } #define COPY_ATTR(rd,rs,key) (rd)->setAttribute((key), rs->attribute(key)); static Inkscape::XML::Node *sp_fontface_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { +// SPFontFace *face = SP_FONTFACE(object); +// +// if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { +// repr = xml_doc->createElement("svg:font-face"); +// } +// +// //TODO: +// //sp_repr_set_svg_double(repr, "font-family", face->font_family); +// //sp_repr_set_svg_double(repr, "font-style", face->font_style); +// //sp_repr_set_svg_double(repr, "font-variant", face->font_variant); +// //sp_repr_set_svg_double(repr, "font-weight", face->font_weight); +// //sp_repr_set_svg_double(repr, "font-stretch", face->font_stretch); +// //sp_repr_set_svg_double(repr, "font-size", face->font_size); +// //sp_repr_set_svg_double(repr, "unicode-range", face->unicode_range); +// sp_repr_set_svg_double(repr, "units-per-em", face->units_per_em); +// //sp_repr_set_svg_double(repr, "panose-1", face->panose_1); +// sp_repr_set_svg_double(repr, "stemv", face->stemv); +// sp_repr_set_svg_double(repr, "stemh", face->stemh); +// sp_repr_set_svg_double(repr, "slope", face->slope); +// sp_repr_set_svg_double(repr, "cap-height", face->cap_height); +// sp_repr_set_svg_double(repr, "x-height", face->x_height); +// sp_repr_set_svg_double(repr, "accent-height", face->accent_height); +// sp_repr_set_svg_double(repr, "ascent", face->ascent); +// sp_repr_set_svg_double(repr, "descent", face->descent); +// //sp_repr_set_svg_double(repr, "widths", face->widths); +// //sp_repr_set_svg_double(repr, "bbox", face->bbox); +// sp_repr_set_svg_double(repr, "ideographic", face->ideographic); +// sp_repr_set_svg_double(repr, "alphabetic", face->alphabetic); +// sp_repr_set_svg_double(repr, "mathematical", face->mathematical); +// sp_repr_set_svg_double(repr, "hanging", face->hanging); +// sp_repr_set_svg_double(repr, "v-ideographic", face->v_ideographic); +// sp_repr_set_svg_double(repr, "v-alphabetic", face->v_alphabetic); +// sp_repr_set_svg_double(repr, "v-mathematical", face->v_mathematical); +// sp_repr_set_svg_double(repr, "v-hanging", face->v_hanging); +// sp_repr_set_svg_double(repr, "underline-position", face->underline_position); +// sp_repr_set_svg_double(repr, "underline-thickness", face->underline_thickness); +// sp_repr_set_svg_double(repr, "strikethrough-position", face->strikethrough_position); +// sp_repr_set_svg_double(repr, "strikethrough-thickness", face->strikethrough_thickness); +// sp_repr_set_svg_double(repr, "overline-position", face->overline_position); +// sp_repr_set_svg_double(repr, "overline-thickness", face->overline_thickness); +// +// if (repr != object->getRepr()) { +// // In all COPY_ATTR given below the XML tree is +// // being used directly while it shouldn't be. +// COPY_ATTR(repr, object->getRepr(), "font-family"); +// COPY_ATTR(repr, object->getRepr(), "font-style"); +// COPY_ATTR(repr, object->getRepr(), "font-variant"); +// COPY_ATTR(repr, object->getRepr(), "font-weight"); +// COPY_ATTR(repr, object->getRepr(), "font-stretch"); +// COPY_ATTR(repr, object->getRepr(), "font-size"); +// COPY_ATTR(repr, object->getRepr(), "unicode-range"); +// COPY_ATTR(repr, object->getRepr(), "units-per-em"); +// COPY_ATTR(repr, object->getRepr(), "panose-1"); +// COPY_ATTR(repr, object->getRepr(), "stemv"); +// COPY_ATTR(repr, object->getRepr(), "stemh"); +// COPY_ATTR(repr, object->getRepr(), "slope"); +// COPY_ATTR(repr, object->getRepr(), "cap-height"); +// COPY_ATTR(repr, object->getRepr(), "x-height"); +// COPY_ATTR(repr, object->getRepr(), "accent-height"); +// COPY_ATTR(repr, object->getRepr(), "ascent"); +// COPY_ATTR(repr, object->getRepr(), "descent"); +// COPY_ATTR(repr, object->getRepr(), "widths"); +// COPY_ATTR(repr, object->getRepr(), "bbox"); +// COPY_ATTR(repr, object->getRepr(), "ideographic"); +// COPY_ATTR(repr, object->getRepr(), "alphabetic"); +// COPY_ATTR(repr, object->getRepr(), "mathematical"); +// COPY_ATTR(repr, object->getRepr(), "hanging"); +// COPY_ATTR(repr, object->getRepr(), "v-ideographic"); +// COPY_ATTR(repr, object->getRepr(), "v-alphabetic"); +// COPY_ATTR(repr, object->getRepr(), "v-mathematical"); +// COPY_ATTR(repr, object->getRepr(), "v-hanging"); +// COPY_ATTR(repr, object->getRepr(), "underline-position"); +// COPY_ATTR(repr, object->getRepr(), "underline-thickness"); +// COPY_ATTR(repr, object->getRepr(), "strikethrough-position"); +// COPY_ATTR(repr, object->getRepr(), "strikethrough-thickness"); +// COPY_ATTR(repr, object->getRepr(), "overline-position"); +// COPY_ATTR(repr, object->getRepr(), "overline-thickness"); +// } +// +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } +// +// return repr; + return ((SPFontFace*)object)->cfontface->onWrite(xml_doc, repr, flags); +} + +Inkscape::XML::Node* CFontFace::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPFontFace* object = this->spfontface; + SPFontFace *face = SP_FONTFACE(object); if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { @@ -874,12 +1389,14 @@ static Inkscape::XML::Node *sp_fontface_write(SPObject *object, Inkscape::XML::D COPY_ATTR(repr, object->getRepr(), "overline-thickness"); } - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); - } +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } + CObject::onWrite(xml_doc, repr, flags); return repr; } + #endif //#ifdef ENABLE_SVG_FONTS /* Local Variables: diff --git a/src/sp-font-face.h b/src/sp-font-face.h index e492ba091..2afdaef52 100644 --- a/src/sp-font-face.h +++ b/src/sp-font-face.h @@ -73,7 +73,12 @@ enum FontFaceUnicodeRangeType{ FONTFACE_UNICODERANGE_FIXME_HERE, }; -struct SPFontFace : public SPObject { +class CFontFace; + +class SPFontFace : public SPObject { +public: + CFontFace* cfontface; + char* font_family; std::vector<FontFaceStyleType> font_style; std::vector<FontFaceVariantType> font_variant; @@ -109,6 +114,27 @@ struct SPFontFace : public SPObject { double overline_thickness; }; +class CFontFace : public CObject { +public: + CFontFace(SPFontFace* face); + virtual ~CFontFace(); + + virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void onRelease(); + + virtual void onChildAdded(Inkscape::XML::Node* child, Inkscape::XML::Node* ref); + virtual void onRemoveChild(Inkscape::XML::Node* child); + + virtual void onSet(unsigned int key, const gchar* value); + + virtual void onUpdate(SPCtx* ctx, unsigned int flags); + + virtual Inkscape::XML::Node* onWrite(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + +private: + SPFontFace* spfontface; +}; + struct SPFontFaceClass { SPObjectClass parent_class; }; diff --git a/src/sp-font.cpp b/src/sp-font.cpp index ec7af0dd1..2221d6311 100644 --- a/src/sp-font.cpp +++ b/src/sp-font.cpp @@ -71,12 +71,12 @@ static void sp_font_class_init(SPFontClass *fc) parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_font_build; - sp_object_class->release = sp_font_release; - sp_object_class->set = sp_font_set; - sp_object_class->write = sp_font_write; - sp_object_class->child_added = sp_font_child_added; - sp_object_class->remove_child = sp_font_remove_child; - sp_object_class->update = sp_font_update; +// sp_object_class->release = sp_font_release; +// sp_object_class->set = sp_font_set; +// sp_object_class->write = sp_font_write; +// sp_object_class->child_added = sp_font_child_added; +// sp_object_class->remove_child = sp_font_remove_child; +// sp_object_class->update = sp_font_update; } //I think we should have extra stuff here and in the set method in order to set default value as specified at http://www.w3.org/TR/SVG/fonts.html diff --git a/src/sp-glyph-kerning.cpp b/src/sp-glyph-kerning.cpp index b94591e9d..df67a664f 100644 --- a/src/sp-glyph-kerning.cpp +++ b/src/sp-glyph-kerning.cpp @@ -90,14 +90,24 @@ static void sp_glyph_kerning_class_init(SPGlyphKerningClass *gc) parent_class = (SPObjectClass*)g_type_class_peek_parent(gc); //sp_object_class->build = sp_glyph_kerning_build; - sp_object_class->release = sp_glyph_kerning_release; - sp_object_class->set = sp_glyph_kerning_set; - sp_object_class->write = sp_glyph_kerning_write; - sp_object_class->update = sp_glyph_kerning_update; +// sp_object_class->release = sp_glyph_kerning_release; +// sp_object_class->set = sp_glyph_kerning_set; +// sp_object_class->write = sp_glyph_kerning_write; +// sp_object_class->update = sp_glyph_kerning_update; +} + +CGlyphKerning::CGlyphKerning(SPGlyphKerning* kerning) : CObject(kerning) { + this->spglyphkerning = kerning; +} + +CGlyphKerning::~CGlyphKerning() { } static void sp_glyph_kerning_init(SPGlyphKerning *glyph) { + glyph->cglyphkerning = new CGlyphKerning(glyph); + glyph->cobject = glyph->cglyphkerning; + //TODO: correct these values: glyph->u1 = NULL; glyph->g1 = NULL; @@ -106,27 +116,46 @@ static void sp_glyph_kerning_init(SPGlyphKerning *glyph) glyph->k = 0; } -static void sp_glyph_kerning_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ -// if (((SPObjectClass *) (parent_class))->build) { -// ((SPObjectClass *) (parent_class))->build(object, document, repr); -// } - // CPPIFY: todo - - object->readAttr( "u1" ); - object->readAttr( "g1" ); - object->readAttr( "u2" ); - object->readAttr( "g2" ); - object->readAttr( "k" ); +//static void sp_glyph_kerning_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +//{ +//// if (((SPObjectClass *) (parent_class))->build) { +//// ((SPObjectClass *) (parent_class))->build(object, document, repr); +//// } +// +// object->readAttr( "u1" ); +// object->readAttr( "g1" ); +// object->readAttr( "u2" ); +// object->readAttr( "g2" ); +// object->readAttr( "k" ); +//} + +void CGlyphKerning::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { + SPGlyphKerning* object = this->spglyphkerning; + + // if (((SPObjectClass *) (parent_class))->build) { + // ((SPObjectClass *) (parent_class))->build(object, document, repr); + // } + CObject::onBuild(document, repr); + + object->readAttr( "u1" ); + object->readAttr( "g1" ); + object->readAttr( "u2" ); + object->readAttr( "g2" ); + object->readAttr( "k" ); } static void sp_glyph_kerning_release(SPObject *object) { //SPGlyphKerning *glyph = SP_GLYPH_KERNING(object); - if (((SPObjectClass *) parent_class)->release) { - ((SPObjectClass *) parent_class)->release(object); - } +// if (((SPObjectClass *) parent_class)->release) { +// ((SPObjectClass *) parent_class)->release(object); +// } + ((SPGlyphKerning*)object)->cglyphkerning->onRelease(); +} + +void CGlyphKerning::onRelease() { + CObject::onRelease(); } GlyphNames::GlyphNames(const gchar* value){ @@ -150,6 +179,68 @@ bool GlyphNames::contains(const char* name){ static void sp_glyph_kerning_set(SPObject *object, unsigned int key, const gchar *value) { +// SPGlyphKerning * glyphkern = (SPGlyphKerning*) object; //even if it is a VKern this will work. I did it this way just to avoind warnings. +// +// switch (key) { +// case SP_ATTR_U1: +// { +// if (glyphkern->u1) { +// delete glyphkern->u1; +// } +// glyphkern->u1 = new UnicodeRange(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_U2: +// { +// if (glyphkern->u2) { +// delete glyphkern->u2; +// } +// glyphkern->u2 = new UnicodeRange(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_G1: +// { +// if (glyphkern->g1) { +// delete glyphkern->g1; +// } +// glyphkern->g1 = new GlyphNames(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_G2: +// { +// if (glyphkern->g2) { +// delete glyphkern->g2; +// } +// glyphkern->g2 = new GlyphNames(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_K: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != glyphkern->k){ +// glyphkern->k = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// default: +// { +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } +// break; +// } +// } + ((SPGlyphKerning*)object)->cglyphkerning->onSet(key, value); +} + +void CGlyphKerning::onSet(unsigned int key, const gchar *value) { + SPGlyphKerning* object = this->spglyphkerning; + SPGlyphKerning * glyphkern = (SPGlyphKerning*) object; //even if it is a VKern this will work. I did it this way just to avoind warnings. switch (key) { @@ -200,9 +291,10 @@ static void sp_glyph_kerning_set(SPObject *object, unsigned int key, const gchar } default: { - if (((SPObjectClass *) (parent_class))->set) { - ((SPObjectClass *) (parent_class))->set(object, key, value); - } +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } + CObject::onSet(key, value); break; } } @@ -214,6 +306,26 @@ static void sp_glyph_kerning_set(SPObject *object, unsigned int key, const gchar static void sp_glyph_kerning_update(SPObject *object, SPCtx *ctx, guint flags) { +// SPGlyphKerning *glyph = (SPGlyphKerning *)object; +// (void)glyph; +// +// if (flags & SP_OBJECT_MODIFIED_FLAG) { +// /* do something to trigger redisplay, updates? */ +// object->readAttr( "u1" ); +// object->readAttr( "u2" ); +// object->readAttr( "g2" ); +// object->readAttr( "k" ); +// } +// +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + ((SPGlyphKerning*)object)->cglyphkerning->onUpdate(ctx, flags); +} + +void CGlyphKerning::onUpdate(SPCtx *ctx, guint flags) { + SPGlyphKerning* object = this->spglyphkerning; + SPGlyphKerning *glyph = (SPGlyphKerning *)object; (void)glyph; @@ -225,48 +337,90 @@ sp_glyph_kerning_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "k" ); } - if (((SPObjectClass *) parent_class)->update) { - ((SPObjectClass *) parent_class)->update(object, ctx, flags); - } +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + CObject::onUpdate(ctx, flags); } #define COPY_ATTR(rd,rs,key) (rd)->setAttribute((key), rs->attribute(key)); static Inkscape::XML::Node *sp_glyph_kerning_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { -// SPGlyphKerning *glyph = SP_GLYPH_KERNING(object); - - if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { - repr = xml_doc->createElement("svg:glyphkerning");//fix this! - } - -/* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca - repr->setAttribute("unicode", glyph->unicode); - repr->setAttribute("glyph-name", glyph->glyph_name); - repr->setAttribute("d", glyph->d); - sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); - sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); - repr->setAttribute("lang", glyph->lang); - sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); - sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); - sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); - sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); -*/ - if (repr != object->getRepr()) { - // All the COPY_ATTR functions below use - // XML Tree directly, while they shouldn't. - COPY_ATTR(repr, object->getRepr(), "u1"); - COPY_ATTR(repr, object->getRepr(), "g1"); - COPY_ATTR(repr, object->getRepr(), "u2"); - COPY_ATTR(repr, object->getRepr(), "g2"); - COPY_ATTR(repr, object->getRepr(), "k"); - } +//// SPGlyphKerning *glyph = SP_GLYPH_KERNING(object); +// +// if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { +// repr = xml_doc->createElement("svg:glyphkerning");//fix this! +// } +// +///* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca +// repr->setAttribute("unicode", glyph->unicode); +// repr->setAttribute("glyph-name", glyph->glyph_name); +// repr->setAttribute("d", glyph->d); +// sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); +// sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); +// repr->setAttribute("lang", glyph->lang); +// sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); +// sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); +// sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); +// sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); +//*/ +// if (repr != object->getRepr()) { +// // All the COPY_ATTR functions below use +// // XML Tree directly, while they shouldn't. +// COPY_ATTR(repr, object->getRepr(), "u1"); +// COPY_ATTR(repr, object->getRepr(), "g1"); +// COPY_ATTR(repr, object->getRepr(), "u2"); +// COPY_ATTR(repr, object->getRepr(), "g2"); +// COPY_ATTR(repr, object->getRepr(), "k"); +// } +// +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } +// +// return repr; - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); - } + return ((SPGlyphKerning*)object)->cglyphkerning->onWrite(xml_doc, repr, flags); +} - return repr; +Inkscape::XML::Node* CGlyphKerning::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPGlyphKerning* object = this->spglyphkerning; + + // SPGlyphKerning *glyph = SP_GLYPH_KERNING(object); + + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = xml_doc->createElement("svg:glyphkerning");//fix this! + } + + /* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca + repr->setAttribute("unicode", glyph->unicode); + repr->setAttribute("glyph-name", glyph->glyph_name); + repr->setAttribute("d", glyph->d); + sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); + sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); + repr->setAttribute("lang", glyph->lang); + sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); + sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); + sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); + sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); + */ + if (repr != object->getRepr()) { + // All the COPY_ATTR functions below use + // XML Tree directly, while they shouldn't. + COPY_ATTR(repr, object->getRepr(), "u1"); + COPY_ATTR(repr, object->getRepr(), "g1"); + COPY_ATTR(repr, object->getRepr(), "u2"); + COPY_ATTR(repr, object->getRepr(), "g2"); + COPY_ATTR(repr, object->getRepr(), "k"); + } + +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } + CObject::onWrite(xml_doc, repr, flags); + + return repr; } #endif //#ifdef ENABLE_SVG_FONTS /* diff --git a/src/sp-glyph-kerning.h b/src/sp-glyph-kerning.h index ce9b4bb15..f1c3fa66c 100644 --- a/src/sp-glyph-kerning.h +++ b/src/sp-glyph-kerning.h @@ -41,7 +41,13 @@ private: gchar* names; }; -struct SPGlyphKerning : public SPObject { + +class CGlyphKerning; + +class SPGlyphKerning : public SPObject { +public: + CGlyphKerning* cglyphkerning; + UnicodeRange* u1; GlyphNames* g1; UnicodeRange* u2; @@ -49,8 +55,31 @@ struct SPGlyphKerning : public SPObject { double k; }; -struct SPHkern : public SPGlyphKerning {}; -struct SPVkern : public SPGlyphKerning {}; +class CGlyphKerning : public CObject { +public: + CGlyphKerning(SPGlyphKerning* kerning); + virtual ~CGlyphKerning(); + + virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void onRelease(); + + virtual void onSet(unsigned int key, const gchar* value); + + virtual void onUpdate(SPCtx* ctx, unsigned int flags); + + virtual Inkscape::XML::Node* onWrite(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + +private: + SPGlyphKerning* spglyphkerning; +}; + +class SPHkern : public SPGlyphKerning { + +}; + +class SPVkern : public SPGlyphKerning { + +}; struct SPGlyphKerningClass { SPObjectClass parent_class; diff --git a/src/sp-glyph.cpp b/src/sp-glyph.cpp index 15b718fd0..9905988f3 100644 --- a/src/sp-glyph.cpp +++ b/src/sp-glyph.cpp @@ -64,14 +64,24 @@ static void sp_glyph_class_init(SPGlyphClass *gc) parent_class = (SPObjectClass*)g_type_class_peek_parent(gc); //sp_object_class->build = sp_glyph_build; - sp_object_class->release = sp_glyph_release; - sp_object_class->set = sp_glyph_set; - sp_object_class->write = sp_glyph_write; - sp_object_class->update = sp_glyph_update; +// sp_object_class->release = sp_glyph_release; +// sp_object_class->set = sp_glyph_set; +// sp_object_class->write = sp_glyph_write; +// sp_object_class->update = sp_glyph_update; +} + +CGlyph::CGlyph(SPGlyph* glyph) : CObject(glyph) { + this->spglyph = glyph; +} + +CGlyph::~CGlyph() { } static void sp_glyph_init(SPGlyph *glyph) { + glyph->cglyph = new CGlyph(glyph); + glyph->cobject = glyph->cglyph; + //TODO: correct these values: new (&glyph->unicode) Glib::ustring(); @@ -86,32 +96,56 @@ static void sp_glyph_init(SPGlyph *glyph) glyph->vert_adv_y = 0; } -static void sp_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) -{ -// if (((SPObjectClass *) (parent_class))->build) { -// ((SPObjectClass *) (parent_class))->build(object, document, repr); -// } - // CPPIFY: todo - - object->readAttr( "unicode" ); - object->readAttr( "glyph-name" ); - object->readAttr( "d" ); - object->readAttr( "orientation" ); - object->readAttr( "arabic-form" ); - object->readAttr( "lang" ); - object->readAttr( "horiz-adv-x" ); - object->readAttr( "vert-origin-x" ); - object->readAttr( "vert-origin-y" ); - object->readAttr( "vert-adv-y" ); +//static void sp_glyph_build(SPObject *object, SPDocument *document, Inkscape::XML::Node *repr) +//{ +//// if (((SPObjectClass *) (parent_class))->build) { +//// ((SPObjectClass *) (parent_class))->build(object, document, repr); +//// } +// +// object->readAttr( "unicode" ); +// object->readAttr( "glyph-name" ); +// object->readAttr( "d" ); +// object->readAttr( "orientation" ); +// object->readAttr( "arabic-form" ); +// object->readAttr( "lang" ); +// object->readAttr( "horiz-adv-x" ); +// object->readAttr( "vert-origin-x" ); +// object->readAttr( "vert-origin-y" ); +// object->readAttr( "vert-adv-y" ); +//} + +void CGlyph::onBuild(SPDocument *document, Inkscape::XML::Node *repr) { + // if (((SPObjectClass *) (parent_class))->build) { + // ((SPObjectClass *) (parent_class))->build(object, document, repr); + // } + CObject::onBuild(document, repr); + + SPGlyph* object = this->spglyph; + + object->readAttr( "unicode" ); + object->readAttr( "glyph-name" ); + object->readAttr( "d" ); + object->readAttr( "orientation" ); + object->readAttr( "arabic-form" ); + object->readAttr( "lang" ); + object->readAttr( "horiz-adv-x" ); + object->readAttr( "vert-origin-x" ); + object->readAttr( "vert-origin-y" ); + object->readAttr( "vert-adv-y" ); } static void sp_glyph_release(SPObject *object) { //SPGlyph *glyph = SP_GLYPH(object); - if (((SPObjectClass *) parent_class)->release) { - ((SPObjectClass *) parent_class)->release(object); - } +// if (((SPObjectClass *) parent_class)->release) { +// ((SPObjectClass *) parent_class)->release(object); +// } + ((SPGlyph*)object)->cglyph->onRelease(); +} + +void CGlyph::onRelease() { + CObject::onRelease(); } static glyphArabicForm sp_glyph_read_arabic_form(gchar const *value){ @@ -147,6 +181,105 @@ static glyphOrientation sp_glyph_read_orientation(gchar const *value){ static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value) { +// SPGlyph *glyph = SP_GLYPH(object); +// +// switch (key) { +// case SP_ATTR_UNICODE: +// { +// glyph->unicode.clear(); +// if (value) glyph->unicode.append(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_GLYPH_NAME: +// { +// glyph->glyph_name.clear(); +// if (value) glyph->glyph_name.append(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_D: +// { +// if (glyph->d) g_free(glyph->d); +// glyph->d = g_strdup(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_ORIENTATION: +// { +// glyphOrientation orient = sp_glyph_read_orientation(value); +// if (glyph->orientation != orient){ +// glyph->orientation = orient; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_ARABIC_FORM: +// { +// glyphArabicForm form = sp_glyph_read_arabic_form(value); +// if (glyph->arabic_form != form){ +// glyph->arabic_form = form; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_LANG: +// { +// if (glyph->lang) g_free(glyph->lang); +// glyph->lang = g_strdup(value); +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// break; +// } +// case SP_ATTR_HORIZ_ADV_X: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != glyph->horiz_adv_x){ +// glyph->horiz_adv_x = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_VERT_ORIGIN_X: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != glyph->vert_origin_x){ +// glyph->vert_origin_x = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_VERT_ORIGIN_Y: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != glyph->vert_origin_y){ +// glyph->vert_origin_y = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// case SP_ATTR_VERT_ADV_Y: +// { +// double number = value ? g_ascii_strtod(value, 0) : 0; +// if (number != glyph->vert_adv_y){ +// glyph->vert_adv_y = number; +// object->requestModified(SP_OBJECT_MODIFIED_FLAG); +// } +// break; +// } +// default: +// { +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } +// break; +// } +// } + ((SPGlyph*)object)->cglyph->onSet(key, value); +} + +void CGlyph::onSet(unsigned int key, const gchar *value) { + SPGlyph* object = this->spglyph; + SPGlyph *glyph = SP_GLYPH(object); switch (key) { @@ -234,9 +367,10 @@ static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value) } default: { - if (((SPObjectClass *) (parent_class))->set) { - ((SPObjectClass *) (parent_class))->set(object, key, value); - } +// if (((SPObjectClass *) (parent_class))->set) { +// ((SPObjectClass *) (parent_class))->set(object, key, value); +// } + CObject::onSet(key, value); break; } } @@ -248,6 +382,32 @@ static void sp_glyph_set(SPObject *object, unsigned int key, const gchar *value) static void sp_glyph_update(SPObject *object, SPCtx *ctx, guint flags) { +// SPGlyph *glyph = SP_GLYPH(object); +// (void)glyph; +// +// if (flags & SP_OBJECT_MODIFIED_FLAG) { +// /* do something to trigger redisplay, updates? */ +// object->readAttr( "unicode" ); +// object->readAttr( "glyph-name" ); +// object->readAttr( "d" ); +// object->readAttr( "orientation" ); +// object->readAttr( "arabic-form" ); +// object->readAttr( "lang" ); +// object->readAttr( "horiz-adv-x" ); +// object->readAttr( "vert-origin-x" ); +// object->readAttr( "vert-origin-y" ); +// object->readAttr( "vert-adv-y" ); +// } +// +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + ((SPGlyph*)object)->cglyph->onUpdate(ctx, flags); +} + +void CGlyph::onUpdate(SPCtx *ctx, guint flags) { + SPGlyph* object = this->spglyph; + SPGlyph *glyph = SP_GLYPH(object); (void)glyph; @@ -265,53 +425,99 @@ sp_glyph_update(SPObject *object, SPCtx *ctx, guint flags) object->readAttr( "vert-adv-y" ); } - if (((SPObjectClass *) parent_class)->update) { - ((SPObjectClass *) parent_class)->update(object, ctx, flags); - } +// if (((SPObjectClass *) parent_class)->update) { +// ((SPObjectClass *) parent_class)->update(object, ctx, flags); +// } + CObject::onUpdate(ctx, flags); } #define COPY_ATTR(rd,rs,key) (rd)->setAttribute((key), rs->attribute(key)); static Inkscape::XML::Node *sp_glyph_write(SPObject *object, Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { -// SPGlyph *glyph = SP_GLYPH(object); +//// SPGlyph *glyph = SP_GLYPH(object); +// +// if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { +// repr = xml_doc->createElement("svg:glyph"); +// } +// +///* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca +// repr->setAttribute("unicode", glyph->unicode); +// repr->setAttribute("glyph-name", glyph->glyph_name); +// repr->setAttribute("d", glyph->d); +// sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); +// sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); +// repr->setAttribute("lang", glyph->lang); +// sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); +// sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); +// sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); +// sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); +//*/ +// if (repr != object->getRepr()) { +// // All the COPY_ATTR functions below use +// // XML Tree directly while they shouldn't. +// COPY_ATTR(repr, object->getRepr(), "unicode"); +// COPY_ATTR(repr, object->getRepr(), "glyph-name"); +// COPY_ATTR(repr, object->getRepr(), "d"); +// COPY_ATTR(repr, object->getRepr(), "orientation"); +// COPY_ATTR(repr, object->getRepr(), "arabic-form"); +// COPY_ATTR(repr, object->getRepr(), "lang"); +// COPY_ATTR(repr, object->getRepr(), "horiz-adv-x"); +// COPY_ATTR(repr, object->getRepr(), "vert-origin-x"); +// COPY_ATTR(repr, object->getRepr(), "vert-origin-y"); +// COPY_ATTR(repr, object->getRepr(), "vert-adv-y"); +// } +// +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } +// +// return repr; + return ((SPGlyph*)object)->cglyph->onWrite(xml_doc, repr, flags); +} - if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { - repr = xml_doc->createElement("svg:glyph"); - } +Inkscape::XML::Node* CGlyph::onWrite(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, guint flags) { + SPGlyph* object = this->spglyph; -/* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca - repr->setAttribute("unicode", glyph->unicode); - repr->setAttribute("glyph-name", glyph->glyph_name); - repr->setAttribute("d", glyph->d); - sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); - sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); - repr->setAttribute("lang", glyph->lang); - sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); - sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); - sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); - sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); -*/ - if (repr != object->getRepr()) { - // All the COPY_ATTR functions below use - // XML Tree directly while they shouldn't. - COPY_ATTR(repr, object->getRepr(), "unicode"); - COPY_ATTR(repr, object->getRepr(), "glyph-name"); - COPY_ATTR(repr, object->getRepr(), "d"); - COPY_ATTR(repr, object->getRepr(), "orientation"); - COPY_ATTR(repr, object->getRepr(), "arabic-form"); - COPY_ATTR(repr, object->getRepr(), "lang"); - COPY_ATTR(repr, object->getRepr(), "horiz-adv-x"); - COPY_ATTR(repr, object->getRepr(), "vert-origin-x"); - COPY_ATTR(repr, object->getRepr(), "vert-origin-y"); - COPY_ATTR(repr, object->getRepr(), "vert-adv-y"); - } + // SPGlyph *glyph = SP_GLYPH(object); - if (((SPObjectClass *) (parent_class))->write) { - ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); - } + if ((flags & SP_OBJECT_WRITE_BUILD) && !repr) { + repr = xml_doc->createElement("svg:glyph"); + } + + /* I am commenting out this part because I am not certain how does it work. I will have to study it later. Juca + repr->setAttribute("unicode", glyph->unicode); + repr->setAttribute("glyph-name", glyph->glyph_name); + repr->setAttribute("d", glyph->d); + sp_repr_set_svg_double(repr, "orientation", (double) glyph->orientation); + sp_repr_set_svg_double(repr, "arabic-form", (double) glyph->arabic_form); + repr->setAttribute("lang", glyph->lang); + sp_repr_set_svg_double(repr, "horiz-adv-x", glyph->horiz_adv_x); + sp_repr_set_svg_double(repr, "vert-origin-x", glyph->vert_origin_x); + sp_repr_set_svg_double(repr, "vert-origin-y", glyph->vert_origin_y); + sp_repr_set_svg_double(repr, "vert-adv-y", glyph->vert_adv_y); + */ + if (repr != object->getRepr()) { + // All the COPY_ATTR functions below use + // XML Tree directly while they shouldn't. + COPY_ATTR(repr, object->getRepr(), "unicode"); + COPY_ATTR(repr, object->getRepr(), "glyph-name"); + COPY_ATTR(repr, object->getRepr(), "d"); + COPY_ATTR(repr, object->getRepr(), "orientation"); + COPY_ATTR(repr, object->getRepr(), "arabic-form"); + COPY_ATTR(repr, object->getRepr(), "lang"); + COPY_ATTR(repr, object->getRepr(), "horiz-adv-x"); + COPY_ATTR(repr, object->getRepr(), "vert-origin-x"); + COPY_ATTR(repr, object->getRepr(), "vert-origin-y"); + COPY_ATTR(repr, object->getRepr(), "vert-adv-y"); + } + +// if (((SPObjectClass *) (parent_class))->write) { +// ((SPObjectClass *) (parent_class))->write(object, xml_doc, repr, flags); +// } + CObject::onWrite(xml_doc, repr, flags); - return repr; + return repr; } #endif //#ifdef ENABLE_SVG_FONTS /* diff --git a/src/sp-glyph.h b/src/sp-glyph.h index 316204c23..f9b87a8da 100644 --- a/src/sp-glyph.h +++ b/src/sp-glyph.h @@ -38,7 +38,12 @@ enum glyphOrientation { GLYPH_ORIENTATION_BOTH }; -struct SPGlyph : public SPObject { +class CGlyph; + +class SPGlyph : public SPObject { +public: + CGlyph* cglyph; + Glib::ustring unicode; Glib::ustring glyph_name; char* d; @@ -51,6 +56,24 @@ struct SPGlyph : public SPObject { double vert_adv_y; }; +class CGlyph : public CObject { +public: + CGlyph(SPGlyph* glyph); + virtual ~CGlyph(); + + virtual void onBuild(SPDocument* doc, Inkscape::XML::Node* repr); + virtual void onRelease(); + + virtual void onSet(unsigned int key, const gchar* value); + + virtual void onUpdate(SPCtx* ctx, unsigned int flags); + + virtual Inkscape::XML::Node* onWrite(Inkscape::XML::Document* doc, Inkscape::XML::Node* repr, guint flags); + +private: + SPGlyph* spglyph; +}; + struct SPGlyphClass { SPObjectClass parent_class; }; diff --git a/src/sp-gradient.cpp b/src/sp-gradient.cpp index 2faf165f0..de81b33ff 100644 --- a/src/sp-gradient.cpp +++ b/src/sp-gradient.cpp @@ -128,8 +128,8 @@ static void sp_stop_class_init(SPStopClass *klass) stop_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_stop_build; - sp_object_class->set = sp_stop_set; - sp_object_class->write = sp_stop_write; +// sp_object_class->set = sp_stop_set; +// sp_object_class->write = sp_stop_write; } CStop::CStop(SPStop* stop) : CObject(stop) { @@ -410,8 +410,8 @@ static void sp_meshrow_class_init(SPMeshRowClass *klass) meshrow_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_meshrow_build; - sp_object_class->set = sp_meshrow_set; - sp_object_class->write = sp_meshrow_write; +// sp_object_class->set = sp_meshrow_set; +// sp_object_class->write = sp_meshrow_write; } CMeshRow::CMeshRow(SPMeshRow* meshrow) : CObject(meshrow) { @@ -510,8 +510,8 @@ static void sp_meshpatch_class_init(SPMeshPatchClass *klass) meshpatch_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_meshpatch_build; - sp_object_class->set = sp_meshpatch_set; - sp_object_class->write = sp_meshpatch_write; +// sp_object_class->set = sp_meshpatch_set; +// sp_object_class->write = sp_meshpatch_write; } CMeshPatch::CMeshPatch(SPMeshPatch* meshpatch) : CObject(meshpatch) { @@ -643,12 +643,12 @@ void CGradient::classInit(SPGradientClass *klass) gradient_parent_class = (SPPaintServerClass *)g_type_class_ref(SP_TYPE_PAINT_SERVER); //sp_object_class->build = spgradient_on_build; - sp_object_class->release = spgradient_on_release; - sp_object_class->set = spgradient_set; - sp_object_class->child_added = spgradient_child_added; - sp_object_class->remove_child = spgradient_remove_child; - sp_object_class->modified = spgradient_modified; - sp_object_class->write = spgradient_write; +// sp_object_class->release = spgradient_on_release; +// sp_object_class->set = spgradient_set; +// sp_object_class->child_added = spgradient_child_added; +// sp_object_class->remove_child = spgradient_remove_child; +// sp_object_class->modified = spgradient_modified; +// sp_object_class->write = spgradient_write; } CGradient::CGradient(SPGradient* gradient) : CPaintServer(gradient) { @@ -1587,8 +1587,8 @@ static void sp_lineargradient_class_init(SPLinearGradientClass *klass) lg_parent_class = (SPGradientClass*)g_type_class_ref(SP_TYPE_GRADIENT); //sp_object_class->build = sp_lineargradient_build; - sp_object_class->set = sp_lineargradient_set; - sp_object_class->write = sp_lineargradient_write; +// sp_object_class->set = sp_lineargradient_set; +// sp_object_class->write = sp_lineargradient_write; //ps_class->pattern_new = sp_lineargradient_create_pattern; } @@ -1777,8 +1777,8 @@ static void sp_radialgradient_class_init(SPRadialGradientClass *klass) rg_parent_class = (SPGradientClass*)g_type_class_ref(SP_TYPE_GRADIENT); //sp_object_class->build = sp_radialgradient_build; - sp_object_class->set = sp_radialgradient_set; - sp_object_class->write = sp_radialgradient_write; +// sp_object_class->set = sp_radialgradient_set; +// sp_object_class->write = sp_radialgradient_write; //ps_class->pattern_new = sp_radialgradient_create_pattern; } @@ -1993,8 +1993,8 @@ static void sp_meshgradient_class_init(SPMeshGradientClass *klass) mg_parent_class = (SPGradientClass*)g_type_class_ref(SP_TYPE_GRADIENT); //sp_object_class->build = sp_meshgradient_build; - sp_object_class->set = sp_meshgradient_set; - sp_object_class->write = sp_meshgradient_write; +// sp_object_class->set = sp_meshgradient_set; +// sp_object_class->write = sp_meshgradient_write; //ps_class->pattern_new = sp_meshgradient_create_pattern; } diff --git a/src/sp-guide.cpp b/src/sp-guide.cpp index 081a667a3..7b05e04b3 100644 --- a/src/sp-guide.cpp +++ b/src/sp-guide.cpp @@ -96,8 +96,8 @@ static void sp_guide_class_init(SPGuideClass *gc) gobject_class->get_property = sp_guide_get_property; //sp_object_class->build = sp_guide_build; - sp_object_class->release = sp_guide_release; - sp_object_class->set = sp_guide_set; +// sp_object_class->release = sp_guide_release; +// sp_object_class->set = sp_guide_set; g_object_class_install_property(gobject_class, PROP_COLOR, diff --git a/src/sp-image.cpp b/src/sp-image.cpp index df2947e9a..a219c0939 100644 --- a/src/sp-image.cpp +++ b/src/sp-image.cpp @@ -588,11 +588,11 @@ static void sp_image_class_init( SPImageClass * klass ) parent_class = reinterpret_cast<SPItemClass*>(g_type_class_ref(SPItem::getType())); //sp_object_class->build = sp_image_build; - sp_object_class->release = sp_image_release; - sp_object_class->set = sp_image_set; - sp_object_class->update = sp_image_update; - sp_object_class->modified = sp_image_modified; - sp_object_class->write = sp_image_write; +// sp_object_class->release = sp_image_release; +// sp_object_class->set = sp_image_set; +// sp_object_class->update = sp_image_update; +// sp_object_class->modified = sp_image_modified; +// sp_object_class->write = sp_image_write; // item_class->bbox = sp_image_bbox; // item_class->print = sp_image_print; diff --git a/src/sp-item-group.cpp b/src/sp-item-group.cpp index 105ec03a7..45d00c653 100644 --- a/src/sp-item-group.cpp +++ b/src/sp-item-group.cpp @@ -118,14 +118,14 @@ sp_group_class_init (SPGroupClass *klass) object_class->dispose = sp_group_dispose; - sp_object_class->child_added = sp_group_child_added; - sp_object_class->remove_child = sp_group_remove_child; - sp_object_class->order_changed = sp_group_order_changed; - sp_object_class->update = sp_group_update; - sp_object_class->modified = sp_group_modified; - sp_object_class->set = sp_group_set; - sp_object_class->write = sp_group_write; - sp_object_class->release = sp_group_release; +// sp_object_class->child_added = sp_group_child_added; +// sp_object_class->remove_child = sp_group_remove_child; +// sp_object_class->order_changed = sp_group_order_changed; +// sp_object_class->update = sp_group_update; +// sp_object_class->modified = sp_group_modified; +// sp_object_class->set = sp_group_set; +// sp_object_class->write = sp_group_write; +// sp_object_class->release = sp_group_release; //sp_object_class->build = sp_group_build; // item_class->bbox = sp_group_bbox; diff --git a/src/sp-item.cpp b/src/sp-item.cpp index 1ba1aa7ea..33e6bf342 100644 --- a/src/sp-item.cpp +++ b/src/sp-item.cpp @@ -111,10 +111,10 @@ SPItemClass::sp_item_class_init(SPItemClass *klass) static_parent_class = (SPObjectClass *)g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = SPItem::sp_item_build; - sp_object_class->release = SPItem::sp_item_release; - sp_object_class->set = SPItem::sp_item_set; - sp_object_class->update = SPItem::sp_item_update; - sp_object_class->write = SPItem::sp_item_write; +// sp_object_class->release = SPItem::sp_item_release; +// sp_object_class->set = SPItem::sp_item_set; +// sp_object_class->update = SPItem::sp_item_update; +// sp_object_class->write = SPItem::sp_item_write; // klass->description = SPItem::sp_item_private_description; // klass->snappoints = SPItem::sp_item_private_snappoints; diff --git a/src/sp-line.cpp b/src/sp-line.cpp index b172d24a9..fa45ab571 100644 --- a/src/sp-line.cpp +++ b/src/sp-line.cpp @@ -54,15 +54,15 @@ void SPLineClass::sp_line_class_init(SPLineClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *) klass; //sp_object_class->build = SPLine::build; - sp_object_class->set = SPLine::set; - sp_object_class->write = SPLine::write; +// sp_object_class->set = SPLine::set; +// sp_object_class->write = SPLine::write; SPItemClass *item_class = (SPItemClass *) klass; // item_class->description = SPLine::getDescription; // item_class->set_transform = SPLine::setTransform; // item_class->convert_to_guides = SPLine::convertToGuides; - sp_object_class->update = SPLine::update; +// sp_object_class->update = SPLine::update; SPShapeClass *shape_class = (SPShapeClass *) klass; //shape_class->set_shape = SPLine::setShape; diff --git a/src/sp-lpe-item.cpp b/src/sp-lpe-item.cpp index 20660b67a..0e61de6ee 100644 --- a/src/sp-lpe-item.cpp +++ b/src/sp-lpe-item.cpp @@ -100,13 +100,13 @@ sp_lpe_item_class_init(SPLPEItemClass *klass) gobject_class->finalize = sp_lpe_item_finalize; //sp_object_class->build = sp_lpe_item_build; - sp_object_class->release = sp_lpe_item_release; - sp_object_class->set = sp_lpe_item_set; - sp_object_class->update = sp_lpe_item_update; - sp_object_class->modified = sp_lpe_item_modified; - sp_object_class->write = sp_lpe_item_write; - sp_object_class->child_added = sp_lpe_item_child_added; - sp_object_class->remove_child = sp_lpe_item_remove_child; +// sp_object_class->release = sp_lpe_item_release; +// sp_object_class->set = sp_lpe_item_set; +// sp_object_class->update = sp_lpe_item_update; +// sp_object_class->modified = sp_lpe_item_modified; +// sp_object_class->write = sp_lpe_item_write; +// sp_object_class->child_added = sp_lpe_item_child_added; +// sp_object_class->remove_child = sp_lpe_item_remove_child; //klass->update_patheffect = NULL; } diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index eb39ebf3d..bc203b857 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -77,12 +77,12 @@ sp_mask_class_init (SPMaskClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *) klass; //sp_object_class->build = sp_mask_build; - sp_object_class->release = sp_mask_release; - sp_object_class->set = sp_mask_set; - sp_object_class->child_added = sp_mask_child_added; - sp_object_class->update = sp_mask_update; - sp_object_class->modified = sp_mask_modified; - sp_object_class->write = sp_mask_write; +// sp_object_class->release = sp_mask_release; +// sp_object_class->set = sp_mask_set; +// sp_object_class->child_added = sp_mask_child_added; +// sp_object_class->update = sp_mask_update; +// sp_object_class->modified = sp_mask_modified; +// sp_object_class->write = sp_mask_write; } CMask::CMask(SPMask* mask) : CObjectGroup(mask) { diff --git a/src/sp-metadata.cpp b/src/sp-metadata.cpp index f75943f78..45ed86ca4 100644 --- a/src/sp-metadata.cpp +++ b/src/sp-metadata.cpp @@ -74,10 +74,10 @@ sp_metadata_class_init (SPMetadataClass *klass) metadata_parent_class = (SPObjectClass*)g_type_class_peek_parent (klass); //sp_object_class->build = sp_metadata_build; - sp_object_class->release = sp_metadata_release; - sp_object_class->write = sp_metadata_write; - sp_object_class->set = sp_metadata_set; - sp_object_class->update = sp_metadata_update; +// sp_object_class->release = sp_metadata_release; +// sp_object_class->write = sp_metadata_write; +// sp_object_class->set = sp_metadata_set; +// sp_object_class->update = sp_metadata_update; } CMetadata::CMetadata(SPMetadata* metadata) : CObject(metadata) { diff --git a/src/sp-missing-glyph.cpp b/src/sp-missing-glyph.cpp index 284f9d092..78fc4515f 100644 --- a/src/sp-missing-glyph.cpp +++ b/src/sp-missing-glyph.cpp @@ -61,9 +61,9 @@ static void sp_missing_glyph_class_init(SPMissingGlyphClass *gc) parent_class = (SPObjectClass*)g_type_class_peek_parent(gc); //sp_object_class->build = sp_missing_glyph_build; - sp_object_class->release = sp_missing_glyph_release; - sp_object_class->set = sp_missing_glyph_set; - sp_object_class->write = sp_missing_glyph_write; +// sp_object_class->release = sp_missing_glyph_release; +// sp_object_class->set = sp_missing_glyph_set; +// sp_object_class->write = sp_missing_glyph_write; } CMissingGlyph::CMissingGlyph(SPMissingGlyph* mg) : CObject(mg) { diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp index 0300c7140..deda11bc1 100644 --- a/src/sp-namedview.cpp +++ b/src/sp-namedview.cpp @@ -96,11 +96,11 @@ static void sp_namedview_class_init(SPNamedViewClass * klass) parent_class = reinterpret_cast<SPObjectGroupClass *>(g_type_class_ref(SP_TYPE_OBJECTGROUP)); //sp_object_class->build = sp_namedview_build; - sp_object_class->release = sp_namedview_release; - sp_object_class->set = sp_namedview_set; - sp_object_class->child_added = sp_namedview_child_added; - sp_object_class->remove_child = sp_namedview_remove_child; - sp_object_class->write = sp_namedview_write; +// sp_object_class->release = sp_namedview_release; +// sp_object_class->set = sp_namedview_set; +// sp_object_class->child_added = sp_namedview_child_added; +// sp_object_class->remove_child = sp_namedview_remove_child; +// sp_object_class->write = sp_namedview_write; } CNamedView::CNamedView(SPNamedView* view) : CObjectGroup(view) { diff --git a/src/sp-object-group.cpp b/src/sp-object-group.cpp index de5d0b612..e18755ea2 100644 --- a/src/sp-object-group.cpp +++ b/src/sp-object-group.cpp @@ -46,10 +46,10 @@ void SPObjectGroupClass::sp_objectgroup_class_init(SPObjectGroupClass *klass) static_parent_class = (SPObjectClass *)g_type_class_ref(SP_TYPE_OBJECT); - sp_object_class->child_added = SPObjectGroup::childAdded; - sp_object_class->remove_child = SPObjectGroup::removeChild; - sp_object_class->order_changed = SPObjectGroup::orderChanged; - sp_object_class->write = SPObjectGroup::write; +// sp_object_class->child_added = SPObjectGroup::childAdded; +// sp_object_class->remove_child = SPObjectGroup::removeChild; +// sp_object_class->order_changed = SPObjectGroup::orderChanged; +// sp_object_class->write = SPObjectGroup::write; } CObjectGroup::CObjectGroup(SPObjectGroup* gr) : CObject(gr) { diff --git a/src/sp-object.cpp b/src/sp-object.cpp index 933bfceda..f3da0e134 100644 --- a/src/sp-object.cpp +++ b/src/sp-object.cpp @@ -133,16 +133,16 @@ void SPObjectClass::sp_object_class_init(SPObjectClass *klass) object_class->finalize = SPObject::sp_object_finalize; - klass->child_added = SPObject::sp_object_child_added; - klass->remove_child = SPObject::sp_object_remove_child; - klass->order_changed = SPObject::sp_object_order_changed; - - klass->release = SPObject::sp_object_release; - - //klass->build = SPObject::sp_object_build; - - klass->set = SPObject::sp_object_private_set; - klass->write = SPObject::sp_object_private_write; +// klass->child_added = SPObject::sp_object_child_added; +// klass->remove_child = SPObject::sp_object_remove_child; +// klass->order_changed = SPObject::sp_object_order_changed; +// +// klass->release = SPObject::sp_object_release; +// +// //klass->build = SPObject::sp_object_build; +// +// klass->set = SPObject::sp_object_private_set; +// klass->write = SPObject::sp_object_private_write; } diff --git a/src/sp-object.h b/src/sp-object.h index 3daadec59..ed73e084c 100644 --- a/src/sp-object.h +++ b/src/sp-object.h @@ -921,24 +921,24 @@ public: GObjectClass parent_class; //void (* build) (SPObject *object, SPDocument *doc, Inkscape::XML::Node *repr); - void (* release) (SPObject *object); - - /* Virtual handlers of repr signals */ - void (* child_added) (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref); - void (* remove_child) (SPObject *object, Inkscape::XML::Node *child); - - void (* order_changed) (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old, Inkscape::XML::Node *new_repr); - - void (* set) (SPObject *object, unsigned int key, gchar const *value); - - void (* read_content) (SPObject *object); - - /* Update handler */ - void (* update) (SPObject *object, SPCtx *ctx, unsigned int flags); - /* Modification handler */ - void (* modified) (SPObject *object, unsigned int flags); - - Inkscape::XML::Node * (* write) (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags); +// void (* release) (SPObject *object); +// +// /* Virtual handlers of repr signals */ +// void (* child_added) (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *ref); +// void (* remove_child) (SPObject *object, Inkscape::XML::Node *child); +// +// void (* order_changed) (SPObject *object, Inkscape::XML::Node *child, Inkscape::XML::Node *old, Inkscape::XML::Node *new_repr); +// +// void (* set) (SPObject *object, unsigned int key, gchar const *value); +// +// void (* read_content) (SPObject *object); +// +// /* Update handler */ +// void (* update) (SPObject *object, SPCtx *ctx, unsigned int flags); +// /* Modification handler */ +// void (* modified) (SPObject *object, unsigned int flags); +// +// Inkscape::XML::Node * (* write) (SPObject *object, Inkscape::XML::Document *doc, Inkscape::XML::Node *repr, unsigned int flags); private: static GObjectClass *static_parent_class; diff --git a/src/sp-offset.cpp b/src/sp-offset.cpp index d1efb97f3..ae7538fe1 100644 --- a/src/sp-offset.cpp +++ b/src/sp-offset.cpp @@ -151,10 +151,10 @@ sp_offset_class_init(SPOffsetClass *klass) gobject_class->finalize = sp_offset_finalize; //sp_object_class->build = sp_offset_build; - sp_object_class->write = sp_offset_write; - sp_object_class->set = sp_offset_set; - sp_object_class->update = sp_offset_update; - sp_object_class->release = sp_offset_release; +// sp_object_class->write = sp_offset_write; +// sp_object_class->set = sp_offset_set; +// sp_object_class->update = sp_offset_update; +// sp_object_class->release = sp_offset_release; // item_class->description = sp_offset_description; // item_class->snappoints = sp_offset_snappoints; diff --git a/src/sp-path.cpp b/src/sp-path.cpp index fd726c9fe..820fbbaf6 100644 --- a/src/sp-path.cpp +++ b/src/sp-path.cpp @@ -111,10 +111,10 @@ sp_path_class_init(SPPathClass * klass) gobject_class->finalize = sp_path_finalize; //sp_object_class->build = sp_path_build; - sp_object_class->release = sp_path_release; - sp_object_class->set = sp_path_set; - sp_object_class->write = sp_path_write; - sp_object_class->update = sp_path_update; +// sp_object_class->release = sp_path_release; +// sp_object_class->set = sp_path_set; +// sp_object_class->write = sp_path_write; +// sp_object_class->update = sp_path_update; // item_class->description = sp_path_description; // item_class->set_transform = sp_path_set_transform; diff --git a/src/sp-pattern.cpp b/src/sp-pattern.cpp index 0c82c9bb8..6a1d567dd 100644 --- a/src/sp-pattern.cpp +++ b/src/sp-pattern.cpp @@ -91,10 +91,10 @@ sp_pattern_class_init (SPPatternClass *klass) pattern_parent_class = (SPPaintServerClass*)g_type_class_ref (SP_TYPE_PAINT_SERVER); //sp_object_class->build = sp_pattern_build; - sp_object_class->release = sp_pattern_release; - sp_object_class->set = sp_pattern_set; - sp_object_class->update = sp_pattern_update; - sp_object_class->modified = sp_pattern_modified; +// sp_object_class->release = sp_pattern_release; +// sp_object_class->set = sp_pattern_set; +// sp_object_class->update = sp_pattern_update; +// sp_object_class->modified = sp_pattern_modified; // do we need _write? seems to work without it diff --git a/src/sp-polygon.cpp b/src/sp-polygon.cpp index 28eea4ff3..cd06e96a4 100644 --- a/src/sp-polygon.cpp +++ b/src/sp-polygon.cpp @@ -66,8 +66,8 @@ static void sp_polygon_class_init(SPPolygonClass *pc) parent_class = (SPShapeClass *) g_type_class_ref(SP_TYPE_SHAPE); //sp_object_class->build = sp_polygon_build; - sp_object_class->write = sp_polygon_write; - sp_object_class->set = sp_polygon_set; +// sp_object_class->write = sp_polygon_write; +// sp_object_class->set = sp_polygon_set; // item_class->description = sp_polygon_description; } diff --git a/src/sp-polyline.cpp b/src/sp-polyline.cpp index 319aad41f..aaa116cf5 100644 --- a/src/sp-polyline.cpp +++ b/src/sp-polyline.cpp @@ -53,8 +53,8 @@ void SPPolyLineClass::sp_polyline_class_init(SPPolyLineClass *klass) static_parent_class = (SPShapeClass *)g_type_class_ref(SP_TYPE_SHAPE); //sp_object_class->build = SPPolyLine::build; - sp_object_class->set = SPPolyLine::set; - sp_object_class->write = SPPolyLine::write; +// sp_object_class->set = SPPolyLine::set; +// sp_object_class->write = SPPolyLine::write; // item_class->description = SPPolyLine::getDescription; } diff --git a/src/sp-rect.cpp b/src/sp-rect.cpp index bc85edac4..6ee5fae6c 100644 --- a/src/sp-rect.cpp +++ b/src/sp-rect.cpp @@ -81,9 +81,9 @@ sp_rect_class_init(SPRectClass *klass) parent_class = (SPShapeClass *)g_type_class_ref(SP_TYPE_SHAPE); //sp_object_class->build = sp_rect_build; - sp_object_class->write = sp_rect_write; - sp_object_class->set = sp_rect_set; - sp_object_class->update = sp_rect_update; +// sp_object_class->write = sp_rect_write; +// sp_object_class->set = sp_rect_set; +// sp_object_class->update = sp_rect_update; // item_class->description = sp_rect_description; // item_class->set_transform = sp_rect_set_transform; diff --git a/src/sp-root.cpp b/src/sp-root.cpp index 2d6cf0fc4..d19629a24 100644 --- a/src/sp-root.cpp +++ b/src/sp-root.cpp @@ -84,13 +84,13 @@ static void sp_root_class_init(SPRootClass *klass) parent_class = reinterpret_cast<SPGroupClass *>(g_type_class_ref(SP_TYPE_GROUP)); //sp_object_class->build = sp_root_build; - sp_object_class->release = sp_root_release; - sp_object_class->set = sp_root_set; - sp_object_class->child_added = sp_root_child_added; - sp_object_class->remove_child = sp_root_remove_child; - sp_object_class->update = sp_root_update; - sp_object_class->modified = sp_root_modified; - sp_object_class->write = sp_root_write; +// sp_object_class->release = sp_root_release; +// sp_object_class->set = sp_root_set; +// sp_object_class->child_added = sp_root_child_added; +// sp_object_class->remove_child = sp_root_remove_child; +// sp_object_class->update = sp_root_update; +// sp_object_class->modified = sp_root_modified; +// sp_object_class->write = sp_root_write; // sp_item_class->show = sp_root_show; // sp_item_class->print = sp_root_print; diff --git a/src/sp-script.cpp b/src/sp-script.cpp index c875cfc0f..0d999feca 100644 --- a/src/sp-script.cpp +++ b/src/sp-script.cpp @@ -57,11 +57,11 @@ static void sp_script_class_init(SPScriptClass *sc) SPObjectClass *sp_object_class = (SPObjectClass *) sc; //sp_object_class->build = sp_script_build; - sp_object_class->release = sp_script_release; - sp_object_class->update = sp_script_update; - sp_object_class->modified = sp_script_modified; - sp_object_class->write = sp_script_write; - sp_object_class->set = sp_script_set; +// sp_object_class->release = sp_script_release; +// sp_object_class->update = sp_script_update; +// sp_object_class->modified = sp_script_modified; +// sp_object_class->write = sp_script_write; +// sp_object_class->set = sp_script_set; } CScript::CScript(SPScript* script) : CObject(script) { diff --git a/src/sp-shape.cpp b/src/sp-shape.cpp index cfb5239b1..c6f1a709a 100644 --- a/src/sp-shape.cpp +++ b/src/sp-shape.cpp @@ -95,11 +95,11 @@ void SPShapeClass::sp_shape_class_init(SPShapeClass *klass) gobject_class->finalize = SPShape::sp_shape_finalize; //sp_object_class->build = SPShape::sp_shape_build; - sp_object_class->release = SPShape::sp_shape_release; - sp_object_class->set = SPShape::sp_shape_set; - sp_object_class->update = SPShape::sp_shape_update; - sp_object_class->modified = SPShape::sp_shape_modified; - sp_object_class->write = SPShape::sp_shape_write; +// sp_object_class->release = SPShape::sp_shape_release; +// sp_object_class->set = SPShape::sp_shape_set; +// sp_object_class->update = SPShape::sp_shape_update; +// sp_object_class->modified = SPShape::sp_shape_modified; +// sp_object_class->write = SPShape::sp_shape_write; // item_class->bbox = SPShape::sp_shape_bbox; // item_class->print = sp_shape_print; diff --git a/src/sp-spiral.cpp b/src/sp-spiral.cpp index f31ce5f90..d802baab2 100644 --- a/src/sp-spiral.cpp +++ b/src/sp-spiral.cpp @@ -85,9 +85,9 @@ static void sp_spiral_class_init(SPSpiralClass *klass) parent_class = reinterpret_cast<SPShapeClass *>(g_type_class_ref(SP_TYPE_SHAPE)); //sp_object_class->build = sp_spiral_build; - sp_object_class->write = sp_spiral_write; - sp_object_class->set = sp_spiral_set; - sp_object_class->update = sp_spiral_update; +// sp_object_class->write = sp_spiral_write; +// sp_object_class->set = sp_spiral_set; +// sp_object_class->update = sp_spiral_update; // item_class->description = sp_spiral_description; // item_class->snappoints = sp_spiral_snappoints; diff --git a/src/sp-star.cpp b/src/sp-star.cpp index 489702167..29a5fa55a 100644 --- a/src/sp-star.cpp +++ b/src/sp-star.cpp @@ -79,9 +79,9 @@ static void sp_star_class_init(SPStarClass *klass) parent_class = reinterpret_cast<SPShapeClass *>(g_type_class_ref(SP_TYPE_SHAPE)); //sp_object_class->build = sp_star_build; - sp_object_class->write = sp_star_write; - sp_object_class->set = sp_star_set; - sp_object_class->update = sp_star_update; +// sp_object_class->write = sp_star_write; +// sp_object_class->set = sp_star_set; +// sp_object_class->update = sp_star_update; // item_class->description = sp_star_description; // item_class->snappoints = sp_star_snappoints; diff --git a/src/sp-string.cpp b/src/sp-string.cpp index eb0b7a9f0..af38d6f8e 100644 --- a/src/sp-string.cpp +++ b/src/sp-string.cpp @@ -79,9 +79,9 @@ sp_string_class_init(SPStringClass *classname) string_parent_class = (SPObjectClass*)g_type_class_ref(SP_TYPE_OBJECT); //sp_object_class->build = sp_string_build; - sp_object_class->release = sp_string_release; - sp_object_class->read_content = sp_string_read_content; - sp_object_class->update = sp_string_update; +// sp_object_class->release = sp_string_release; +// sp_object_class->read_content = sp_string_read_content; +// sp_object_class->update = sp_string_update; } CString::CString(SPString* str) : CObject(str) { diff --git a/src/sp-style-elem.cpp b/src/sp-style-elem.cpp index c7b4800b2..5337dd31d 100644 --- a/src/sp-style-elem.cpp +++ b/src/sp-style-elem.cpp @@ -46,9 +46,9 @@ sp_style_elem_class_init(SPStyleElemClass *klass) /* FIXME */ //klass->build = sp_style_elem_build; - klass->set = sp_style_elem_set; - klass->read_content = sp_style_elem_read_content; - klass->write = sp_style_elem_write; +// klass->set = sp_style_elem_set; +// klass->read_content = sp_style_elem_read_content; +// klass->write = sp_style_elem_write; } CStyleElem::CStyleElem(SPStyleElem* se) : CObject(se) { diff --git a/src/sp-symbol.cpp b/src/sp-symbol.cpp index 62b306078..b28816741 100644 --- a/src/sp-symbol.cpp +++ b/src/sp-symbol.cpp @@ -72,12 +72,12 @@ static void sp_symbol_class_init(SPSymbolClass *klass) parent_class = (SPGroupClass *)g_type_class_ref (SP_TYPE_GROUP); //sp_object_class->build = sp_symbol_build; - sp_object_class->release = sp_symbol_release; - sp_object_class->set = sp_symbol_set; - sp_object_class->child_added = sp_symbol_child_added; - sp_object_class->update = sp_symbol_update; - sp_object_class->modified = sp_symbol_modified; - sp_object_class->write = sp_symbol_write; +// sp_object_class->release = sp_symbol_release; +// sp_object_class->set = sp_symbol_set; +// sp_object_class->child_added = sp_symbol_child_added; +// sp_object_class->update = sp_symbol_update; +// sp_object_class->modified = sp_symbol_modified; +// sp_object_class->write = sp_symbol_write; // sp_item_class->show = sp_symbol_show; // sp_item_class->hide = sp_symbol_hide; diff --git a/src/sp-text.cpp b/src/sp-text.cpp index 0f3ea87dd..fe7138cbe 100644 --- a/src/sp-text.cpp +++ b/src/sp-text.cpp @@ -114,14 +114,14 @@ sp_text_class_init (SPTextClass *classname) text_parent_class = (SPItemClass*)g_type_class_ref (SP_TYPE_ITEM); - sp_object_class->release = sp_text_release; - //sp_object_class->build = sp_text_build; - sp_object_class->set = sp_text_set; - sp_object_class->child_added = sp_text_child_added; - sp_object_class->remove_child = sp_text_remove_child; - sp_object_class->update = sp_text_update; - sp_object_class->modified = sp_text_modified; - sp_object_class->write = sp_text_write; +// sp_object_class->release = sp_text_release; +// //sp_object_class->build = sp_text_build; +// sp_object_class->set = sp_text_set; +// sp_object_class->child_added = sp_text_child_added; +// sp_object_class->remove_child = sp_text_remove_child; +// sp_object_class->update = sp_text_update; +// sp_object_class->modified = sp_text_modified; +// sp_object_class->write = sp_text_write; // item_class->bbox = sp_text_bbox; // item_class->show = sp_text_show; diff --git a/src/sp-title.cpp b/src/sp-title.cpp index c7739823c..e3f26b71a 100644 --- a/src/sp-title.cpp +++ b/src/sp-title.cpp @@ -49,7 +49,7 @@ sp_title_class_init(SPTitleClass *klass) SPObjectClass *sp_object_class = (SPObjectClass *) klass; title_parent_class = (SPObjectClass *) g_type_class_ref(SP_TYPE_OBJECT); - sp_object_class->write = sp_title_write; +// sp_object_class->write = sp_title_write; } CTitle::CTitle(SPTitle* title) : CObject(title) { diff --git a/src/sp-tref.cpp b/src/sp-tref.cpp index 0ec0c3ebc..58972e078 100644 --- a/src/sp-tref.cpp +++ b/src/sp-tref.cpp @@ -101,11 +101,11 @@ sp_tref_class_init(SPTRefClass *tref_class) tref_parent_class = (SPObjectClass*)g_type_class_peek_parent(tref_class); //sp_object_class->build = sp_tref_build; - sp_object_class->release = sp_tref_release; - sp_object_class->write = sp_tref_write; - sp_object_class->set = sp_tref_set; - sp_object_class->update = sp_tref_update; - sp_object_class->modified = sp_tref_modified; +// sp_object_class->release = sp_tref_release; +// sp_object_class->write = sp_tref_write; +// sp_object_class->set = sp_tref_set; +// sp_object_class->update = sp_tref_update; +// sp_object_class->modified = sp_tref_modified; gobject_class->finalize = sp_tref_finalize; diff --git a/src/sp-tspan.cpp b/src/sp-tspan.cpp index d79177135..3950ed863 100644 --- a/src/sp-tspan.cpp +++ b/src/sp-tspan.cpp @@ -99,11 +99,11 @@ sp_tspan_class_init(SPTSpanClass *classname) tspan_parent_class = (SPItemClass*)g_type_class_ref(SP_TYPE_ITEM); //sp_object_class->build = sp_tspan_build; - sp_object_class->release = sp_tspan_release; - sp_object_class->set = sp_tspan_set; - sp_object_class->update = sp_tspan_update; - sp_object_class->modified = sp_tspan_modified; - sp_object_class->write = sp_tspan_write; +// sp_object_class->release = sp_tspan_release; +// sp_object_class->set = sp_tspan_set; +// sp_object_class->update = sp_tspan_update; +// sp_object_class->modified = sp_tspan_modified; +// sp_object_class->write = sp_tspan_write; // item_class->bbox = sp_tspan_bbox; // item_class->description = sp_tspan_description; @@ -396,11 +396,11 @@ static void sp_textpath_class_init(SPTextPathClass *classname) gobject_class->finalize = sp_textpath_finalize; //sp_object_class->build = sp_textpath_build; - sp_object_class->release = sp_textpath_release; - sp_object_class->set = sp_textpath_set; - sp_object_class->update = sp_textpath_update; - sp_object_class->modified = sp_textpath_modified; - sp_object_class->write = sp_textpath_write; +// sp_object_class->release = sp_textpath_release; +// sp_object_class->set = sp_textpath_set; +// sp_object_class->update = sp_textpath_update; +// sp_object_class->modified = sp_textpath_modified; +// sp_object_class->write = sp_textpath_write; } diff --git a/src/sp-use.cpp b/src/sp-use.cpp index c85029089..250ed9565 100644 --- a/src/sp-use.cpp +++ b/src/sp-use.cpp @@ -99,11 +99,11 @@ sp_use_class_init(SPUseClass *classname) gobject_class->finalize = sp_use_finalize; //sp_object_class->build = sp_use_build; - sp_object_class->release = sp_use_release; - sp_object_class->set = sp_use_set; - sp_object_class->write = sp_use_write; - sp_object_class->update = sp_use_update; - sp_object_class->modified = sp_use_modified; +// sp_object_class->release = sp_use_release; +// sp_object_class->set = sp_use_set; +// sp_object_class->write = sp_use_write; +// sp_object_class->update = sp_use_update; +// sp_object_class->modified = sp_use_modified; // item_class->bbox = sp_use_bbox; // item_class->description = sp_use_description; |
