diff options
| author | Markus Engel <markus.engel@tum.de> | 2012-08-21 00:54:06 +0000 |
|---|---|---|
| committer | Markus Engel <markus.engel@tum.de> | 2012-08-21 00:54:06 +0000 |
| commit | 62fbbefccbe10ec11e727735e6bfe890003b0af2 (patch) | |
| tree | 1741dcb7c61f75230ba00489ee2d9f3c0d11692f /src/sp-paint-server.cpp | |
| parent | Added "virtual pad" to SPScript. (diff) | |
| download | inkscape-62fbbefccbe10ec11e727735e6bfe890003b0af2.tar.gz inkscape-62fbbefccbe10ec11e727735e6bfe890003b0af2.zip | |
Added "virtual pad" to
- SPPaintServer
- SPPattern
- SPGradient
- SPStop
- SPLinearGradient
- SPMeshGradient
- SPMeshPatch
- SPMeshRow
- SPRadialGradient
As all subclasses of SPPaintServer now have "virtual pads" with correct inheritance, the virtual function call to "onCreatePattern" was converted to C++ style.
(bzr r11608.1.35)
Diffstat (limited to 'src/sp-paint-server.cpp')
| -rw-r--r-- | src/sp-paint-server.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/src/sp-paint-server.cpp b/src/sp-paint-server.cpp index ae4a60ba6..6df8719df 100644 --- a/src/sp-paint-server.cpp +++ b/src/sp-paint-server.cpp @@ -64,11 +64,20 @@ static void sp_paint_server_class_init(SPPaintServerClass *psc) parent_class = static_cast<SPObjectClass *>(g_type_class_ref(SP_TYPE_OBJECT)); } -void SPPaintServer::init(SPPaintServer * /*ps*/) +CPaintServer::CPaintServer(SPPaintServer* paintserver) : CObject(paintserver) { + this->sppaintserver = paintserver; +} + +CPaintServer::~CPaintServer() { +} + +void SPPaintServer::init(SPPaintServer * ps) { + ps->cpaintserver = new CPaintServer(ps); + ps->cobject = ps->cpaintserver; } -cairo_pattern_t *sp_paint_server_create_pattern(SPPaintServer *ps, +cairo_pattern_t *sp_paint_server_invoke_create_pattern(SPPaintServer *ps, cairo_t *ct, Geom::OptRect const &bbox, double opacity) @@ -77,14 +86,25 @@ cairo_pattern_t *sp_paint_server_create_pattern(SPPaintServer *ps, g_return_val_if_fail(SP_IS_PAINT_SERVER(ps), NULL); cairo_pattern_t *cp = NULL; - SPPaintServerClass *psc = (SPPaintServerClass *) G_OBJECT_GET_CLASS(ps); - if ( psc->pattern_new ) { - cp = (*psc->pattern_new)(ps, ct, bbox, opacity); - } + + cp = ps->cpaintserver->onCreatePattern(ct, bbox, opacity); return cp; } +// CPPIFY: make pure virtual +cairo_pattern_t* CPaintServer::onCreatePattern(cairo_t *ct, Geom::OptRect const &bbox, double opacity) { + throw; +} + +cairo_pattern_t *sp_paint_server_create_pattern(SPPaintServer *ps, + cairo_t *ct, + Geom::OptRect const &bbox, + double opacity) +{ + return sp_paint_server_invoke_create_pattern(ps, ct, bbox, opacity); +} + static cairo_pattern_t * sp_paint_server_create_dummy_pattern(SPPaintServer */*ps*/, cairo_t */* ct */, |
