/**
* @file
* Group belonging to an SVG drawing element.
*//*
* Authors:
* Krzysztof KosiĆski <tweenk.pl@gmail.com>
*
* Copyright (C) 2011 Authors
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include "display/drawing-context.h"
#include "display/drawing-item.h"
#include "display/drawing-group.h"
#include "style.h"
#include "display/cairo-utils.h"
namespace Inkscape {
{}
{
delete _child_transform; // delete NULL; is safe
}
/**
* Set whether the group returns children from pick calls.
* Previously this feature was called "transparent groups".
*/
void
{
_pick_children = p;
}
/**
* Set additional transform for the group.
* This is applied after the normal transform and mainly useful for
* markers, clipping paths, etc.
*/
void
{
if (_child_transform) {
}
// mark the area where the object was for redraw.
if (new_trans.isIdentity()) {
delete _child_transform; // delete NULL; is safe
} else {
}
_markForUpdate(STATE_ALL, true);
}
}
unsigned
DrawingGroup::_updateItem(Geom::IntRect const &area, UpdateContext const &ctx, unsigned flags, unsigned reset)
{
if (_child_transform) {
}
}
if (beststate & STATE_BBOX) {
if (i->visible()) {
}
}
}
return beststate;
}
unsigned
DrawingGroup::_renderItem(DrawingContext &dc, Geom::IntRect const &area, unsigned flags, DrawingItem *stop_at)
{
// normal rendering
}
} else {
// background rendering
if (i->isAncestorOf(stop_at)) {
// render its ancestors without masks, opacity or filters
// stop further rendering
return RENDER_OK;
} else {
}
}
}
return RENDER_OK;
}
void
{
}
}
{
if (picked) {
return _pick_children ? picked : this;
}
}
return NULL;
}
bool
{
return true;
}
{
}
} // end namespace Inkscape
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :