diff --git a/src/tools-switch.cpp b/src/tools-switch.cpp
index 3393263599c17c0f1348a647c723e5171b0b40a7..e32d8d13d27610869513e3455b97b084443a8a2a 100644 (file)
--- a/src/tools-switch.cpp
+++ b/src/tools-switch.cpp
# include "config.h"
#endif
+#include <cstring>
+#include <string>
+
#include "inkscape-private.h"
#include "desktop.h"
#include "desktop-handles.h"
#include "select-context.h"
#include "node-context.h"
+#include "tweak-context.h"
#include "sp-path.h"
#include "rect-context.h"
#include "sp-rect.h"
+#include "box3d-context.h"
+#include "box3d.h"
#include "arc-context.h"
#include "sp-ellipse.h"
#include "star-context.h"
#include "spiral-context.h"
#include "sp-spiral.h"
#include "dyna-draw-context.h"
+#include "eraser-context.h"
#include "pen-context.h"
#include "pencil-context.h"
#include "text-context.h"
NULL,
"tools.select",
"tools.nodes",
+ "tools.tweak",
"tools.shapes.rect",
+ "tools.shapes.3dbox",
"tools.shapes.arc",
"tools.shapes.star",
"tools.shapes.spiral",
"tools.dropper",
"tools.connector",
"tools.paintbucket",
+ "tools.eraser",
NULL
};
NULL,
"select",
"nodes",
+ "tweak",
"rect",
+ "3dbox",
"arc",
"star",
"spiral",
"dropper",
"connector",
"paintbucket",
+ "eraser",
NULL
};
inkscape_eventcontext_set(sp_desktop_event_context(dt));
dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("To edit a path, <b>click</b>, <b>Shift+click</b>, or <b>drag around</b> nodes to select them, then <b>drag</b> nodes and handles. <b>Click</b> on an object to select."));
break;
+ case TOOLS_TWEAK:
+ dt->set_event_context(SP_TYPE_TWEAK_CONTEXT, tool_names[num]);
+ dt->activate_guides(true);
+ inkscape_eventcontext_set(sp_desktop_event_context(dt));
+ dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("To tweak a path by pushing, select it and drag over it."));
+ break;
case TOOLS_SHAPES_RECT:
dt->set_event_context(SP_TYPE_RECT_CONTEXT, tool_names[num]);
dt->activate_guides(false);
inkscape_eventcontext_set(sp_desktop_event_context(dt));
dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Drag</b> to create a rectangle. <b>Drag controls</b> to round corners and resize. <b>Click</b> to select."));
break;
+ case TOOLS_SHAPES_3DBOX:
+ dt->set_event_context(SP_TYPE_BOX3D_CONTEXT, tool_names[num]);
+ dt->activate_guides(false);
+ inkscape_eventcontext_set(sp_desktop_event_context(dt));
+ dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Drag</b> to create a 3D box. <b>Drag controls</b> to resize in perspective. <b>Click</b> to select (with <b>Ctrl+Alt</b> for single faces)."));
+ break;
case TOOLS_SHAPES_ARC:
dt->set_event_context(SP_TYPE_ARC_CONTEXT, tool_names[num]);
dt->activate_guides(false);
dt->set_event_context(SP_TYPE_PENCIL_CONTEXT, tool_names[num]);
dt->activate_guides(false);
inkscape_eventcontext_set(sp_desktop_event_context(dt));
- dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to append to selected path."));
+ dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Drag</b> to create a freehand line. Start drawing with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."));
break;
case TOOLS_FREEHAND_PEN:
dt->set_event_context(SP_TYPE_PEN_CONTEXT, tool_names[num]);
dt->activate_guides(false);
inkscape_eventcontext_set(sp_desktop_event_context(dt));
- dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to append to selected path."));
+ dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Click</b> or <b>click and drag</b> to start a path; with <b>Shift</b> to append to selected path. <b>Ctrl+click</b> to create single dots."));
break;
case TOOLS_CALLIGRAPHIC:
dt->set_event_context(SP_TYPE_DYNA_DRAW_CONTEXT, tool_names[num]);
inkscape_eventcontext_set(sp_desktop_event_context(dt));
dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Click</b> to paint a bounded area, <b>Shift+click</b> to union the new fill with the current selection, <b>Ctrl+click</b> to change the clicked object's fill and stroke to the current setting."));
break;
+ case TOOLS_ERASER:
+ dt->set_event_context(SP_TYPE_ERASER_CONTEXT, tool_names[num]);
+ dt->activate_guides(false);
+ inkscape_eventcontext_set(sp_desktop_event_context(dt));
+ dt->tipsMessageContext()->set(Inkscape::NORMAL_MESSAGE, _("<b>Drag</b> to erase."));
+ break;
}
}
{
if (SP_IS_RECT(item)) {
tools_switch(dt, TOOLS_SHAPES_RECT);
+ } else if (SP_IS_BOX3D(item)) {
+ tools_switch(dt, TOOLS_SHAPES_3DBOX);
} else if (SP_IS_GENERICELLIPSE(item)) {
tools_switch(dt, TOOLS_SHAPES_ARC);
} else if (SP_IS_STAR(item)) {