X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fverbs.cpp;h=a046372fc0a7fac513d4384daff24d5e6b1b500f;hb=d88d2aa6894cc84f414fbdb64899673c66bc52c1;hp=5f7e2491d7db6c3808b33bf670a3a4783926615b;hpb=7a005ab1b393d8c8c5de6ef1623bc06608be52df;p=inkscape.git diff --git a/src/verbs.cpp b/src/verbs.cpp index 5f7e2491d..a046372fc 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -38,7 +38,6 @@ #include "dialogs/text-edit.h" #include "dialogs/xml-tree.h" #include "dialogs/object-properties.h" -#include "dialogs/display-settings.h" #include "dialogs/item-properties.h" #include "dialogs/find.h" #include "dialogs/layer-properties.h" @@ -46,6 +45,7 @@ #include "dialogs/iconpreview.h" #include "dialogs/extensions.h" #include "dialogs/swatches.h" +#include "dialogs/layers-panel.h" #include "dialogs/input.h" #ifdef WITH_INKBOARD @@ -70,6 +70,7 @@ #include "path-chemistry.h" #include "text-chemistry.h" #include "ui/dialog/dialog-manager.h" +#include "ui/dialog/inkscape-preferences.h" #include "interface.h" #include "prefs-utils.h" #include "splivarot.h" @@ -586,6 +587,7 @@ Verb::get_action(Inkscape::UI::View::View *view) action = this->make_action(view); // if (action == NULL) printf("Hmm, NULL in %s\n", _name); + if (action == NULL) printf("Hmm, NULL in %s\n", _name); if (!_default_sensitive) { sp_action_set_sensitive(action, 0); } else { @@ -803,10 +805,10 @@ EditVerb::perform(SPAction *action, void *data, void *pdata) switch (reinterpret_cast(data)) { case SP_VERB_EDIT_UNDO: - sp_undo(dt, SP_DT_DOCUMENT(dt)); + sp_undo(dt, sp_desktop_document(dt)); break; case SP_VERB_EDIT_REDO: - sp_redo(dt, SP_DT_DOCUMENT(dt)); + sp_redo(dt, sp_desktop_document(dt)); break; case SP_VERB_EDIT_CUT: sp_selection_cut(); @@ -820,6 +822,24 @@ EditVerb::perform(SPAction *action, void *data, void *pdata) case SP_VERB_EDIT_PASTE_STYLE: sp_selection_paste_style(); break; + case SP_VERB_EDIT_PASTE_SIZE: + sp_selection_paste_size(true, true); + break; + case SP_VERB_EDIT_PASTE_SIZE_X: + sp_selection_paste_size(true, false); + break; + case SP_VERB_EDIT_PASTE_SIZE_Y: + sp_selection_paste_size(false, true); + break; + case SP_VERB_EDIT_PASTE_SIZE_SEPARATELY: + sp_selection_paste_size_separately(true, true); + break; + case SP_VERB_EDIT_PASTE_SIZE_SEPARATELY_X: + sp_selection_paste_size_separately(true, false); + break; + case SP_VERB_EDIT_PASTE_SIZE_SEPARATELY_Y: + sp_selection_paste_size_separately(false, true); + break; case SP_VERB_EDIT_PASTE_IN_PLACE: sp_selection_paste(true); break; @@ -879,7 +899,7 @@ EditVerb::perform(SPAction *action, void *data, void *pdata) if (tools_isactive(dt, TOOLS_NODES)) { sp_nodepath_deselect(SP_NODE_CONTEXT(ec)->nodepath); } else { - SP_DT_SELECTION(dt)->clear(); + sp_desktop_selection(dt)->clear(); } break; default: @@ -1027,7 +1047,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) SPObject *next=Inkscape::next_layer(dt->currentRoot(), dt->currentLayer()); if (next) { dt->setCurrentLayer(next); - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Moved to next layer.")); } else { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot move past last layer.")); @@ -1038,7 +1058,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) SPObject *prev=Inkscape::previous_layer(dt->currentRoot(), dt->currentLayer()); if (prev) { dt->setCurrentLayer(prev); - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Moved to previous layer.")); } else { dt->messageStack()->flash(Inkscape::WARNING_MESSAGE, _("Cannot move past first layer.")); @@ -1094,7 +1114,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) message = g_strdup_printf(_("Lowered layer %s."), layer->defaultLabel()); break; }; - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); if (message) { dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, message); g_free((void *) message); @@ -1107,7 +1127,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) } case SP_VERB_LAYER_DELETE: { if ( dt->currentLayer() != dt->currentRoot() ) { - SP_DT_SELECTION(dt)->clear(); + sp_desktop_selection(dt)->clear(); SPObject *old_layer=dt->currentLayer(); sp_object_ref(old_layer, NULL); @@ -1127,7 +1147,7 @@ LayerVerb::perform(SPAction *action, void *data, void *pdata) dt->setCurrentLayer(survivor); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); // TRANSLATORS: this means "The layer has been deleted." dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Deleted layer.")); @@ -1151,7 +1171,7 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) SPEventContext *ec = dt->event_context; - Inkscape::Selection *sel = SP_DT_SELECTION(dt); + Inkscape::Selection *sel = sp_desktop_selection(dt); if (sel->isEmpty()) return; @@ -1186,7 +1206,7 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) } else { sp_selection_scale_relative(sel, center, NR::scale(-1.0, 1.0)); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); break; case SP_VERB_OBJECT_FLIP_VERTICAL: if (tools_isactive(dt, TOOLS_NODES)) { @@ -1194,7 +1214,19 @@ ObjectVerb::perform( SPAction *action, void *data, void *pdata ) } else { sp_selection_scale_relative(sel, center, NR::scale(1.0, -1.0)); } - sp_document_done(SP_DT_DOCUMENT(dt)); + sp_document_done(sp_desktop_document(dt)); + break; + case SP_VERB_OBJECT_SET_MASK: + sp_selection_set_mask(false, false); + break; + case SP_VERB_OBJECT_UNSET_MASK: + sp_selection_unset_mask(false); + break; + case SP_VERB_OBJECT_SET_CLIPPATH: + sp_selection_set_mask(true, false); + break; + case SP_VERB_OBJECT_UNSET_CLIPPATH: + sp_selection_unset_mask(true); break; default: break; @@ -1273,78 +1305,60 @@ ContextVerb::perform(SPAction *action, void *data, void *pdata) break; case SP_VERB_CONTEXT_SELECT_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_SELECTOR); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SELECTOR); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_NODE_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_NODE); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_NODE); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_RECT_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_SHAPES); - prefs_set_int_attribute("dialogs.preferences", "page_shapes", PREFS_PAGE_TOOLS_SHAPES_RECT); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_RECT); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_ARC_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_SHAPES); - prefs_set_int_attribute("dialogs.preferences", "page_shapes", PREFS_PAGE_TOOLS_SHAPES_ELLIPSE); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_ELLIPSE); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_STAR_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_SHAPES); - prefs_set_int_attribute("dialogs.preferences", "page_shapes", PREFS_PAGE_TOOLS_SHAPES_STAR); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_STAR); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_SPIRAL_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_SHAPES); - prefs_set_int_attribute("dialogs.preferences", "page_shapes", PREFS_PAGE_TOOLS_SHAPES_SPIRAL); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_SHAPES_SPIRAL); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_PENCIL_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_PENCIL); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_PENCIL); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_PEN_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_PEN); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_PEN); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_CALLIGRAPHIC_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_CALLIGRAPHY); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_CALLIGRAPHY); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_TEXT_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_TEXT); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_TEXT); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_GRADIENT_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_GRADIENT); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_GRADIENT); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_ZOOM_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_ZOOM); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_ZOOM); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_DROPPER_PREFS: - prefs_set_int_attribute("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_DROPPER); - sp_display_dialog(); + prefs_set_int_attribute("dialogs.preferences", "page", PREFS_PAGE_TOOLS_DROPPER); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; case SP_VERB_CONTEXT_CONNECTOR_PREFS: - prefs_set_int_attribute ("dialogs.preferences", "page_top", PREFS_PAGE_TOOLS); - prefs_set_int_attribute ("dialogs.preferences", "page_tools", PREFS_PAGE_TOOLS_CONNECTOR); - sp_display_dialog (); + prefs_set_int_attribute ("dialogs.preferences", "page", PREFS_PAGE_TOOLS_CONNECTOR); + dt->_dlg_mgr->showDialog("InkscapePreferences"); break; default: @@ -1361,7 +1375,7 @@ ZoomVerb::perform(SPAction *action, void *data, void *pdata) if (!dt) return; - SPDocument *doc = SP_DT_DOCUMENT(dt); + SPDocument *doc = sp_desktop_document(dt); Inkscape::XML::Node *repr = SP_OBJECT_REPR(dt->namedview); @@ -1608,6 +1622,12 @@ DialogVerb::perform(SPAction *action, void *data, void *pdata) case SP_VERB_DIALOG_INPUT: sp_input_dialog(); break; + case SP_VERB_DIALOG_EXTENSIONEDITOR: + dt->_dlg_mgr->showDialog("ExtensionEditor"); + break; + case SP_VERB_DIALOG_LAYERS: + show_panel( Inkscape::UI::Dialogs::LayersPanel::getInstance(), "dialogs.layers", SP_VERB_DIALOG_LAYERS ); + break; default: break; } @@ -1756,8 +1776,6 @@ SPActionEventVector DialogVerb::vector = SPActionEventVector HelpVerb::vector = {{NULL},HelpVerb::perform, NULL, NULL, NULL}; - -/* *********** Effect Last ********** */ /** * Action vector to define functions called if a staticly defined tutorial verb * is called @@ -1765,6 +1783,8 @@ SPActionEventVector HelpVerb::vector = SPActionEventVector TutorialVerb::vector = {{NULL},TutorialVerb::perform, NULL, NULL, NULL}; +/* *********** Effect Last ********** */ + /** \brief A class to represent the last effect issued */ class EffectLastVerb : public Verb { private: @@ -1832,6 +1852,79 @@ EffectLastVerb::perform(SPAction *action, void *data, void *pdata) } /* *********** End Effect Last ********** */ +/* *********** Fit Canvas ********** */ + +/** \brief A class to represent the canvas fitting verbs */ +class FitCanvasVerb : public Verb { +private: + static void perform(SPAction *action, void *mydata, void *otherdata); + static SPActionEventVector vector; +protected: + virtual SPAction *make_action(Inkscape::UI::View::View *view); +public: + /** \brief Use the Verb initializer with the same parameters. */ + FitCanvasVerb(unsigned int const code, + gchar const *id, + gchar const *name, + gchar const *tip, + gchar const *image) : + Verb(code, id, name, tip, image) + { + set_default_sensitive(false); + } +}; /* FitCanvasVerb class */ + +/** + * The vector to attach in the fit canvas verb. + */ +SPActionEventVector FitCanvasVerb::vector = + {{NULL},FitCanvasVerb::perform, NULL, NULL, NULL}; + +/** \brief Create an action for a \c FitCanvasVerb + \param view Which view the action should be created for + \return The built action. + + Calls \c make_action_helper with the \c vector. +*/ +SPAction * +FitCanvasVerb::make_action(Inkscape::UI::View::View *view) +{ + SPAction *action = make_action_helper(view, &vector); + return action; +} + +/** \brief Decode the verb code and take appropriate action */ +void +FitCanvasVerb::perform(SPAction *action, void *data, void *pdata) +{ + SPDesktop *dt = static_cast(sp_action_get_view(action)); + if (!dt) return; + SPDocument *doc = sp_desktop_document(dt); + if (!doc) return; + + switch ((long) data) { + case SP_VERB_FIT_CANVAS_TO_SELECTION: + fit_canvas_to_selection(dt); + break; + case SP_VERB_FIT_CANVAS_TO_DRAWING: + fit_canvas_to_drawing(doc); + break; + case SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING: + fit_canvas_to_selection_or_drawing(dt); + break; + default: + return; + } + + return; +} +/* *********** End Fit Canvas ********** */ + + + + + + /* these must be in the same order as the SP_VERB_* enum in "verbs.h" */ Verb *Verb::_base_verbs[] = { /* Header */ @@ -1839,67 +1932,79 @@ Verb *Verb::_base_verbs[] = { new Verb(SP_VERB_NONE, "None", N_("None"), N_("Does nothing"), NULL), /* File */ - new FileVerb(SP_VERB_FILE_NEW, "FileNew", N_("Default"), N_("Create new document from default template"), + new FileVerb(SP_VERB_FILE_NEW, "FileNew", N_("Default"), N_("Create new document from the default template"), GTK_STOCK_NEW ), new FileVerb(SP_VERB_FILE_OPEN, "FileOpen", N_("_Open..."), - N_("Open existing document"), GTK_STOCK_OPEN ), + N_("Open an existing document"), GTK_STOCK_OPEN ), new FileVerb(SP_VERB_FILE_REVERT, "FileRevert", N_("Re_vert"), N_("Revert to the last saved version of document (changes will be lost)"), GTK_STOCK_REVERT_TO_SAVED ), new FileVerb(SP_VERB_FILE_SAVE, "FileSave", N_("_Save"), N_("Save document"), GTK_STOCK_SAVE ), new FileVerb(SP_VERB_FILE_SAVE_AS, "FileSaveAs", N_("Save _As..."), - N_("Save document under new name"), GTK_STOCK_SAVE_AS ), + N_("Save document under a new name"), GTK_STOCK_SAVE_AS ), new FileVerb(SP_VERB_FILE_PRINT, "FilePrint", N_("_Print..."), N_("Print document"), GTK_STOCK_PRINT ), // TRANSLATORS: "Vacuum Defs" means "Clean up defs" (so as to remove unused definitions) - new FileVerb(SP_VERB_FILE_VACUUM, "FileVacuum", N_("Vac_uum Defs"), N_("Remove unused predefined items from the <defs> of the document"), + new FileVerb(SP_VERB_FILE_VACUUM, "FileVacuum", N_("Vac_uum Defs"), N_("Remove unused definitions (such as gradients or clipping paths) from the <defs> of the document"), "file_vacuum" ), new FileVerb(SP_VERB_FILE_PRINT_DIRECT, "FilePrintDirect", N_("Print _Direct"), N_("Print directly without prompting to a file or pipe"), NULL ), new FileVerb(SP_VERB_FILE_PRINT_PREVIEW, "FilePrintPreview", N_("Print Previe_w"), N_("Preview document printout"), GTK_STOCK_PRINT_PREVIEW ), new FileVerb(SP_VERB_FILE_IMPORT, "FileImport", N_("_Import..."), - N_("Import bitmap or SVG image into document"), "file_import"), + N_("Import a bitmap or SVG image into this document"), "file_import"), new FileVerb(SP_VERB_FILE_EXPORT, "FileExport", N_("_Export Bitmap..."), - N_("Export document or selection as a bitmap image"), "file_export"), - new FileVerb(SP_VERB_FILE_NEXT_DESKTOP, "FileNextDesktop", N_("N_ext Window"), + N_("Export this document or a selection as a bitmap image"), "file_export"), + new FileVerb(SP_VERB_FILE_NEXT_DESKTOP, "NextWindow", N_("N_ext Window"), N_("Switch to the next document window"), "window_next"), - new FileVerb(SP_VERB_FILE_PREV_DESKTOP, "FilePrevDesktop", N_("P_revious Window"), + new FileVerb(SP_VERB_FILE_PREV_DESKTOP, "PrevWindow", N_("P_revious Window"), N_("Switch to the previous document window"), "window_previous"), - new FileVerb(SP_VERB_FILE_CLOSE_VIEW, "FileCloseView", N_("_Close"), - N_("Close window"), GTK_STOCK_CLOSE), + new FileVerb(SP_VERB_FILE_CLOSE_VIEW, "FileClose", N_("_Close"), + N_("Close this document window"), GTK_STOCK_CLOSE), new FileVerb(SP_VERB_FILE_QUIT, "FileQuit", N_("_Quit"), N_("Quit Inkscape"), GTK_STOCK_QUIT), /* Edit */ new EditVerb(SP_VERB_EDIT_UNDO, "EditUndo", N_("_Undo"), N_("Undo last action"), GTK_STOCK_UNDO), new EditVerb(SP_VERB_EDIT_REDO, "EditRedo", N_("_Redo"), - N_("Do again last undone action"), GTK_STOCK_REDO), + N_("Do again the last undone action"), GTK_STOCK_REDO), new EditVerb(SP_VERB_EDIT_CUT, "EditCut", N_("Cu_t"), N_("Cut selection to clipboard"), GTK_STOCK_CUT), new EditVerb(SP_VERB_EDIT_COPY, "EditCopy", N_("_Copy"), N_("Copy selection to clipboard"), GTK_STOCK_COPY), new EditVerb(SP_VERB_EDIT_PASTE, "EditPaste", N_("_Paste"), - N_("Paste objects from clipboard to mouse point"), GTK_STOCK_PASTE), + N_("Paste objects from clipboard to mouse point, or paste text"), GTK_STOCK_PASTE), new EditVerb(SP_VERB_EDIT_PASTE_STYLE, "EditPasteStyle", N_("Paste _Style"), - N_("Apply style of the copied object to selection"), "selection_paste_style"), + N_("Apply the style of the copied object to selection"), "selection_paste_style"), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE, "EditPasteSize", N_("Paste Si_ze"), + N_("Scale selection to match the size of the copied object"), NULL), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE_X, "EditPasteWidth", N_("Paste _Width"), + N_("Scale selection horizontally to match the width of the copied object"), NULL), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE_Y, "EditPasteHeight", N_("Paste _Height"), + N_("Scale selection vertically to match the height of the copied object"), NULL), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE_SEPARATELY, "EditPasteSizeSeparately", N_("Paste Size Separately"), + N_("Scale each selected object to match the size of the copied object"), NULL), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE_SEPARATELY_X, "EditPasteWidthSeparately", N_("Paste Width Separately"), + N_("Scale each selected object horizontally to match the width of the copied object"), NULL), + new EditVerb(SP_VERB_EDIT_PASTE_SIZE_SEPARATELY_Y, "EditPasteHeightSeparately", N_("Paste Height Separately"), + N_("Scale each selected object vertically to match the height of the copied object"), NULL), new EditVerb(SP_VERB_EDIT_PASTE_IN_PLACE, "EditPasteInPlace", N_("Paste _In Place"), N_("Paste objects from clipboard to the original location"), "selection_paste_in_place"), new EditVerb(SP_VERB_EDIT_DELETE, "EditDelete", N_("_Delete"), N_("Delete selection"), GTK_STOCK_DELETE), new EditVerb(SP_VERB_EDIT_DUPLICATE, "EditDuplicate", N_("Duplic_ate"), N_("Duplicate selected objects"), "edit_duplicate"), - new EditVerb(SP_VERB_EDIT_CLONE, "EditClone", N_("Clo_ne"), - N_("Create a clone of selected object (a copy linked to the original)"), "edit_clone"), + new EditVerb(SP_VERB_EDIT_CLONE, "EditClone", N_("Create Clo_ne"), + N_("Create a clone (a copy linked to the original) of selected object"), "edit_clone"), new EditVerb(SP_VERB_EDIT_UNLINK_CLONE, "EditUnlinkClone", N_("Unlin_k Clone"), - N_("Cut the clone's link to its original"), "edit_unlink_clone"), + N_("Cut the selected clone's link to its original, turning it into a standalone object"), "edit_unlink_clone"), new EditVerb(SP_VERB_EDIT_CLONE_ORIGINAL, "EditCloneOriginal", N_("Select _Original"), - N_("Select the object to which the clone is linked"), NULL), + N_("Select the object to which the selected clone is linked"), NULL), // TRANSLATORS: Convert selection to a rectangle with tiled pattern fill - new EditVerb(SP_VERB_EDIT_TILE, "EditTile", N_("O_bjects to Pattern"), + new EditVerb(SP_VERB_EDIT_TILE, "ObjectsToPattern", N_("Objects to Patter_n"), N_("Convert selection to a rectangle with tiled pattern fill"), NULL), // TRANSLATORS: Extract objects from a tiled pattern fill - new EditVerb(SP_VERB_EDIT_UNTILE, "EditUnTile", N_("Pattern to Ob_jects"), + new EditVerb(SP_VERB_EDIT_UNTILE, "ObjectsFromPattern", N_("Pattern to _Objects"), N_("Extract objects from a tiled pattern fill"), NULL), new EditVerb(SP_VERB_EDIT_CLEAR_ALL, "EditClearAll", N_("Clea_r All"), N_("Delete all objects from document"), NULL), @@ -1938,19 +2043,19 @@ Verb *Verb::_base_verbs[] = { N_("Remove all manual kerns and glyph rotations from a text object"), NULL), new SelectionVerb(SP_VERB_SELECTION_UNION, "SelectionUnion", N_("_Union"), - N_("Union of selected objects"), "union"), + N_("Create union of selected paths"), "union"), new SelectionVerb(SP_VERB_SELECTION_INTERSECT, "SelectionIntersect", N_("_Intersection"), - N_("Intersection of selected objects"), "intersection"), + N_("Create intersection of selected paths"), "intersection"), new SelectionVerb(SP_VERB_SELECTION_DIFF, "SelectionDiff", N_("_Difference"), - N_("Difference of selected objects (bottom minus top)"), "difference"), + N_("Create difference of selected paths (bottom minus top)"), "difference"), new SelectionVerb(SP_VERB_SELECTION_SYMDIFF, "SelectionSymDiff", N_("E_xclusion"), - N_("Exclusive OR of selected objects"), "exclusion"), + N_("Create exclusive OR of selected paths (those parts that belong to only one path)"), "exclusion"), new SelectionVerb(SP_VERB_SELECTION_CUT, "SelectionDivide", N_("Di_vision"), - N_("Cut the bottom object into pieces"), "division"), + N_("Cut the bottom path into pieces"), "division"), // TRANSLATORS: "to cut a path" is not the same as "to break a path apart" - see the // Advanced tutorial for more info new SelectionVerb(SP_VERB_SELECTION_SLICE, "SelectionCutPath", N_("Cut _Path"), - N_("Cut the bottom object's stroke into pieces, removing fill"), "cut_path"), + N_("Cut the bottom path's stroke into pieces, removing fill"), "cut_path"), // 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. @@ -1970,7 +2075,7 @@ Verb *Verb::_base_verbs[] = { new SelectionVerb(SP_VERB_SELECTION_INSET_SCREEN, "SelectionInsetScreen", N_("I_nset Path by 1 px"), N_("Inset selected paths by 1 px"), NULL), - new SelectionVerb(SP_VERB_SELECTION_INSET_SCREEN_10, "SelectionInsetScreen", + new SelectionVerb(SP_VERB_SELECTION_INSET_SCREEN_10, "SelectionInsetScreen10", N_("I_nset Path by 10 px"), N_("Inset selected paths by 10 px"), NULL), new SelectionVerb(SP_VERB_SELECTION_DYNAMIC_OFFSET, "SelectionDynOffset", @@ -1979,15 +2084,15 @@ Verb *Verb::_base_verbs[] = { N_("_Linked Offset"), N_("Create a dynamic offset object linked to the original path"), "linked_offset"), - new SelectionVerb(SP_VERB_SELECTION_OUTLINE, "SelectionOutline", N_("_Stroke to Path"), - N_("Convert selected strokes to paths"), "stroke_tocurve"), + new SelectionVerb(SP_VERB_SELECTION_OUTLINE, "StrokeToPath", N_("_Stroke to Path"), + N_("Convert selected object's stroke to paths"), "stroke_tocurve"), new SelectionVerb(SP_VERB_SELECTION_SIMPLIFY, "SelectionSimplify", N_("Si_mplify"), - N_("Simplify selected paths by removing extra nodes"), "simplify"), + N_("Simplify selected paths (remove extra nodes)"), "simplify"), new SelectionVerb(SP_VERB_SELECTION_REVERSE, "SelectionReverse", N_("_Reverse"), - N_("Reverses the direction of selected paths; useful for flipping markers"), "selection_reverse"), + N_("Reverse the direction of selected paths (useful for flipping markers)"), "selection_reverse"), // TRANSLATORS: "to trace" means "to convert a bitmap to vector graphics" (to vectorize) new SelectionVerb(SP_VERB_SELECTION_TRACE, "SelectionTrace", N_("_Trace Bitmap..."), - N_("Convert bitmap object to paths"), "selection_trace"), + N_("Create one or more paths from a bitmap by tracing it"), "selection_trace"), new SelectionVerb(SP_VERB_SELECTION_CREATE_BITMAP, "SelectionCreateBitmap", N_("_Make a Bitmap Copy"), N_("Export selection to a bitmap and insert it into document"), "selection_bitmap" ), new SelectionVerb(SP_VERB_SELECTION_COMBINE, "SelectionCombine", N_("_Combine"), @@ -1996,8 +2101,8 @@ Verb *Verb::_base_verbs[] = { // Advanced tutorial for more info new SelectionVerb(SP_VERB_SELECTION_BREAK_APART, "SelectionBreakApart", N_("Break _Apart"), N_("Break selected paths into subpaths"), "selection_break"), - new SelectionVerb(SP_VERB_SELECTION_GRIDTILE, "SelectionGridTile", N_("Gri_d Arrange..."), - N_("Arrange selection in grid pattern"), "grid_arrange"), + new SelectionVerb(SP_VERB_SELECTION_GRIDTILE, "DialogGridArrange", N_("Gri_d Arrange..."), + N_("Arrange selected objects in a grid pattern"), "grid_arrange"), /* Layer */ new LayerVerb(SP_VERB_LAYER_NEW, "LayerNew", N_("_Add Layer..."), N_("Create a new layer"), "new_layer"), @@ -2027,51 +2132,59 @@ Verb *Verb::_base_verbs[] = { N_("Rotate selection 90° clockwise"), "object_rotate_90_CW"), new ObjectVerb(SP_VERB_OBJECT_ROTATE_90_CCW, "ObjectRotate90CCW", N_("Rotate 9_0° CCW"), N_("Rotate selection 90° counter-clockwise"), "object_rotate_90_CCW"), - new ObjectVerb(SP_VERB_OBJECT_FLATTEN, "ObjectFlatten", N_("Remove _Transformations"), + new ObjectVerb(SP_VERB_OBJECT_FLATTEN, "ObjectRemoveTransform", N_("Remove _Transformations"), N_("Remove transformations from object"), "object_reset"), - new ObjectVerb(SP_VERB_OBJECT_TO_CURVE, "ObjectToCurve", N_("_Object to Path"), - N_("Convert selected objects to paths"), "object_tocurve"), + new ObjectVerb(SP_VERB_OBJECT_TO_CURVE, "ObjectToPath", N_("_Object to Path"), + N_("Convert selected object to path"), "object_tocurve"), new ObjectVerb(SP_VERB_OBJECT_FLOW_TEXT, "ObjectFlowText", N_("_Flow into Frame"), - N_("Put text into frames"), NULL), + N_("Put text into a frame (path or shape), creating a flowed text linked to the frame object"), NULL), new ObjectVerb(SP_VERB_OBJECT_UNFLOW_TEXT, "ObjectUnFlowText", N_("_Unflow"), N_("Remove text from frame (creates a single-line text object)"), NULL), new ObjectVerb(SP_VERB_OBJECT_FLOWTEXT_TO_TEXT, "ObjectFlowtextToText", N_("_Convert to Text"), - N_("Convert flowed text to regular text objects (preserves appearance)"), NULL), + N_("Convert flowed text to regular text object (preserves appearance)"), NULL), new ObjectVerb(SP_VERB_OBJECT_FLIP_HORIZONTAL, "ObjectFlipHorizontally", - N_("Flip _Horizontal"), N_("Flips selected objects horizontally"), + N_("Flip _Horizontal"), N_("Flip selected objects horizontally"), "object_flip_hor"), new ObjectVerb(SP_VERB_OBJECT_FLIP_VERTICAL, "ObjectFlipVertically", - N_("Flip _Vertical"), N_("Flips selected objects vertically"), + N_("Flip _Vertical"), N_("Flip selected objects vertically"), "object_flip_ver"), + new ObjectVerb(SP_VERB_OBJECT_SET_MASK, "ObjectSetMask", N_("_Set"), + N_("Apply mask to selection (using the topmost object as mask)"), NULL), + new ObjectVerb(SP_VERB_OBJECT_UNSET_MASK, "ObjectUnSetMask", N_("_Release"), + N_("Remove mask from selection"), NULL), + new ObjectVerb(SP_VERB_OBJECT_SET_CLIPPATH, "ObjectSetClipPath", N_("_Set"), + N_("Apply clipping path to selection (using the topmost object as clipping path)"), NULL), + new ObjectVerb(SP_VERB_OBJECT_UNSET_CLIPPATH, "ObjectUnSetClipPath", N_("_Release"), + N_("Remove clipping path from selection"), NULL), /* Tools */ - new ContextVerb(SP_VERB_CONTEXT_SELECT, "DrawSelect", N_("Select"), + new ContextVerb(SP_VERB_CONTEXT_SELECT, "ToolSelector", N_("Select"), N_("Select and transform objects"), "draw_select"), - new ContextVerb(SP_VERB_CONTEXT_NODE, "DrawNode", N_("Node Edit"), + new ContextVerb(SP_VERB_CONTEXT_NODE, "ToolNode", N_("Node Edit"), N_("Edit path nodes or control handles"), "draw_node"), - new ContextVerb(SP_VERB_CONTEXT_RECT, "DrawRect", N_("Rectangle"), + new ContextVerb(SP_VERB_CONTEXT_RECT, "ToolRect", N_("Rectangle"), N_("Create rectangles and squares"), "draw_rect"), - new ContextVerb(SP_VERB_CONTEXT_ARC, "DrawArc", N_("Ellipse"), + new ContextVerb(SP_VERB_CONTEXT_ARC, "ToolArc", N_("Ellipse"), N_("Create circles, ellipses, and arcs"), "draw_arc"), - new ContextVerb(SP_VERB_CONTEXT_STAR, "DrawStar", N_("Star"), + new ContextVerb(SP_VERB_CONTEXT_STAR, "ToolStar", N_("Star"), N_("Create stars and polygons"), "draw_star"), - new ContextVerb(SP_VERB_CONTEXT_SPIRAL, "DrawSpiral", N_("Spiral"), + new ContextVerb(SP_VERB_CONTEXT_SPIRAL, "ToolSpiral", N_("Spiral"), N_("Create spirals"), "draw_spiral"), - new ContextVerb(SP_VERB_CONTEXT_PENCIL, "DrawPencil", N_("Pencil"), + new ContextVerb(SP_VERB_CONTEXT_PENCIL, "ToolPencil", N_("Pencil"), N_("Draw freehand lines"), "draw_freehand"), - new ContextVerb(SP_VERB_CONTEXT_PEN, "DrawPen", N_("Pen"), + new ContextVerb(SP_VERB_CONTEXT_PEN, "ToolPen", N_("Pen"), N_("Draw Bezier curves and straight lines"), "draw_pen"), - new ContextVerb(SP_VERB_CONTEXT_CALLIGRAPHIC, "DrawCalligrphic", N_("Calligraphy"), + new ContextVerb(SP_VERB_CONTEXT_CALLIGRAPHIC, "ToolCalligrphic", N_("Calligraphy"), N_("Draw calligraphic lines"), "draw_calligraphic"), - new ContextVerb(SP_VERB_CONTEXT_TEXT, "DrawText", N_("Text"), + new ContextVerb(SP_VERB_CONTEXT_TEXT, "ToolText", N_("Text"), N_("Create and edit text objects"), "draw_text"), - new ContextVerb(SP_VERB_CONTEXT_GRADIENT, "DrawGradient", N_("Gradient"), + new ContextVerb(SP_VERB_CONTEXT_GRADIENT, "ToolGradient", N_("Gradient"), N_("Create and edit gradients"), "draw_gradient"), - new ContextVerb(SP_VERB_CONTEXT_ZOOM, "DrawZoom", N_("Zoom"), + new ContextVerb(SP_VERB_CONTEXT_ZOOM, "ToolZoom", N_("Zoom"), N_("Zoom in or out"), "draw_zoom"), - new ContextVerb(SP_VERB_CONTEXT_DROPPER, "DrawDropper", N_("Dropper"), + new ContextVerb(SP_VERB_CONTEXT_DROPPER, "ToolDropper", N_("Dropper"), N_("Pick averaged colors from image"), "draw_dropper"), - new ContextVerb(SP_VERB_CONTEXT_CONNECTOR, "DrawConnector", N_("Connector"), + new ContextVerb(SP_VERB_CONTEXT_CONNECTOR, "ToolConnector", N_("Connector"), N_("Create connectors"), "draw_connector"), /* Tool prefs */ @@ -2109,8 +2222,8 @@ Verb *Verb::_base_verbs[] = { new ZoomVerb(SP_VERB_ZOOM_OUT, "ZoomOut", N_("Zoom Out"), N_("Zoom out"), "zoom_out"), new ZoomVerb(SP_VERB_TOGGLE_RULERS, "ToggleRulers", N_("_Rulers"), N_("Show or hide the canvas rulers"), "rulers"), new ZoomVerb(SP_VERB_TOGGLE_SCROLLBARS, "ToggleScrollbars", N_("Scroll_bars"), N_("Show or hide the canvas scrollbars"), "scrollbars"), - new ZoomVerb(SP_VERB_TOGGLE_GRID, "ToggleGrid", N_("_Grid"), N_("Show or hide grid"), "grid"), - new ZoomVerb(SP_VERB_TOGGLE_GUIDES, "ToggleGuides", N_("G_uides"), N_("Show or hide guides"), "guides"), + new ZoomVerb(SP_VERB_TOGGLE_GRID, "ToggleGrid", N_("_Grid"), N_("Show or hide the grid"), "grid"), + new ZoomVerb(SP_VERB_TOGGLE_GUIDES, "ToggleGuides", N_("G_uides"), N_("Show or hide guides (drag from a ruler to create a guide)"), "guides"), new ZoomVerb(SP_VERB_ZOOM_NEXT, "ZoomNext", N_("Nex_t Zoom"), N_("Next zoom (from the history of zooms)"), "zoom_next"), new ZoomVerb(SP_VERB_ZOOM_PREV, "ZoomPrev", N_("Pre_vious Zoom"), N_("Previous zoom (from the history of zooms)"), @@ -2136,7 +2249,7 @@ Verb *Verb::_base_verbs[] = { N_("Switch to outline (wireframe) display mode"), NULL), new ZoomVerb(SP_VERB_VIEW_ICON_PREVIEW, "ViewIconPreview", N_("Ico_n Preview"), - N_("Open a window to preview items at different icon resolutions"), NULL/*"view_icon_preview"*/), + N_("Open a window to preview objects at different icon resolutions"), NULL/*"view_icon_preview"*/), new ZoomVerb(SP_VERB_ZOOM_PAGE, "ZoomPage", N_("_Page"), N_("Zoom to fit page in window"), "zoom_page"), new ZoomVerb(SP_VERB_ZOOM_PAGE_WIDTH, "ZoomPageWidth", N_("Page _Width"), @@ -2147,25 +2260,25 @@ Verb *Verb::_base_verbs[] = { N_("Zoom to fit selection in window"), "zoom_select"), /* Dialogs */ - new DialogVerb(SP_VERB_DIALOG_DISPLAY, "DialogDisplay", N_("In_kscape Preferences..."), - N_("Global Inkscape preferences"), GTK_STOCK_PREFERENCES ), - new DialogVerb(SP_VERB_DIALOG_NAMEDVIEW, "DialogNamedview", N_("_Document Properties..."), - N_("Preferences saved with the document"), GTK_STOCK_PROPERTIES ), + new DialogVerb(SP_VERB_DIALOG_DISPLAY, "DialogPreferences", N_("In_kscape Preferences..."), + N_("Edit global Inkscape preferences"), GTK_STOCK_PREFERENCES ), + new DialogVerb(SP_VERB_DIALOG_NAMEDVIEW, "DialogDocumentProperties", N_("_Document Properties..."), + N_("Edit properties of this document (to be saved with the document)"), GTK_STOCK_PROPERTIES ), new DialogVerb(SP_VERB_DIALOG_METADATA, "DialogMetadata", N_("_Document Metadata..."), - N_("Metadata saved with the document"), NULL ), + N_("Edit document metadata (to be saved with the document)"), NULL ), new DialogVerb(SP_VERB_DIALOG_FILL_STROKE, "DialogFillStroke", N_("_Fill and Stroke..."), - N_("Fill and Stroke dialog"), "fill_and_stroke"), + N_("Edit objects' style, such as color or stroke width"), "fill_and_stroke"), // TRANSLATORS: "Swatches" means: color samples new DialogVerb(SP_VERB_DIALOG_SWATCHES, "DialogSwatches", N_("S_watches..."), - N_("View color swatches"), GTK_STOCK_SELECT_COLOR), + N_("Select colors from a swatches palette"), GTK_STOCK_SELECT_COLOR), new DialogVerb(SP_VERB_DIALOG_TRANSFORM, "DialogTransform", N_("Transfor_m..."), - N_("Transform dialog"), "object_trans"), + N_("Precisely control objects' transformations"), "object_trans"), new DialogVerb(SP_VERB_DIALOG_ALIGN_DISTRIBUTE, "DialogAlignDistribute", N_("_Align and Distribute..."), - N_("Align and Distribute dialog"), "object_align"), - new DialogVerb(SP_VERB_DIALOG_TEXT, "Dialogtext", N_("_Text and Font..."), - N_("Text and Font dialog"), "object_font"), + N_("Align and distribute objects"), "object_align"), + new DialogVerb(SP_VERB_DIALOG_TEXT, "DialogText", N_("_Text and Font..."), + N_("View and select font family, font size and other text properties"), "object_font"), new DialogVerb(SP_VERB_DIALOG_XML_EDITOR, "DialogXMLEditor", N_("_XML Editor..."), - N_("XML Editor"), "xml_editor"), + N_("View and edit the XML tree of the document"), "xml_editor"), new DialogVerb(SP_VERB_DIALOG_FIND, "DialogFind", N_("_Find..."), N_("Find objects in document"), GTK_STOCK_FIND ), new DialogVerb(SP_VERB_DIALOG_DEBUG, "DialogDebug", N_("_Messages..."), @@ -2173,12 +2286,12 @@ Verb *Verb::_base_verbs[] = { new DialogVerb(SP_VERB_DIALOG_SCRIPT, "DialogScript", N_("S_cripts..."), N_("Run scripts"), NULL), new DialogVerb(SP_VERB_DIALOG_TOGGLE, "DialogsToggle", N_("Show/Hide D_ialogs"), - N_("Show or hide all active dialogs"), "dialog_toggle"), + N_("Show or hide all open dialogs"), "dialog_toggle"), // TRANSLATORS: "Tile Clones" means: "Create tiled clones" - new DialogVerb(SP_VERB_DIALOG_CLONETILER, "DialogsClonetiler", N_("Tile Clones..."), - N_("Create and arrange multiple clones of selection"), NULL), - new DialogVerb(SP_VERB_DIALOG_ITEM, "DialogItem", N_("_Object Properties..."), - N_("Object Properties dialog"), "dialog_item_properties"), + new DialogVerb(SP_VERB_DIALOG_CLONETILER, "DialogClonetiler", N_("Create Tiled Clones..."), + N_("Create multiple clones of selected object, arranging them into a pattern or scattering"), NULL), + new DialogVerb(SP_VERB_DIALOG_ITEM, "DialogObjectProperties", N_("_Object Properties..."), + N_("Edit the ID, locked and visible status, and other object properties"), "dialog_item_properties"), #ifdef WITH_INKBOARD new DialogVerb(SP_VERB_DIALOG_WHITEBOARD_CONNECT, "DialogWhiteboardConnect", N_("_Connect to Jabber server..."), N_("Connect to a Jabber server"), NULL), @@ -2198,19 +2311,23 @@ Verb *Verb::_base_verbs[] = { N_("Disconnect from _server"), "", NULL), #endif new DialogVerb(SP_VERB_DIALOG_INPUT, "DialogInput", N_("_Input Devices..."), - N_("Configure extended input devices"), NULL), + N_("Configure extended input devices, such as a graphics tablet"), NULL), + 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_("_Layers..."), + N_("View Layers"), NULL), /* Help */ new HelpVerb(SP_VERB_HELP_KEYS, "HelpKeys", N_("_Keys and Mouse"), - N_("Key and mouse shortcuts reference"), "help_keys"), + N_("Keys and mouse shortcuts reference"), "help_keys"), new HelpVerb(SP_VERB_HELP_ABOUT_EXTENSIONS, "HelpAboutExtensions", N_("About E_xtensions"), - N_("About Extensions..."), NULL), + N_("Information on Inkscape extensions"), NULL), new HelpVerb(SP_VERB_HELP_MEMORY, "HelpAboutMemory", N_("About _Memory"), - N_("About Memory..."), NULL), + N_("Memory usage information"), NULL), new HelpVerb(SP_VERB_HELP_ABOUT, "HelpAbout", N_("_About Inkscape"), - N_("About Inkscape"), /*"help_about"*/"inkscape_options"), -// new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("Modifying or Redistributing Inkscape"), -// N_("Show license to modify and/or redistribute Inkscape: GNU GPL"), NULL), + N_("Inkscape version, authors, license"), /*"help_about"*/"inkscape_options"), + //new HelpVerb(SP_VERB_SHOW_LICENSE, "ShowLicense", N_("_License"), + // N_("Distribution terms"), /*"show_license"*/"inkscape_options"), /* Tutorials */ new TutorialVerb(SP_VERB_TUTORIAL_BASIC, "TutorialsBasic", N_("Inkscape: _Basic"), @@ -2235,8 +2352,16 @@ Verb *Verb::_base_verbs[] = { new EffectLastVerb(SP_VERB_EFFECT_LAST_PREF, "EffectLastPref", N_("Previous Effect Settings..."), N_("Repeat the last effect with new settings"), NULL/*"tutorial_tips"*/), + /* Fit Canvas */ + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION, "FitCanvasToSelection", N_("Fit Canvas to Selection"), + N_("Fit the canvas to the current selection"), NULL), + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_DRAWING, "FitCanvasToDrawing", N_("Fit Canvas to Drawing"), + N_("Fit the canvas to the drawing"), NULL), + new FitCanvasVerb(SP_VERB_FIT_CANVAS_TO_SELECTION_OR_DRAWING, "FitCanvasToSelectionOrDrawing", N_("Fit Canvas to Selection or Drawing"), + N_("Fit the canvas to the current selection or the drawing if there is no selection"), NULL), + /* Footer */ - new Verb(SP_VERB_LAST, NULL, NULL, NULL, NULL) + new Verb(SP_VERB_LAST, " '\"invalid id", NULL, NULL, NULL) };