diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2011-06-26 00:41:16 +0000 |
commit | 698569f8428ca088f764d704034a1330517b98c0 (patch) | |
tree | bf45be6946ebbbee9cce5a5bcf838f4c952d87e6 /chalk/plugins/tools/selectiontools | |
parent | 2785103a6bd4de55bd26d79e34d0fdd4b329a73a (diff) | |
download | koffice-698569f8428ca088f764d704034a1330517b98c0.tar.gz koffice-698569f8428ca088f764d704034a1330517b98c0.zip |
Finish rebranding of Krita as Chalk
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/koffice@1238363 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'chalk/plugins/tools/selectiontools')
40 files changed, 6960 insertions, 0 deletions
diff --git a/chalk/plugins/tools/selectiontools/Makefile.am b/chalk/plugins/tools/selectiontools/Makefile.am new file mode 100644 index 00000000..dc0ad90e --- /dev/null +++ b/chalk/plugins/tools/selectiontools/Makefile.am @@ -0,0 +1,56 @@ +kde_services_DATA = chalkselectiontools.desktop + +# all_includes must remain last! +INCLUDES = -I$(srcdir)/../../../sdk \ + -I$(srcdir)/../../../core \ + -I$(srcdir)/../../../chalkcolor/ \ + -I$(srcdir)/../../../ui \ + -I$/../../../ui \ + $(KOFFICE_INCLUDES) \ + $(all_includes) + +chalkselectiontools_la_SOURCES = kis_tool_move_selection.cc \ + kis_tool_select_brush.cc kis_tool_select_contiguous.cc kis_tool_select_elliptical.cc \ + kis_tool_select_eraser.cc kis_tool_select_outline.cc kis_tool_select_polygonal.cc \ + kis_tool_select_rectangular.cc selection_tools.cc + +# Install this plugin in the KDE modules directory +kde_module_LTLIBRARIES = chalkselectiontools.la + +noinst_HEADERS = \ + selection_tools.h \ + kis_tool_select_outline.h \ + kis_tool_select_polygonal.h \ + kis_tool_select_rectangular.h \ + kis_tool_select_brush.h \ + kis_tool_select_eraser.h \ + kis_tool_select_contiguous.h \ + kis_tool_select_elliptical.h + + +chalkselectiontools_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN) $(LIB_QT) -lkdecore -lkdeui -lkjs -lkdefx -lkio -lkparts -L../../../../chalk/chalkcolor/.libs -lchalkcolor -L../../../../chalk/core/.libs -lchalkimage \ + -L../../../../chalk/ui/.libs -lchalkui +chalkselectiontools_la_LIBADD = ../../../libchalkcommon.la + +chalkselectiontools_la_METASOURCES = AUTO + +KDE_OPTIONS = nofinal + +chalkpics_DATA = \ + tool_rect_selection.png \ + tool_eraser_selection.png \ + tool_brush_selection.png \ + tool_contiguous_selection.png \ + tool_elliptical_selection.png \ + tool_outline_selection.png \ + tool_polygonal_selection.png \ + tool_rectangular_selection_cursor.png \ + tool_eraser_selection_cursor.png \ + tool_brush_selection_cursor.png \ + tool_contiguous_selection_cursor.png \ + tool_elliptical_selection_cursor.png \ + tool_outline_selection_cursor.png \ + tool_polygonal_selection_cursor.png + +chalkpicsdir = $(kde_datadir)/chalk/pics + diff --git a/chalk/plugins/tools/selectiontools/chalkselectiontools.desktop b/chalk/plugins/tools/selectiontools/chalkselectiontools.desktop new file mode 100644 index 00000000..72a7f217 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/chalkselectiontools.desktop @@ -0,0 +1,52 @@ +[Desktop Entry] +Name=Selection Tools +Name[bg]=Инструмент за маркиране +Name[br]=Ostilhoù choazh +Name[ca]=Eines de selecció +Name[cy]=Offer Detholi +Name[da]=Markeringsværktøj +Name[de]=Auswahlwerkzeuge +Name[el]=Εργαλεία επιλογής +Name[eo]=Elektado-iloj +Name[es]=Herramientas de selección +Name[et]=Valikutööriistad +Name[eu]=Hautapen-tresnak +Name[fa]=ابزارهای گزینش +Name[fi]=Valintatyökalut +Name[fr]=Outils de sélection +Name[fy]=Seleksje-ark +Name[ga]=Uirlisí Roghnúcháin +Name[gl]=Ferramentas de Selección +Name[he]=כלי בחירה +Name[hu]=Kiválasztó eszközök +Name[is]=Valtól +Name[it]=Strumenti di selezione +Name[ja]=選択ツール +Name[km]=ឧបករណ៍ជ្រើស +Name[lt]=Pažymėjimo įrankiai +Name[lv]=Izvēles rīki +Name[ms]=Alat Pemilihan +Name[nb]=Velgeverktøy +Name[nds]=Utwahlwarktüüch +Name[ne]=चयन उपकरण +Name[nl]=Selectiegereedschappen +Name[nn]=Veljeverktøy +Name[pl]=Narzędzia wyboru +Name[pt]=Ferramentas de Selecção +Name[pt_BR]=Ferramentas de Seleção +Name[ru]=Инструменты выделения +Name[se]=Válljenreaiddut +Name[sk]=Štetec výberu +Name[sl]=Orodja za izbiro +Name[sr]=Алати за избор +Name[sr@Latn]=Alati za izbor +Name[sv]=Markeringsverktyg +Name[uk]=Засоби виділення +Name[uz]=Tanlash vositalari +Name[uz@cyrillic]=Танлаш воситалари +Name[zh_CN]=选择工具 +Name[zh_TW]=選取區工具 +ServiceTypes=Chalk/Tool +Type=Service +X-KDE-Library=chalkselectiontools +X-Chalk-Version=2 diff --git a/chalk/plugins/tools/selectiontools/kis_tool_move_selection.cc b/chalk/plugins/tools/selectiontools/kis_tool_move_selection.cc new file mode 100644 index 00000000..b7b123d7 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_move_selection.cc @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2006 Cyrille Berger <cberger@cberger.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include "kis_tool_move_selection.h" + +#include <stdlib.h> +#include <tqpoint.h> +#include <kaction.h> +#include <kcommand.h> +#include <klocale.h> +#include <tqcolor.h> +#include "kis_canvas_subject.h" +#include "kis_cursor.h" +#include "kis_image.h" +#include "kis_layer.h" +#include "kis_paint_layer.h" +#include "kis_paint_device.h" +#include "kis_button_press_event.h" +#include "kis_button_release_event.h" +#include "kis_move_event.h" +#include "kis_selection.h" +#include "kis_selection_manager.h" +#include "kis_undo_adapter.h" + +class KisSelectionOffsetCommand : public KNamedCommand { + typedef KNamedCommand super; + +public: + KisSelectionOffsetCommand(KisSelectionSP layer, const TQPoint& oldpos, const TQPoint& newpos); + virtual ~KisSelectionOffsetCommand(); + + virtual void execute(); + virtual void unexecute(); + +private: + void moveTo(const TQPoint& pos); + +private: + KisSelectionSP m_layer; + TQPoint m_oldPos; + TQPoint m_newPos; +}; + + KisSelectionOffsetCommand::KisSelectionOffsetCommand(KisSelectionSP layer, const TQPoint& oldpos, const TQPoint& newpos) : + super(i18n("Move Layer")) + { + m_layer = layer; + m_oldPos = oldpos; + m_newPos = newpos; + + } + + KisSelectionOffsetCommand::~KisSelectionOffsetCommand() + { + } + + void KisSelectionOffsetCommand::execute() + { + moveTo(m_newPos); + } + + void KisSelectionOffsetCommand::unexecute() + { + moveTo(m_oldPos); + } + + void KisSelectionOffsetCommand::moveTo(const TQPoint& pos) + { + if (m_layer->undoAdapter()) { + m_layer->undoAdapter()->setUndo(false); + } + + m_layer->setX(pos.x()); + m_layer->setY(pos.y()); + + m_layer->tqparentPaintDevice()->setDirty(); + + if (m_layer->undoAdapter()) { + m_layer->undoAdapter()->setUndo(true); + } + } + + +KisToolMoveSelection::KisToolMoveSelection() + : super(i18n("Move Selection Tool")) +{ + setName("tool_move_selection"); + m_subject = 0; + setCursor(KisCursor::moveCursor()); +} + +KisToolMoveSelection::~KisToolMoveSelection() +{ +} + +void KisToolMoveSelection::update(KisCanvasSubject *subject) +{ + m_subject = subject; + super::update(subject); + m_dragging = false; +} + +void KisToolMoveSelection::buttonPress(KisButtonPressEvent *e) +{ + m_dragging = false; + if (m_subject && e->button() == Qt::LeftButton) { + TQPoint pos = e->pos().floorTQPoint(); + KisImageSP img = m_subject->currentImg(); + KisPaintLayerSP lay; + + if (!img || !(lay = dynamic_cast<KisPaintLayer*>( img->activeLayer().data() ))) + return; + + m_dragStart = pos; + + if ( !lay->visible() || !lay->paintDevice()->hasSelection()) + return; + KisSelectionSP sel = lay->paintDevice()->selection(); + + m_dragging = true; + m_dragStart.setX(pos.x()); + m_dragStart.setY(pos.y()); + m_layerStart.setX(sel->getX()); + m_layerStart.setY(sel->getY()); + m_layerPosition = m_layerStart; + + } +} + +void KisToolMoveSelection::move(KisMoveEvent *e) +{ + if (m_subject && m_dragging) { + TQPoint pos = e->pos().floorTQPoint(); + if((e->state() & TQt::AltButton) || (e->state() & TQt::ControlButton)) { + if(fabs(pos.x() - m_dragStart.x()) > fabs(pos.y() - m_dragStart.y())) + pos.setY(m_dragStart.y()); + else + pos.setX(m_dragStart.x()); + } + + KisImageSP img = m_subject->currentImg(); + KisPaintLayerSP lay = dynamic_cast<KisPaintLayer*>(m_subject->currentImg()->activeLayer().data()); + if(!lay) return; + KisSelectionSP sel = lay->paintDevice()->selection(); + + TQRect rc; + + pos -= m_dragStart; // convert to delta + rc = sel->selectedRect(); + sel->setX(sel->getX() + pos.x()); + sel->setY(sel->getY() + pos.y()); + rc = rc.unite(sel->selectedRect()); + + m_layerPosition = TQPoint(sel->getX(), sel->getY()); + m_dragStart = e->pos().floorTQPoint(); + + lay->paintDevice()->setDirty(rc); + } + +} + +void KisToolMoveSelection::buttonRelease(KisButtonReleaseEvent *e) +{ + if (m_subject && e->button() == Qt::LeftButton && m_dragging) { + m_dragging = false; + KisImageSP img = m_subject->currentImg(); + if(!img) return; + KisPaintLayerSP lay = dynamic_cast<KisPaintLayer*>(img->activeLayer().data()); + + if (lay->paintDevice()->hasSelection()) { + KisSelectionSP dev = lay->paintDevice()->selection(); + m_dragging = false; + + if (img->undo()) { + KCommand *cmd = new KisSelectionOffsetCommand( dev, m_layerStart, m_layerPosition); + Q_CHECK_PTR(cmd); + KisUndoAdapter *adapter = img->undoAdapter(); + if (adapter) { + adapter->addCommand(cmd); + } else { + delete cmd; + } + } + img->setModified(); + lay->setDirty(); + } + } +} + +void KisToolMoveSelection::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Move selection"), + "tool_move", + TQt::SHIFT+TQt::Key_V, + this, + TQT_SLOT(activate()), + collection, + name()); + m_action->setToolTip(i18n("Move the selection")); + m_action->setExclusiveGroup("tools"); + m_ownAction = true; + } +} + +#include "kis_tool_move_selection.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_move_selection.h b/chalk/plugins/tools/selectiontools/kis_tool_move_selection.h new file mode 100644 index 00000000..60d73a9b --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_move_selection.h @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2006 Cyrille Berger <cberger@cberger.net> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KIS_TOOL_MOVE_H_ +#define KIS_TOOL_MOVE_H_ + +#include "kis_tool_non_paint.h" +#include "kis_tool_factory.h" + +// XXX: Moving is not nearly smooth enough! +class KisToolMoveSelection : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT + +public: + KisToolMoveSelection(); + virtual ~KisToolMoveSelection(); + +public: + virtual void update(KisCanvasSubject *subject); + +public: + virtual void setup(KActionCollection *collection); + virtual enumToolType toolType() { return TOOL_SELECT; } + virtual TQ_UINT32 priority() { return 10; } + + virtual void buttonPress(KisButtonPressEvent *e); + virtual void move(KisMoveEvent *e); + virtual void buttonRelease(KisButtonReleaseEvent *e); + +private: + KisCanvasSubject *m_subject; + TQPoint m_dragStart; + TQPoint m_layerStart; + TQPoint m_layerPosition; + bool m_dragging; +}; + + +class KisToolMoveSelectionFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolMoveSelectionFactory() : super() {}; + virtual ~KisToolMoveSelectionFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolMoveSelection(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("moveselection", i18n("Move Selection Tool")); } +}; + + + +#endif // KIS_TOOL_MOVE_H_ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_brush.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_brush.cc new file mode 100644 index 00000000..ff5242d6 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_brush.cc @@ -0,0 +1,168 @@ +/* + * kis_tool_select_brush.cc - part of Chalk + * + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqevent.h> +#include <tqlabel.h> +#include <tqlayout.h> +#include <tqwidget.h> +#include <tqrect.h> + +#include <kdebug.h> +#include <kaction.h> +#include <kcommand.h> +#include <klocale.h> + +#include "kis_brush.h" +#include "kis_button_press_event.h" +#include "kis_button_release_event.h" +#include "kis_cmb_composite.h" +#include "kis_cursor.h" +#include "kis_doc.h" +#include "kis_paintop.h" +#include "kis_paintop_registry.h" +#include "kis_move_event.h" +#include "kis_painter.h" +#include "kis_selection.h" +#include "kis_tool_select_brush.h" +#include "kis_types.h" +#include "kis_layer.h" +#include "kis_view.h" +#include "kis_selection_options.h" +#include "kis_selected_transaction.h" + +KisToolSelectBrush::KisToolSelectBrush() + : super(i18n("SelectBrush")) +{ + setName("tool_select_brush"); + m_optWidget = 0; + setCursor(KisCursor::load("tool_brush_selection_cursor.png", 5, 5)); + m_paintOnSelection = true; +} + +KisToolSelectBrush::~KisToolSelectBrush() +{ +} + +void KisToolSelectBrush::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectBrush::initPaint(KisEvent* /*e*/) +{ + if (!m_currentImage || !m_currentImage->activeDevice()) return; + + m_mode = PAINT; + m_dragDist = 0; + + // Create painter + KisPaintDeviceSP dev = m_currentImage->activeDevice(); + if (m_painter) + delete m_painter; + bool hasSelection = dev->hasSelection(); + if (m_currentImage->undo()) m_transaction = new KisSelectedTransaction(i18n("Selection Brush"), dev); + if(! hasSelection) + { + dev->selection()->clear(); + dev->emitSelectionChanged(); + } + KisSelectionSP selection = dev->selection(); + + m_target = selection; + m_painter = new KisPainter(selection.data()); + Q_CHECK_PTR(m_painter); + m_painter->setPaintColor(KisColor(TQt::black, selection->colorSpace())); + m_painter->setBrush(m_subject->currentBrush()); + m_painter->setOpacity(OPACITY_OPAQUE);//m_subject->fgColor().colorSpace()->intensity8(m_subject->fgColor().data())); + m_painter->setCompositeOp(COMPOSITE_OVER); + KisPaintOp * op = KisPaintOpRegistry::instance()->paintOp("paintbrush", 0, painter()); + painter()->setPaintOp(op); // And now the painter owns the op and will destroy it. + + // Set the cursor -- ideally. this should be a tqmask created from the brush, + // now that X11 can handle colored cursors. +#if 0 + // Setting cursors has no effect until the tool is selected again; this + // should be fixed. + setCursor(KisCursor::brushCursor()); +#endif +} + +void KisToolSelectBrush::endPaint() +{ + m_mode = HOVER; + if (m_currentImage && m_currentImage->activeLayer()) { + if (m_currentImage->undo() && m_painter) { + // If painting in mouse release, make sure painter + // is destructed or end()ed + m_currentImage->undoAdapter()->addCommand(m_transaction); + } + delete m_painter; + m_painter = 0; + if (m_currentImage->activeDevice()) + m_currentImage->activeDevice()->emitSelectionChanged(); + notifyModified(); + } +} + + +void KisToolSelectBrush::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Selection Brush"), + "tool_brush_selection", "Ctrl+Shift+B", this, + TQT_SLOT(activate()), collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setToolTip(i18n("Paint a selection")); + m_action->setExclusiveGroup("tools"); + m_ownAction = true; + } +} + +TQWidget* KisToolSelectBrush::createOptionWidget(TQWidget* tqparent) +{ + Q_UNUSED(tqparent); + // Commented out due to the fact that this doesn't actually work if you change the action +#if 0 + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Selection Brush")); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +#endif + return 0; +} + +TQWidget* KisToolSelectBrush::optionWidget() +{ + return m_optWidget; +} + +#include "kis_tool_select_brush.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_brush.h b/chalk/plugins/tools/selectiontools/kis_tool_select_brush.h new file mode 100644 index 00000000..374050f6 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_brush.h @@ -0,0 +1,83 @@ +/* + * kis_tool_select_brush.h - part of Chalk + * + * Copyright (c) 2003-2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KIS_TOOL_SELECT_BRUSH_H_ +#define KIS_TOOL_SELECT_BRUSH_H_ + +#include <kis_tool.h> +#include <kis_tool_freehand.h> +#include <kis_tool_factory.h> + +class TQWidget; +class KisPoint; +class KisSelectedTransaction; +class KisSelectionOptions; + +/** + * The selection brush creates a selection by painting with the current + * brush tqshape. Not sure what kind of an icon could represent this... + * Depends a bit on how we're going to visualize selections. + */ +class KisToolSelectBrush : public KisToolFreehand { + Q_OBJECT + TQ_OBJECT + typedef KisToolFreehand super; + +public: + KisToolSelectBrush(); + virtual ~KisToolSelectBrush(); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 1; } + virtual enumToolType toolType() { return TOOL_SELECT; } + virtual TQWidget* createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + +public slots: + virtual void activate(); + +protected: + + virtual void initPaint(KisEvent *e); + virtual void endPaint(); + +private: + KisSelectionOptions * m_optWidget; + KisSelectedTransaction *m_transaction; +}; + +class KisToolSelectBrushFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectBrushFactory() : super() {}; + virtual ~KisToolSelectBrushFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectBrush(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("brushselect", i18n("Brush Select Tool")); } +}; + + +#endif // KIS_TOOL_SELECT_BRUSH_H_ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.cc new file mode 100644 index 00000000..c4c908fc --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.cc @@ -0,0 +1,234 @@ +/* + * kis_tool_select_contiguous - part of Krayon^WChalk + * + * Copyright (c) 1999 Michael Koch <koch@kde.org> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqpainter.h> +#include <tqlayout.h> +#include <tqlabel.h> +#include <tqapplication.h> +#include <tqcheckbox.h> + +#include <kaction.h> +#include <kdebug.h> +#include <klocale.h> +#include <knuminput.h> +#include <kcolorbutton.h> + +#include <kis_cursor.h> +#include <kis_selection_manager.h> +#include <kis_canvas_subject.h> +#include <kis_image.h> +#include <kis_layer.h> +#include <kis_paint_device.h> +#include <kis_button_press_event.h> +#include <kis_canvas_subject.h> +#include <kis_selection_options.h> +#include <kis_selection.h> +#include <kis_paint_device.h> +#include <kis_iterators_pixel.h> +#include <kis_selection_options.h> +#include <kis_canvas_observer.h> +#include <kis_fill_painter.h> +#include <kis_undo_adapter.h> +#include <kis_selected_transaction.h> + +#include "kis_tool_select_contiguous.h" + +KisToolSelectContiguous::KisToolSelectContiguous() : super(i18n("Contiguous Select")) +{ + setName("tool_select_contiguous"); + m_subject = 0; + m_optWidget = 0; + m_fuzziness = 20; + m_sampleMerged = false; + m_selectAction = SELECTION_ADD; + + setCursor(KisCursor::load("tool_contiguous_selection_cursor.png", 6, 6)); +} + +KisToolSelectContiguous::~KisToolSelectContiguous() +{ +} + +void KisToolSelectContiguous::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectContiguous::buttonPress(KisButtonPressEvent * e) +{ + if (m_subject) { + + KisImageSP img; + KisPaintDeviceSP dev; + TQPoint pos; + + if (e->button() != Qt::LeftButton && e->button() != Qt::RightButton) + return; + + if (!(img = m_subject->currentImg())) + return; + + dev = img->activeDevice(); + + if (!dev || !img->activeLayer()->visible()) + return; + + TQApplication::setOverrideCursor(KisCursor::waitCursor()); + + pos = TQPoint(e->pos().floorX(), e->pos().floorY()); + + KisFillPainter fillpainter(dev); + fillpainter.setFillThreshold(m_fuzziness); + fillpainter.setSampleMerged(m_sampleMerged); + KisSelectionSP selection = fillpainter.createFloodSelection(pos.x(), pos.y()); + KisSelectedTransaction *t = 0; + if (img->undo()) t = new KisSelectedTransaction(i18n("Contiguous Area Selection"), dev); + + if (!dev->hasSelection()) { + dev->selection()->clear(); + if(m_selectAction==SELECTION_SUBTRACT) + selection->invert(); + } + + switch (m_selectAction) { + case SELECTION_SUBTRACT: + dev->subtractSelection(selection); + break; + case SELECTION_ADD: + default: + dev->addSelection(selection); + break; + + } + + dev->setDirty(selection->selectedRect()); // A bit too wide, but that's not that bad + dev->emitSelectionChanged(); + + + if (img->undo()) + img->undoAdapter()->addCommand(t); + + TQApplication::restoreOverrideCursor(); + } + +} + +void KisToolSelectContiguous::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Contiguous Area Selection"), + "tool_contiguous_selection" , + 0, + this, + TQT_SLOT(activate()), + collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setToolTip(i18n("Select a contiguous area")); + m_action->setExclusiveGroup("tools"); + m_ownAction = true; + } +} + +void KisToolSelectContiguous::update(KisCanvasSubject *subject) +{ + super::update(subject); + m_subject = subject; +} + +void KisToolSelectContiguous::slotSetFuzziness(int fuzziness) +{ + m_fuzziness = fuzziness; +} + + +void KisToolSelectContiguous::slotSetAction(int action) +{ + if (action >= SELECTION_ADD && action <= SELECTION_SUBTRACT) + m_selectAction =(enumSelectionMode)action; +// XXX: Fix cursors when then are done. +// switch(m_selectAction) { +// case SELECTION_ADD: +// m_subject->setCanvasCursor(KisCursor::pickerPlusCursor()); +// break; +// case SELECTION_SUBTRACT: +// m_subject->setCanvasCursor(KisCursor::pickerMinusCursor()); +// }; +} + + +TQWidget* KisToolSelectContiguous::createOptionWidget(TQWidget* tqparent) +{ + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Contiguous Area Selection")); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->setSpacing( 6 ); + + connect (m_optWidget, TQT_SIGNAL(actionChanged(int)), this, TQT_SLOT(slotSetAction(int))); + + TQHBoxLayout * hbox = new TQHBoxLayout(l); + Q_CHECK_PTR(hbox); + + TQLabel * lbl = new TQLabel(i18n("Fuzziness: "), m_optWidget); + hbox->addWidget(lbl); + + KIntNumInput * input = new KIntNumInput(m_optWidget, "fuzziness"); + Q_CHECK_PTR(input); + + input->setRange(0, 200, 10, true); + input->setValue(20); + hbox->addWidget(input); + connect(input, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotSetFuzziness(int))); + + TQCheckBox* samplemerged = new TQCheckBox(i18n("Sample merged"), m_optWidget); + l->addWidget( samplemerged ); + samplemerged->setChecked(m_sampleMerged); + connect(samplemerged, TQT_SIGNAL(stateChanged(int)), + this, TQT_SLOT(slotSetSampleMerged(int))); + + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +} + +TQWidget* KisToolSelectContiguous::optionWidget() +{ + return m_optWidget; +} + +void KisToolSelectContiguous::slotSetSampleMerged(int state) +{ + if (state == TQButton::NoChange) + return; + m_sampleMerged = (state == TQButton::On); +} + +#include "kis_tool_select_contiguous.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.h b/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.h new file mode 100644 index 00000000..e4beb6b7 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_contiguous.h @@ -0,0 +1,95 @@ +/* + * kis_tool_select_contiguous.h - part of KImageShop^WKrayon^Chalk + * + * Copyright (c) 1999 Michael Koch <koch@kde.org> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __KIS_TOOL_SELECT_CONTIGUOUS_H__ +#define __KIS_TOOL_SELECT_CONTIGUOUS_H__ + +#include <kis_tool.h> +#include <kis_tool_non_paint.h> +#include <kis_tool_factory.h> +#include <kis_selection.h> + +class KisCanvasSubject; +class TQWidget; +class TQVBoxLayout; +class TQCheckBox; +class KisSelectionOptions; + +/** + * The 'magic wand' selection tool -- in fact just + * a floodfill that only creates a selection. + */ +class KisToolSelectContiguous : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT + +public: + KisToolSelectContiguous(); + virtual ~KisToolSelectContiguous(); + +public: + virtual void update(KisCanvasSubject *subject); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 7; } + virtual enumToolType toolType() { return TOOL_SELECT; }; + + virtual TQWidget* createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + + virtual void buttonPress(KisButtonPressEvent *event); + +public slots: + virtual void slotSetFuzziness(int); + virtual void slotSetAction(int); + virtual void slotSetSampleMerged(int); + virtual void activate(); + + +private: + KisCanvasSubject *m_subject; + KisSelectionOptions * m_optWidget; + + int m_fuzziness; + enumSelectionMode m_selectAction; + bool m_sampleMerged; +}; + +class KisToolSelectContiguousFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectContiguousFactory() : super() {}; + virtual ~KisToolSelectContiguousFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectContiguous(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("contiguousselect", i18n("Contiguous Select Tool")); } +}; + + +#endif //__KIS_TOOL_SELECT_CONTIGUOUS_H__ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.cc new file mode 100644 index 00000000..efdae2f3 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.cc @@ -0,0 +1,321 @@ +/* + * kis_tool_select_elliptical.cc -- part of Chalk + * + * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqapplication.h> +#include <tqpainter.h> +#include <tqpen.h> +#include <tqlayout.h> + +#include <kdebug.h> +#include <kaction.h> +#include <kcommand.h> +#include <klocale.h> + +#include "kis_autobrush_resource.h" +#include "kis_canvas_controller.h" +#include "kis_canvas_subject.h" +#include "kis_cursor.h" +#include "kis_image.h" +#include "kis_painter.h" +#include "kis_tool_select_elliptical.h" +#include "kis_layer.h" +#include "kis_undo_adapter.h" +#include "kis_button_press_event.h" +#include "kis_button_release_event.h" +#include "kis_move_event.h" +#include "kis_selection.h" +#include "kis_selection_options.h" +#include "kis_selected_transaction.h" +#include "kis_canvas.h" +#include "kis_canvas_painter.h" + +KisToolSelectElliptical::KisToolSelectElliptical() + : super(i18n("Elliptical Select")) +{ + setName("tool_select_elliptical"); + setCursor(KisCursor::load("tool_elliptical_selection_cursor.png", 6, 6)); + + m_subject = 0; + m_selecting = false; + m_centerPos = KisPoint(0, 0); + m_startPos = KisPoint(0, 0); + m_endPos = KisPoint(0, 0); + m_optWidget = 0; + m_selectAction = SELECTION_ADD; +} + +KisToolSelectElliptical::~KisToolSelectElliptical() +{ +} + +void KisToolSelectElliptical::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectElliptical::update(KisCanvasSubject *subject) +{ + m_subject = subject; + super::update(m_subject); +} + +void KisToolSelectElliptical::paint(KisCanvasPainter& gc) +{ + if (m_selecting) + paintOutline(gc, TQRect()); +} + +void KisToolSelectElliptical::paint(KisCanvasPainter& gc, const TQRect& rc) +{ + if (m_selecting) + paintOutline(gc, rc); +} + +void KisToolSelectElliptical::clearSelection() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisImageSP img = m_subject->currentImg(); + + Q_ASSERT(controller); + +// if (img && img->floatingSelection().data() != 0) { +// img->unsetFloatingSelection(); +// controller->canvas()->update(); +// } + + m_startPos = KisPoint(0, 0); + m_endPos = KisPoint(0, 0); + m_selecting = false; + } +} + +void KisToolSelectElliptical::buttonPress(KisButtonPressEvent *e) +{ + if (m_subject) { + KisImageSP img = m_subject->currentImg(); + + if (img && img->activeDevice() && e->button() == Qt::LeftButton) { + clearSelection(); + m_startPos = m_endPos = m_centerPos = e->pos(); + m_selecting = true; + paintOutline(); + } + } +} + +void KisToolSelectElliptical::move(KisMoveEvent *e) +{ + if (m_subject && m_selecting) { + paintOutline(); + // move (alt) or resize ellipse + if (e->state() & TQt::AltButton) { + KisPoint trans = e->pos() - m_endPos; + m_startPos += trans; + m_endPos += trans; + } else { + KisPoint diag = e->pos() - (e->state() & TQt::ControlButton + ? m_centerPos : m_startPos); + // circle? + if (e->state() & TQt::ShiftButton) { + double size = TQMAX(fabs(diag.x()), fabs(diag.y())); + double w = diag.x() < 0 ? -size : size; + double h = diag.y() < 0 ? -size : size; + diag = KisPoint(w, h); + } + + // resize around center point? + if (e->state() & TQt::ControlButton) { + m_startPos = m_centerPos - diag; + m_endPos = m_centerPos + diag; + } else { + m_endPos = m_startPos + diag; + } + } + paintOutline(); + m_centerPos = KisPoint((m_startPos.x() + m_endPos.x()) / 2, + (m_startPos.y() + m_endPos.y()) / 2); + } +} + +void KisToolSelectElliptical::buttonRelease(KisButtonReleaseEvent *e) +{ + if (m_subject && m_selecting && e->button() == Qt::LeftButton) { + + paintOutline(); + + if (m_startPos == m_endPos) { + clearSelection(); + } else { + TQApplication::setOverrideCursor(KisCursor::waitCursor()); + KisImageSP img = m_subject->currentImg(); + + if (!img) + return; + + if (m_endPos.y() < 0) + m_endPos.setY(0); + + if (m_endPos.y() > img->height()) + m_endPos.setY(img->height()); + + if (m_endPos.x() < 0) + m_endPos.setX(0); + + if (m_endPos.x() > img->width()) + m_endPos.setX(img->width()); + + if (img && img->activeDevice()) { + KisPaintDeviceSP dev = img->activeDevice(); + KisSelectedTransaction *t = 0; + if (img->undo()) t = new KisSelectedTransaction(i18n("Elliptical Selection"), dev); + + bool hasSelection = dev->hasSelection(); + if(! hasSelection) + { + dev->selection()->clear(); + if(m_selectAction==SELECTION_SUBTRACT) + dev->selection()->invert(); + } + TQRect rc( m_startPos.floorTQPoint(), m_endPos.floorTQPoint()); + rc = rc.normalize(); + + KisSelectionSP tmpSel = new KisSelection(dev); + KisAutobrushCircleShape tqshape(rc.width(),rc.height(), 1, 1); + TQ_UINT8 value; + for (int y = 0; y <= rc.height(); y++) + for (int x = 0; x <= rc.width(); x++) + { + value = MAX_SELECTED - tqshape.valueAt(x,y); + tmpSel->setSelected( x+rc.x(), y+rc.y(), value); + } + switch(m_selectAction) + { + case SELECTION_ADD: + dev->addSelection(tmpSel); + break; + case SELECTION_SUBTRACT: + dev->subtractSelection(tmpSel); + break; + } + + if(hasSelection) { + dev->setDirty(rc); + dev->emitSelectionChanged(rc); + } else { + dev->setDirty(); + dev->emitSelectionChanged(); + } + + if (img->undo()) + img->undoAdapter()->addCommand(t); + + TQApplication::restoreOverrideCursor(); + } + } + m_selecting = false; + } +} + +void KisToolSelectElliptical::paintOutline() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisCanvas *canvas = controller->kiscanvas(); + KisCanvasPainter gc(canvas); + TQRect rc; + + paintOutline(gc, rc); + } +} + +void KisToolSelectElliptical::paintOutline(KisCanvasPainter& gc, const TQRect&) +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + RasterOp op = gc.rasterOp(); + TQPen old = gc.pen(); + TQPen pen(TQt::DotLine); + TQPoint start; + TQPoint end; + + Q_ASSERT(controller); + start = controller->windowToView(m_startPos).floorTQPoint(); + end = controller->windowToView(m_endPos).floorTQPoint(); + + gc.setRasterOp(TQt::NotROP); + gc.setPen(pen); + gc.drawEllipse(TQRect(start, end)); + gc.setRasterOp(op); + gc.setPen(old); + } +} + +void KisToolSelectElliptical::slotSetAction(int action) { + if (action >= SELECTION_ADD && action <= SELECTION_SUBTRACT) + m_selectAction =(enumSelectionMode)action; +} + +void KisToolSelectElliptical::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Elliptical Selection"), + "tool_elliptical_selection" , + TQt::Key_J, + this, + TQT_SLOT(activate()), + collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setToolTip(i18n("Select an elliptical area")); + m_action->setExclusiveGroup("tools"); + m_ownAction = true; + } +} + +TQWidget* KisToolSelectElliptical::createOptionWidget(TQWidget* tqparent) +{ + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Elliptical Selection")); + + connect (m_optWidget, TQT_SIGNAL(actionChanged(int)), this, TQT_SLOT(slotSetAction(int))); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +} + +TQWidget* KisToolSelectElliptical::optionWidget() +{ + return m_optWidget; +} + + + +#include "kis_tool_select_elliptical.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.h b/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.h new file mode 100644 index 00000000..f0d1a039 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_elliptical.h @@ -0,0 +1,99 @@ +/* + * kis_tool_select_elliptical.h - part of Krayon^WChalk + * + * Copyright (c) 2000 John Califf <jcaliff@compuzone.net> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __KIS_TOOL_SELECT_ELLIPTICAL_H__ +#define __KIS_TOOL_SELECT_ELLIPTICAL_H__ + +#include <tqpoint.h> + +#include "kis_point.h" +#include "kis_selection.h" +#include "kis_tool_factory.h" +#include "kis_tool_non_paint.h" + +class KisSelectionOptions; + +class KisToolSelectElliptical : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT + +public: + KisToolSelectElliptical(); + virtual ~KisToolSelectElliptical(); + + virtual void update(KisCanvasSubject *subject); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 4; } + virtual TQWidget * createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + virtual enumToolType toolType() { return TOOL_SELECT; } + + virtual void paint(KisCanvasPainter& gc); + virtual void paint(KisCanvasPainter& gc, const TQRect& rc); + virtual void buttonPress(KisButtonPressEvent *e); + virtual void move(KisMoveEvent *e); + virtual void buttonRelease(KisButtonReleaseEvent *e); + +public slots: + virtual void slotSetAction(int); + virtual void activate(); + + +private: + void clearSelection(); + void paintOutline(); + void paintOutline(KisCanvasPainter& gc, const TQRect& rc); + +private: + KisCanvasSubject *m_subject; + KisPoint m_centerPos; + KisPoint m_startPos; + KisPoint m_endPos; + bool m_selecting; + KisSelectionOptions * m_optWidget; + enumSelectionMode m_selectAction; +}; + +class KisToolSelectEllipticalFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectEllipticalFactory() : super() {}; + virtual ~KisToolSelectEllipticalFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectElliptical(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("ellipticalselect", i18n("Elliptical Select Tool")); } +}; + + + + + +#endif //__KIS_TOOL_SELECT_ELLIPTICAL_H__ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.cc new file mode 100644 index 00000000..58a7778c --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.cc @@ -0,0 +1,156 @@ +/* + * kis_tool_select_brush.cc - part of Chalk + * + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqevent.h> +#include <tqlabel.h> +#include <tqlayout.h> +#include <tqwidget.h> + +#include <kdebug.h> +#include <kaction.h> +#include <kcommand.h> +#include <klocale.h> + +#include "kis_brush.h" +#include "kis_layer.h" +#include "kis_paintop.h" +#include "kis_paintop_registry.h" +#include "kis_button_press_event.h" +#include "kis_button_release_event.h" +#include "kis_cmb_composite.h" +#include "kis_cursor.h" +#include "kis_doc.h" +#include "kis_move_event.h" +#include "kis_painter.h" +#include "kis_selection.h" +#include "kis_tool_select_eraser.h" +#include "kis_types.h" +#include "kis_view.h" +#include "kis_selection_options.h" + +KisToolSelectEraser::KisToolSelectEraser() + : super(i18n("SelectEraser")) +{ + setName("tool_select_eraser"); + setCursor(KisCursor::load("tool_eraser_selection_cursor.png", 5, 5)); + m_optWidget = 0; + m_paintOnSelection = true; +} + +KisToolSelectEraser::~KisToolSelectEraser() +{ +} + +void KisToolSelectEraser::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectEraser::initPaint(KisEvent */*e*/) +{ + if (!m_currentImage || !m_currentImage->activeDevice()) return; + + m_mode = PAINT; + m_dragDist = 0; + + // Create painter + KisPaintDeviceSP dev = m_currentImage->activeDevice(); + + if (dev == 0) return; + + if (m_painter) + delete m_painter; + if(! dev->hasSelection()) + { + dev->selection()->clear(); + dev->emitSelectionChanged(); + } + KisSelectionSP selection = dev->selection(); + + m_target = selection; + m_painter = new KisPainter(selection.data()); + Q_CHECK_PTR(m_painter); + m_painter->beginTransaction(i18n("Selection Eraser")); + m_painter->setPaintColor(KisColor(TQt::white, selection->colorSpace())); + m_painter->setBrush(m_subject->currentBrush()); + m_painter->setOpacity(OPACITY_OPAQUE); + m_painter->setCompositeOp(COMPOSITE_ERASE); + KisPaintOp * op = KisPaintOpRegistry::instance()->paintOp("eraser", 0, painter()); + painter()->setPaintOp(op); // And now the painter owns the op and will destroy it. + + // Set the cursor -- ideally. this should be a tqmask created from the brush, + // now that X11 can handle colored cursors. +#if 0 + // Setting cursors has no effect until the tool is selected again; this + // should be fixed. + setCursor(KisCursor::eraserCursor()); +#endif +} + +void KisToolSelectEraser::endPaint() { + super::endPaint(); + if (m_currentImage && m_currentImage->activeDevice()) + m_currentImage->activeDevice()->emitSelectionChanged(); +} +void KisToolSelectEraser::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("Selection &Eraser"), + "tool_eraser_selection", "Ctrl+Shift+E", this, + TQT_SLOT(activate()), collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setToolTip(i18n("Erase parts of a selection")); + m_action->setExclusiveGroup("tools"); + m_ownAction = true; + } +} + +TQWidget* KisToolSelectEraser::createOptionWidget(TQWidget* tqparent) +{ + Q_UNUSED(tqparent); + // Commented out due to the fact that this doesn't actually work if you change the action +#if 0 + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Selection Eraser")); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +#endif + return 0; +} + +TQWidget* KisToolSelectEraser::optionWidget() +{ + return m_optWidget; +} + +#include "kis_tool_select_eraser.moc" + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.h b/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.h new file mode 100644 index 00000000..85bd5509 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_eraser.h @@ -0,0 +1,82 @@ +/* + * kis_tool_select_eraser.h - part of Chalk + * + * Copyright (c) 2003-2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KIS_TOOL_SELECT_ERASER_H_ +#define KIS_TOOL_SELECT_ERASER_H_ + +#include <kis_tool_factory.h> +#include <kis_tool_freehand.h> + +class KisPoint; +class KisSelectionOptions; + + +/** + * The selection eraser makes a selection smaller by painting with the + * current eraser tqshape. Not sure what kind of an icon could represent + * this... Depends a bit on how we're going to visualize selections. + */ +class KisToolSelectEraser : public KisToolFreehand { + Q_OBJECT + TQ_OBJECT + typedef KisToolFreehand super; + +public: + KisToolSelectEraser(); + virtual ~KisToolSelectEraser(); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 2; } + virtual enumToolType toolType() { return TOOL_SELECT; } + virtual TQWidget* createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + +public slots: + virtual void activate(); + +protected: + + virtual void initPaint(KisEvent *e); + virtual void endPaint(); +private: + KisSelectionOptions * m_optWidget; + +}; + + +class KisToolSelectEraserFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectEraserFactory() : super() {}; + virtual ~KisToolSelectEraserFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectEraser(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("eraserselect", i18n("Eraser Select Tool")); } +}; + + + +#endif // KIS_TOOL_SELECT_ERASER_H_ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_outline.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_outline.cc new file mode 100644 index 00000000..b81762fb --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_outline.cc @@ -0,0 +1,295 @@ +/* + * kis_tool_select_freehand.h - part of Krayon^WChalk + * + * Copyright (c) 2000 John Califf <jcaliff@compuzone.net> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include <tqapplication.h> +#include <tqpainter.h> +#include <tqregion.h> +#include <tqwidget.h> +#include <tqlayout.h> + +#include <kaction.h> +#include <kdebug.h> +#include <kcommand.h> +#include <klocale.h> + +#include <kis_layer.h> +#include <kis_selection_options.h> +#include <kis_canvas_controller.h> +#include <kis_canvas_subject.h> +#include <kis_cursor.h> +#include <kis_image.h> +#include <kis_tool_select_outline.h> +#include <kis_vec.h> +#include <kis_undo_adapter.h> +#include <kis_button_press_event.h> +#include <kis_button_release_event.h> +#include <kis_move_event.h> +#include "kis_selected_transaction.h" +#include "kis_painter.h" +#include "kis_paintop_registry.h" +#include "kis_canvas.h" +#include "kis_canvas_painter.h" + +KisToolSelectOutline::KisToolSelectOutline() + : super(i18n("Select Outline")) +{ + setName("tool_select_outline"); + setCursor(KisCursor::load("tool_outline_selection_cursor.png", 5, 5)); + + m_subject = 0; + m_dragging = false; + m_optWidget = 0; + m_selectAction = SELECTION_ADD; +} + +KisToolSelectOutline::~KisToolSelectOutline() +{ +} + +void KisToolSelectOutline::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectOutline::update (KisCanvasSubject *subject) +{ + m_subject = subject; + super::update(m_subject); +} + +void KisToolSelectOutline::buttonPress(KisButtonPressEvent *event) +{ + if (event->button() == Qt::LeftButton) { + m_dragging = true; + + m_dragStart = event->pos(); + m_dragEnd = event->pos(); + m_points.clear(); + m_points.append(m_dragStart); + } +} + +void KisToolSelectOutline::move(KisMoveEvent *event) +{ + if (m_dragging) { + m_dragStart = m_dragEnd; + m_dragEnd = event->pos(); + m_points.append (m_dragEnd); + // draw new lines on canvas + draw(); + } +} + +void KisToolSelectOutline::buttonRelease(KisButtonReleaseEvent *event) +{ + if (!m_subject) + return; + + if (m_dragging && event->button() == Qt::LeftButton) { + m_dragging = false; + deactivate(); + + KisImageSP img = m_subject->currentImg(); + + if (img && img->activeDevice()) { + TQApplication::setOverrideCursor(KisCursor::waitCursor()); + KisPaintDeviceSP dev = img->activeDevice(); + bool hasSelection = dev->hasSelection(); + KisSelectedTransaction *t = 0; + if (img->undo()) t = new KisSelectedTransaction(i18n("Outline Selection"), dev); + KisSelectionSP selection = dev->selection(); + + if (!hasSelection) { + selection->clear(); + } + + KisPainter painter(selection.data()); + + painter.setPaintColor(KisColor(TQt::black, selection->colorSpace())); + painter.setFillStyle(KisPainter::FillStyleForegroundColor); + painter.setStrokeStyle(KisPainter::StrokeStyleNone); + painter.setBrush(m_subject->currentBrush()); + painter.setOpacity(OPACITY_OPAQUE); + KisPaintOp * op = KisPaintOpRegistry::instance()->paintOp("paintbrush", 0, &painter); + painter.setPaintOp(op); // And now the painter owns the op and will destroy it. + + switch (m_selectAction) { + case SELECTION_ADD: + painter.setCompositeOp(COMPOSITE_OVER); + break; + case SELECTION_SUBTRACT: + painter.setCompositeOp(COMPOSITE_SUBTRACT); + break; + default: + break; + } + + painter.paintPolygon(m_points); + + + if(hasSelection) { + TQRect dirty(painter.dirtyRect()); + dev->setDirty(dirty); + dev->emitSelectionChanged(dirty); + } else { + dev->setDirty(); + dev->emitSelectionChanged(); + } + + if (img->undo()) + img->undoAdapter()->addCommand(t); + + TQApplication::restoreOverrideCursor(); + } + + m_points.clear(); + } +} + +void KisToolSelectOutline::paint(KisCanvasPainter& gc) +{ + draw(gc); +} + +void KisToolSelectOutline::paint(KisCanvasPainter& gc, const TQRect&) +{ + draw(gc); +} + +void KisToolSelectOutline::draw() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisCanvas *canvas = controller->kiscanvas(); + KisCanvasPainter gc(canvas); + + draw(gc); + } +} + +void KisToolSelectOutline::draw(KisCanvasPainter& gc) +{ + if (!m_subject) + return; + + if (m_dragging && !m_points.empty()) { + TQPen pen(TQt::white, 0, TQt::DotLine); + + gc.setPen(pen); + gc.setRasterOp(TQt::XorROP); + + KisCanvasController *controller = m_subject->canvasController(); + KisPoint start, end; + TQPoint startPos; + TQPoint endPos; + + startPos = controller->windowToView(m_dragStart.floorTQPoint()); + endPos = controller->windowToView(m_dragEnd.floorTQPoint()); + gc.drawLine(startPos, endPos); + } +} + +void KisToolSelectOutline::deactivate() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisCanvas *canvas = controller->kiscanvas(); + KisCanvasPainter gc(canvas); + + TQPen pen(TQt::white, 0, TQt::DotLine); + + gc.setPen(pen); + gc.setRasterOp(TQt::XorROP); + + KisPoint start, end; + TQPoint startPos; + TQPoint endPos; + + for (KisPointVector::iterator it = m_points.begin(); it != m_points.end(); ++it) { + + if (it == m_points.begin()) + { + start = (*it); + } else { + end = (*it); + + startPos = controller->windowToView(start.floorTQPoint()); + endPos = controller->windowToView(end.floorTQPoint()); + + gc.drawLine(startPos, endPos); + + start = end; + } + } + } +} + +void KisToolSelectOutline::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Outline Selection"), + "tool_outline_selection", + 0, + this, + TQT_SLOT(activate()), + collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setExclusiveGroup("tools"); + m_action->setToolTip(i18n("Select an outline")); + m_ownAction = true; + } +} + + +TQWidget* KisToolSelectOutline::createOptionWidget(TQWidget* tqparent) +{ + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Outline Selection")); + + connect (m_optWidget, TQT_SIGNAL(actionChanged(int)), this, TQT_SLOT(slotSetAction(int))); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +} + +TQWidget* KisToolSelectOutline::optionWidget() +{ + return m_optWidget; +} + +void KisToolSelectOutline::slotSetAction(int action) { + if (action >= SELECTION_ADD && action <= SELECTION_SUBTRACT) + m_selectAction =(enumSelectionMode)action; +} + +#include "kis_tool_select_outline.moc" + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_outline.h b/chalk/plugins/tools/selectiontools/kis_tool_select_outline.h new file mode 100644 index 00000000..74ecab78 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_outline.h @@ -0,0 +1,101 @@ +/* + * kis_tool_select_freehand.h - part of Krayon^WChalk + * + * Copyright (c) 2000 John Califf <jcaliff@compuzone.net> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __selecttoolfreehand_h__ +#define __selecttoolfreehand_h__ + +#include <tqpoint.h> +#include <tqpointarray.h> + +#include "kis_point.h" +#include "kis_tool_non_paint.h" +#include "kis_tool_factory.h" +#include "kis_selection.h" + +class KisSelectionOptions; + +class KisToolSelectOutline : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT +public: + KisToolSelectOutline(); + virtual ~KisToolSelectOutline(); + + virtual void update (KisCanvasSubject *subject); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 6; } + virtual enumToolType toolType() { return TOOL_SELECT; } + + virtual void buttonPress(KisButtonPressEvent *event); + virtual void move(KisMoveEvent *event); + virtual void buttonRelease(KisButtonReleaseEvent *event); + + TQWidget* createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + +public slots: + virtual void slotSetAction(int); + virtual void activate(); + void deactivate(); + +protected: + virtual void paint(KisCanvasPainter& gc); + virtual void paint(KisCanvasPainter& gc, const TQRect& rc); + void draw(KisCanvasPainter& gc); + void draw(); + + +protected: + KisPoint m_dragStart; + KisPoint m_dragEnd; + + bool m_dragging; +private: + typedef TQValueVector<KisPoint> KisPointVector; + KisCanvasSubject *m_subject; + KisPointVector m_points; + KisSelectionOptions * m_optWidget; + enumSelectionMode m_selectAction; +}; + + +class KisToolSelectOutlineFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectOutlineFactory() : super() {}; + virtual ~KisToolSelectOutlineFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectOutline(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("selectoutline", i18n("Select Outline tool")); } +}; + + +#endif //__selecttoolfreehand_h__ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.cc new file mode 100644 index 00000000..7bac7cc3 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.cc @@ -0,0 +1,315 @@ +/* + * kis_tool_select_polygonal.h - part of Krayon^WChalk + * + * Copyright (c) 2000 John Califf <jcaliff@compuzone.net> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include <tqapplication.h> +#include <tqpainter.h> +#include <tqregion.h> +#include <tqwidget.h> +#include <tqlayout.h> + +#include <kaction.h> +#include <kdebug.h> +#include <kcommand.h> +#include <klocale.h> + +#include <kis_layer.h> +#include <kis_selection_options.h> +#include <kis_canvas_controller.h> +#include <kis_canvas_subject.h> +#include <kis_cursor.h> +#include <kis_image.h> +#include <kis_tool_select_polygonal.h> +#include <kis_vec.h> +#include <kis_undo_adapter.h> +#include <kis_button_press_event.h> +#include <kis_button_release_event.h> +#include <kis_move_event.h> +#include "kis_selected_transaction.h" +#include "kis_painter.h" +#include "kis_paintop_registry.h" +#include "kis_canvas.h" +#include "kis_canvas_painter.h" + +KisToolSelectPolygonal::KisToolSelectPolygonal() + : super(i18n("Select Polygonal")) +{ + setName("tool_select_polygonal"); + setCursor(KisCursor::load("tool_polygonal_selection_cursor.png", 6, 6)); + + m_subject = 0; + m_dragging = false; + m_optWidget = 0; + m_selectAction = SELECTION_ADD; +} + +KisToolSelectPolygonal::~KisToolSelectPolygonal() +{ +} + +void KisToolSelectPolygonal::activate() +{ + m_points.clear(); + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectPolygonal::deactivate() +{ + draw(); + m_points.clear(); + m_dragging = false; +} + + +void KisToolSelectPolygonal::update (KisCanvasSubject *subject) +{ + m_subject = subject; + super::update(m_subject); +} + +void KisToolSelectPolygonal::buttonPress(KisButtonPressEvent *event) +{ + if (event->button() == Qt::LeftButton) { + m_dragging = true; + + if (m_points.isEmpty()) + { + m_dragStart = event->pos(); + m_dragEnd = event->pos(); + m_points.append(m_dragStart); + } else { + m_dragStart = m_dragEnd; + m_dragEnd = event->pos(); + draw(); + } + } else if (event->button() == Qt::LeftButton && event->state() == ShiftButton) { + finish(); + } +} + + +void KisToolSelectPolygonal::doubleClick( KisDoubleClickEvent * ) +{ + finish(); +} + +void KisToolSelectPolygonal::finish() +{ + // erase old lines on canvas + draw(); + m_dragging = false; + + KisImageSP img = m_subject->currentImg(); + + if (img && img->activeDevice()) { + TQApplication::setOverrideCursor(KisCursor::waitCursor()); + KisPaintDeviceSP dev = img->activeDevice(); + + bool hasSelection = dev->hasSelection(); + KisSelectedTransaction *t = 0; + if (img->undo()) t = new KisSelectedTransaction(i18n("Polygonal Selection"), dev); + KisSelectionSP selection = dev->selection(); + + if (!hasSelection) + { + selection->clear(); + } + + KisPainter painter(selection.data()); + painter.setPaintColor(KisColor(TQt::black, selection->colorSpace())); + painter.setFillStyle(KisPainter::FillStyleForegroundColor); + painter.setStrokeStyle(KisPainter::StrokeStyleNone); + painter.setBrush(m_subject->currentBrush()); + painter.setOpacity(OPACITY_OPAQUE); + KisPaintOp * op = KisPaintOpRegistry::instance()->paintOp("paintbrush", 0, &painter); + painter.setPaintOp(op); // And now the painter owns the op and will destroy it. + + switch(m_selectAction) + { + case SELECTION_ADD: + painter.setCompositeOp(COMPOSITE_OVER); + break; + case SELECTION_SUBTRACT: + painter.setCompositeOp(COMPOSITE_SUBTRACT); + break; + default: + break; + } + + painter.paintPolygon(m_points); + + if(hasSelection) { + TQRect rect(painter.dirtyRect()); + dev->setDirty(rect); + dev->emitSelectionChanged(rect); + } else { + dev->setDirty(); + dev->emitSelectionChanged(); + } + + if (img->undo()) img->undoAdapter()->addCommand(t); + + TQApplication::restoreOverrideCursor(); + } + + m_points.clear(); + +} + +void KisToolSelectPolygonal::move(KisMoveEvent *event) +{ + if (m_dragging) { + // erase old lines on canvas + draw(); + // get current mouse position + m_dragEnd = event->pos(); + // draw new lines on canvas + draw(); + } +} + +void KisToolSelectPolygonal::buttonRelease(KisButtonReleaseEvent *event) +{ + if (!m_subject) + return; + + if (m_dragging && event->button() == Qt::LeftButton) { + m_dragging = false; + m_points.append (m_dragEnd); + } + + if (m_dragging && event->button() == Qt::RightButton) { + + } +} + +void KisToolSelectPolygonal::paint(KisCanvasPainter& gc) +{ + draw(gc); +} + +void KisToolSelectPolygonal::paint(KisCanvasPainter& gc, const TQRect&) +{ + draw(gc); +} + +void KisToolSelectPolygonal::draw() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisCanvas *canvas = controller->kiscanvas(); + KisCanvasPainter gc(canvas); + + draw(gc); + } +} + +void KisToolSelectPolygonal::draw(KisCanvasPainter& gc) +{ + if (!m_subject) + return; + + TQPen pen(TQt::white, 0, TQt::DotLine); + + gc.setPen(pen); + gc.setRasterOp(TQt::XorROP); + + KisCanvasController *controller = m_subject->canvasController(); + KisPoint start, end; + TQPoint startPos; + TQPoint endPos; + + if (m_dragging) { + startPos = controller->windowToView(m_dragStart.floorTQPoint()); + endPos = controller->windowToView(m_dragEnd.floorTQPoint()); + gc.drawLine(startPos, endPos); + } else { + for (KisPointVector::iterator it = m_points.begin(); it != m_points.end(); ++it) { + + if (it == m_points.begin()) + { + start = (*it); + } else { + end = (*it); + + startPos = controller->windowToView(start.floorTQPoint()); + endPos = controller->windowToView(end.floorTQPoint()); + + gc.drawLine(startPos, endPos); + + start = end; + } + } + } +} + + +void KisToolSelectPolygonal::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Polygonal Selection"), + "tool_polygonal_selection" , + 0, + this, + TQT_SLOT(activate()), + collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setExclusiveGroup("tools"); + m_action->setToolTip(i18n("Select a polygonal area")); + m_ownAction = true; + } +} + + +TQWidget* KisToolSelectPolygonal::createOptionWidget(TQWidget* tqparent) +{ + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Polygonal Selection")); + + connect (m_optWidget, TQT_SIGNAL(actionChanged(int)), this, TQT_SLOT(slotSetAction(int))); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +} + +TQWidget* KisToolSelectPolygonal::optionWidget() +{ + return m_optWidget; +} + +void KisToolSelectPolygonal::slotSetAction(int action) { + if (action >= SELECTION_ADD && action <= SELECTION_SUBTRACT) + m_selectAction =(enumSelectionMode)action; +} + + + +#include "kis_tool_select_polygonal.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.h b/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.h new file mode 100644 index 00000000..65a32ee6 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_polygonal.h @@ -0,0 +1,106 @@ +/* + * kis_tool_select_polygonal.h - part of Krayon^WChalk + * + * Copyright (c) 2000 John Califf <jcaliff@compuzone.net> + * Copyright (c) 2002 Patrick Julien <freak@codepimps.org> + * Copyright (c) 2004 Boudewijn Rempt <boud@valdyas.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef __selecttoolpolygonal_h__ +#define __selecttoolpolygonal_h__ + +#include "kis_point.h" +#include "kis_tool_non_paint.h" +#include "kis_tool_factory.h" +#include "kis_selection.h" + +class KisSelectionOptions; + +class KisToolSelectPolygonal : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT +public: + KisToolSelectPolygonal(); + virtual ~KisToolSelectPolygonal(); + + // + // KisCanvasObserver interface + // + + virtual void update (KisCanvasSubject *subject); + + // + // KisToolPaint interface + // + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 5; } + virtual enumToolType toolType() { return TOOL_SELECT; } + virtual void buttonPress(KisButtonPressEvent *event); + virtual void move(KisMoveEvent *event); + virtual void buttonRelease(KisButtonReleaseEvent *event); + virtual void doubleClick(KisDoubleClickEvent * event); + + void finish(); + TQWidget* createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + +public slots: + virtual void slotSetAction(int); + virtual void activate(); + void deactivate(); + +protected: + virtual void paint(KisCanvasPainter& gc); + virtual void paint(KisCanvasPainter& gc, const TQRect& rc); + void draw(KisCanvasPainter& gc); + void draw(); + +protected: + KisPoint m_dragStart; + KisPoint m_dragEnd; + + bool m_dragging; +private: + typedef TQValueVector<KisPoint> KisPointVector; + KisCanvasSubject *m_subject; + KisPointVector m_points; + KisSelectionOptions * m_optWidget; + enumSelectionMode m_selectAction; +}; + + +class KisToolSelectPolygonalFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectPolygonalFactory() : super() {}; + virtual ~KisToolSelectPolygonalFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectPolygonal(); + Q_CHECK_PTR(t); + t->setup(ac); + return t; + } + virtual KisID id() { return KisID("polygonalselect", i18n("Polygonal Select Tool")); } +}; + + +#endif //__selecttoolpolygonal_h__ + diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.cc b/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.cc new file mode 100644 index 00000000..aa7052af --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.cc @@ -0,0 +1,323 @@ + +/* + * kis_tool_select_rectangular.cc -- part of Chalk + * + * Copyright (c) 1999 Michael Koch <koch@kde.org> + * 2001 John Califf <jcaliff@compuzone.net> + * 2002 Patrick Julien <freak@codepimps.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#include <tqapplication.h> +#include <tqpainter.h> +#include <tqpen.h> +#include <tqlayout.h> + +#include <kdebug.h> +#include <kaction.h> +#include <kcommand.h> +#include <klocale.h> + +#include "kis_canvas_controller.h" +#include "kis_canvas_subject.h" +#include "kis_cursor.h" +#include "kis_image.h" +#include "kis_painter.h" +#include "kis_layer.h" +#include "kis_tool_select_rectangular.h" +#include "kis_undo_adapter.h" +#include "kis_button_press_event.h" +#include "kis_button_release_event.h" +#include "kis_move_event.h" +#include "kis_selection.h" +#include "kis_selection_options.h" +#include <kis_selected_transaction.h> +#include "kis_canvas.h" +#include "kis_canvas_painter.h" + +KisToolSelectRectangular::KisToolSelectRectangular() + : super(i18n("Rectangular Select Tool")) +{ + setName("tool_select_rectangular"); + setCursor(KisCursor::load("tool_rectangular_selection_cursor.png", 6, 6)); + m_subject = 0; + m_selecting = false; + m_centerPos = KisPoint(0, 0); + m_startPos = KisPoint(0, 0); + m_endPos = KisPoint(0, 0); + m_optWidget = 0; + m_selectAction = SELECTION_ADD; +} + +KisToolSelectRectangular::~KisToolSelectRectangular() +{ +} + +void KisToolSelectRectangular::activate() +{ + super::activate(); + + if (!m_optWidget) + return; + + m_optWidget->slotActivated(); +} + +void KisToolSelectRectangular::update(KisCanvasSubject *subject) +{ + m_subject = subject; + super::update(m_subject); +} + +void KisToolSelectRectangular::paint(KisCanvasPainter& gc) +{ + if (m_selecting) + paintOutline(gc, TQRect()); +} + +void KisToolSelectRectangular::paint(KisCanvasPainter& gc, const TQRect& rc) +{ + if (m_selecting) + paintOutline(gc, rc); +} + +void KisToolSelectRectangular::clearSelection() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisImageSP img = m_subject->currentImg(); + + Q_ASSERT(controller); + + m_centerPos = KisPoint(0, 0); + m_startPos = KisPoint(0, 0); + m_endPos = KisPoint(0, 0); + m_selecting = false; + } +} + +void KisToolSelectRectangular::buttonPress(KisButtonPressEvent *e) +{ + if (m_subject) { + KisImageSP img = m_subject->currentImg(); + + if (img && img->activeDevice() && e->button() == Qt::LeftButton) { + clearSelection(); + m_startPos = m_endPos = m_centerPos = e->pos(); + m_selecting = true; + } + } +} + +void KisToolSelectRectangular::move(KisMoveEvent *e) +{ + if (m_subject && m_selecting) { + paintOutline(); + // move (alt) or resize rectangle + if (e->state() & TQt::AltButton) { + KisPoint trans = e->pos() - m_endPos; + m_startPos += trans; + m_endPos += trans; + } else { + KisPoint diag = e->pos() - (e->state() & TQt::ControlButton + ? m_centerPos : m_startPos); + // square? + if (e->state() & TQt::ShiftButton) { + double size = TQMAX(fabs(diag.x()), fabs(diag.y())); + double w = diag.x() < 0 ? -size : size; + double h = diag.y() < 0 ? -size : size; + diag = KisPoint(w, h); + } + + // resize around center point? + if (e->state() & TQt::ControlButton) { + m_startPos = m_centerPos - diag; + m_endPos = m_centerPos + diag; + } else { + m_endPos = m_startPos + diag; + } + } + paintOutline(); + m_centerPos = KisPoint((m_startPos.x() + m_endPos.x()) / 2, + (m_startPos.y() + m_endPos.y()) / 2); + } +} + +void KisToolSelectRectangular::buttonRelease(KisButtonReleaseEvent *e) +{ + if (m_subject && m_selecting && e->button() == Qt::LeftButton) { + + paintOutline(); + + if (m_startPos == m_endPos) { + clearSelection(); + } else { + KisImageSP img = m_subject->currentImg(); + + if (!img) + return; + + if (m_endPos.y() < 0) + m_endPos.setY(0); + + if (m_endPos.y() > img->height()) + m_endPos.setY(img->height()); + + if (m_endPos.x() < 0) + m_endPos.setX(0); + + if (m_endPos.x() > img->width()) + m_endPos.setX(img->width()); + if (img && img->activeDevice()) { + + TQApplication::setOverrideCursor(KisCursor::waitCursor()); + KisPaintDeviceSP dev = img->activeDevice(); + bool hasSelection = dev->hasSelection(); + + KisSelectedTransaction *t = 0; + if (img->undo()) t = new KisSelectedTransaction(i18n("Rectangular Selection"), dev); + KisSelectionSP selection = dev->selection(); + TQRect rc(m_startPos.floorTQPoint(), m_endPos.floorTQPoint()); + rc = rc.normalize(); + + // We don't want the border of the 'rectangle' to be included in our selection + rc.setSize(rc.size() - TQSize(1,1)); + + if(! hasSelection) + { + selection->clear(); + if(m_selectAction==SELECTION_SUBTRACT) + selection->invert(); + } + + KisSelectionSP tmpSel = new KisSelection(dev); + tmpSel->select(rc); + switch(m_selectAction) + { + case SELECTION_ADD: + dev->addSelection(tmpSel); + break; + case SELECTION_SUBTRACT: + dev->subtractSelection(tmpSel); + break; + default: + break; + } + + + if(hasSelection) { + dev->setDirty(rc); + dev->emitSelectionChanged(rc); + } else { + dev->setDirty(); + dev->emitSelectionChanged(); + } + + if (img->undo()) + img->undoAdapter()->addCommand(t); + + KisCanvasController *controller = m_subject -> canvasController(); + controller -> kiscanvas() -> update(); + + TQApplication::restoreOverrideCursor(); + } + } + + m_selecting = false; + } +} + +void KisToolSelectRectangular::paintOutline() +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + KisCanvas *canvas = controller->kiscanvas(); + KisCanvasPainter gc(canvas); + TQRect rc; + + paintOutline(gc, rc); + } +} + +void KisToolSelectRectangular::paintOutline(KisCanvasPainter& gc, const TQRect&) +{ + if (m_subject) { + KisCanvasController *controller = m_subject->canvasController(); + RasterOp op = gc.rasterOp(); + TQPen old = gc.pen(); + TQPen pen(TQt::DotLine); + TQPoint start; + TQPoint end; + + Q_ASSERT(controller); + start = controller->windowToView(m_startPos.floorTQPoint()); + end = controller->windowToView(m_endPos.floorTQPoint()); + + gc.setRasterOp(TQt::NotROP); + gc.setPen(pen); + gc.drawRect(TQRect(start, end)); + gc.setRasterOp(op); + gc.setPen(old); + } +} + +void KisToolSelectRectangular::slotSetAction(int action) { + if (action >= SELECTION_ADD && action <= SELECTION_SUBTRACT) + m_selectAction =(enumSelectionMode)action; +} + +void KisToolSelectRectangular::setup(KActionCollection *collection) +{ + m_action = static_cast<KRadioAction *>(collection->action(name())); + + if (m_action == 0) { + m_action = new KRadioAction(i18n("&Rectangular Selection"), + "tool_rect_selection", + TQt::Key_R, + this, + TQT_SLOT(activate()), + collection, + name()); + Q_CHECK_PTR(m_action); + m_action->setExclusiveGroup("tools"); + m_action->setToolTip(i18n("Select a rectangular area")); + m_ownAction = true; + } +} + +TQWidget* KisToolSelectRectangular::createOptionWidget(TQWidget* tqparent) +{ + m_optWidget = new KisSelectionOptions(tqparent, m_subject); + Q_CHECK_PTR(m_optWidget); + m_optWidget->setCaption(i18n("Rectangular Selection")); + + connect (m_optWidget, TQT_SIGNAL(actionChanged(int)), this, TQT_SLOT(slotSetAction(int))); + + TQVBoxLayout * l = dynamic_cast<TQVBoxLayout*>(m_optWidget->tqlayout()); + l->addItem(new TQSpacerItem(1, 1, TQSizePolicy::Fixed, TQSizePolicy::Expanding)); + + return m_optWidget; +} + +TQWidget* KisToolSelectRectangular::optionWidget() +{ + return m_optWidget; +} + + + + +#include "kis_tool_select_rectangular.moc" diff --git a/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.h b/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.h new file mode 100644 index 00000000..eb286cca --- /dev/null +++ b/chalk/plugins/tools/selectiontools/kis_tool_select_rectangular.h @@ -0,0 +1,95 @@ +/* + * kis_tool_select_rectangular.h - part of Chalk + * + * Copyright (c) 1999 Michael Koch <koch@kde.org> + * 2002 Patrick Julien <freak@codepimps.org> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef KIS_TOOL_SELECT_RECTANGULAR_H_ +#define KIS_TOOL_SELECT_RECTANGULAR_H_ + +#include "kis_point.h" +#include "kis_tool_non_paint.h" +#include "kis_selection.h" +#include "kis_tool_factory.h" + +class KisSelectionOptions; + +class KisToolSelectRectangular : public KisToolNonPaint { + + typedef KisToolNonPaint super; + Q_OBJECT + TQ_OBJECT + +public: + KisToolSelectRectangular(); + virtual ~KisToolSelectRectangular(); + + virtual void update(KisCanvasSubject *subject); + + virtual void setup(KActionCollection *collection); + virtual TQ_UINT32 priority() { return 3; } + virtual enumToolType toolType() { return TOOL_SELECT; } + virtual TQWidget * createOptionWidget(TQWidget* tqparent); + virtual TQWidget* optionWidget(); + + virtual void paint(KisCanvasPainter& gc); + virtual void paint(KisCanvasPainter& gc, const TQRect& rc); + virtual void buttonPress(KisButtonPressEvent *e); + virtual void move(KisMoveEvent *e); + virtual void buttonRelease(KisButtonReleaseEvent *e); + +public slots: + virtual void slotSetAction(int); + virtual void activate(); + + +private: + void clearSelection(); + void paintOutline(); + void paintOutline(KisCanvasPainter& gc, const TQRect& rc); + +private: + KisCanvasSubject *m_subject; + KisPoint m_centerPos; + KisPoint m_startPos; + KisPoint m_endPos; + bool m_selecting; + KisSelectionOptions * m_optWidget; + enumSelectionMode m_selectAction; + +}; + +class KisToolSelectRectangularFactory : public KisToolFactory { + typedef KisToolFactory super; +public: + KisToolSelectRectangularFactory() : super() {}; + virtual ~KisToolSelectRectangularFactory(){}; + + virtual KisTool * createTool(KActionCollection * ac) { + KisTool * t = new KisToolSelectRectangular(); + t->setup(ac); + Q_CHECK_PTR(t); + return t; + } + virtual KisID id() { return KisID("rectangularselect", i18n("Rectangular Select Tool")); } +}; + + + +#endif // KIS_TOOL_SELECT_RECTANGULAR_H_ + diff --git a/chalk/plugins/tools/selectiontools/selection_tools.cc b/chalk/plugins/tools/selectiontools/selection_tools.cc new file mode 100644 index 00000000..db4df1ab --- /dev/null +++ b/chalk/plugins/tools/selectiontools/selection_tools.cc @@ -0,0 +1,77 @@ +/* + * selection_tools.cc -- Part of Chalk + * + * Copyright (c) 2004 Boudewijn Rempt (boud@valdyas.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ +#include <stdlib.h> +#include <vector> + +#include <tqpoint.h> + +#include <klocale.h> +#include <kiconloader.h> +#include <kinstance.h> +#include <kmessagebox.h> +#include <kstandarddirs.h> +#include <ktempfile.h> +#include <kdebug.h> +#include <kgenericfactory.h> + +#include <kis_global.h> +#include <kis_types.h> +#include <kis_tool.h> +#include <kis_tool_registry.h> + +#include "selection_tools.h" + +#include "kis_tool_select_outline.h" +#include "kis_tool_select_polygonal.h" +#include "kis_tool_select_rectangular.h" +#include "kis_tool_select_contiguous.h" +#include "kis_tool_select_elliptical.h" +#include "kis_tool_select_eraser.h" +#include "kis_tool_select_brush.h" +#include "kis_tool_move_selection.h" + +typedef KGenericFactory<SelectionTools> SelectionToolsFactory; +K_EXPORT_COMPONENT_FACTORY( chalkselectiontools, SelectionToolsFactory( "chalk" ) ) + + +SelectionTools::SelectionTools(TQObject *tqparent, const char *name, const TQStringList &) + : KParts::Plugin(tqparent, name) +{ + setInstance(SelectionToolsFactory::instance()); + + if ( tqparent->inherits("KisToolRegistry") ) + { + KisToolRegistry * r = dynamic_cast<KisToolRegistry*>(tqparent); + r->add(new KisToolSelectOutlineFactory()); + r->add(new KisToolSelectPolygonalFactory()); + r->add(new KisToolSelectRectangularFactory()); + r->add(new KisToolSelectBrushFactory()); + r->add(new KisToolSelectContiguousFactory()); + r->add(new KisToolSelectEllipticalFactory()); + r->add(new KisToolSelectEraserFactory()); + r->add(new KisToolMoveSelectionFactory()); + } +} + +SelectionTools::~SelectionTools() +{ +} + +#include "selection_tools.moc" diff --git a/chalk/plugins/tools/selectiontools/selection_tools.h b/chalk/plugins/tools/selectiontools/selection_tools.h new file mode 100644 index 00000000..2e448e3e --- /dev/null +++ b/chalk/plugins/tools/selectiontools/selection_tools.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2003 Boudewijn Rempt (boud@valdyas.org) + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +#ifndef SELECTION_TOOLS_H_ +#define SELECTION_TOOLS_H_ + +#include <kparts/plugin.h> + +/** + * A module wrapper around Chalk's selection tools. + * Despite the fact that new tools are created for every new view, + * it is not possible to make tools standard parts of the type of the + * imagesize plugin, because we need to create a new set of tools for every + * pointer device (mouse, stylus, eraser, puck, etc.). So this plugin is + * a module which is loaded once into Chalk. For every tool there is a factory + * class that is registered with the tool registry, and that is used to create + * new instances of the tools. + */ +class SelectionTools : public KParts::Plugin +{ + Q_OBJECT + TQ_OBJECT +public: + SelectionTools(TQObject *tqparent, const char *name, const TQStringList &); + virtual ~SelectionTools(); + +}; + +#endif // SELECTION_TOOLS_H_ diff --git a/chalk/plugins/tools/selectiontools/tool_brush_selection.png b/chalk/plugins/tools/selectiontools/tool_brush_selection.png Binary files differnew file mode 100644 index 00000000..3d1bba3f --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_brush_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_brush_selection.svg b/chalk/plugins/tools/selectiontools/tool_brush_selection.svg new file mode 100644 index 00000000..228a411f --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_brush_selection.svg @@ -0,0 +1,827 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:export-ydpi="33.000000" + inkscape:export-xdpi="33.000000" + inkscape:export-filename="/home/danny/tool_brush_selection.png" + sodipodi:docname="tool_brush_selection.svg" + sodipodi:docbase="/home/danny/work/kde/koffice/chalk/chalk" + inkscape:version="0.41" + sodipodi:version="0.32" + id="svg4694" + height="48.000000pt" + width="48.000000pt"> + <defs + id="defs3"> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7969" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,-30.45690,-1.224420)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7967" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,-30.45690,-1.829360)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7965" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,-30.45690,-21.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7963" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,-30.45690,-21.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7961" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,26.44710,-11.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7959" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,-11.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7957" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-44.86332,44.21180)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7955" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-44.86332,44.21180)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7953" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-22.86332,44.21180)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7951" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-22.86332,44.21180)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7949" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-38.65916,-12.48664)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7947" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-38.65916,-12.48664)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7945" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,4.170640)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7943" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.878497,0.000000,0.000000,1.138308,-18.65916,-0.486640)" + cx="92.643608" + cy="55.457653" + fx="92.643608" + fy="55.457653" + r="9.9914455" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7941" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,26.44710,-31.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7939" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,-31.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7937" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-16.65916,-12.48664)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7935" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-16.65916,-12.48664)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7933" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(0.665867,1.501801)" + cx="8.0907059" + cy="9.5002232" + fx="8.0907059" + fy="9.5002232" + r="5.8189325" /> + <linearGradient + id="light90to0"> + <stop + style="stop-color:#ffffff;stop-opacity:0.90833336;" + offset="0.0000000" + id="stop1890" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1892" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7931" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.791643,0.000000,0.000000,1.263196,-1.626700,-5.630763)" + x1="4.4536543" + y1="6.5494914" + x2="14.101834" + y2="13.431447" /> + <linearGradient + id="garylighttowite"> + <stop + id="stop5106" + offset="0.0000000" + style="stop-color:#4f4f4f;stop-opacity:1.0000000;" /> + <stop + id="stop5107" + offset="1.0000000" + style="stop-color:#7e7f7f;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + y2="213.83318" + x2="197.10010" + y1="237.55226" + x1="169.41396" + gradientTransform="matrix(0.981884,0.000000,0.000000,1.249452,-125.2257,-270.2224)" + gradientUnits="userSpaceOnUse" + id="linearGradient4240" + xlink:href="#garylighttowite" + inkscape:collect="always" /> + <linearGradient + id="blacktowhite"> + <stop + id="stop2476" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2475" + offset="1.0000000" + style="stop-color:#e6e6e6;stop-opacity:1.0000000;" /> + </linearGradient> + <linearGradient + y2="305.51498" + x2="-126.66700" + y1="316.87579" + x1="-134.10509" + gradientTransform="matrix(0.409156,-1.467734,0.742641,0.334392,-125.2257,-270.2224)" + gradientUnits="userSpaceOnUse" + id="linearGradient4238" + xlink:href="#blacktowhite" + inkscape:collect="always" /> + <linearGradient + id="linearGradient940"> + <stop + style="stop-color:#7d5700;stop-opacity:1;" + offset="0.00000000" + id="stop941" /> + <stop + style="stop-color:#c58500;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop942" /> + </linearGradient> + <linearGradient + y2="327.82533" + x2="477.19157" + y1="252.79109" + x1="405.98953" + gradientTransform="matrix(9.300968e-2,-0.317362,0.155311,2.621206e-2,-185.0894,-152.1973)" + gradientUnits="userSpaceOnUse" + id="linearGradient4235" + xlink:href="#linearGradient940" + inkscape:collect="always" /> + <linearGradient + id="linearGradient944"> + <stop + style="stop-color:#c34700;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop945" /> + <stop + style="stop-color:#ddc800;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop946" /> + </linearGradient> + <linearGradient + y2="333.50655" + x2="492.61439" + y1="270.32615" + x1="410.61638" + gradientTransform="matrix(9.300968e-2,-0.317362,0.155311,2.621206e-2,-185.0894,-152.1973)" + gradientUnits="userSpaceOnUse" + id="linearGradient4233" + xlink:href="#linearGradient944" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1439" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,-25.19724,11.47156)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1442" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,-25.19724,10.97154)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1446" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,-25.19724,-5.806103)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1449" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,-25.19724,-6.306116)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1453" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,21.05881,1.966237)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1456" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,21.05881,1.466224)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1460" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-38.39521,48.31870)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1463" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-38.39521,48.31870)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1467" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-19.66477,48.31870)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1470" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-19.66477,48.31870)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1474" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-30.98448,1.415420)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1477" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-30.98448,1.415420)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1481" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,21.14350,15.18416)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1484" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.715419,0.000000,0.000000,0.940867,-15.58955,11.33469)" + cx="92.643608" + cy="55.457653" + fx="92.643608" + fy="55.457653" + r="9.9914455" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1495" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-12.33208,1.415420)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1498" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-12.33208,1.415420)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1502" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.542260,0.000000,0.000000,1.241312,-0.394144,11.73692)" + cx="8.0907059" + cy="9.5002232" + fx="8.0907059" + fy="9.5002232" + r="5.8189325" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1505" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.644688,0.000000,0.000000,1.044093,-1.718875,7.082818)" + x1="4.4536543" + y1="6.5494914" + x2="14.101834" + y2="13.431447" /> + <linearGradient + inkscape:collect="always" + xlink:href="#blacktowhite" + id="linearGradient1427" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.409156,-1.467734,0.742641,0.334392,-125.2257,-270.2224)" + x1="-134.10509" + y1="316.87579" + x2="-126.66700" + y2="305.51498" /> + <linearGradient + inkscape:collect="always" + xlink:href="#garylighttowite" + id="linearGradient1429" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.981884,0.000000,0.000000,1.249452,-125.2257,-270.2224)" + x1="169.41396" + y1="237.55226" + x2="197.10010" + y2="213.83318" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient944" + id="linearGradient1431" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(9.300968e-2,-0.317362,0.155311,2.621206e-2,-185.0894,-152.1973)" + x1="410.61638" + y1="270.32615" + x2="492.61439" + y2="333.50655" /> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient940" + id="linearGradient1433" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(9.300968e-2,-0.317362,0.155311,2.621206e-2,-185.0894,-152.1973)" + x1="405.98953" + y1="252.79109" + x2="477.19157" + y2="327.82533" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1508" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.926025,0.000000,0.000000,0.943879,-3.764700,12.09394)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1511" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.937632,0.000000,0.000000,0.932194,-3.191675,13.02262)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" /> + <linearGradient + y2="333.50655" + x2="492.61439" + y1="270.32615" + x1="410.61638" + gradientTransform="matrix(8.609199e-2,-0.291516,0.143760,2.407732e-2,-172.7295,-138.4789)" + gradientUnits="userSpaceOnUse" + id="linearGradient1421" + xlink:href="#linearGradient944" + inkscape:collect="always" /> + <linearGradient + y2="327.82533" + x2="477.19157" + y1="252.79109" + x1="405.98953" + gradientTransform="matrix(8.609199e-2,-0.291516,0.143760,2.407732e-2,-172.7295,-138.4789)" + gradientUnits="userSpaceOnUse" + id="linearGradient1423" + xlink:href="#linearGradient940" + inkscape:collect="always" /> + <linearGradient + y2="305.51498" + x2="-126.66700" + y1="316.87579" + x1="-134.10509" + gradientTransform="matrix(0.378725,-1.348200,0.687406,0.307159,-117.3182,-246.8919)" + gradientUnits="userSpaceOnUse" + id="linearGradient1425" + xlink:href="#blacktowhite" + inkscape:collect="always" /> + <linearGradient + y2="213.83318" + x2="197.10010" + y1="237.55226" + x1="169.41396" + gradientTransform="matrix(0.908855,0.000000,0.000000,1.147695,-117.3182,-246.8919)" + gradientUnits="userSpaceOnUse" + id="linearGradient1428" + xlink:href="#garylighttowite" + inkscape:collect="always" /> + </defs> + <sodipodi:namedview + inkscape:window-y="0" + inkscape:window-x="0" + inkscape:window-height="691" + inkscape:window-width="1020" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showgrid="false" + inkscape:current-layer="layer1" + inkscape:cy="57.678721" + inkscape:cx="57.219249" + inkscape:zoom="8.5396765" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + id="Work6" + rdf:about=""> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type9" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + inkscape:label="Layer 1" + id="layer1"> + <g + id="g3808"> + <path + style="opacity:0.79446638;fill:#0028c6;fill-opacity:0.18099548;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.2934619,13.951302 L 42.647661,13.951302 C 44.570005,13.951302 46.117596,15.941616 46.117596,18.413889 L 46.117596,53.617448 C 46.117596,56.089722 44.570005,58.080035 42.647661,58.080035 L 6.2934619,58.080035 C 4.3711186,58.080035 2.8235279,56.089722 2.8235279,53.617448 L 2.8235279,18.413889 C 2.8235279,15.941616 4.3711186,13.951302 6.2934619,13.951302 z " + id="rect7971" /> + <path + style="opacity:0.79446638;fill:url(#linearGradient1511);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.8664881,14.879987 L 43.220688,14.879987 C 44.781208,38.443460 21.125930,25.243420 3.3965541,54.546133 L 3.3965541,19.342574 C 3.3965541,16.870301 4.9441448,14.879987 6.8664881,14.879987 z " + id="path8746" + sodipodi:nodetypes="ccccc" /> + <path + style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:round;stroke-linecap:round;stroke-width:4.3000002;stroke:none;fill-rule:evenodd;fill-opacity:1.0000000;fill:#353640" + d="M 16.843790,11.999986 C 15.654649,11.999986 14.690659,12.962574 14.690659,14.149986 C 14.690659,15.337398 15.654649,16.299986 16.843790,16.299986 L 24.687528,16.299986 C 25.876670,16.299986 26.840659,15.337398 26.840659,14.149986 C 26.840659,12.962574 25.876670,11.999986 24.687528,11.999986 L 16.843790,11.999986 z " + id="path3802" + sodipodi:nodetypes="ccccccc" /> + <path + style="opacity:0.97233200;fill:url(#radialGradient1508);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.2934619,13.951302 L 42.647661,13.951302 C 44.570005,13.951302 46.117596,15.941616 46.117596,18.413889 L 46.117596,53.617448 C 46.117596,56.089722 44.570005,58.080035 42.647661,58.080035 L 6.2934619,58.080035 C 4.3711186,58.080035 2.8235279,56.089722 2.8235279,53.617448 L 2.8235279,18.413889 C 2.8235279,15.941616 4.3711186,13.951302 6.2934619,13.951302 z " + id="path9514" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.2036028,12.000753 C 1.6228812,11.985222 1.0606757,12.206108 0.64540735,12.612953 C 0.23013967,13.019798 -0.0027184452,13.577851 2.3951728e-05,14.159639 L 2.3951728e-05,20.996110 C 2.3951728e-05,22.188431 0.96515240,23.154996 2.1556989,23.154996 C 3.3462453,23.154996 4.3113738,22.188431 4.3113738,20.996110 L 4.3113738,16.342512 L 5.9401060,16.366499 C 6.7276964,16.418884 7.4804421,16.034101 7.9001215,15.364596 C 8.3198002,14.695092 8.3386812,13.848916 7.9492832,13.161304 C 7.5598858,12.473693 6.8250547,12.055619 6.0359137,12.072716 L 2.2036028,12.000753 z " + id="path7697" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.820092,16.892010 C 45.247569,16.895838 44.700302,17.128591 44.299981,17.538518 C 43.899660,17.948446 43.679468,18.501564 43.688369,19.074883 L 43.688369,28.214166 C 43.688369,29.406486 44.653498,30.373052 45.844045,30.373052 C 47.034590,30.373052 47.999719,29.406486 47.999719,28.214166 L 47.999719,19.074883 C 48.008808,18.493207 47.782088,17.932680 47.371342,17.521322 C 46.960596,17.109964 46.400904,16.882908 45.820092,16.892010 L 45.820092,16.892010 z " + id="path1937" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 44.073235,28.743247 C 44.961756,28.915834 45.380256,26.067378 45.314366,21.725701 C 45.260374,18.227435 46.727595,19.638901 46.838213,17.743808 C 46.855261,17.451725 46.461887,17.299850 45.986113,17.314502 C 45.510339,17.329154 44.952165,17.510332 44.639613,17.884350 C 44.461008,18.031995 44.322268,18.243187 44.228120,18.490651 C 44.133973,18.738115 44.084419,19.021851 44.084191,19.314591 C 44.083962,19.607329 44.075061,26.404202 44.073235,28.743247 z " + id="path4304" + sodipodi:nodetypes="cccccccc" /> + <path + style="opacity:0.79446638;fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.099708,27.978601 C 45.091646,28.876769 45.673295,29.612967 46.398859,29.622947 C 47.124423,29.632927 47.719145,28.912907 47.727206,28.014740 L 47.800192,18.997225 C 47.828734,18.401217 47.590002,17.834123 47.179013,17.521651 C 46.768024,17.209181 46.251475,17.202036 45.834946,17.503063 C 45.418421,17.804089 45.169513,18.364437 45.187290,18.961084 L 45.099708,27.978601 z " + id="path4306" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.820092,48.749786 C 45.247569,48.753613 44.700302,48.986367 44.299981,49.396295 C 43.899660,49.806222 43.679468,50.359340 43.688369,50.932659 L 43.688369,55.682207 L 42.011733,55.682207 C 40.821187,55.682207 39.856059,56.648773 39.856059,57.841093 C 39.856059,59.033414 40.821187,59.999979 42.011733,59.999979 L 45.844045,59.999979 C 46.416528,60.002488 46.966289,59.775839 47.371101,59.370424 C 47.775912,58.965009 48.002223,58.414430 47.999719,57.841093 L 47.999719,50.932659 C 48.008808,50.350983 47.782088,49.790456 47.371342,49.379097 C 46.960596,48.967740 46.400904,48.740683 45.820092,48.749786 z " + id="path7691" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.740380,33.011663 C 45.167856,33.015085 44.620590,33.223093 44.220268,33.589441 C 43.819947,33.955789 43.599756,34.450105 43.608656,34.962473 L 43.608656,43.130152 C 43.608656,44.195717 44.573785,45.059526 45.764331,45.059526 C 46.954877,45.059526 47.920006,44.195717 47.920006,43.130152 L 47.920006,34.962473 C 47.929095,34.442636 47.702375,33.941699 47.291630,33.574073 C 46.880884,33.206447 46.321191,33.003529 45.740380,33.011663 L 45.740380,33.011663 z " + id="path7765" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.2053264,25.793584 C 1.6328028,25.796681 1.0855366,25.985006 0.68521492,26.316687 C 0.28489404,26.648367 0.064703248,27.095906 0.073603407,27.559789 L 0.073603407,34.954562 C 0.073603407,35.919291 1.0387318,36.701359 2.2292783,36.701359 C 3.4198248,36.701359 4.3849533,35.919291 4.3849533,34.954562 L 4.3849533,27.559789 C 4.3940420,27.089143 4.1673224,26.635610 3.7565769,26.302773 C 3.3458306,25.969936 2.7861376,25.786219 2.2053264,25.793584 L 2.2053264,25.793584 z " + id="path7775" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.2053264,41.839095 C 1.6328028,41.842251 1.0855366,42.034192 0.68521492,42.372239 C 0.28489404,42.710286 0.064703248,43.166416 0.073603407,43.639205 L 0.073603407,51.175929 C 0.073603407,52.159177 1.0387318,52.956257 2.2292783,52.956257 C 3.4198248,52.956257 4.3849533,52.159177 4.3849533,51.175929 L 4.3849533,43.639205 C 4.3940420,43.159524 4.1673224,42.697285 3.7565769,42.358057 C 3.3458306,42.018832 2.7861376,41.831589 2.2053264,41.839095 L 2.2053264,41.839095 z " + id="path7781" + sodipodi:nodetypes="cccccccccc" /> + <path + style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:round;stroke-linecap:round;stroke-width:4.3000002;stroke:none;fill-rule:evenodd;fill-opacity:1.0000000;fill:#353640" + d="M 34.726123,11.999986 C 33.536982,11.999986 32.572992,12.962574 32.572992,14.149986 C 32.572992,15.337398 33.536982,16.299986 34.726123,16.299986 L 42.569861,16.299986 C 43.759003,16.299986 44.722992,15.337398 44.722992,14.149986 C 44.722992,12.962574 43.759003,11.999986 42.569861,11.999986 L 34.726123,11.999986 z " + id="path3804" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:#353640;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:4.3000002;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 7.5173157,55.699996 C 6.3281746,55.699996 5.3641852,56.662584 5.3641852,57.849996 C 5.3641852,59.037408 6.3281746,59.999996 7.5173157,59.999996 L 15.361054,59.999996 C 16.550196,59.999996 17.514185,59.037408 17.514185,57.849996 C 17.514185,56.662584 16.550196,55.699996 15.361054,55.699996 L 7.5173157,55.699996 z " + id="path1514" + sodipodi:nodetypes="ccccccc" /> + <path + style="stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:round;stroke-linecap:round;stroke-width:4.3000002;stroke:none;fill-rule:evenodd;fill-opacity:1.0000000;fill:#353640" + d="M 24.984459,55.699996 C 23.795318,55.699996 22.831328,56.662584 22.831328,57.849996 C 22.831328,59.037408 23.795318,59.999996 24.984459,59.999996 L 32.828197,59.999996 C 34.017339,59.999996 34.981328,59.037408 34.981328,57.849996 C 34.981328,56.662584 34.017339,55.699996 32.828197,55.699996 L 24.984459,55.699996 z " + id="path3041" + sodipodi:nodetypes="ccccccc" /> + </g> + <g + transform="matrix(1.134471,0.000000,0.000000,1.134471,-1.979056,-8.899644)" + id="g1392"> + <g + id="g3005" + transform="matrix(0.966181,0.000000,0.000000,1.079600,-428.2439,-311.2579)"> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:0.95595007pt;stroke-linejoin:round;stroke-opacity:0.095022626" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path2954" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:1.7924063;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path2993" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:2.2703812;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path2995" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:2.7483566;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path2997" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:3.4653189;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path2999" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:4.5407624;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path3001" + sodipodi:nodetypes="cccccccc" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.29729697;fill-rule:evenodd;stroke:#000000;stroke-width:4.5407624;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.027149322" + d="M 491.67350,290.74524 C 489.56264,292.14465 474.46858,315.88005 473.92350,319.90149 C 474.08915,319.99277 474.24280,320.54490 474.07975,320.46399 C 467.56083,324.58038 466.36005,333.74960 462.39225,337.49524 C 469.66515,335.09880 476.01586,329.63350 478.61100,323.08899 C 478.29575,322.85634 478.53111,322.59638 479.20475,323.15149 C 481.95923,320.93848 496.34001,306.25465 502.61100,296.27649 C 500.08842,293.80733 494.89908,293.21951 491.67350,290.74524 z " + id="path3003" + sodipodi:nodetypes="cccccccc" /> + </g> + <path + sodipodi:nodetypes="cccc" + id="path938" + d="M 30.205102,34.228614 C 23.906643,38.672669 22.743245,48.555533 18.909630,52.599327 C 25.936571,50.012119 32.081349,44.132293 34.588724,37.066839 C 33.364061,36.056960 31.643233,35.026039 30.205102,34.228614 z " + style="font-size:12.000000;fill:url(#linearGradient1421);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1423);stroke-width:0.78106284;stroke-linejoin:round;stroke-miterlimit:4.0000000" /> + <path + sodipodi:nodetypes="cccc" + id="path12835" + d="M 30.617265,35.339501 C 27.907735,37.564006 24.907867,42.276687 23.152123,48.230671 C 27.752064,46.074807 31.876663,41.684797 33.559712,37.157947 C 32.737666,36.510921 31.582586,35.850411 30.617265,35.339501 z " + style="font-size:12.000000;fill:#e1e1e1;fill-opacity:0.31372550;fill-rule:evenodd;stroke:none;stroke-width:0.77429527;stroke-linejoin:round;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccc" + id="path12853" + d="M 31.194413,35.339501 C 29.016341,37.170395 26.604888,41.049182 25.193520,45.949638 C 28.891201,44.175240 32.206788,40.562023 33.559712,36.836183 C 32.898902,36.303648 31.970392,35.760006 31.194413,35.339501 z " + style="font-size:12.000000;fill:#ebebeb;fill-opacity:0.31372550;fill-rule:evenodd;stroke:none;stroke-width:0.77429527;stroke-linejoin:round;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccc" + id="path12855" + d="M 31.535862,35.339501 C 29.672214,36.937525 27.608876,40.322968 26.401246,44.600137 C 29.565142,43.051430 32.402092,39.897767 33.559712,36.645817 C 32.994294,36.181017 32.199822,35.706522 31.535862,35.339501 z " + style="font-size:12.000000;fill:#f5f5f5;fill-opacity:0.31372550;fill-rule:evenodd;stroke:none;stroke-width:0.77429527;stroke-linejoin:round;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccc" + id="path12857" + d="M 31.877311,35.339501 C 30.328087,36.471786 29.148090,38.870538 28.144199,41.901137 C 30.774308,40.803799 32.597396,38.569265 33.559712,36.265096 C 33.089685,35.935753 32.429251,35.599555 31.877311,35.339501 z " + style="font-size:12.000000;fill:#ffffff;fill-opacity:0.31221721;fill-rule:evenodd;stroke:none;stroke-width:0.77429527;stroke-linejoin:round;stroke-opacity:1.0000000" /> + <g + id="g2174"> + <path + sodipodi:nodetypes="ccccc" + id="path672" + d="M 30.061161,33.612605 C 31.056578,34.225526 33.958195,35.999839 35.166936,37.112820 C 37.828263,34.723643 51.706037,18.866520 57.764951,8.0940971 C 55.327672,5.4283921 50.326572,4.7999241 47.210077,2.1287023 C 45.170603,3.6395058 30.587806,29.271058 30.061161,33.612605 z " + style="font-size:12.000000;fill:url(#linearGradient1425);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient1428);stroke-width:0.36612317;stroke-miterlimit:4.0000000" /> + <g + id="g2947" + transform="matrix(0.265500,1.659133e-2,2.488336e-2,-0.224834,-116.5236,67.75015)"> + <path + sodipodi:nodetypes="ccccc" + id="path678" + d="M 544.06785,185.23884 C 561.08243,232.34141 580.07425,278.58522 603.52211,323.56081 C 599.37466,326.36530 596.20938,328.27876 592.98790,329.80588 C 570.09983,281.67195 552.65324,238.19755 537.96578,188.87058 C 540.53253,187.99599 540.34623,186.72968 544.06785,185.23884 z " + style="font-size:12.000000;fill:#45454e;fill-opacity:0.29729697;fill-rule:evenodd;stroke-width:1.0000000pt" /> + <path + sodipodi:nodetypes="ccccc" + id="path680" + d="M 543.15031,185.88232 C 560.16489,232.98489 578.52789,278.42020 601.97577,323.39579 C 596.82690,324.29588 596.15986,324.48065 592.75040,324.68463 C 569.86231,276.55070 553.21963,237.11949 538.53218,187.79252 C 541.01119,186.88289 539.42870,187.37316 543.15031,185.88232 z " + style="font-size:12.000000;fill:#45454e;fill-opacity:0.29729697;fill-rule:evenodd;stroke-width:1.0000000pt" /> + <path + sodipodi:nodetypes="ccccc" + id="path681" + d="M 542.08466,186.70727 C 559.09925,233.80985 576.02594,277.39172 599.47383,322.36731 C 594.32494,323.26740 597.13301,321.61744 593.72352,321.82142 C 570.83545,273.68748 554.05263,236.74635 539.36517,187.41938 C 542.09871,187.02170 538.36305,188.19811 542.08466,186.70727 z " + style="font-size:12.000000;fill:#45454e;fill-opacity:0.29729697;fill-rule:evenodd;stroke-width:1.0000000pt" /> + </g> + </g> + </g> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_brush_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_brush_selection_cursor.png Binary files differnew file mode 100644 index 00000000..96929d8f --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_brush_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_contiguous_selection.png b/chalk/plugins/tools/selectiontools/tool_contiguous_selection.png Binary files differnew file mode 100644 index 00000000..fcc8f36d --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_contiguous_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_contiguous_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_contiguous_selection_cursor.png Binary files differnew file mode 100644 index 00000000..0e3572cd --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_contiguous_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_elliptical_selection.png b/chalk/plugins/tools/selectiontools/tool_elliptical_selection.png Binary files differnew file mode 100644 index 00000000..ad585848 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_elliptical_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_elliptical_selection.svg b/chalk/plugins/tools/selectiontools/tool_elliptical_selection.svg new file mode 100644 index 00000000..31ff66f4 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_elliptical_selection.svg @@ -0,0 +1,256 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.000000pt" + height="48.000000pt" + id="svg1409" + sodipodi:version="0.32" + inkscape:version="0.41" + sodipodi:docbase="/home/danny/work/kde/koffice/chalk/chalk" + sodipodi:docname="tool_elliptical_selection.svg" + inkscape:export-filename="/home/danny/work/kde/koffice/chalk/chalk/tool_elliptical_selection.png" + inkscape:export-xdpi="33.000000" + inkscape:export-ydpi="33.000000"> + <defs + id="defs3"> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + id="linearGradient9512" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + gradientUnits="userSpaceOnUse" + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + id="radialGradient10280" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + id="light90to0"> + <stop + id="stop1890" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:0.90833336;" /> + <stop + id="stop1892" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1331" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1333" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-77.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient2089" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-75.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient2092" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-75.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3660" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-77.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3662" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.472290,0.000000,0.000000,1.178586,-15.47463,-0.337081)" + gradientUnits="userSpaceOnUse" + id="radialGradient3665" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.163997,-42.82010,1.756341)" + gradientUnits="userSpaceOnUse" + id="linearGradient3668" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.472290,0.000000,0.000000,1.178586,-15.47463,-0.337081)" + gradientUnits="userSpaceOnUse" + id="radialGradient3678" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.163997,-12.82010,1.756341)" + gradientUnits="userSpaceOnUse" + id="linearGradient3682" + xlink:href="#light90to0" + inkscape:collect="always" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="4.3288472" + inkscape:cx="33.946093" + inkscape:cy="27.610797" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:document-units="px" + inkscape:grid-bbox="true" + inkscape:window-width="1020" + inkscape:window-height="691" + inkscape:window-x="0" + inkscape:window-y="0" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + rdf:about="" + id="Work6"> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + id="type9" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <path + id="rect7971" + d="M 30.000000,7.1250000 C 22.317773,7.1250000 15.355679,9.5078220 10.156250,13.500000 C 4.9568200,17.492177 1.4062500,23.269928 1.4062500,29.968750 C 1.4062500,36.667572 4.9568200,42.507823 10.156250,46.500000 C 15.355679,50.492180 22.317774,52.875000 30.000000,52.875000 C 37.682225,52.875002 44.675571,50.492178 49.875000,46.500000 C 55.074429,42.507825 58.593750,36.667572 58.593750,29.968750 C 58.593752,23.269928 55.074430,17.492177 49.875000,13.500000 C 44.675570,9.5078222 37.682226,7.1250000 30.000000,7.1250000 z " + style="opacity:0.79446638;fill:#0028c6;fill-opacity:0.18099548;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path8746" + d="M 30.000000,7.1250000 C 22.317773,7.1250000 15.355679,9.5078220 10.156250,13.500000 C 4.9568200,17.492177 1.4062500,23.269928 1.4062500,29.968750 C 1.4062500,35.373532 3.7824490,40.170227 7.4062500,43.937500 C 25.754627,28.015820 45.616873,27.218125 56.187500,20.750000 C 54.657054,17.958644 52.482639,15.502173 49.875000,13.500000 C 44.675570,9.5078222 37.682226,7.1250000 30.000000,7.1250000 z " + style="opacity:0.79446638;fill:url(#linearGradient3682);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path9514" + d="M 30.000000,7.1250000 C 22.317773,7.1250000 15.355679,9.5078220 10.156250,13.500000 C 4.9568200,17.492177 1.4062500,23.269928 1.4062500,29.968750 C 1.4062500,36.667572 4.9568202,42.507823 10.156250,46.500000 C 15.355679,50.492180 22.317774,52.875000 30.000000,52.875000 C 37.682225,52.875002 44.675571,50.492178 49.875000,46.500000 C 55.074429,42.507825 58.593750,36.667572 58.593750,29.968750 C 58.593752,23.269928 55.074430,17.492177 49.875000,13.500000 C 44.675570,9.5078222 37.682226,7.1250000 30.000000,7.1250000 z " + style="opacity:0.97233200;fill:url(#radialGradient3678);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <g + transform="matrix(1.034994,0.000000,0.000000,0.947886,-1.049820,1.606088)" + id="g2879"> + <path + sodipodi:nodetypes="cccccccc" + id="path2095" + d="M 15.715627,7.8733917 C 14.686976,8.3945360 14.043469,9.5270380 14.459506,10.644495 C 14.875544,11.761955 16.112458,12.333045 17.222232,11.920064 C 20.059953,10.583282 22.969503,9.5338180 25.735394,8.7716720 C 26.485511,8.5331940 27.042274,7.8985157 27.184094,7.1202427 C 27.325911,6.3419677 27.029771,5.5463973 26.413534,5.0501646 C 25.797297,4.5539337 25.042091,4.5727734 24.237406,4.7473875 C 21.253154,5.3584125 18.484391,6.3285845 15.715627,7.8733917 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2863" + d="M 15.040511,52.036580 C 14.011860,51.515436 13.368353,50.382934 13.784390,49.265477 C 14.200428,48.148017 15.437342,47.576927 16.547116,47.989908 C 19.384837,49.326690 22.294387,50.376154 25.060278,51.138300 C 25.810395,51.376778 26.367158,52.011456 26.508978,52.789729 C 26.650795,53.568004 26.354655,54.363575 25.738418,54.859807 C 25.122181,55.356038 24.366975,55.337199 23.562290,55.162585 C 20.578038,54.551560 17.809275,53.581388 15.040511,52.036580 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2865" + d="M 44.959488,7.8733920 C 45.988139,8.3945360 46.631646,9.5270380 46.215609,10.644495 C 45.799571,11.761955 44.562657,12.333045 43.452883,11.920064 C 40.615162,10.583282 37.705612,9.5338180 34.939721,8.7716720 C 34.189604,8.5331940 33.632841,7.8985160 33.491021,7.1202430 C 33.349204,6.3419677 33.645344,5.5463973 34.261581,5.0501646 C 34.877818,4.5539337 35.633024,4.5727734 36.437709,4.7473875 C 39.421961,5.3584125 42.190724,6.3285845 44.959488,7.8733920 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2867" + d="M 44.284370,52.036580 C 45.313021,51.515436 45.956528,50.382934 45.540491,49.265477 C 45.124453,48.148017 43.887539,47.576927 42.777765,47.989908 C 39.940044,49.326690 37.030494,50.376154 34.264603,51.138300 C 33.514486,51.376778 32.957723,52.011456 32.815903,52.789729 C 32.674086,53.568004 32.970226,54.363575 33.586463,54.859807 C 34.202700,55.356038 34.957906,55.337199 35.762591,55.162585 C 38.746843,54.551560 41.515606,53.581388 44.284370,52.036580 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2869" + d="M 1.1508292,24.851646 C 0.79196783,25.947517 1.1377395,27.203345 2.2220836,27.699323 C 3.3064305,28.195304 4.5848824,27.724495 5.0775894,26.647745 C 6.1389136,23.695925 7.4541930,20.896480 8.8710548,18.401782 C 9.2328376,17.702738 9.1777437,16.860263 8.7277037,16.209658 C 8.2776597,15.559055 7.5057040,15.205904 6.7190689,15.290760 C 5.9324353,15.375617 5.4117458,15.922950 4.9662183,16.615419 C 3.2880935,19.157664 2.0162977,21.801490 1.1508292,24.851646 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2871" + d="M 58.849170,35.058325 C 59.208032,33.962455 58.862260,32.706627 57.777916,32.210649 C 56.693569,31.714668 55.415117,32.185477 54.922410,33.262227 C 53.861086,36.214047 52.545807,39.013492 51.128945,41.508190 C 50.767162,42.207234 50.822256,43.049709 51.272296,43.700314 C 51.722340,44.350917 52.494296,44.704067 53.280930,44.619212 C 54.067564,44.534355 54.588254,43.987022 55.033782,43.294553 C 56.711907,40.752308 57.983702,38.108482 58.849170,35.058325 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2873" + d="M 4.3255135,45.237875 C 4.8466574,46.266526 5.9791594,46.910033 7.0966154,46.493995 C 8.2140765,46.077958 8.7851655,44.841044 8.3721854,43.731270 C 7.0354024,40.893548 5.9859395,37.983999 5.2237936,35.218107 C 4.9853145,34.467990 4.3506365,33.911227 3.5723636,33.769407 C 2.7940894,33.627590 1.9985185,33.923730 1.5022854,34.539967 C 1.0060545,35.156204 1.0248945,35.911410 1.1995086,36.716095 C 1.8105334,39.700347 2.7807056,42.469110 4.3255135,45.237875 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path2875" + d="M 55.674487,14.672098 C 55.153343,13.643446 54.020841,12.999939 52.903385,13.415977 C 51.785924,13.832014 51.214835,15.068929 51.627815,16.178702 C 52.964598,19.016424 54.014061,21.925973 54.776208,24.691864 C 55.014687,25.441982 55.649364,25.998745 56.427637,26.140565 C 57.205913,26.282381 58.001483,25.986242 58.497714,25.370005 C 58.993947,24.753768 58.975106,23.998562 58.800494,23.193876 C 58.189469,20.209624 57.219295,17.440862 55.674487,14.672098 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + </g> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_elliptical_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_elliptical_selection_cursor.png Binary files differnew file mode 100644 index 00000000..5e02f87b --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_elliptical_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_eraser_selection.png b/chalk/plugins/tools/selectiontools/tool_eraser_selection.png Binary files differnew file mode 100644 index 00000000..ffe2e440 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_eraser_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_eraser_selection.svg b/chalk/plugins/tools/selectiontools/tool_eraser_selection.svg new file mode 100644 index 00000000..9c147c1b --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_eraser_selection.svg @@ -0,0 +1,1993 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.000000pt" + height="48.000000pt" + id="svg11941" + sodipodi:version="0.32" + inkscape:version="0.41" + sodipodi:docbase="/home/danny/work/kde/koffice/chalk/chalk/new" + sodipodi:docname="tool_eraser_selection.svg" + inkscape:export-filename="/home/danny/work/kde/koffice/chalk/chalk/new/tool_eraser_selection.png" + inkscape:export-xdpi="33.000000" + inkscape:export-ydpi="33.000000"> + <defs + id="defs3"> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient9512" + gradientTransform="matrix(0.996235,0.000000,0.000000,1.003779,-3.391158,13.41516)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient10280" + gradientTransform="matrix(0.983903,0.000000,0.000000,1.016360,-3.999998,12.41516)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7969" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,-30.45690,-1.224420)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7967" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,-30.45690,-1.829360)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7965" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,-30.45690,-21.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7963" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,-30.45690,-21.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7961" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,26.44710,-11.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7959" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,-11.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7957" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-44.86332,44.21180)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7955" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-44.86332,44.21180)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7953" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-22.86332,44.21180)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7951" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-22.86332,44.21180)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7949" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-38.65916,-12.48664)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7947" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-38.65916,-12.48664)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7945" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,4.170640)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7943" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.878497,0.000000,0.000000,1.138308,-18.65916,-0.486640)" + cx="92.643608" + cy="55.457653" + fx="92.643608" + fy="55.457653" + r="9.9914455" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7941" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.592685,0.379735,0.000000,26.44710,-31.22442)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7939" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.503650,0.399417,0.000000,26.44710,-31.82936)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7937" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.633416,0.000000,0.000000,0.379735,-16.65916,-12.48664)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7935" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.503650,0.000000,0.000000,0.399417,-16.65916,-12.48664)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient7933" + gradientUnits="userSpaceOnUse" + gradientTransform="scale(0.665867,1.501801)" + cx="8.0907059" + cy="9.5002232" + fx="8.0907059" + fy="9.5002232" + r="5.8189325" /> + <linearGradient + id="light90to0"> + <stop + style="stop-color:#ffffff;stop-opacity:0.90833336;" + offset="0.0000000" + id="stop1890" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1892" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient7931" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.791643,0.000000,0.000000,1.263196,-1.626700,-5.630763)" + x1="4.4536543" + y1="6.5494914" + x2="14.101834" + y2="13.431447" /> + <linearGradient + id="wihitetolightgray"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1885" /> + <stop + style="stop-color:#d5d4d4;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop1886" /> + </linearGradient> + <linearGradient + id="orangemoretoyelow"> + <stop + style="stop-color:#ff0d00;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2671" /> + <stop + style="stop-color:#ff3900;stop-opacity:1.0000000;" + offset="0.74641621" + id="stop2679" /> + <stop + style="stop-color:#d05521;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop2672" /> + </linearGradient> + <linearGradient + id="graytoblack"> + <stop + style="stop-color:#7d7d7d;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop5097" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop5098" /> + </linearGradient> + <linearGradient + id="shadow100to0"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop3425" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop3426" /> + </linearGradient> + <linearGradient + id="light50to25to7"> + <stop + style="stop-color:#ffffff;stop-opacity:0.47450981;" + offset="0.0000000" + id="stop2791" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.25833333;" + offset="0.50000000" + id="stop2795" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.10833333;" + offset="1.0000000" + id="stop2793" /> + </linearGradient> + <linearGradient + id="orangetoblackorange"> + <stop + style="stop-color:#ff8b00;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop4207" /> + <stop + style="stop-color:#4d0200;stop-opacity:1.0000000;" + offset="1.0000000" + id="stop4209" /> + </linearGradient> + <linearGradient + id="light100to0"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2764" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2765" /> + </linearGradient> + <radialGradient + inkscape:collect="always" + xlink:href="#wihitetolightgray" + id="radialGradient13045" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + cx="86.514435" + cy="332.37268" + fx="86.514435" + fy="332.37268" + r="83.259750" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13047" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + x1="86.514435" + y1="335.76117" + x2="73.286217" + y2="247.07323" /> + <linearGradient + inkscape:collect="always" + xlink:href="#wihitetolightgray" + id="linearGradient13049" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + x1="132.72992" + y1="279.47504" + x2="84.003502" + y2="210.46336" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13051" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + x1="136.55682" + y1="213.43617" + x2="54.607849" + y2="250.54321" /> + <linearGradient + inkscape:collect="always" + xlink:href="#wihitetolightgray" + id="linearGradient13053" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + x1="145.42192" + y1="264.70230" + x2="198.28532" + y2="218.74910" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13055" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.180988,-1.212046e-2,0.000000,0.279356,-4.383105,-16.75305)" + x1="159.18221" + y1="219.68500" + x2="184.11906" + y2="234.35374" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangemoretoyelow" + id="linearGradient13057" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.273196,-8.526361e-2,0.000000,0.785425,-7.025630e-17,2.371150e-16)" + x1="36.606781" + y1="4.8842254" + x2="28.653791" + y2="47.244961" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13059" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.286285,-1.917198e-2,0.000000,0.176607,-4.383105,-16.75305)" + x1="134.59328" + y1="300.55457" + x2="126.82574" + y2="189.89319" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangemoretoyelow" + id="linearGradient13061" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.870407,-5.828951e-2,0.000000,1.148888,-7.025630e-17,2.371150e-16)" + x1="77.830383" + y1="43.692036" + x2="40.120766" + y2="18.127838" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13063" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.218024,-1.460066e-2,0.000000,0.231901,-4.383105,-16.75305)" + x1="188.09673" + y1="173.35371" + x2="269.30646" + y2="220.31316" /> + <linearGradient + inkscape:collect="always" + xlink:href="#graytoblack" + id="linearGradient13065" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.262073,-1.755056e-2,0.000000,0.217660,-4.383105,-17.56717)" + spreadMethod="reflect" + x1="138.68466" + y1="221.05045" + x2="90.955330" + y2="574.66980" /> + <linearGradient + inkscape:collect="always" + xlink:href="#shadow100to0" + id="linearGradient13067" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + x1="124.51332" + y1="199.20517" + x2="99.415497" + y2="224.95407" /> + <linearGradient + inkscape:collect="always" + xlink:href="#shadow100to0" + id="linearGradient13069" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + x1="124.51332" + y1="199.20517" + x2="99.415497" + y2="224.95407" /> + <linearGradient + inkscape:collect="always" + xlink:href="#shadow100to0" + id="linearGradient13071" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + x1="163.74318" + y1="301.15747" + x2="137.31036" + y2="301.15750" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light50to25to7" + id="radialGradient13073" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.282097,-1.889158e-2,0.000000,0.179229,-4.383100,-12.51208)" + cx="145.82777" + cy="265.90030" + fx="145.82777" + fy="265.90030" + r="24.113470" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangetoblackorange" + id="linearGradient13075" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-5.784573,-19.06245)" + spreadMethod="reflect" + x1="119.80309" + y1="179.83293" + x2="129.06503" + y2="189.54620" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangetoblackorange" + id="linearGradient13077" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-0.406378,-15.67507)" + spreadMethod="reflect" + x1="119.80309" + y1="179.83293" + x2="129.06503" + y2="189.54620" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangetoblackorange" + id="linearGradient13079" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,4.903646,-12.38550)" + spreadMethod="reflect" + x1="119.80309" + y1="179.83293" + x2="129.06503" + y2="189.54620" /> + <linearGradient + inkscape:collect="always" + xlink:href="#orangetoblackorange" + id="linearGradient13081" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.250582,0.000000,0.000000,0.227641,-4.383105,-17.56717)" + spreadMethod="reflect" + x1="203.79491" + y1="203.68118" + x2="120.08266" + y2="229.92639" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13083" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + x1="24.253796" + y1="213.05858" + x2="189.53893" + y2="213.05858" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13085" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.182201,0.000000,0.000000,0.313078,-4.383100,-17.56719)" + x1="42.080868" + y1="215.05040" + x2="88.821419" + y2="172.01805" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light100to0" + id="linearGradient13087" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + x1="149.74805" + y1="120.63583" + x2="144.13652" + y2="216.48166" /> + <radialGradient + inkscape:collect="always" + xlink:href="#graytoblack" + id="radialGradient16881" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + cx="86.514435" + cy="332.37268" + fx="86.514435" + fy="332.37268" + r="83.259750" /> + <linearGradient + inkscape:collect="always" + xlink:href="#graytoblack" + id="linearGradient18401" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + x1="132.72992" + y1="279.47504" + x2="84.003502" + y2="210.46336" /> + <linearGradient + inkscape:collect="always" + xlink:href="#graytoblack" + id="linearGradient19163" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + x1="145.42192" + y1="264.70230" + x2="198.28532" + y2="218.74910" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19963" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,-25.58840,11.38378)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient19966" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,-25.58840,10.88376)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19970" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,-25.58840,-5.893883)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient19973" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,-25.58840,-6.393896)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19977" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.142981,0.309244,0.000000,20.66765,1.878457)" + cx="-23.859682" + cy="95.221397" + fx="-23.859682" + fy="95.221397" + r="8.5514765" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient19980" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,20.66765,1.378444)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19984" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-38.78637,48.23092)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient19987" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-38.78637,48.23092)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19991" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-20.05593,48.23092)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient19994" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-20.05593,48.23092)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient19998" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-31.37563,1.327640)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient20001" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-31.37563,1.327640)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient20005" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.000000,-2.069389,0.325272,0.000000,20.75234,15.09638)" + x1="-16.569721" + y1="81.885979" + x2="-21.621279" + y2="85.112236" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient20008" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.715419,0.000000,0.000000,0.940867,-15.98071,11.24691)" + cx="92.643608" + cy="55.457653" + fx="92.643608" + fy="55.457653" + r="9.9914455" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient20019" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.144567,0.000000,0.000000,0.313870,-12.72324,1.327640)" + cx="25.952410" + cy="52.497688" + fx="25.923746" + fy="51.904903" + r="14.270030" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient20022" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(2.038890,0.000000,0.000000,0.330138,-12.72324,1.327640)" + x1="22.425571" + y1="35.206337" + x2="22.396454" + y2="41.545322" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient20026" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.542260,0.000000,0.000000,1.241312,-0.785301,11.64914)" + cx="8.0907059" + cy="9.5002232" + fx="8.0907059" + fy="9.5002232" + r="5.8189325" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(0.996235,0.000000,0.000000,1.003779,-3.391158,13.41516)" + gradientUnits="userSpaceOnUse" + id="linearGradient1472" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(0.983903,0.000000,0.000000,1.016360,-3.999998,12.41516)" + gradientUnits="userSpaceOnUse" + id="radialGradient1474" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="radialGradient1476" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1478" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1480" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1482" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1484" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.180988,-1.212046e-2,0.000000,0.279356,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1486" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="47.244961" + x2="28.653791" + y1="4.8842254" + x1="36.606781" + gradientTransform="matrix(1.273196,-8.526361e-2,0.000000,0.785425,-1.806714e-15,-3.087808e-16)" + gradientUnits="userSpaceOnUse" + id="linearGradient1488" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="189.89319" + x2="126.82574" + y1="300.55457" + x1="134.59328" + gradientTransform="matrix(0.286285,-1.917198e-2,0.000000,0.176607,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1490" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="18.127838" + x2="40.120766" + y1="43.692036" + x1="77.830383" + gradientTransform="matrix(0.870407,-5.828951e-2,0.000000,1.148888,-1.806714e-15,-3.087808e-16)" + gradientUnits="userSpaceOnUse" + id="linearGradient1492" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="220.31316" + x2="269.30646" + y1="173.35371" + x1="188.09673" + gradientTransform="matrix(0.218024,-1.460066e-2,0.000000,0.231901,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1494" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="574.66980" + x2="90.955330" + y1="221.05045" + x1="138.68466" + spreadMethod="reflect" + gradientTransform="matrix(0.262073,-1.755056e-2,0.000000,0.217660,-4.383105,-17.56717)" + gradientUnits="userSpaceOnUse" + id="linearGradient1496" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1498" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1500" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="301.15750" + x2="137.31036" + y1="301.15747" + x1="163.74318" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1502" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <radialGradient + r="24.113470" + fy="265.90030" + fx="145.82777" + cy="265.90030" + cx="145.82777" + gradientTransform="matrix(0.282097,-1.889158e-2,0.000000,0.179229,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="radialGradient1504" + xlink:href="#light50to25to7" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-5.784573,-19.06245)" + gradientUnits="userSpaceOnUse" + id="linearGradient1506" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-0.406378,-15.67507)" + gradientUnits="userSpaceOnUse" + id="linearGradient1508" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,4.903646,-12.38550)" + gradientUnits="userSpaceOnUse" + id="linearGradient1510" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="229.92639" + x2="120.08266" + y1="203.68118" + x1="203.79491" + spreadMethod="reflect" + gradientTransform="matrix(0.250582,0.000000,0.000000,0.227641,-4.383105,-17.56717)" + gradientUnits="userSpaceOnUse" + id="linearGradient1512" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="radialGradient1514" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1516" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="213.05858" + x2="189.53893" + y1="213.05858" + x1="24.253796" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1518" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1520" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.180988,-1.212046e-2,0.000000,0.279356,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1522" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1524" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1526" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="172.01805" + x2="88.821419" + y1="215.05040" + x1="42.080868" + gradientTransform="matrix(0.182201,0.000000,0.000000,0.313078,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1528" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="216.48166" + x2="144.13652" + y1="120.63583" + x1="149.74805" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1530" + xlink:href="#light100to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(0.922906,0.000000,0.000000,0.953351,-3.844255,9.876188)" + gradientUnits="userSpaceOnUse" + id="radialGradient1575" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(0.934473,0.000000,0.000000,0.941550,-3.273160,10.81419)" + gradientUnits="userSpaceOnUse" + id="linearGradient1578" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(0.934473,0.000000,0.000000,0.941550,-3.273160,10.81419)" + gradientUnits="userSpaceOnUse" + id="linearGradient1474" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(0.922906,0.000000,0.000000,0.953351,-3.844255,9.876188)" + gradientUnits="userSpaceOnUse" + id="radialGradient1477" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(0.934473,0.000000,0.000000,0.941550,-3.273160,10.81419)" + gradientUnits="userSpaceOnUse" + id="linearGradient1527" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(0.922906,0.000000,0.000000,0.953351,-3.844255,9.876188)" + gradientUnits="userSpaceOnUse" + id="radialGradient1529" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="radialGradient1531" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1533" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1535" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1537" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1539" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.180988,-1.212046e-2,0.000000,0.279356,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1541" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="47.244961" + x2="28.653791" + y1="4.8842254" + x1="36.606781" + gradientTransform="matrix(1.273196,-8.526361e-2,0.000000,0.785425,-3.588275e-15,-4.926614e-16)" + gradientUnits="userSpaceOnUse" + id="linearGradient1543" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="189.89319" + x2="126.82574" + y1="300.55457" + x1="134.59328" + gradientTransform="matrix(0.286285,-1.917198e-2,0.000000,0.176607,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1545" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="18.127838" + x2="40.120766" + y1="43.692036" + x1="77.830383" + gradientTransform="matrix(0.870407,-5.828951e-2,0.000000,1.148888,4.887488e-6,1.380840e-15)" + gradientUnits="userSpaceOnUse" + id="linearGradient1547" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="220.31316" + x2="269.30646" + y1="173.35371" + x1="188.09673" + gradientTransform="matrix(0.218024,-1.460066e-2,0.000000,0.231901,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1549" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="574.66980" + x2="90.955330" + y1="221.05045" + x1="138.68466" + spreadMethod="reflect" + gradientTransform="matrix(0.262073,-1.755056e-2,0.000000,0.217660,-4.383105,-17.56717)" + gradientUnits="userSpaceOnUse" + id="linearGradient1551" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1553" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1555" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="301.15750" + x2="137.31036" + y1="301.15747" + x1="163.74318" + gradientTransform="matrix(0.273027,-1.828417e-2,0.000000,0.185183,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="linearGradient1557" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <radialGradient + r="24.113470" + fy="265.90030" + fx="145.82777" + cy="265.90030" + cx="145.82777" + gradientTransform="matrix(0.282097,-1.889158e-2,0.000000,0.179229,-4.383100,-12.51208)" + gradientUnits="userSpaceOnUse" + id="radialGradient1559" + xlink:href="#light50to25to7" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-5.784573,-19.06245)" + gradientUnits="userSpaceOnUse" + id="linearGradient1561" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,-0.406378,-15.67507)" + gradientUnits="userSpaceOnUse" + id="linearGradient1563" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.302207,-2.036411e-2,1.731823e-2,0.187588,4.903646,-12.38550)" + gradientUnits="userSpaceOnUse" + id="linearGradient1565" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="229.92639" + x2="120.08266" + y1="203.68118" + x1="203.79491" + spreadMethod="reflect" + gradientTransform="matrix(0.250582,0.000000,0.000000,0.227641,-4.383105,-17.56717)" + gradientUnits="userSpaceOnUse" + id="linearGradient1567" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="radialGradient1569" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.281643,-1.886110e-2,0.000000,0.179517,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1571" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="213.05858" + x2="189.53893" + y1="213.05858" + x1="24.253796" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1573" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1575" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.180988,-1.212046e-2,0.000000,0.279356,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1577" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1579" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.195716,-1.310673e-2,0.000000,0.258334,-4.383105,-16.75305)" + gradientUnits="userSpaceOnUse" + id="linearGradient1581" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="172.01805" + x2="88.821419" + y1="215.05040" + x1="42.080868" + gradientTransform="matrix(0.182201,0.000000,0.000000,0.313078,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1583" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="216.48166" + x2="144.13652" + y1="120.63583" + x1="149.74805" + gradientTransform="matrix(0.331788,0.000000,0.000000,0.171926,-4.383100,-17.56719)" + gradientUnits="userSpaceOnUse" + id="linearGradient1585" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="216.48166" + x2="144.13652" + y1="120.63583" + x1="149.74805" + gradientTransform="matrix(0.251838,0.000000,0.000000,0.135659,7.587247,-14.29214)" + gradientUnits="userSpaceOnUse" + id="linearGradient2877" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="172.01805" + x2="88.821419" + y1="215.05040" + x1="42.080868" + gradientTransform="matrix(0.138296,0.000000,0.000000,0.247035,7.587247,-14.29214)" + gradientUnits="userSpaceOnUse" + id="linearGradient2880" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2883" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2885" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2888" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.137376,-9.563697e-3,0.000000,0.220427,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2890" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="213.05858" + x2="189.53893" + y1="213.05858" + x1="24.253796" + gradientTransform="matrix(0.251838,0.000000,0.000000,0.135659,7.587247,-14.29214)" + gradientUnits="userSpaceOnUse" + id="linearGradient2893" + xlink:href="#light100to0" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.213776,-1.488243e-2,0.000000,0.141649,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="radialGradient2896" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.213776,-1.488243e-2,0.000000,0.141649,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2898" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="229.92639" + x2="120.08266" + y1="203.68118" + x1="203.79491" + spreadMethod="reflect" + gradientTransform="matrix(0.190200,0.000000,0.000000,0.179621,7.587243,-14.29213)" + gradientUnits="userSpaceOnUse" + id="linearGradient2901" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.229385,-1.606838e-2,1.314509e-2,0.148017,14.63618,-10.20351)" + gradientUnits="userSpaceOnUse" + id="linearGradient2904" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.229385,-1.606838e-2,1.314509e-2,0.148017,10.60571,-12.79916)" + gradientUnits="userSpaceOnUse" + id="linearGradient2907" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <linearGradient + y2="189.54620" + x2="129.06503" + y1="179.83293" + x1="119.80309" + spreadMethod="reflect" + gradientTransform="matrix(0.229385,-1.606838e-2,1.314509e-2,0.148017,6.523484,-15.47198)" + gradientUnits="userSpaceOnUse" + id="linearGradient2910" + xlink:href="#orangetoblackorange" + inkscape:collect="always" /> + <radialGradient + r="24.113470" + fy="265.90030" + fx="145.82777" + cy="265.90030" + cx="145.82777" + gradientTransform="matrix(0.214121,-1.490648e-2,0.000000,0.141421,7.587247,-10.30339)" + gradientUnits="userSpaceOnUse" + id="radialGradient2913" + xlink:href="#light50to25to7" + inkscape:collect="always" /> + <linearGradient + y2="301.15750" + x2="137.31036" + y1="301.15747" + x1="163.74318" + gradientTransform="matrix(0.207236,-1.442720e-2,0.000000,0.146119,7.587247,-10.30339)" + gradientUnits="userSpaceOnUse" + id="linearGradient2916" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.207236,-1.442720e-2,0.000000,0.146119,7.587247,-10.30339)" + gradientUnits="userSpaceOnUse" + id="linearGradient2919" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="224.95407" + x2="99.415497" + y1="199.20517" + x1="124.51332" + gradientTransform="matrix(0.207236,-1.442720e-2,0.000000,0.146119,7.587247,-10.30339)" + gradientUnits="userSpaceOnUse" + id="linearGradient2922" + xlink:href="#shadow100to0" + inkscape:collect="always" /> + <linearGradient + y2="574.66980" + x2="90.955330" + y1="221.05045" + x1="138.68466" + spreadMethod="reflect" + gradientTransform="matrix(0.198922,-1.384834e-2,0.000000,0.171745,7.587243,-14.29213)" + gradientUnits="userSpaceOnUse" + id="linearGradient2925" + xlink:href="#graytoblack" + inkscape:collect="always" /> + <linearGradient + y2="18.127838" + x2="40.120766" + y1="43.692036" + x1="77.830383" + gradientTransform="matrix(0.660667,-4.599357e-2,0.000000,0.906535,10.91416,-0.430682)" + gradientUnits="userSpaceOnUse" + id="linearGradient2928" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="220.31316" + x2="269.30646" + y1="173.35371" + x1="188.09673" + gradientTransform="matrix(0.165487,-1.152071e-2,0.000000,0.182982,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2930" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="47.244961" + x2="28.653791" + y1="4.8842254" + x1="36.606781" + gradientTransform="matrix(0.966397,-6.727759e-2,0.000000,0.619743,10.91416,-0.430682)" + gradientUnits="userSpaceOnUse" + id="linearGradient2933" + xlink:href="#orangemoretoyelow" + inkscape:collect="always" /> + <linearGradient + y2="189.89319" + x2="126.82574" + y1="300.55457" + x1="134.59328" + gradientTransform="matrix(0.217299,-1.512773e-2,0.000000,0.139352,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2935" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="218.74910" + x2="198.28532" + y1="264.70230" + x1="145.42192" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2938" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="234.35374" + x2="184.11906" + y1="219.68500" + x1="159.18221" + gradientTransform="matrix(0.137376,-9.563697e-3,0.000000,0.220427,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2940" + xlink:href="#light100to0" + inkscape:collect="always" /> + <linearGradient + y2="210.46336" + x2="84.003502" + y1="279.47504" + x1="132.72992" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2943" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="250.54321" + x2="54.607849" + y1="213.43617" + x1="136.55682" + gradientTransform="matrix(0.148555,-1.034192e-2,0.000000,0.203839,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2945" + xlink:href="#light100to0" + inkscape:collect="always" /> + <radialGradient + r="83.259750" + fy="332.37268" + fx="86.514435" + cy="332.37268" + cx="86.514435" + gradientTransform="matrix(0.213776,-1.488243e-2,0.000000,0.141649,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="radialGradient2948" + xlink:href="#wihitetolightgray" + inkscape:collect="always" /> + <linearGradient + y2="247.07323" + x2="73.286217" + y1="335.76117" + x1="86.514435" + gradientTransform="matrix(0.213776,-1.488243e-2,0.000000,0.141649,7.587243,-13.64974)" + gradientUnits="userSpaceOnUse" + id="linearGradient2950" + xlink:href="#light100to0" + inkscape:collect="always" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="6.8465874" + inkscape:cx="34.331449" + inkscape:cy="26.802583" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:document-units="px" + inkscape:grid-bbox="true" + inkscape:window-width="1020" + inkscape:window-height="691" + inkscape:window-x="0" + inkscape:window-y="0" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + rdf:about="" + id="Work6"> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + id="type9" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + transform="matrix(1.003380,0.000000,0.000000,0.989340,3.064371e-4,0.621087)" + id="g1457"> + <path + style="opacity:0.79446638;fill:#0028c6;fill-opacity:0.18099548;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.1800241,11.752191 L 42.411763,11.752191 C 44.327630,11.752191 45.870008,13.762478 45.870008,16.259562 L 45.870008,51.816406 C 45.870008,54.313489 44.327630,56.323777 42.411763,56.323777 L 6.1800241,56.323777 C 4.2641564,56.323777 2.7217788,54.313489 2.7217788,51.816406 L 2.7217788,16.259562 C 2.7217788,13.762478 4.2641564,11.752191 6.1800241,11.752191 z " + id="rect7971" /> + <path + style="opacity:0.79446638;fill:url(#linearGradient1527);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.7511200,12.690196 L 42.982858,12.690196 C 44.538121,36.490139 20.962529,23.157631 3.2928747,52.754411 L 3.2928747,17.197567 C 3.2928747,14.700483 4.8352523,12.690196 6.7511200,12.690196 z " + id="path8746" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:0.97233200;fill:url(#radialGradient1529);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" + d="M 6.1800241,11.752191 L 42.411763,11.752191 C 44.327630,11.752191 45.870008,13.762478 45.870008,16.259562 L 45.870008,51.816406 C 45.870008,54.313489 44.327630,56.323777 42.411763,56.323777 L 6.1800241,56.323777 C 4.2641564,56.323777 2.7217788,54.313489 2.7217788,51.816406 L 2.7217788,16.259562 C 2.7217788,13.762478 4.2641564,11.752191 6.1800241,11.752191 z " + id="path9514" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.1039429,9.7820744 C 1.5251775,9.7663881 0.96486589,9.9894898 0.55099632,10.400419 C 0.13712749,10.811346 -0.094946223,11.374999 -0.092213059,11.962626 L -0.092213059,18.867704 C -0.092213059,20.071990 0.86966429,21.048255 2.0562004,21.048255 C 3.2427364,21.048255 4.2046137,20.071990 4.2046137,18.867704 L 4.2046137,14.167405 L 5.8278594,14.191633 C 6.6127969,14.244543 7.3630068,13.855899 7.7812725,13.179676 C 8.1995375,12.503453 8.2183549,11.648784 7.8302686,10.954272 C 7.4421830,10.259761 6.7098272,9.8374908 5.9233444,9.8547594 L 2.1039429,9.7820744 z " + id="path7697" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 31.871403,9.7814365 C 30.684867,9.7680559 29.712302,10.733474 29.699119,11.937759 C 29.685935,13.142045 30.637125,14.129158 31.823661,14.142539 L 40.918611,14.263680 C 41.705975,14.311054 42.455138,13.914810 42.867933,13.232654 C 43.280728,12.550497 43.290167,11.693130 42.892492,11.001782 C 42.494816,10.310436 41.754563,9.8973008 40.966353,9.9268067 L 31.871403,9.7814365 z " + id="path7695" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.573507,14.722417 C 45.002912,14.726284 44.457490,14.961373 44.058517,15.375414 C 43.659544,15.789455 43.440095,16.348124 43.448965,16.927197 L 43.448965,26.158197 C 43.448965,27.362483 44.410843,28.338748 45.597379,28.338748 C 46.783915,28.338748 47.745792,27.362483 47.745792,26.158197 L 47.745792,16.927197 C 47.754850,16.339683 47.528894,15.773532 47.119532,15.358045 C 46.710170,14.942560 46.152362,14.713224 45.573507,14.722417 L 45.573507,14.722417 z " + id="path1937" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 43.832534,26.692588 C 44.718063,26.866907 45.135153,23.989865 45.069485,19.604618 C 45.015675,16.071244 46.477953,17.496876 46.588198,15.582764 C 46.605189,15.287749 46.213140,15.134351 45.738969,15.149149 C 45.264797,15.163948 44.708503,15.346945 44.397005,15.724716 C 44.219002,15.873843 44.080729,16.087154 43.986898,16.337102 C 43.893069,16.587049 43.843681,16.873633 43.843454,17.169310 C 43.843226,17.464986 43.834354,24.330069 43.832534,26.692588 z " + id="path4304" + sodipodi:nodetypes="cccccccc" /> + <path + style="opacity:0.79446638;fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 44.855550,25.920267 C 44.847515,26.827450 45.427205,27.571035 46.150325,27.581116 C 46.873444,27.591196 47.466162,26.863950 47.474196,25.956769 L 47.546937,16.848759 C 47.575383,16.246770 47.337455,15.673986 46.927851,15.358378 C 46.518246,15.042772 46.003436,15.035555 45.588312,15.339602 C 45.173189,15.643650 44.925120,16.209621 44.942837,16.812256 L 44.855550,25.920267 z " + id="path4306" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.573507,46.899901 C 45.002912,46.903768 44.457490,47.138857 44.058517,47.552899 C 43.659544,47.966939 43.440095,48.525608 43.448965,49.104681 L 43.448965,53.901894 L 41.777977,53.901894 C 40.591441,53.901894 39.629564,54.878160 39.629564,56.082445 C 39.629564,57.286731 40.591441,58.262996 41.777977,58.262996 L 45.597379,58.262996 C 46.167934,58.265530 46.715843,58.036607 47.119291,57.627123 C 47.522739,57.217640 47.748288,56.661535 47.745792,56.082445 L 47.745792,49.104681 C 47.754850,48.517167 47.528894,47.951016 47.119532,47.535529 C 46.710170,47.120043 46.152362,46.890708 45.573507,46.899901 z " + id="path7691" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 8.4272673,53.827824 C 7.3482262,53.827617 6.4736286,54.803772 6.4737979,56.008130 C 6.4739672,57.212488 7.3488398,58.188981 8.4278808,58.189188 L 16.699054,58.209355 C 17.415475,58.247986 18.092682,57.843449 18.461147,57.156753 C 18.829611,56.470055 18.829537,55.612637 18.460957,54.925746 C 18.092376,54.238857 17.415101,53.833965 16.698686,53.872219 L 8.4272673,53.827824 z " + id="path7751" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.1056606,23.987353 C 1.5350657,23.990831 0.98964301,24.202266 0.59066982,24.574649 C 0.19169742,24.947031 -0.027751643,25.449489 -0.018881465,25.970300 L -0.018881465,34.272523 C -0.018881465,35.355640 0.94299583,36.233678 2.1295319,36.233678 C 3.3160680,36.233678 4.2779453,35.355640 4.2779453,34.272523 L 4.2779453,25.970300 C 4.2870034,25.441898 4.0610476,24.932710 3.6516857,24.559028 C 3.2423230,24.185346 2.6845154,23.979085 2.1056606,23.987353 L 2.1056606,23.987353 z " + id="path7775" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 2.1056606,40.878909 C 1.5350657,40.882503 0.98964301,41.101035 0.59066982,41.485915 C 0.19169742,41.870795 -0.027751643,42.390117 -0.018881465,42.928405 L -0.018881465,51.509261 C -0.018881465,52.628729 0.94299583,53.536236 2.1295319,53.536236 C 3.3160680,53.536236 4.2779453,52.628729 4.2779453,51.509261 L 4.2779453,42.928405 C 4.2870034,42.382270 4.0610476,41.855993 3.6516857,41.469770 C 3.2423230,41.083547 2.6845154,40.870363 2.1056606,40.878909 L 2.1056606,40.878909 z " + id="path7781" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 45.443435,29.434493 C 44.872840,29.438087 44.327417,29.656619 43.928444,30.041499 C 43.529472,30.426379 43.310023,30.945701 43.318893,31.483989 L 43.318893,40.064845 C 43.318893,41.184313 44.280770,42.091820 45.467306,42.091820 C 46.653842,42.091820 47.615720,41.184313 47.615720,40.064845 L 47.615720,31.483989 C 47.624778,30.937854 47.398822,30.411577 46.989461,30.025353 C 46.580097,29.639131 46.022290,29.425947 45.443435,29.434493 L 45.443435,29.434493 z " + id="path20031" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 25.311357,53.827824 C 24.232316,53.827617 23.357718,54.803772 23.357888,56.008130 C 23.358058,57.212488 24.232930,58.188981 25.311971,58.189188 L 33.583144,58.209355 C 34.299565,58.247986 34.976772,57.843449 35.345237,57.156753 C 35.713701,56.470055 35.713627,55.612637 35.345047,54.925746 C 34.976466,54.238857 34.299191,53.833965 33.582776,53.872219 L 25.311357,53.827824 z " + id="path20029" + sodipodi:nodetypes="cccccccc" /> + <path + style="fill:#343435;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 14.055297,9.7458205 C 12.976256,9.7456132 12.101658,10.721769 12.101828,11.926126 C 12.101998,13.130484 12.976870,14.106977 14.055911,14.107184 L 22.327084,14.127352 C 23.043505,14.165982 23.720712,13.761445 24.089177,13.074750 C 24.457641,12.388051 24.457567,11.530633 24.088987,10.843742 C 23.720406,10.156853 23.043131,9.7519616 22.326716,9.7902153 L 14.055297,9.7458205 z " + id="path20033" + sodipodi:nodetypes="cccccccc" /> + </g> + <g + id="g12821" + transform="matrix(0.696199,0.000000,0.000000,0.708248,21.27651,37.84947)"> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:8.4754333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12039" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:7.5159512;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12807" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:6.6630769;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12809" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:5.7035937;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12811" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:4.7441106;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12813" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:3.9978461;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12815" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:3.1449723;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12817" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.2920985;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:0.036199097" + d="M 31.443570,-46.786978 L 51.456857,-35.004551 L 51.479527,-21.252720 L 9.5298710,6.4263662 L -10.332290,-5.2904158 L -10.426366,-19.280855 L 31.443570,-46.786978 z " + id="path12819" + sodipodi:nodetypes="ccccccc" /> + </g> + <path + style="fill:url(#radialGradient2948);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2950);stroke-width:0.64930671;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 23.527250,16.908295 L 37.675026,25.667111 L 27.947401,32.409638 L 13.744677,23.705348 L 23.527250,16.908295 z " + id="path2646" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2943);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2945);stroke-width:0.67249632;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 13.651327,33.802483 L 27.799102,42.424340 L 27.947401,32.409638 L 13.744677,23.705348 L 13.651327,33.802483 z " + id="path3416" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2938);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2940);stroke-width:0.62611729;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 37.600441,35.833072 L 27.799102,42.424340 L 27.947401,32.409638 L 37.693790,25.735937 L 37.600441,35.833072 z " + id="path4180" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2933);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2935);stroke-width:0.62611729;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 23.527250,16.908295 L 37.675026,25.667111 L 57.525788,12.226416 L 43.323066,3.5221222 L 23.527250,16.908295 z " + id="path4942" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2928);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2930);stroke-width:0.60292763;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 37.600441,35.833072 L 57.476250,22.279894 L 57.624549,12.265192 L 37.693790,25.735937 L 37.600441,35.833072 z " + id="path5704" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2925);stroke-width:0.88120204;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 43.352337,3.4955980 L 57.540512,12.122573 L 57.556584,22.191526 L 27.816887,42.457876 L 13.735851,33.878966 L 13.669157,23.635306 L 43.352337,3.4955980 z " + id="path1875" + sodipodi:nodetypes="ccccccc" /> + <path + style="fill:url(#linearGradient2922);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 23.734387,16.986475 L 37.448802,25.682860 L 36.091459,26.613948 L 22.518028,17.728888 L 23.734387,16.986475 z " + id="path7264" /> + <path + style="fill:url(#linearGradient2919);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 37.313783,35.763019 L 37.448802,25.682860 L 36.091459,26.613948 L 36.097422,36.505434 L 37.313783,35.763019 z " + id="path8032" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2916);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 37.313783,35.763019 L 37.448802,25.682860 L 36.091459,26.613948 L 36.097422,36.505434 L 37.313783,35.763019 z " + id="path8034" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#radialGradient2913);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 57.115009,12.516946 L 38.579922,24.672607 C 38.009737,24.948138 37.242032,24.872198 36.869365,24.677449 L 24.002836,16.952421 L 36.317683,25.134159 C 36.501577,25.461311 36.339813,26.086440 35.980531,26.314452 L 27.721177,32.425387 L 36.317683,26.807348 C 36.840184,26.432290 36.967650,26.997787 36.996354,27.387550 L 37.420097,35.709968 L 38.005097,26.689873 C 38.025215,26.178869 38.390989,25.598150 38.806146,25.379218 L 57.115009,12.516946 z " + id="path8798" + sodipodi:nodetypes="ccccccccccccc" /> + <path + style="opacity:0.45059285;fill:url(#linearGradient2910);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.2241998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 28.382239,16.190139 L 30.728363,17.698172 L 45.678574,7.1338998 L 43.297377,5.6640350 L 28.382239,16.190139 z " + id="path9568" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:0.45059285;fill:url(#linearGradient2907);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.2241998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 34.354677,17.707185 L 36.700800,19.215217 L 49.760787,9.8067295 L 47.379591,8.3368655 L 34.354677,17.707185 z " + id="path9574" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:0.45059285;fill:url(#linearGradient2904);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:2.2241998;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 40.470919,18.807103 L 42.817042,20.315136 L 53.791267,12.402370 L 51.410071,10.932506 L 40.470919,18.807103 z " + id="path9578" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient2901);stroke-width:0.93599498;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 23.685829,16.889742 L 43.330622,3.5026466 L 57.587392,12.176218 L 57.457488,22.268067 L 37.675026,35.732929" + id="path11173" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:0.090909071;fill:url(#radialGradient2896);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2898);stroke-width:0.64930671;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 23.527250,16.908295 L 37.675026,25.667111 L 27.947401,32.409638 L 13.744677,23.705348 L 23.527250,16.908295 z " + id="path16121" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2893);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 43.358168,3.5906688 C 47.363022,6.1094789 51.315631,8.4375519 55.320486,10.956360 C 51.791561,13.969140 45.182687,13.437804 38.802332,13.671877 C 32.487156,13.905952 20.599481,19.596563 17.429440,25.822301 C 16.184726,25.035740 15.079683,24.417290 13.834969,23.630728 C 23.705177,16.943161 33.487959,10.278236 43.358168,3.5906688 z " + id="path9625" + sodipodi:nodetypes="cczccc" /> + <path + style="opacity:0.098814197;fill:url(#linearGradient2888);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2890);stroke-width:0.62611729;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 37.600441,35.833072 L 27.799102,42.424340 L 27.947401,32.409638 L 37.693790,25.735937 L 37.600441,35.833072 z " + id="path18403" + sodipodi:nodetypes="ccccc" /> + <path + style="opacity:0.15019758;fill:url(#linearGradient2883);fill-opacity:1.0000000;fill-rule:evenodd;stroke:url(#linearGradient2885);stroke-width:0.67249632;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 13.651327,33.802483 L 27.799102,42.424340 L 27.947401,32.409638 L 13.744677,23.705348 L 13.651327,33.802483 z " + id="path18399" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2880);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 13.844539,33.722286 C 17.849394,36.241097 17.487187,36.176390 22.469742,39.239096 C 22.916801,35.725090 17.275299,31.086427 17.429440,25.822301 C 16.184726,25.035740 15.082548,24.407572 13.837834,23.621015 C 13.682491,26.734833 13.858061,32.264076 13.844539,33.722286 z " + id="path9627" + sodipodi:nodetypes="ccccc" /> + <path + style="fill:url(#linearGradient2877);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:1.0000000px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" + d="M 43.371100,3.6038926 C 47.375955,6.1227026 51.315631,8.4375519 55.320486,10.956360 C 51.791561,13.969140 45.182687,13.437804 38.802332,13.671877 C 32.487156,13.905952 20.599481,19.596563 17.429440,25.822301 C 16.184726,25.035740 15.396273,24.249184 14.151558,23.462627 C 24.021766,16.775060 33.500892,10.291459 43.371100,3.6038926 z " + id="path10395" + sodipodi:nodetypes="cczccc" /> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_eraser_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_eraser_selection_cursor.png Binary files differnew file mode 100644 index 00000000..e6b01060 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_eraser_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_outline_selection.png b/chalk/plugins/tools/selectiontools/tool_outline_selection.png Binary files differnew file mode 100644 index 00000000..ca1cb1d1 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_outline_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_outline_selection.svg b/chalk/plugins/tools/selectiontools/tool_outline_selection.svg new file mode 100644 index 00000000..2795dc86 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_outline_selection.svg @@ -0,0 +1,329 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:export-ydpi="33.000000" + inkscape:export-xdpi="33.000000" + inkscape:export-filename="/home/cyrille/koffice/chalk/plugins/tools/selectiontools/tool_outline_selection.png" + sodipodi:docname="tool_outline_selection.svg" + sodipodi:docbase="/home/cyrille/koffice/chalk/plugins/tools/selectiontools" + inkscape:version="0.43" + sodipodi:version="0.32" + id="svg1409" + height="48.000000pt" + width="48.000000pt"> + <defs + id="defs3"> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + gradientUnits="userSpaceOnUse" + id="radialGradient1333" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + gradientUnits="userSpaceOnUse" + id="linearGradient1331" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient9512" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient10280" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="light90to0"> + <stop + style="stop-color:#ffffff;stop-opacity:0.90833336;" + offset="0.0000000" + id="stop1890" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1892" /> + </linearGradient> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-80.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient2086" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-78.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient2089" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-78.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3732" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-80.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3734" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.472290,0.000000,0.000000,1.176435,-85.47464,-0.281735)" + gradientUnits="userSpaceOnUse" + id="radialGradient3737" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.161874,-42.82011,1.807868)" + gradientUnits="userSpaceOnUse" + id="linearGradient3740" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.161874,-82.82011,1.807868)" + gradientUnits="userSpaceOnUse" + id="linearGradient3748" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-86.67547,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3888" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-84.54569,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3891" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-84.54569,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3899" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-86.67547,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3901" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.842551,0.000000,0.000000,1.472293,-26.91085,-7.897181)" + gradientUnits="userSpaceOnUse" + id="radialGradient3904" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0.000000,0.000000,1.454069,-43.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3907" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0.000000,0.000000,1.454069,-23.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3917" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0,0,1.454069,-23.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3939" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.842551,0,0,1.472293,-26.91085,-7.897181)" + gradientUnits="userSpaceOnUse" + id="radialGradient3941" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient3103" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.843411,0,0,1.546427,-39.13262,-18.20529)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient3106" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.935858,0,0,1.527286,-33.53707,-3.676156)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" /> + </defs> + <sodipodi:namedview + inkscape:window-y="29" + inkscape:window-x="235" + inkscape:window-height="691" + inkscape:window-width="1020" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showgrid="false" + inkscape:current-layer="layer1" + inkscape:cy="22.245206" + inkscape:cx="25.345445" + inkscape:zoom="9.2345419" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0000000" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" + showguides="true" + inkscape:guide-bbox="true"> + <sodipodi:guide + orientation="horizontal" + position="58.042944" + id="guide3109" /> + </sodipodi:namedview> + <metadata + id="metadata4"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + inkscape:label="Layer 1" + id="layer1"> + <g + id="g3133"> + <path + sodipodi:nodetypes="cccccscccsccccc" + id="rect7971" + d="M 22.849394,11.112144 C 22.304047,11.141939 15.425943,11.91869 15.047262,12.331768 L 7.3541343,16.763497 C 8.0507357,13.290837 4.6772127,24.044979 4.9093571,24.829128 L 5.095179,32.48237 C 5.3390662,33.315932 10.443581,34.461964 11.265414,34.588229 C 12.087247,34.714496 16.080953,33.975209 17.072452,35.017738 L 21.804787,36.428944 L 28.316569,46.376029 C 28.84139,47.103755 42.100565,47.249663 42.941988,47.01984 C 43.783409,46.790016 50.779969,35.976608 50.900444,35.072628 L 49.143188,21.49569 C 48.929783,20.447666 44.468877,16.786367 43.524906,16.415097 L 31.648489,11.066661 C 32.438942,9.1963879 23.136303,11.096289 22.849394,11.112144 z " + style="opacity:0.79446639;fill:#0028c6;fill-opacity:0.18099551;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.03529412" /> + <path + sodipodi:nodetypes="ccccccccccccc" + id="path8746" + d="M 12.535381,11.98598 C 11.990034,12.015775 7.4691951,16.810337 7.0905141,17.223415 L 4.8943079,23.826314 C 4.3534721,24.419518 3.8370628,31.013486 4.0692068,31.797635 L 8.0381077,33.802504 C 10.387324,34.191552 8.7498127,36.278559 14.421497,33.730917 L 17.425172,34.425233 L 22.799835,37.595929 C 32.678289,33.702865 38.728935,20.276373 45.811149,17.13009 L 47.192189,19.341024 C 47.332337,18.293 41.129487,15.11757 40.185516,14.7463 C 37.675337,13.581188 31.95859,11.853578 31.247222,10.709517 C 23.829936,10.823588 12.82229,11.970124 12.535381,11.98598 z " + style="opacity:0.79446639;fill:url(#linearGradient3106);fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.03529412" /> + <path + sodipodi:nodetypes="cccscccc" + id="path9514" + d="M 24.746657,37.610946 L 22.950097,38.236511 L 28.386172,46.112853 C 28.910993,46.840579 33.910784,49.437334 34.752207,49.207511 C 35.593628,48.977687 43.373306,47.04937 43.493781,46.14539 L 49.251864,38.854219 C 51.341215,32.716608 49.361638,20.120029 48.417667,19.748759 C 48.417667,19.748759 24.285488,38.336184 24.746657,37.610946 z " + style="opacity:0.97233199;fill:url(#radialGradient3103);fill-opacity:1;stroke:none;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:0.98913044;stroke-dasharray:none" /> + <path + id="path2106" + d="M 36.009663,49.13383 C 41.863248,48.780277 46.878058,43.635578 48.32345,40.661558 C 51.298229,34.540688 52.312887,27.958104 51.036579,25.168694 C 48.381437,19.365798 42.813441,14.821605 35.697096,12.295739 C 31.314921,10.740336 12.085136,10.662141 9.0276896,14.21912 C 5.2475997,18.616808 3.5467148,30.132245 6.0215885,33.31188 C 7.5774802,35.310838 15.400721,32.394315 20.603527,36.054782 C 27.129005,40.645824 27.079432,49.673211 36.009663,49.13383 z " + style="fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#313436;stroke-width:4.55000019;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:9.10000038, 9.10000038;stroke-dashoffset:0;stroke-opacity:1;marker-start:none" /> + </g> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_outline_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_outline_selection_cursor.png Binary files differnew file mode 100644 index 00000000..10ef65fe --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_outline_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_polygonal_selection.png b/chalk/plugins/tools/selectiontools/tool_polygonal_selection.png Binary files differnew file mode 100644 index 00000000..eda50984 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_polygonal_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_polygonal_selection.svg b/chalk/plugins/tools/selectiontools/tool_polygonal_selection.svg new file mode 100644 index 00000000..441dc125 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_polygonal_selection.svg @@ -0,0 +1,364 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + inkscape:export-ydpi="33.000000" + inkscape:export-xdpi="33.000000" + inkscape:export-filename="/home/danny/work/kde/koffice/chalk/chalk/tool_free_form_selection.png" + sodipodi:docname="tool_free_form_selection.svg" + sodipodi:docbase="/home/danny/work/kde/koffice/chalk/chalk" + inkscape:version="0.41" + sodipodi:version="0.32" + id="svg1409" + height="48.000000pt" + width="48.000000pt"> + <defs + id="defs3"> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + gradientUnits="userSpaceOnUse" + id="radialGradient1333" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + gradientUnits="userSpaceOnUse" + id="linearGradient1331" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient9512" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" + gradientUnits="userSpaceOnUse" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient10280" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" + gradientUnits="userSpaceOnUse" /> + <linearGradient + id="light90to0"> + <stop + style="stop-color:#ffffff;stop-opacity:0.90833336;" + offset="0.0000000" + id="stop1890" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1892" /> + </linearGradient> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-80.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient2086" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-78.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient2089" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-78.33821,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3732" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-80.46799,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3734" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.472290,0.000000,0.000000,1.176435,-85.47464,-0.281735)" + gradientUnits="userSpaceOnUse" + id="radialGradient3737" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.161874,-42.82011,1.807868)" + gradientUnits="userSpaceOnUse" + id="linearGradient3740" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.546124,0.000000,0.000000,1.161874,-82.82011,1.807868)" + gradientUnits="userSpaceOnUse" + id="linearGradient3748" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-86.67547,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3888" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-84.54569,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3891" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.240487,0.000000,0.000000,0.932195,-84.54569,7.022631)" + gradientUnits="userSpaceOnUse" + id="linearGradient3899" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.181248,0.000000,0.000000,0.943878,-86.67547,5.346100)" + gradientUnits="userSpaceOnUse" + id="radialGradient3901" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.842551,0.000000,0.000000,1.472293,-26.91085,-7.897181)" + gradientUnits="userSpaceOnUse" + id="radialGradient3904" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0.000000,0.000000,1.454069,-43.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3907" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0.000000,0.000000,1.454069,-23.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3917" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.934954,0.000000,0.000000,1.454069,-23.58874,-5.282071)" + gradientUnits="userSpaceOnUse" + id="linearGradient3939" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.842551,0.000000,0.000000,1.472293,-26.91085,-7.897181)" + gradientUnits="userSpaceOnUse" + id="radialGradient3941" + xlink:href="#light90to0" + inkscape:collect="always" /> + </defs> + <sodipodi:namedview + inkscape:window-y="0" + inkscape:window-x="0" + inkscape:window-height="691" + inkscape:window-width="1020" + inkscape:grid-bbox="true" + inkscape:document-units="px" + showgrid="false" + inkscape:current-layer="layer1" + inkscape:cy="27.184176" + inkscape:cx="-0.65850022" + inkscape:zoom="5.3151547" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0000000" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + id="Work6" + rdf:about=""> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type9" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + inkscape:label="Layer 1" + id="layer1"> + <g + transform="matrix(1.000467,0.000000,0.000000,1.050353,-1.379828e-2,-4.173866e-3)" + id="g3921"> + <path + id="rect7971" + d="M 17.375000,2.0000000 C 16.829907,2.0283668 16.316004,2.2629749 15.937500,2.6562500 L 2.5937500,16.468750 C 2.0531670,17.033516 1.8617140,17.847192 2.0937500,18.593750 L 10.937500,48.937500 C 11.181273,49.731102 11.866051,50.317288 12.687500,50.437500 C 13.508949,50.557713 14.320296,50.190471 14.781250,49.500000 L 29.406250,27.281250 L 49.343750,53.750000 C 49.868326,54.442840 50.752719,54.750055 51.593750,54.531250 C 52.434778,54.312444 53.067082,53.610644 53.187500,52.750000 L 57.968750,18.281250 C 58.108832,17.283468 57.537280,16.322221 56.593750,15.968750 L 18.218750,2.1250000 C 17.948669,2.0274078 17.661775,1.9849050 17.375000,2.0000000 z " + style="opacity:0.79446638;fill:#0028c6;fill-opacity:0.18099548;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path8746" + d="M 17.375000,2.0000000 C 16.829907,2.0283668 16.316004,2.2629749 15.937500,2.6562500 L 2.5937500,16.468750 C 2.0531670,17.033516 1.8617140,17.847192 2.0937500,18.593750 L 8.8750000,41.843750 C 14.686753,37.780942 20.518465,34.613010 26.187500,32.187500 L 29.406250,27.281250 L 31.531250,30.093750 C 41.405093,26.387316 50.483592,24.120453 57.562500,21.125000 L 57.968750,18.281250 C 58.108832,17.283468 57.537280,16.322221 56.593750,15.968750 L 18.218750,2.1250000 C 17.948669,2.0274078 17.661775,1.9849050 17.375000,2.0000000 z " + style="opacity:0.79446638;fill:url(#linearGradient3939);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path9514" + d="M 17.375000,2.0000000 C 16.829907,2.0283668 16.316004,2.2629749 15.937500,2.6562500 L 2.5937500,16.468750 C 2.0531669,17.033516 1.8617138,17.847192 2.0937500,18.593750 L 10.937500,48.937500 C 11.181273,49.731102 11.866051,50.317288 12.687500,50.437500 C 13.508949,50.557713 14.320296,50.190471 14.781250,49.500000 L 29.406250,27.281250 L 49.343750,53.750000 C 49.868326,54.442840 50.752719,54.750055 51.593750,54.531250 C 52.434778,54.312444 53.067082,53.610644 53.187500,52.750000 L 57.968750,18.281250 C 58.108832,17.283468 57.537280,16.322221 56.593750,15.968750 L 18.218750,2.1250000 C 17.948669,2.0274078 17.661775,1.9849050 17.375000,2.0000000 z " + style="opacity:0.97233200;fill:url(#radialGradient3941);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 8.6481316,10.370821 C 9.0694886,10.762535 9.6315137,10.971157 10.209233,10.950300 C 10.786951,10.929442 11.332479,10.680836 11.724507,10.259761 L 18.077610,3.6451297 C 18.906443,2.7821760 18.872528,1.4176197 18.001859,0.59730246 C 17.131190,-0.22301475 15.753473,-0.18845315 14.924639,0.67449856 L 8.5715367,7.2891303 C 8.1605414,7.7038582 7.9367018,8.2657613 7.9511347,8.8465013 C 7.9655693,9.4272353 8.2170464,9.9772121 8.6481316,10.370821 L 8.6481316,10.370821 z " + id="path2087" + sodipodi:nodetypes="cccccccccc" /> + <path + sodipodi:nodetypes="ccccccccccccc" + id="path2089" + d="M 5.5937500,11.343750 C 5.0368829,11.357720 4.4769170,11.568524 4.0625000,12.000000 C 4.0625000,12.000000 0.50659364,15.741591 0.50000000,15.750000 C 0.10513172,16.257539 -0.082274591,16.897542 0.062500000,17.531250 L 1.1250000,21.562500 C 1.2648167,22.129393 1.6218102,22.615962 2.1250000,22.906250 C 2.6281851,23.196535 3.2206730,23.287838 3.7812500,23.125000 C 4.3351411,22.969478 4.8105180,22.597711 5.0937500,22.093750 C 5.3769801,21.589792 5.4676180,20.991512 5.3125000,20.437500 L 4.5937500,17.718750 L 7.2187500,15.000000 C 8.0475832,14.137046 8.0269190,12.757817 7.1562500,11.937500 C 6.7209155,11.527341 6.1506171,11.329780 5.5937500,11.343750 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 7.8868333,38.699343 C 8.4407237,38.543821 8.9116405,38.172834 9.1948718,37.668873 C 9.4781022,37.164915 9.5501733,36.569759 9.3950554,36.015747 L 7.0598062,27.146594 C 6.7551456,25.989514 5.5728074,25.307429 4.4189752,25.623112 C 3.2651421,25.938795 2.5767516,27.132703 2.8814101,28.289785 L 5.2166600,37.158936 C 5.3564767,37.725829 5.7194324,38.209671 6.2226220,38.499959 C 6.7258074,38.790243 7.3262566,38.862181 7.8868333,38.699343 L 7.8868333,38.699343 z " + id="path2093" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 14.845837,48.569694 C 15.332393,48.876689 15.923312,48.977728 16.487199,48.850345 C 17.051085,48.722962 17.541200,48.377717 17.848556,47.891381 L 22.868183,40.215537 C 23.523050,39.214136 23.237259,37.879413 22.229852,37.234343 C 21.222444,36.589272 19.874906,36.878133 19.220039,37.879532 L 14.200411,45.555378 C 13.873242,46.038985 13.757226,46.632601 13.878855,47.200646 C 14.000483,47.768683 14.349372,48.262637 14.845837,48.569694 L 14.845837,48.569694 z " + id="path2097" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 53.502723,51.490318 C 54.074440,51.554532 54.650310,51.387895 55.102284,51.027459 C 55.554259,50.667026 55.844876,50.142670 55.909511,49.570995 L 57.081400,40.474736 C 57.234286,39.288026 56.395289,38.211345 55.207443,38.069894 C 54.019597,37.928443 52.932720,38.775791 52.779832,39.962498 L 51.607944,49.058758 C 51.524287,49.636614 51.678621,50.221440 52.035689,50.679664 C 52.392753,51.137884 52.922062,51.430367 53.502723,51.490318 L 53.502723,51.490318 z " + id="path2107" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 55.454158,36.325345 C 56.025875,36.389559 56.601745,36.222922 57.053719,35.862486 C 57.505694,35.502053 57.796311,34.977697 57.860946,34.406022 L 59.032835,25.309763 C 59.185721,24.123053 58.346724,23.046372 57.158878,22.904921 C 55.971032,22.763470 54.884155,23.610818 54.731267,24.797525 L 53.559379,33.893785 C 53.475722,34.471641 53.630056,35.056467 53.987124,35.514691 C 54.344188,35.972911 54.873497,36.265394 55.454158,36.325345 L 55.454158,36.325345 z " + id="path2109" + sodipodi:nodetypes="cccccccccc" /> + <path + sodipodi:nodetypes="cccccccccccccc" + id="path2111" + d="M 52.125000,12.718750 C 51.578617,12.512884 50.961744,12.530980 50.437500,12.781250 C 49.913260,13.031518 49.527067,13.477034 49.343750,14.031250 C 49.158194,14.575817 49.182597,15.168637 49.437500,15.687500 C 49.692398,16.206364 50.143066,16.626540 50.687500,16.812500 L 55.562500,18.562500 L 55.531250,18.718750 C 55.447594,19.296606 55.580432,19.885526 55.937500,20.343750 C 56.294564,20.801969 56.825589,21.096299 57.406250,21.156250 C 57.977968,21.220463 58.548026,21.047936 59.000000,20.687500 C 59.641312,20.209036 59.634683,19.555393 59.753290,19.028646 L 59.968750,17.312500 C 60.093283,16.325572 59.524592,15.382062 58.593750,15.031250 L 52.125000,12.718750 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 34.876639,8.8113360 C 34.689606,9.3553976 34.726993,9.9537253 34.980487,10.473277 C 35.233979,10.992831 35.682567,11.390545 36.226496,11.577981 L 44.850059,14.700384 C 45.975101,15.107737 47.208498,14.523022 47.604936,13.394384 C 48.001375,12.265747 47.410726,11.020582 46.285688,10.613227 L 37.662124,7.4908252 C 37.116299,7.2834789 36.511906,7.3069090 35.986986,7.5557573 C 35.462070,7.8046027 35.061458,8.2576184 34.876639,8.8113360 L 34.876639,8.8113360 z " + id="path2113" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 20.535381,3.6342430 C 20.347428,4.1779876 20.383803,4.7763777 20.636419,5.2963578 C 20.889032,5.8163388 21.336947,6.2148117 21.880557,6.4031665 L 30.498828,9.5401482 C 31.623180,9.9494029 32.857563,9.3667746 33.255910,8.2388091 C 33.654256,7.1108435 33.065714,5.8646820 31.941366,5.4554254 L 23.323095,2.3184446 C 22.777622,2.1101755 22.173190,2.1325835 21.647849,2.3805438 C 21.122514,2.6285012 20.721136,3.0808388 20.535381,3.6342430 L 20.535381,3.6342430 z " + id="path2115" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 11.883900,54.049469 C 12.437791,53.893947 12.908707,53.522960 13.191939,53.018999 C 13.475169,52.515041 13.547240,51.919885 13.392122,51.365873 L 11.056873,42.496720 C 10.752212,41.339640 9.5698742,40.657555 8.4160420,40.973238 C 7.2622089,41.288921 6.5738184,42.482829 6.8784769,43.639911 L 9.2137268,52.509062 C 9.3535435,53.075955 9.7164992,53.559797 10.219689,53.850085 C 10.722874,54.140369 11.323323,54.212307 11.883900,54.049469 L 11.883900,54.049469 z " + id="path2121" + sodipodi:nodetypes="cccccccccc" /> + <path + sodipodi:nodetypes="ccccccccccccccc" + id="path2099" + d="M 29.156250,24.562500 C 28.461523,24.581109 27.825733,24.923573 27.437500,25.500000 L 22.781250,32.593750 C 22.457548,33.079684 22.343061,33.651590 22.468750,34.218750 C 22.594438,34.785901 22.938852,35.290252 23.437500,35.593750 C 23.926238,35.897258 24.530788,36.006413 25.093750,35.875000 C 25.656710,35.743585 26.133631,35.394772 26.437500,34.906250 L 29.312500,30.468750 L 29.906250,31.250000 C 30.255702,31.717759 30.767252,32.022222 31.343750,32.093750 C 31.920244,32.165278 32.515769,31.993198 32.968750,31.625000 C 33.418422,31.266142 33.716522,30.730711 33.781250,30.156250 C 33.845978,29.581791 33.671031,29.012439 33.312500,28.562500 C 33.312500,28.562500 30.865791,25.401380 30.843750,25.375000 C 30.423614,24.870406 29.816399,24.544818 29.156250,24.562500 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 42.423622,44.325356 C 42.878330,43.972902 43.175108,43.452021 43.247964,42.878534 C 43.320822,42.305049 43.163721,41.726493 42.811598,41.271522 L 37.311605,33.932222 C 36.594069,32.974726 35.241996,32.787492 34.291657,33.514020 C 33.341318,34.240548 33.152594,35.605716 33.870127,36.563210 L 39.370120,43.902511 C 39.712913,44.375173 40.231215,44.686948 40.806642,44.766633 C 41.382064,44.846318 41.965473,44.687102 42.423622,44.325356 L 42.423622,44.325356 z " + id="path2103" + sodipodi:nodetypes="cccccccccc" /> + <path + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" + d="M 51.816951,56.666238 C 52.271659,56.313784 52.568437,55.792903 52.641293,55.219416 C 52.714151,54.645931 52.557050,54.067375 52.204927,53.612404 L 46.704934,46.273104 C 45.987398,45.315608 44.635325,45.128374 43.684986,45.854902 C 42.734647,46.581430 42.545923,47.946598 43.263456,48.904092 L 48.763449,56.243393 C 49.106242,56.716055 49.624544,57.027830 50.199971,57.107515 C 50.775393,57.187200 51.358802,57.027984 51.816951,56.666238 L 51.816951,56.666238 z " + id="path2105" + sodipodi:nodetypes="cccccccccc" /> + </g> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_polygonal_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_polygonal_selection_cursor.png Binary files differnew file mode 100644 index 00000000..6bf000a7 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_polygonal_selection_cursor.png diff --git a/chalk/plugins/tools/selectiontools/tool_rect_selection.png b/chalk/plugins/tools/selectiontools/tool_rect_selection.png Binary files differnew file mode 100644 index 00000000..7cb658c8 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_rect_selection.png diff --git a/chalk/plugins/tools/selectiontools/tool_rect_selection.svg b/chalk/plugins/tools/selectiontools/tool_rect_selection.svg new file mode 100644 index 00000000..824bcc78 --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_rect_selection.svg @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="48.000000pt" + height="48.000000pt" + id="svg1409" + sodipodi:version="0.32" + inkscape:version="0.41" + sodipodi:docbase="/home/danny/work/kde/koffice/chalk/chalk" + sodipodi:docname="tool_rect_selection.svg" + inkscape:export-filename="/home/danny/work/kde/koffice/chalk/chalk/tool_rect_selection.png" + inkscape:export-xdpi="33.000000" + inkscape:export-ydpi="33.000000"> + <defs + id="defs3"> + <linearGradient + gradientUnits="userSpaceOnUse" + y2="36.873619" + x2="39.857029" + y1="4.5492039" + x1="10.878086" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + id="linearGradient9512" + xlink:href="#light90to0" + inkscape:collect="always" /> + <radialGradient + gradientUnits="userSpaceOnUse" + r="31.677956" + fy="46.914463" + fx="48.488476" + cy="46.914463" + cx="48.488476" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + id="radialGradient10280" + xlink:href="#light90to0" + inkscape:collect="always" /> + <linearGradient + id="light90to0"> + <stop + id="stop1890" + offset="0.0000000" + style="stop-color:#ffffff;stop-opacity:0.90833336;" /> + <stop + id="stop1892" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="linearGradient1331" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.325250,0.000000,0.000000,1.003779,-5.702957,1.287849)" + x1="10.878086" + y1="4.5492039" + x2="39.857029" + y2="36.873619" /> + <radialGradient + inkscape:collect="always" + xlink:href="#light90to0" + id="radialGradient1333" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(1.261963,0.000000,0.000000,1.016360,-7.978266,-0.517425)" + cx="48.488476" + cy="46.914463" + fx="48.488476" + fy="46.914463" + r="31.677956" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="5.5000000" + inkscape:cx="32.000000" + inkscape:cy="40.678134" + inkscape:current-layer="layer1" + showgrid="false" + inkscape:document-units="px" + inkscape:grid-bbox="true" + inkscape:window-width="1020" + inkscape:window-height="691" + inkscape:window-x="0" + inkscape:window-y="0" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + rdf:about="" + id="Work6"> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + id="type9" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="layer1" + inkscape:label="Layer 1" + inkscape:groupmode="layer"> + <g + id="g1310" + transform="matrix(0.936040,0.000000,0.000000,0.928685,-8.886478e-6,5.826625)"> + <path + id="rect7971" + d="M 7.6485855,2.2878450 L 56.351415,2.2878450 C 58.926731,2.2878450 61.000000,4.4309970 61.000000,7.0931190 L 61.000000,45.000000 C 61.000000,47.662122 58.926731,49.805274 56.351415,49.805274 L 7.6485855,49.805274 C 5.0732693,49.805274 3.0000002,47.662122 3.0000002,45.000000 L 3.0000002,7.0931190 C 3.0000002,4.4309970 5.0732693,2.2878450 7.6485855,2.2878450 z " + style="opacity:0.79446638;fill:#0028c6;fill-opacity:0.18099548;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + sodipodi:nodetypes="ccccc" + id="path8746" + d="M 8.5132467,3.2878450 L 59.896282,3.2878450 C 62.101921,28.660784 28.667547,14.447098 3.6088412,46.000000 L 3.6088412,8.0931190 C 3.6088412,5.4309970 5.7962062,3.2878450 8.5132467,3.2878450 z " + style="opacity:0.79446638;fill:url(#linearGradient1331);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path9514" + d="M 5.7287330,1.4825710 L 55.271266,1.4825710 C 57.890984,1.4825710 59.999999,3.6257230 59.999999,6.2878450 L 59.999999,44.194726 C 59.999999,46.856848 57.890984,49.000000 55.271266,49.000000 L 5.7287330,49.000000 C 3.1090150,49.000000 1.0000000,46.856848 1.0000000,44.194726 L 1.0000000,6.2878450 C 1.0000000,3.6257230 3.1090150,1.4825710 5.7287330,1.4825710 z " + style="opacity:0.97233200;fill:url(#radialGradient1333);fill-opacity:1.0000000;stroke:#000000;stroke-width:0.0000000;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:0.035294119" /> + <path + id="path7697" + d="M 2.3413348,0.18751303 C 1.7243174,0.17079029 1.1269735,0.40863721 0.68575030,0.84672471 C 0.24452789,1.2848122 -0.0028841323,1.8857183 2.9672780e-05,2.5121821 L 2.9672780e-05,9.8736341 C 2.9672780e-05,11.157514 1.0254798,12.198303 2.2904369,12.198303 C 3.5553939,12.198303 4.5808440,11.157514 4.5808440,9.8736341 L 4.5808440,4.8626808 L 6.3113739,4.8885105 C 7.1481898,4.9449167 7.9479829,4.5305867 8.3938928,3.8096698 C 8.8398019,3.0887537 8.8598630,2.1775984 8.4461271,1.4371840 C 8.0323920,0.69677054 7.2516331,0.24659228 6.4131698,0.26500200 L 2.3413348,0.18751303 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path7695" + d="M 47.176002,0.18683303 C 45.911045,0.17256762 44.874201,1.2017931 44.860146,2.4856724 C 44.846091,3.7695518 45.860147,4.8219057 47.125104,4.8361712 L 56.821161,4.9653194 C 57.660564,5.0158241 58.459241,4.5933914 58.899319,3.8661498 C 59.339396,3.1389073 59.349459,2.2248747 58.925501,1.4878344 C 58.501542,0.75079486 57.712364,0.31035500 56.872059,0.34181097 L 47.176002,0.18683303 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccccc" + id="path1937" + d="M 61.783704,5.4543804 C 61.175397,5.4585016 60.593926,5.7091294 60.168584,6.1505355 C 59.743242,6.5919408 59.509289,7.1875338 59.518746,7.8048791 L 59.518746,17.645978 C 59.518746,18.929858 60.544196,19.970647 61.809153,19.970647 C 63.074110,19.970647 64.099560,18.929858 64.099560,17.645978 L 64.099560,7.8048791 C 64.109217,7.1785351 63.868327,6.5749651 63.431909,6.1320183 C 62.995491,5.6890724 62.400817,5.4445792 61.783704,5.4543804 L 61.783704,5.4543804 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + id="path7691" + d="M 61.783704,39.758546 C 61.175397,39.762668 60.593926,40.013295 60.168584,40.454702 C 59.743242,40.896107 59.509289,41.491700 59.518746,42.109045 L 59.518746,47.223317 L 57.737318,47.223317 C 56.472361,47.223317 55.446911,48.264107 55.446911,49.547986 C 55.446911,50.831866 56.472361,51.872655 57.737318,51.872655 L 61.809153,51.872655 C 62.417418,51.875356 63.001539,51.631303 63.431652,51.194756 C 63.861765,50.758209 64.102221,50.165350 64.099560,49.547986 L 64.099560,42.109045 C 64.109217,41.482701 63.868327,40.879131 63.431909,40.436184 C 62.995491,39.993238 62.400817,39.748745 61.783704,39.758546 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path7735" + d="M 14.126001,0.18683303 C 12.861044,0.17256762 11.824200,1.2017931 11.810145,2.4856724 C 11.796090,3.7695518 12.810146,4.8219057 14.075103,4.8361712 L 23.771160,4.9653194 C 24.610563,5.0158241 25.409240,4.5933914 25.849318,3.8661498 C 26.289395,3.1389073 26.299458,2.2248747 25.875500,1.4878344 C 25.451541,0.75079486 24.662363,0.31035500 23.822058,0.34181097 L 14.126001,0.18683303 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path7745" + d="M 24.746000,47.090119 C 23.481043,47.075854 22.444199,48.105079 22.430144,49.388958 C 22.416089,50.672838 23.430145,51.725192 24.695102,51.739457 L 34.391159,51.868605 C 35.230562,51.919110 36.029239,51.496677 36.469317,50.769436 C 36.909395,50.042193 36.919457,49.128161 36.495499,48.391120 C 36.071541,47.654081 35.282363,47.213641 34.442057,47.245097 L 24.746000,47.090119 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path7751" + d="M 7.2160002,47.090119 C 5.9510431,47.075854 4.9141995,48.105079 4.9001443,49.388958 C 4.8860891,50.672838 5.9001452,51.725192 7.1651023,51.739457 L 16.861159,51.868605 C 17.700562,51.919110 18.499239,51.496677 18.939317,50.769436 C 19.379395,50.042193 19.389457,49.128161 18.965499,48.391120 C 18.541541,47.654081 17.752363,47.213641 16.912057,47.245097 L 7.2160002,47.090119 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccccc" + id="path7765" + d="M 61.699014,22.811910 C 61.090707,22.816032 60.509236,23.066659 60.083894,23.508065 C 59.658552,23.949471 59.424599,24.545064 59.434056,25.162409 L 59.434056,35.003508 C 59.434056,36.287388 60.459506,37.328177 61.724463,37.328177 C 62.989420,37.328177 64.014870,36.287388 64.014870,35.003508 L 64.014870,25.162409 C 64.024527,24.536065 63.783637,23.932495 63.347219,23.489548 C 62.910801,23.046602 62.316127,22.802109 61.699014,22.811910 L 61.699014,22.811910 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccccc" + id="path7775" + d="M 2.3431661,15.039565 C 1.7348592,15.043687 1.1533882,15.294314 0.72804592,15.735720 C 0.30270448,16.177126 0.068751498,16.772719 0.078207928,17.390064 L 0.078207928,27.231163 C 0.078207928,28.515043 1.1036580,29.555832 2.3686151,29.555832 C 3.6335722,29.555832 4.6590223,28.515043 4.6590223,27.231163 L 4.6590223,17.390064 C 4.6686791,16.763720 4.4277893,16.160150 3.9913717,15.717203 C 3.5549532,15.274257 2.9602788,15.029764 2.3431661,15.039565 L 2.3431661,15.039565 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccccc" + id="path7781" + d="M 2.3431661,32.317224 C 1.7348592,32.321346 1.1533882,32.571973 0.72804592,33.013379 C 0.30270448,33.454785 0.068751498,34.050378 0.078207928,34.667723 L 0.078207928,44.508822 C 0.078207928,45.792702 1.1036580,46.833491 2.3686151,46.833491 C 3.6335722,46.833491 4.6590223,45.792702 4.6590223,44.508822 L 4.6590223,34.667723 C 4.6686791,34.041379 4.4277893,33.437809 3.9913717,32.994862 C 3.5549532,32.551916 2.9602788,32.307423 2.3431661,32.317224 L 2.3431661,32.317224 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path1546" + d="M 30.725998,0.18683303 C 29.461041,0.17256762 28.424197,1.2017931 28.410142,2.4856724 C 28.396087,3.7695518 29.410143,4.8219057 30.675100,4.8361712 L 40.371157,4.9653194 C 41.210560,5.0158241 42.009237,4.5933914 42.449315,3.8661498 C 42.889392,3.1389073 42.899455,2.2248747 42.475497,1.4878344 C 42.051538,0.75079486 41.262360,0.31035500 40.422055,0.34181097 L 30.725998,0.18683303 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cccccccc" + id="path1558" + d="M 41.645996,47.090119 C 40.381039,47.075854 39.344195,48.105079 39.330140,49.388958 C 39.316085,50.672838 40.330141,51.725192 41.595098,51.739457 L 51.291155,51.868605 C 52.130558,51.919110 52.929235,51.496677 53.369313,50.769436 C 53.809391,50.042193 53.819453,49.128161 53.395495,48.391120 C 52.971537,47.654081 52.182359,47.213641 51.342053,47.245097 L 41.645996,47.090119 z " + style="fill:#313436;fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:5.5999999;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + </g> + </g> +</svg> diff --git a/chalk/plugins/tools/selectiontools/tool_rectangular_selection_cursor.png b/chalk/plugins/tools/selectiontools/tool_rectangular_selection_cursor.png Binary files differnew file mode 100644 index 00000000..548d8ace --- /dev/null +++ b/chalk/plugins/tools/selectiontools/tool_rectangular_selection_cursor.png |