diff --git a/src/verbs.cpp b/src/verbs.cpp
index b634e2a447492be02b9960a5bd334c2f41ba4f95..24c17aad8fd93f4035f486201cd626324c8b396b 100644 (file)
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
* MenTaLguY <mental@rydia.net>
* David Turner <novalis@gnu.org>
* bulia byak <buliabyak@users.sf.net>
+ * Jon A. Cruz <jon@joncruz.org>
*
* Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
* Copyright (C) (date unspecified) Authors
#include "desktop-handles.h"
#include "dialogs/clonetiler.h"
#include "dialogs/find.h"
-#include "dialogs/input.h"
#include "dialogs/item-properties.h"
#include "dialogs/spellcheck.h"
#include "dialogs/text-edit.h"
#include "draw-context.h"
#include "extension/effect.h"
#include "file.h"
-#include "gradient-context.h"
#include "gradient-drag.h"
#include "helper/action.h"
#include "help.h"
#include "layer-fns.h"
#include "layer-manager.h"
#include "message-stack.h"
-#include "node-context.h"
#include "path-chemistry.h"
#include "preferences.h"
#include "select-context.h"
#include "ui/dialog/dialog-manager.h"
#include "ui/dialog/document-properties.h"
#include "ui/dialog/extensions.h"
+#include "ui/dialog/glyphs.h"
#include "ui/dialog/icon-preview.h"
#include "ui/dialog/inkscape-preferences.h"
#include "ui/dialog/layer-properties.h"
#include "ui/dialog/layers.h"
#include "ui/dialog/swatches.h"
#include "ui/icon-names.h"
+#include "ui/tool/node-tool.h"
-#ifdef WITH_INKBOARD
-#include "jabber_whiteboard/session-manager.h"
-#endif
+//#ifdef WITH_INKBOARD
+//#include "jabber_whiteboard/session-manager.h"
+//#endif
/**
* \brief Return the name without underscores and ellipsis, for use in dialog
Gtk::Window *parent = desktop->getToplevel();
g_assert(parent != NULL);
- switch ((long) data) {
+ switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_FILE_NEW:
sp_file_new_default();
break;
case SP_VERB_FILE_IMPORT_FROM_OCAL:
sp_file_import_from_ocal(*parent);
break;
- case SP_VERB_FILE_EXPORT_TO_OCAL:
- sp_file_export_to_ocal(*parent);
- break;
+// case SP_VERB_FILE_EXPORT_TO_OCAL:
+// sp_file_export_to_ocal(*parent);
+// break;
case SP_VERB_FILE_NEXT_DESKTOP:
inkscape_switch_desktops_next();
break;
SPDesktop *dt = static_cast<SPDesktop*>(sp_action_get_view(action));
if (!dt)
return;
- SPEventContext *ec = dt->event_context;
switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_EDIT_UNDO:
sp_selection_cut(dt);
break;
case SP_VERB_EDIT_COPY:
- sp_selection_copy();
+ sp_selection_copy(dt);
break;
case SP_VERB_EDIT_PASTE:
sp_selection_paste(dt, false);
sp_edit_clear_all(dt);
break;
case SP_VERB_EDIT_SELECT_ALL:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_all_from_subpath(false);
- } else {
- sp_edit_select_all(dt);
- }
+ SelectionHelper::selectAll(dt);
break;
case SP_VERB_EDIT_INVERT:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_all_from_subpath(true);
- } else {
- sp_edit_invert(dt);
- }
+ SelectionHelper::invert(dt);
break;
case SP_VERB_EDIT_SELECT_ALL_IN_ALL_LAYERS:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_all(false);
- } else {
- sp_edit_select_all_in_all_layers(dt);
- }
+ SelectionHelper::selectAllInAll(dt);
break;
case SP_VERB_EDIT_INVERT_IN_ALL_LAYERS:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_all(true);
- } else {
- sp_edit_invert_in_all_layers(dt);
- }
+ SelectionHelper::invertAllInAll(dt);
break;
-
case SP_VERB_EDIT_SELECT_NEXT:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_next();
- } else if (tools_isactive(dt, TOOLS_GRADIENT)
- && ec->_grdrag->isNonEmpty()) {
- sp_gradient_context_select_next (ec);
- } else {
- sp_selection_item_next(dt);
- }
+ SelectionHelper::selectNext(dt);
break;
case SP_VERB_EDIT_SELECT_PREV:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->select_prev();
- } else if (tools_isactive(dt, TOOLS_GRADIENT)
- && ec->_grdrag->isNonEmpty()) {
- sp_gradient_context_select_prev (ec);
- } else {
- sp_selection_item_prev(dt);
- }
+ SelectionHelper::selectPrev(dt);
break;
-
case SP_VERB_EDIT_DESELECT:
- if (tools_isactive(dt, TOOLS_NODES)) {
- ec->shape_editor->deselect();
- } else {
- sp_desktop_selection(dt)->clear();
- }
+ SelectionHelper::selectNone(dt);
break;
-
case SP_VERB_EDIT_GUIDES_AROUND_PAGE:
sp_guide_create_guides_around_page(dt);
break;
sp_selected_path_simplify(dt);
break;
case SP_VERB_SELECTION_REVERSE:
- sp_selected_path_reverse(dt);
+ SelectionHelper::reverse(dt);
break;
case SP_VERB_SELECTION_TRACE:
inkscape_dialogs_unhide();
LayerVerb::perform(SPAction *action, void *data, void */*pdata*/)
{
SPDesktop *dt = static_cast<SPDesktop*>(sp_action_get_view(action));
- unsigned int verb = reinterpret_cast<std::size_t>(data);
+ size_t verb = reinterpret_cast<std::size_t>(data);
if ( !dt || !dt->currentLayer() ) {
return;
flowtext_to_text();
break;
case SP_VERB_OBJECT_FLIP_HORIZONTAL:
- // When working with the node tool ...
- if (tools_isactive(dt, TOOLS_NODES)) {
- Inkscape::NodePath::Node *active_node = Inkscape::NodePath::Path::active_node;
-
- // ... and one of the nodes is currently mouseovered ...
- if (active_node) {
-
- // ... flip the selected nodes about that node
- ec->shape_editor->flip(Geom::X, active_node->pos);
- } else {
-
- // ... or else about the center of their bounding box.
- ec->shape_editor->flip(Geom::X);
- }
-
- // When working with the selector tool, flip the selection about its rotation center
- // (if it is visible) or about the center of the bounding box.
- } else {
- sp_selection_scale_relative(sel, center, Geom::Scale(-1.0, 1.0));
- }
+ sp_selection_scale_relative(sel, center, Geom::Scale(-1.0, 1.0));
sp_document_done(sp_desktop_document(dt), SP_VERB_OBJECT_FLIP_HORIZONTAL,
_("Flip horizontally"));
break;
case SP_VERB_OBJECT_FLIP_VERTICAL:
- // The behaviour is analogous to flipping horizontally
- if (tools_isactive(dt, TOOLS_NODES)) {
- Inkscape::NodePath::Node *active_node = Inkscape::NodePath::Path::active_node;
- if (active_node) {
- ec->shape_editor->flip(Geom::Y, active_node->pos);
- } else {
- ec->shape_editor->flip(Geom::Y);
- }
- } else {
- sp_selection_scale_relative(sel, center, Geom::Scale(1.0, -1.0));
- }
+ sp_selection_scale_relative(sel, center, Geom::Scale(1.0, -1.0));
sp_document_done(sp_desktop_document(dt), SP_VERB_OBJECT_FLIP_VERTICAL,
_("Flip vertically"));
break;
case SP_VERB_CONTEXT_TWEAK:
tools_switch(dt, TOOLS_TWEAK);
break;
+ case SP_VERB_CONTEXT_SPRAY:
+ tools_switch(dt, TOOLS_SPRAY);
+ break;
case SP_VERB_CONTEXT_RECT:
tools_switch(dt, TOOLS_SHAPES_RECT);
break;
prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_TWEAK);
dt->_dlg_mgr->showDialog("InkscapePreferences");
break;
+ case SP_VERB_CONTEXT_SPRAY_PREFS:
+ prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SPRAY);
+ dt->_dlg_mgr->showDialog("InkscapePreferences");
+ break;
case SP_VERB_CONTEXT_RECT_PREFS:
prefs->setInt("/dialogs/preferences/page", PREFS_PAGE_TOOLS_SHAPES_RECT);
dt->_dlg_mgr->showDialog("InkscapePreferences");
gdouble zoom_inc =
prefs->getDoubleLimited( "/options/zoomincrement/value", 1.414213562, 1.01, 10 );
- switch (GPOINTER_TO_INT(data)) {
+ switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_ZOOM_IN:
{
gint mul = 1 + gobble_key_events(
case SP_VERB_VIEW_MODE_OUTLINE:
dt->setDisplayModeOutline();
break;
+ case SP_VERB_VIEW_MODE_PRINT_COLORS_PREVIEW:
+ dt->setDisplayModePrintColorsPreview();
+ break;
case SP_VERB_VIEW_MODE_TOGGLE:
dt->displayModeToggle();
break;
case SP_VERB_DIALOG_FILL_STROKE:
dt->_dlg_mgr->showDialog("FillAndStroke");
break;
+ case SP_VERB_DIALOG_GLYPHS:
+ dt->_dlg_mgr->showDialog("Glyphs");
+ break;
case SP_VERB_DIALOG_SWATCHES:
dt->_dlg_mgr->showDialog("Swatches");
break;
case SP_VERB_DIALOG_ALIGN_DISTRIBUTE:
dt->_dlg_mgr->showDialog("AlignAndDistribute");
break;
+ case SP_VERB_DIALOG_SPRAY_OPTION:
+ dt->_dlg_mgr->showDialog("SprayOptionClass");
+ break;
case SP_VERB_DIALOG_TEXT:
sp_text_edit_dialog();
break;
case SP_VERB_DIALOG_ITEM:
sp_item_dialog();
break;
-#ifdef WITH_INKBOARD
+/*#ifdef WITH_INKBOARD
case SP_VERB_XMPP_CLIENT:
{
Inkscape::Whiteboard::SessionManager::showClient();
break;
}
-#endif
+#endif*/
case SP_VERB_DIALOG_INPUT:
- sp_input_dialog();
- break;
- case SP_VERB_DIALOG_INPUT2:
dt->_dlg_mgr->showDialog("InputDevices");
break;
case SP_VERB_DIALOG_EXTENSIONEDITOR:
case SP_VERB_DIALOG_SVG_FONTS:
dt->_dlg_mgr->showDialog("SvgFontsDialog");
break;
+ case SP_VERB_DIALOG_PRINT_COLORS_PREVIEW:
+ dt->_dlg_mgr->showDialog("PrintColorsPreviewDialog");
+ break;
default:
break;
}
{
switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_TUTORIAL_BASIC:
- /* TRANSLATORS: If you have translated the tutorial-basic.svg file to your language,
- then translate this string as "tutorial-basic.LANG.svg" (where LANG is your language
+ /* TRANSLATORS: If you have translated the tutorial-basic.en.svgz file to your language,
+ then translate this string as "tutorial-basic.LANG.svgz" (where LANG is your language
code); otherwise leave as "tutorial-basic.svg". */
sp_help_open_tutorial(NULL, (gpointer)_("tutorial-basic.svg"));
break;
// TRANSLATORS: See "tutorial-basic.svg" comment.
sp_help_open_tutorial(NULL, (gpointer)_("tutorial-calligraphy.svg"));
break;
+ case SP_VERB_TUTORIAL_INTERPOLATE:
+ // TRANSLATORS: See "tutorial-basic.svg" comment.
+ sp_help_open_tutorial(NULL, (gpointer)_("tutorial-interpolate.svg"));
+ break;
case SP_VERB_TUTORIAL_DESIGN:
// TRANSLATORS: See "tutorial-basic.svg" comment.
sp_help_open_tutorial(NULL, (gpointer)_("tutorial-elements.svg"));
if (effect == NULL) return;
if (current_view == NULL) return;
- switch ((long) data) {
+ switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_EFFECT_LAST_PREF:
effect->prefs(current_view);
break;
SPDocument *doc = sp_desktop_document(dt);
if (!doc) return;
- switch ((long) data) {
+ switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_FIT_CANVAS_TO_SELECTION:
verb_fit_canvas_to_selection(dt);
break;
SPDocument *doc = sp_desktop_document(dt);
if (!doc) return;
- switch ((long) data) {
+ switch (reinterpret_cast<std::size_t>(data)) {
case SP_VERB_UNLOCK_ALL:
unlock_all(dt);
sp_document_done(doc, SP_VERB_UNLOCK_ALL, _("Unlock all objects in the current layer"));
new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."),
N_("Export this document or a selection as a bitmap image"), INKSCAPE_ICON_DOCUMENT_EXPORT),
new FileVerb(SP_VERB_FILE_IMPORT_FROM_OCAL, "FileImportFromOCAL", N_("Import From Open Clip Art Library"), N_("Import a document from Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_IMPORT_OCAL),
- new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL),
+// new FileVerb(SP_VERB_FILE_EXPORT_TO_OCAL, "FileExportToOCAL", N_("Export To Open Clip Art Library"), N_("Export this document to Open Clip Art Library"), INKSCAPE_ICON_DOCUMENT_EXPORT_OCAL),
new FileVerb(SP_VERB_FILE_NEXT_DESKTOP, "NextWindow", N_("N_ext Window"),
N_("Switch to the next document window"), INKSCAPE_ICON_WINDOW_NEXT),
new FileVerb(SP_VERB_FILE_PREV_DESKTOP, "PrevWindow", N_("P_revious Window"),
N_("Edit paths by nodes"), INKSCAPE_ICON_TOOL_NODE_EDITOR),
new ContextVerb(SP_VERB_CONTEXT_TWEAK, "ToolTweak", N_("Tweak"),
N_("Tweak objects by sculpting or painting"), INKSCAPE_ICON_TOOL_TWEAK),
+ new ContextVerb(SP_VERB_CONTEXT_SPRAY, "ToolSpray", N_("Spray"),
+ N_("Spray objects by sculpting or painting"), INKSCAPE_ICON_TOOL_SPRAY),
new ContextVerb(SP_VERB_CONTEXT_RECT, "ToolRect", N_("Rectangle"),
N_("Create rectangles and squares"), INKSCAPE_ICON_DRAW_RECTANGLE),
new ContextVerb(SP_VERB_CONTEXT_3DBOX, "Tool3DBox", N_("3D Box"),
N_("Open Preferences for the Node tool"), NULL),
new ContextVerb(SP_VERB_CONTEXT_TWEAK_PREFS, "TweakPrefs", N_("Tweak Tool Preferences"),
N_("Open Preferences for the Tweak tool"), NULL),
+ new ContextVerb(SP_VERB_CONTEXT_SPRAY_PREFS, "SprayPrefs", N_("Spray Tool Preferences"),
+ N_("Open Preferences for the Spray tool"), NULL),
new ContextVerb(SP_VERB_CONTEXT_RECT_PREFS, "RectPrefs", N_("Rectangle Preferences"),
N_("Open Preferences for the Rectangle tool"), NULL),
new ContextVerb(SP_VERB_CONTEXT_3DBOX_PREFS, "3DBoxPrefs", N_("3D Box Preferences"),
N_("Switch to normal display without filters"), NULL),
new ZoomVerb(SP_VERB_VIEW_MODE_OUTLINE, "ViewModeOutline", N_("_Outline"),
N_("Switch to outline (wireframe) display mode"), NULL),
+ new ZoomVerb(SP_VERB_VIEW_MODE_PRINT_COLORS_PREVIEW, "ViewModePrintColorsPreview", N_("_Print Colors Preview"),
+ N_("Switch to print colors preview mode"), NULL),
new ZoomVerb(SP_VERB_VIEW_MODE_TOGGLE, "ViewModeToggle", N_("_Toggle"),
N_("Toggle between normal and outline display modes"), NULL),
N_("Edit document metadata (to be saved with the document)"), INKSCAPE_ICON_DOCUMENT_METADATA ),
new DialogVerb(SP_VERB_DIALOG_FILL_STROKE, "DialogFillStroke", N_("_Fill and Stroke..."),
N_("Edit objects' colors, gradients, stroke width, arrowheads, dash patterns..."), INKSCAPE_ICON_DIALOG_FILL_AND_STROKE),
+ new DialogVerb(SP_VERB_DIALOG_GLYPHS, "DialogGlyphs", N_("Glyphs..."),
+ N_("Select characters from a glyphs palette"), GTK_STOCK_SELECT_FONT),
// TRANSLATORS: "Swatches" means: color samples
new DialogVerb(SP_VERB_DIALOG_SWATCHES, "DialogSwatches", N_("S_watches..."),
N_("Select colors from a swatches palette"), GTK_STOCK_SELECT_COLOR),
N_("Precisely control objects' transformations"), INKSCAPE_ICON_DIALOG_TRANSFORM),
new DialogVerb(SP_VERB_DIALOG_ALIGN_DISTRIBUTE, "DialogAlignDistribute", N_("_Align and Distribute..."),
N_("Align and distribute objects"), INKSCAPE_ICON_DIALOG_ALIGN_AND_DISTRIBUTE),
+ new DialogVerb(SP_VERB_DIALOG_SPRAY_OPTION, "DialogSprayOption", N_("_Spray options..."),
+ N_("Some options for the spray"), INKSCAPE_ICON_DIALOG_SPRAY_OPTIONS),
new DialogVerb(SP_VERB_DIALOG_UNDO_HISTORY, "DialogUndoHistory", N_("Undo _History..."),
N_("Undo History"), INKSCAPE_ICON_EDIT_UNDO_HISTORY),
new DialogVerb(SP_VERB_DIALOG_TEXT, "DialogText", N_("_Text and Font..."),
N_("Create multiple clones of selected object, arranging them into a pattern or scattering"), INKSCAPE_ICON_DIALOG_TILE_CLONES),
new DialogVerb(SP_VERB_DIALOG_ITEM, "DialogObjectProperties", N_("_Object Properties..."),
N_("Edit the ID, locked and visible status, and other object properties"), INKSCAPE_ICON_DIALOG_OBJECT_PROPERTIES),
-#ifdef WITH_INKBOARD
+/*#ifdef WITH_INKBOARD
new DialogVerb(SP_VERB_XMPP_CLIENT, "DialogXmppClient",
N_("_Instant Messaging..."), N_("Jabber Instant Messaging Client"), NULL),
-#endif
+#endif*/
new DialogVerb(SP_VERB_DIALOG_INPUT, "DialogInput", N_("_Input Devices..."),
N_("Configure extended input devices, such as a graphics tablet"), INKSCAPE_ICON_DIALOG_INPUT_DEVICES),
- new DialogVerb(SP_VERB_DIALOG_INPUT2, "DialogInput2", N_("_Input Devices (new)..."),
- N_("Configure extended input devices, such as a graphics tablet"), INKSCAPE_ICON_DIALOG_INPUT_DEVICES),
new DialogVerb(SP_VERB_DIALOG_EXTENSIONEDITOR, "org.inkscape.dialogs.extensioneditor", N_("_Extensions..."),
N_("Query information about extensions"), NULL),
new DialogVerb(SP_VERB_DIALOG_LAYERS, "DialogLayers", N_("Layer_s..."),
N_("Manage, edit, and apply SVG filters"), NULL),
new DialogVerb(SP_VERB_DIALOG_SVG_FONTS, "DialogSVGFonts", N_("SVG Font Editor..."),
N_("Edit SVG fonts"), NULL),
+ new DialogVerb(SP_VERB_DIALOG_PRINT_COLORS_PREVIEW, "DialogPrintColorsPreview", N_("Print Colors..."),
+ N_("Select which color separations to render in Print Colors Preview rendermode"), NULL),
/* Help */
new HelpVerb(SP_VERB_HELP_ABOUT_EXTENSIONS, "HelpAboutExtensions", N_("About E_xtensions"),
N_("Using bitmap tracing"), NULL/*"tutorial_tracing"*/),
new TutorialVerb(SP_VERB_TUTORIAL_CALLIGRAPHY, "TutorialsCalligraphy", N_("Inkscape: _Calligraphy"),
N_("Using the Calligraphy pen tool"), NULL),
+ new TutorialVerb(SP_VERB_TUTORIAL_INTERPOLATE, "TutorialsInterpolate", N_("Inkscape: _Interpolate"),
+ N_("Using the interpolate extension"), NULL/*"tutorial_interpolate"*/),
new TutorialVerb(SP_VERB_TUTORIAL_DESIGN, "TutorialsDesign", N_("_Elements of Design"),
N_("Principles of design in the tutorial form"), NULL/*"tutorial_design"*/),
new TutorialVerb(SP_VERB_TUTORIAL_TIPS, "TutorialsTips", N_("_Tips and Tricks"),