index 0f96c6ed28592c5ff0e1565fda38b88e0b358648..f259492962d927d3d5421be5e529f26887428894 100644 (file)
--- a/src/lpe-tool-context.cpp
+++ b/src/lpe-tool-context.cpp
* Authors:
* Maximilian Albert <maximilian.albert@gmail.com>
* Lauris Kaplinski <lauris@kaplinski.com>
+ * Abhishek Sharma
*
* Copyright (C) 1998 The Free Software Foundation
* Copyright (C) 1999-2005 authors
#include "macros.h"
#include "forward.h"
-#include "pixmaps/cursor-node.xpm"
#include "pixmaps/cursor-crosshairs.xpm"
#include <gtk/gtk.h>
#include "desktop.h"
#include "document.h"
#include "display/curve.h"
#include "display/canvas-bpath.h"
+#include "display/canvas-text.h"
#include "message-stack.h"
#include "sp-path.h"
#include "helper/units.h"
@@ -53,15 +54,16 @@ void sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpoint
const int num_subtools = 8;
-Inkscape::LivePathEffect::EffectType lpesubtools[] = {
- Inkscape::LivePathEffect::INVALID_LPE, // this must be here to account for the "all inactive" action
- Inkscape::LivePathEffect::LINE_SEGMENT,
- Inkscape::LivePathEffect::CIRCLE_3PTS,
- Inkscape::LivePathEffect::CIRCLE_WITH_RADIUS,
- Inkscape::LivePathEffect::PARALLEL,
- Inkscape::LivePathEffect::PERP_BISECTOR,
- Inkscape::LivePathEffect::ANGLE_BISECTOR,
- Inkscape::LivePathEffect::MIRROR_SYMMETRY,
+SubtoolEntry lpesubtools[] = {
+ // this must be here to account for the "all inactive" action
+ {Inkscape::LivePathEffect::INVALID_LPE, "draw-geometry-inactive"},
+ {Inkscape::LivePathEffect::LINE_SEGMENT, "draw-geometry-line-segment"},
+ {Inkscape::LivePathEffect::CIRCLE_3PTS, "draw-geometry-circle-from-three-points"},
+ {Inkscape::LivePathEffect::CIRCLE_WITH_RADIUS, "draw-geometry-circle-from-radius"},
+ {Inkscape::LivePathEffect::PARALLEL, "draw-geometry-line-parallel"},
+ {Inkscape::LivePathEffect::PERP_BISECTOR, "draw-geometry-line-perpendicular"},
+ {Inkscape::LivePathEffect::ANGLE_BISECTOR, "draw-geometry-angle-bisector"},
+ {Inkscape::LivePathEffect::MIRROR_SYMMETRY, "draw-geometry-mirror"}
};
static SPPenContextClass *lpetool_parent_class = 0;
}
lc->_lpetool_message_context = new Inkscape::MessageContext((ec->desktop)->messageStack());
-
-
- lc->shape_editor->update_statusbar();
}
/**
@@ -191,13 +190,9 @@ sp_lpetool_context_selection_changed(Inkscape::Selection *selection, gpointer da
{
SPLPEToolContext *lc = SP_LPETOOL_CONTEXT(data);
- // TODO: update ShapeEditorsCollective instead
- lc->shape_editor->unset_item(SH_NODEPATH);
lc->shape_editor->unset_item(SH_KNOTHOLDER);
SPItem *item = selection->singleItem();
- lc->shape_editor->set_item(item, SH_NODEPATH);
lc->shape_editor->set_item(item, SH_KNOTHOLDER);
- lc->shape_editor->update_statusbar();
}
static void
@@ -278,15 +273,14 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event)
event_context->xp = (gint) event->button.x;
event_context->yp = (gint) event->button.y;
event_context->within_tolerance = true;
- lc->shape_editor->cancel_hit();
using namespace Inkscape::LivePathEffect;
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
int mode = prefs->getInt("/tools/lpetool/mode");
- EffectType type = lpesubtools[mode];
+ EffectType type = lpesubtools[mode].type;
- //bool over_stroke = lc->shape_editor->is_over_stroke(NR::Point(event->button.x, event->button.y), true);
+ //bool over_stroke = lc->shape_editor->is_over_stroke(Geom::Point(event->button.x, event->button.y), true);
sp_pen_context_wait_for_LPE_mouse_clicks(lc, type, Inkscape::LivePathEffect::Effect::acceptsNumClicks(type));
@@ -294,28 +288,6 @@ sp_lpetool_context_root_handler(SPEventContext *event_context, GdkEvent *event)
ret = ((SPEventContextClass *) lpetool_parent_class)->root_handler(event_context, event);
}
break;
- case GDK_MOTION_NOTIFY:
- {
- if (!lc->shape_editor->has_nodepath() || selection->singleItem() == NULL) {
- break;
- }
-
- bool over_stroke = false;
- over_stroke = lc->shape_editor->is_over_stroke(NR::Point(event->motion.x, event->motion.y), false);
-
- if (over_stroke) {
- event_context->cursor_shape = cursor_node_xpm;
- event_context->hot_x = 1;
- event_context->hot_y = 1;
- sp_event_context_update_cursor(event_context);
- } else {
- lc->cursor_shape = cursor_crosshairs_xpm;
- lc->hot_x = 7;
- lc->hot_y = 7;
- sp_event_context_update_cursor(event_context);
- }
- }
- break;
case GDK_BUTTON_RELEASE:
int
lpetool_mode_to_index(Inkscape::LivePathEffect::EffectType const type) {
for (int i = 0; i < num_subtools; ++i) {
- if (lpesubtools[i] == type) {
+ if (lpesubtools[i].type == type) {
return i;
}
}
@@ -421,8 +393,8 @@ lpetool_context_switch_mode(SPLPEToolContext *lc, Inkscape::LivePathEffect::Effe
void
lpetool_get_limiting_bbox_corners(SPDocument *document, Geom::Point &A, Geom::Point &B) {
- Geom::Coord w = sp_document_width(document);
- Geom::Coord h = sp_document_height(document);
+ Geom::Coord w = document->getWidth();
+ Geom::Coord h = document->getHeight();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
double ulx = prefs->getDouble("/tools/lpetool/bbox_upperleftx", 0);
Geom::Point A, B;
lpetool_get_limiting_bbox_corners(document, A, B);
- NR::Matrix doc2dt(lc->desktop->doc2dt());
+ Geom::Matrix doc2dt(lc->desktop->doc2dt());
A *= doc2dt;
B *= doc2dt;
@@ -501,7 +473,7 @@ lpetool_create_measuring_items(SPLPEToolContext *lc, Inkscape::Selection *select
for (GSList const *i = selection->itemList(); i != NULL; i = i->next) {
if (SP_IS_PATH(i->data)) {
path = SP_PATH(i->data);
- curve = sp_shape_get_curve(SP_SHAPE(path));
+ curve = SP_SHAPE(path)->getCurve();
Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2 = paths_to_pw(curve->get_pathvector());
canvas_text = (SPCanvasText *) sp_canvastext_new(tmpgrp, lc->desktop, Geom::Point(0,0), "");
if (!show)
std::map<SPPath *, SPCanvasItem*>::iterator i;
for (i = lc->measuring_items->begin(); i != lc->measuring_items->end(); ++i) {
path = i->first;
- curve = sp_shape_get_curve(SP_SHAPE(path));
+ curve = SP_SHAPE(path)->getCurve();
Geom::Piecewise<Geom::D2<Geom::SBasis> > pwd2 = Geom::paths_to_pw(curve->get_pathvector());
SPUnitId unitid = static_cast<SPUnitId>(prefs->getInt("/tools/lpetool/unitid", SP_UNIT_PX));
SPUnit unit = sp_unit_get_by_id(unitid);
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :