summaryrefslogtreecommitdiffstats
path: root/src/verbs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/verbs.cpp')
-rw-r--r--src/verbs.cpp54
1 files changed, 51 insertions, 3 deletions
diff --git a/src/verbs.cpp b/src/verbs.cpp
index 5130f1701..e061eaab6 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -817,7 +817,7 @@ Verb *Verb::get_search(unsigned int code)
*
* @param id Which id to search for.
*/
-Verb *Verb::getbyid(gchar const *id)
+Verb *Verb::getbyid(gchar const *id, bool verbose)
{
Verb *verb = NULL;
VerbIDTable::iterator verb_found = _verb_ids.find(id);
@@ -833,8 +833,10 @@ Verb *Verb::getbyid(gchar const *id)
&& strcmp(id, "SelectionTrace") != 0
&& strcmp(id, "PaintBucketPrefs") != 0
#endif
- )
- printf("Unable to find: %s\n", id);
+ ) {
+ if (verbose)
+ printf("Unable to find: %s\n", id);
+ }
return verb;
}
@@ -1099,6 +1101,7 @@ void SelectionVerb::perform(SPAction *action, void *data)
{
Inkscape::Selection *selection = sp_action_get_selection(action);
SPDesktop *dt = sp_action_get_desktop(action);
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
// Some of these operations have been modified so they work in command-line mode!
// In this case, all we need is a selection
@@ -1126,6 +1129,38 @@ void SelectionVerb::perform(SPAction *action, void *data)
case SP_VERB_SELECTION_SLICE:
sp_selected_path_slice(selection, dt);
break;
+ case SP_VERB_SELECTION_GROW:
+ {
+ // FIXME these and the other grow/shrink they should use gobble_key_events.
+ // the problem is how to get access to which key, if any, to gobble.
+ sp_selection_scale(selection, prefs->getDoubleLimited("/options/defaultscale/value", 2, 0, 1000));
+ break;
+ }
+ case SP_VERB_SELECTION_GROW_SCREEN:
+ {
+ sp_selection_scale_screen(selection, 2);
+ break;
+ }
+ case SP_VERB_SELECTION_GROW_DOUBLE:
+ {
+ sp_selection_scale_times(selection, 2);
+ break;
+ }
+ case SP_VERB_SELECTION_SHRINK:
+ {
+ sp_selection_scale(selection, -prefs->getDoubleLimited("/options/defaultscale/value", 2, 0, 1000));
+ break;
+ }
+ case SP_VERB_SELECTION_SHRINK_SCREEN:
+ {
+ sp_selection_scale_screen(selection, -2);
+ break;
+ }
+ case SP_VERB_SELECTION_SHRINK_HALVE:
+ {
+ sp_selection_scale_times(selection, 0.5);
+ break;
+ }
case SP_VERB_SELECTION_TO_FRONT:
sp_selection_raise_to_top(selection, dt);
break;
@@ -1856,6 +1891,7 @@ void ZoomVerb::perform(SPAction *action, void *data)
{
gint mul = 1 + Inkscape::UI::Tools::gobble_key_events(
GDK_KEY_KP_Add, 0); // with any mask
+ // FIXME what if zoom out is bound to something other than subtract?
// While drawing with the pen/pencil tool, zoom towards the end of the unfinished path
if (tools_isactive(dt, TOOLS_FREEHAND_PENCIL) || tools_isactive(dt, TOOLS_FREEHAND_PEN)) {
SPCurve *rc = SP_DRAW_CONTEXT(ec)->red_curve;
@@ -2585,6 +2621,18 @@ Verb *Verb::_base_verbs[] = {
// Advanced tutorial for more info
new SelectionVerb(SP_VERB_SELECTION_SLICE, "SelectionCutPath", N_("Cut _Path"),
N_("Cut the bottom path's stroke into pieces, removing fill"), INKSCAPE_ICON("path-cut")),
+ new SelectionVerb(SP_VERB_SELECTION_GROW, "SelectionGrow", N_("_Grow"),
+ N_("Make selected objects bigger"), INKSCAPE_ICON("selection-grow")),
+ new SelectionVerb(SP_VERB_SELECTION_GROW_SCREEN, "SelectionGrowScreen", N_("_Grow on screen"),
+ N_("Make selected objects bigger relative to screen"), INKSCAPE_ICON("selection-grow-screen")),
+ new SelectionVerb(SP_VERB_SELECTION_GROW_DOUBLE, "SelectionGrowDouble", N_("_Double size"),
+ N_("Double the size of selected objects"), INKSCAPE_ICON("selection-grow-double")),
+ new SelectionVerb(SP_VERB_SELECTION_SHRINK, "SelectionShrink", N_("_Shrink"),
+ N_("Make selected objects smaller"), INKSCAPE_ICON("selection-shrink")),
+ new SelectionVerb(SP_VERB_SELECTION_SHRINK_SCREEN, "SelectionShrinkScreen", N_("_Shrink on screen"),
+ N_("Make selected objects smaller relative to screen"), INKSCAPE_ICON("selection-shrink-screen")),
+ new SelectionVerb(SP_VERB_SELECTION_SHRINK_HALVE, "SelectionShrinkHalve", N_("_Halve size"),
+ N_("Halve the size of selected objects"), INKSCAPE_ICON("selection-shrink-halve")),
// TRANSLATORS: "outset": expand a shape by offsetting the object's path,
// i.e. by displacing it perpendicular to the path in each point.
// See also the Advanced Tutorial for explanation.