summaryrefslogtreecommitdiffstats
path: root/src/shape-editor.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2014-11-23 23:36:49 +0000
committerJabiertxof <jtx@jtx.marker.es>2014-11-23 23:36:49 +0000
commit0969085ddf607a7a98cf7fd6d9b10da5fbebe62d (patch)
tree59b2bc9ed3412ab2de4c703ef30342dfe2401704 /src/shape-editor.cpp
parentrefactor from lastApplied (diff)
parentFixed a bug pointed by suv running from comand line, also removed another des... (diff)
downloadinkscape-0969085ddf607a7a98cf7fd6d9b10da5fbebe62d.tar.gz
inkscape-0969085ddf607a7a98cf7fd6d9b10da5fbebe62d.zip
fixing to trunk
(bzr r12588.1.34)
Diffstat (limited to 'src/shape-editor.cpp')
-rw-r--r--src/shape-editor.cpp255
1 files changed, 0 insertions, 255 deletions
diff --git a/src/shape-editor.cpp b/src/shape-editor.cpp
deleted file mode 100644
index bf53e8bc3..000000000
--- a/src/shape-editor.cpp
+++ /dev/null
@@ -1,255 +0,0 @@
-/*
- * Inkscape::ShapeEditor
- *
- * Authors:
- * bulia byak <buliabyak@users.sf.net>
- * Krzysztof KosiƄski <tweenk.pl@gmail.com>
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <string.h>
-#include <glibmm/i18n.h>
-
-#include "sp-object.h"
-#include "sp-item.h"
-#include "sp-lpe-item.h"
-#include "live_effects/lpeobject.h"
-#include "selection.h"
-#include "desktop.h"
-#include "document.h"
-#include "desktop-handles.h"
-#include "knotholder.h"
-#include "live_effects/parameter/point.h"
-#include "xml/node-event-vector.h"
-#include "preferences.h"
-#include "object-edit.h"
-#include "style.h"
-#include "display/curve.h"
-#include <2geom/pathvector.h>
-
-#include "shape-editor.h"
-
-using Inkscape::createKnotHolder;
-
-bool ShapeEditor::_blockSetItem = false;
-
-ShapeEditor::ShapeEditor(SPDesktop *dt) {
- this->desktop = dt;
- this->knotholder = NULL;
- this->knotholder_listener_attached_for = NULL;
-}
-
-ShapeEditor::~ShapeEditor() {
- unset_item(SH_KNOTHOLDER);
-}
-
-void ShapeEditor::unset_item(SubType type, bool keep_knotholder) {
- switch (type) {
- case SH_NODEPATH:
- // defunct
- break;
- case SH_KNOTHOLDER:
- if (this->knotholder) {
- Inkscape::XML::Node *old_repr = this->knotholder->repr;
- if (old_repr && old_repr == knotholder_listener_attached_for) {
- sp_repr_remove_listener_by_data(old_repr, this);
- Inkscape::GC::release(old_repr);
- knotholder_listener_attached_for = NULL;
- }
-
- if (!keep_knotholder) {
- delete this->knotholder;
- this->knotholder = NULL;
- }
- }
- break;
- }
-}
-
-bool ShapeEditor::has_nodepath () {
- return false;
-}
-
-bool ShapeEditor::has_knotholder () {
- return (this->knotholder != NULL);
-}
-
-void ShapeEditor::update_knotholder () {
- if (this->knotholder)
- this->knotholder->update_knots();
-}
-
-bool ShapeEditor::has_local_change (SubType type) {
- switch (type) {
- case SH_NODEPATH:
- // defunct
- return false;
- case SH_KNOTHOLDER:
- return (this->knotholder && this->knotholder->local_change != 0);
- default:
- g_assert_not_reached();
- }
-}
-
-void ShapeEditor::decrement_local_change (SubType type) {
- switch (type) {
- case SH_NODEPATH:
- // defunct
- break;
- case SH_KNOTHOLDER:
- if (this->knotholder) {
- this->knotholder->local_change = FALSE;
- }
- break;
- default:
- g_assert_not_reached();
- }
-}
-
-const SPItem *ShapeEditor::get_item (SubType type) {
- const SPItem *item = NULL;
- switch (type) {
- case SH_NODEPATH:
- // defunct
- break;
- case SH_KNOTHOLDER:
- if (this->has_knotholder()) {
- item = this->knotholder->getItem();
- }
- break;
- }
- return item;
-}
-
-GList *ShapeEditor::save_nodepath_selection () {
- // defunct stub
- return NULL;
-}
-
-void ShapeEditor::restore_nodepath_selection (GList */*saved*/) {
- // defunct stub
-}
-
-void ShapeEditor::shapeeditor_event_attr_changed(gchar const *name)
-{
- gboolean changed_kh = FALSE;
-
- if (has_knotholder())
- {
- changed_kh = !has_local_change(SH_KNOTHOLDER);
- decrement_local_change(SH_KNOTHOLDER);
- if (changed_kh) {
- // this can happen if an LPEItem's knotholder handle was dragged, in which case we want
- // to keep the knotholder; in all other cases (e.g., if the LPE itself changes) we delete it
- reset_item(SH_KNOTHOLDER, !strcmp(name, "d"));
- }
- }
-}
-
-
-static void shapeeditor_event_attr_changed(Inkscape::XML::Node */*repr*/, gchar const *name,
- gchar const */*old_value*/, gchar const */*new_value*/,
- bool /*is_interactive*/, gpointer data)
-{
- g_assert(data);
- ShapeEditor *sh = static_cast<ShapeEditor *>(data);
-
- sh->shapeeditor_event_attr_changed(name);
-}
-
-static Inkscape::XML::NodeEventVector shapeeditor_repr_events = {
- NULL, /* child_added */
- NULL, /* child_removed */
- shapeeditor_event_attr_changed,
- NULL, /* content_changed */
- NULL /* order_changed */
-};
-
-
-void ShapeEditor::set_item(SPItem *item, SubType type, bool keep_knotholder) {
- if (_blockSetItem) {
- return;
- }
-
- // this happens (and should only happen) when for an LPEItem having both knotholder and
- // nodepath the knotholder is adapted; in this case we don't want to delete the knotholder
- // since this freezes the handles
- unset_item(type, keep_knotholder);
-
- if (item) {
- Inkscape::XML::Node *repr;
- switch(type) {
- case SH_NODEPATH:
- // defunct
- break;
-
- case SH_KNOTHOLDER:
- if (!this->knotholder) {
- // only recreate knotholder if none is present
- this->knotholder = createKnotHolder(item, desktop);
- }
- if (this->knotholder) {
- this->knotholder->update_knots();
- // setting new listener
- repr = this->knotholder->repr;
- if (repr != knotholder_listener_attached_for) {
- Inkscape::GC::anchor(repr);
- sp_repr_add_listener(repr, &shapeeditor_repr_events, this);
- knotholder_listener_attached_for = repr;
- }
- }
- break;
- }
- }
-}
-
-
-/** FIXME: This thing is only called when the item needs to be updated in response to repr change.
- Why not make a reload function in NodePath and in KnotHolder? */
-void ShapeEditor::reset_item (SubType type, bool keep_knotholder)
-{
- switch (type) {
- case SH_NODEPATH:
- // defunct
- break;
- case SH_KNOTHOLDER:
- if ( knotholder ) {
- SPObject *obj = sp_desktop_document(desktop)->getObjectByRepr(knotholder_listener_attached_for); /// note that it is not certain that this is an SPItem; it could be a LivePathEffectObject.
- set_item(SP_ITEM(obj), SH_KNOTHOLDER, keep_knotholder);
- }
- break;
- }
-}
-
-void ShapeEditor::nodepath_destroyed () {
-}
-
-bool ShapeEditor::has_selection() {
- return false; // so far, knotholder cannot have selection
-}
-
-/**
- * Returns true if this ShapeEditor has a knot above which the mouse currently hovers.
- */
-bool ShapeEditor::knot_mouseover() const {
- if (this->knotholder) {
- return knotholder->knot_mouseover();
- }
-
- return false;
-}
-
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :