Inkscape
Vector Graphics Editor
Loading...
Searching...
No Matches
sp-switch.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2#ifndef SEEN_SP_SWITCH_H
3#define SEEN_SP_SWITCH_H
4
5/*
6 * SVG <switch> implementation
7 *
8 * Authors:
9 * Andrius R. <knutux@gmail.com>
10 *
11 * Copyright (C) 2006 authors
12 *
13 * Released under GNU GPL v2+, read the file 'COPYING' for more information.
14 */
15
16#include <cstddef>
17#include <sigc++/connection.h>
18
19#include "sp-item-group.h"
20
21class SPSwitch final : public SPGroup {
22public:
23 SPSwitch();
24 ~SPSwitch() override;
25 int tag() const override { return tag_of<decltype(*this)>; }
26
28
29 std::vector<SPObject*> _childList(bool add_ref, SPObject::Action action);
30 void _showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) override;
31
33 void _reevaluate(bool add_to_arena = false);
34 static void _releaseItem(SPObject *obj, SPSwitch *selection);
35 void _releaseLastItem(SPObject *obj);
36
38 sigc::connection _release_connection;
39
43 const char* typeName() const override;
44 const char* displayName() const override;
45 gchar *description() const override;
46};
47
48#endif
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
Definition cast.h:26
SVG drawing item for display.
Interface for refcounted XML nodes.
Definition node.h:80
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Definition sp-object.h:160
SPObject * _cached_item
Definition sp-switch.h:37
gchar * description() const override
Definition sp-switch.cpp:71
~SPSwitch() override
Definition sp-switch.cpp:28
void _showChildren(Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) override
std::vector< SPObject * > _childList(bool add_ref, SPObject::Action action)
Definition sp-switch.cpp:45
void _releaseLastItem(SPObject *obj)
static void _releaseItem(SPObject *obj, SPSwitch *selection)
sigc::connection _release_connection
Definition sp-switch.h:38
const char * typeName() const override
The item's type name, not node tag name.
Definition sp-switch.cpp:63
int tag() const override
Definition sp-switch.h:25
void _reevaluate(bool add_to_arena=false)
Definition sp-switch.cpp:96
void order_changed(Inkscape::XML::Node *child, Inkscape::XML::Node *old_ref, Inkscape::XML::Node *new_ref) override
Definition sp-switch.cpp:89
void remove_child(Inkscape::XML::Node *child) override
Definition sp-switch.cpp:83
void child_added(Inkscape::XML::Node *child, Inkscape::XML::Node *ref) override
Definition sp-switch.cpp:77
void resetChildEvaluated()
Definition sp-switch.h:27
const char * displayName() const override
The item's type name as a translated human string.
Definition sp-switch.cpp:67
SPObject * _evaluateFirst()
Definition sp-switch.cpp:32
static cairo_user_data_key_t key
Ocnode * child[8]
Definition quantize.cpp:33
Ocnode ** ref
Definition quantize.cpp:32