Code

Use subdirectories with icon sizes.
[inkscape.git] / src / verbs.h
index ccb63daddc866832676ef53126e1b2f427d49b99..f118014d2d8c51a892d9b5aa7233dadb366cfed8 100644 (file)
  *
  *  Copyright (C) 2006 Johan Engelen <johan@shouraizou.nl>
  *  Copyright (C) (date unspecified) Authors
+
  * This code is in public domain if done by Lauris
  * This code is GPL if done by Ted or David
  */
 
+#include <cstring>
+#include <string>
+#include <string.h>
+#include "config.h"
 #include "require-config.h"   /* HAVE_GTK_WINDOW_FULLSCREEN */
 #include "helper/helper-forward.h"
 #include "forward.h"
@@ -34,15 +38,14 @@ enum {
     SP_VERB_FILE_REVERT,           /**< Revert this file to its original state. */
     SP_VERB_FILE_SAVE,             /**< Save the current file with its saved filename */
     SP_VERB_FILE_SAVE_AS,          /**< Save the current file with a new filename */
-    SP_VERB_FILE_SAVE_A_COPY,      /**< Save a copy of the current file */ 
+    SP_VERB_FILE_SAVE_A_COPY,      /**< Save a copy of the current file */
     SP_VERB_FILE_PRINT,
     SP_VERB_FILE_VACUUM,
-    SP_VERB_FILE_PRINT_DIRECT,
     SP_VERB_FILE_PRINT_PREVIEW,
     SP_VERB_FILE_IMPORT,
     SP_VERB_FILE_EXPORT,
     SP_VERB_FILE_IMPORT_FROM_OCAL, /**< Import the file from Open Clip Art Library */
-    SP_VERB_FILE_EXPORT_TO_OCAL, /**< Export the file to Open Clip Art  Library */
+//    SP_VERB_FILE_EXPORT_TO_OCAL, /**< Export the file to Open Clip Art  Library */
     SP_VERB_FILE_NEXT_DESKTOP,
     SP_VERB_FILE_PREV_DESKTOP,
     SP_VERB_FILE_CLOSE_VIEW,
@@ -62,12 +65,16 @@ enum {
     SP_VERB_EDIT_PASTE_SIZE_SEPARATELY_Y,
     SP_VERB_EDIT_PASTE_IN_PLACE,
     SP_VERB_EDIT_PASTE_LIVEPATHEFFECT,
+    SP_VERB_EDIT_REMOVE_LIVEPATHEFFECT,
+    SP_VERB_EDIT_REMOVE_FILTER,
     SP_VERB_EDIT_DELETE,
     SP_VERB_EDIT_DUPLICATE,
     SP_VERB_EDIT_CLONE,
     SP_VERB_EDIT_UNLINK_CLONE,
-    SP_VERB_EDIT_CLONE_ORIGINAL,
+    SP_VERB_EDIT_RELINK_CLONE,
+    SP_VERB_EDIT_CLONE_SELECT_ORIGINAL,
     SP_VERB_EDIT_SELECTION_2_MARKER,
+    SP_VERB_EDIT_SELECTION_2_GUIDES,
     SP_VERB_EDIT_TILE,
     SP_VERB_EDIT_UNTILE,
     SP_VERB_EDIT_CLEAR_ALL,
@@ -78,6 +85,7 @@ enum {
     SP_VERB_EDIT_SELECT_NEXT,
     SP_VERB_EDIT_SELECT_PREV,
     SP_VERB_EDIT_DESELECT,
+    SP_VERB_EDIT_GUIDES_AROUND_PAGE,
     SP_VERB_EDIT_NEXT_PATHEFFECT_PARAMETER,
     /* Selection */
     SP_VERB_SELECTION_TO_FRONT,
@@ -122,7 +130,9 @@ enum {
     SP_VERB_LAYER_TO_BOTTOM,
     SP_VERB_LAYER_RAISE,
     SP_VERB_LAYER_LOWER,
+    SP_VERB_LAYER_DUPLICATE,
     SP_VERB_LAYER_DELETE,
+    SP_VERB_LAYER_SOLO,
     /* Object */
     SP_VERB_OBJECT_ROTATE_90_CW,
     SP_VERB_OBJECT_ROTATE_90_CCW,
@@ -134,13 +144,16 @@ enum {
     SP_VERB_OBJECT_FLIP_HORIZONTAL,
     SP_VERB_OBJECT_FLIP_VERTICAL,
     SP_VERB_OBJECT_SET_MASK,
+    SP_VERB_OBJECT_EDIT_MASK,
     SP_VERB_OBJECT_UNSET_MASK,
     SP_VERB_OBJECT_SET_CLIPPATH,
+    SP_VERB_OBJECT_EDIT_CLIPPATH,
     SP_VERB_OBJECT_UNSET_CLIPPATH,
     /* Tools */
     SP_VERB_CONTEXT_SELECT,
     SP_VERB_CONTEXT_NODE,
     SP_VERB_CONTEXT_TWEAK,
+    SP_VERB_CONTEXT_SPRAY,
     SP_VERB_CONTEXT_RECT,
     SP_VERB_CONTEXT_3DBOX,
     SP_VERB_CONTEXT_ARC,
@@ -155,10 +168,14 @@ enum {
     SP_VERB_CONTEXT_DROPPER,
     SP_VERB_CONTEXT_CONNECTOR,
     SP_VERB_CONTEXT_PAINTBUCKET,
+    SP_VERB_CONTEXT_LPE, /* not really a tool but used for editing LPE parameters on-canvas for example */
+    SP_VERB_CONTEXT_ERASER,
+    SP_VERB_CONTEXT_LPETOOL, /* note that this is very different from SP_VERB_CONTEXT_LPE above! */
     /* Tool preferences */
     SP_VERB_CONTEXT_SELECT_PREFS,
     SP_VERB_CONTEXT_NODE_PREFS,
     SP_VERB_CONTEXT_TWEAK_PREFS,
+    SP_VERB_CONTEXT_SPRAY_PREFS,
     SP_VERB_CONTEXT_RECT_PREFS,
     SP_VERB_CONTEXT_3DBOX_PREFS,
     SP_VERB_CONTEXT_ARC_PREFS,
@@ -173,6 +190,8 @@ enum {
     SP_VERB_CONTEXT_DROPPER_PREFS,
     SP_VERB_CONTEXT_CONNECTOR_PREFS,
     SP_VERB_CONTEXT_PAINTBUCKET_PREFS,
+    SP_VERB_CONTEXT_ERASER_PREFS,
+    SP_VERB_CONTEXT_LPETOOL_PREFS,
     /* Zooming and desktop settings */
     SP_VERB_ZOOM_IN,
     SP_VERB_ZOOM_OUT,
@@ -180,6 +199,7 @@ enum {
     SP_VERB_TOGGLE_SCROLLBARS,
     SP_VERB_TOGGLE_GRID,
     SP_VERB_TOGGLE_GUIDES,
+    SP_VERB_TOGGLE_SNAPPING,
     SP_VERB_ZOOM_NEXT,
     SP_VERB_ZOOM_PREV,
     SP_VERB_ZOOM_1_1,
@@ -188,11 +208,15 @@ enum {
 #ifdef HAVE_GTK_WINDOW_FULLSCREEN
     SP_VERB_FULLSCREEN,
 #endif /* HAVE_GTK_WINDOW_FULLSCREEN */
+    SP_VERB_FOCUSTOGGLE,
     SP_VERB_VIEW_NEW,
     SP_VERB_VIEW_NEW_PREVIEW,
     SP_VERB_VIEW_MODE_NORMAL,
+    SP_VERB_VIEW_MODE_NO_FILTERS,
     SP_VERB_VIEW_MODE_OUTLINE,
+//    SP_VERB_VIEW_MODE_PRINT_COLORS_PREVIEW,
     SP_VERB_VIEW_MODE_TOGGLE,
+    SP_VERB_VIEW_CMS_TOGGLE,
     SP_VERB_VIEW_ICON_PREVIEW,
     SP_VERB_ZOOM_PAGE,
     SP_VERB_ZOOM_PAGE_WIDTH,
@@ -203,26 +227,32 @@ enum {
     SP_VERB_DIALOG_NAMEDVIEW,
     SP_VERB_DIALOG_METADATA,
     SP_VERB_DIALOG_FILL_STROKE,
+    SP_VERB_DIALOG_GLYPHS,
     SP_VERB_DIALOG_SWATCHES,
     SP_VERB_DIALOG_TRANSFORM,
     SP_VERB_DIALOG_ALIGN_DISTRIBUTE,
+    SP_VERB_DIALOG_SPRAY_OPTION,
     SP_VERB_DIALOG_UNDO_HISTORY,
     SP_VERB_DIALOG_TEXT,
     SP_VERB_DIALOG_XML_EDITOR,
     SP_VERB_DIALOG_FIND,
+    SP_VERB_DIALOG_FINDREPLACE,
+    SP_VERB_DIALOG_SPELLCHECK,
     SP_VERB_DIALOG_DEBUG,
     SP_VERB_DIALOG_SCRIPT,
     SP_VERB_DIALOG_TOGGLE,
     SP_VERB_DIALOG_CLONETILER,
     SP_VERB_DIALOG_ITEM,
-#ifdef WITH_INKBOARD
+/*#ifdef WITH_INKBOARD
     SP_VERB_XMPP_CLIENT,
-#endif
+#endif*/
     SP_VERB_DIALOG_INPUT,
     SP_VERB_DIALOG_EXTENSIONEDITOR,
     SP_VERB_DIALOG_LAYERS,
     SP_VERB_DIALOG_LIVE_PATH_EFFECT,
     SP_VERB_DIALOG_FILTER_EFFECTS,
+    SP_VERB_DIALOG_SVG_FONTS,
+    SP_VERB_DIALOG_PRINT_COLORS_PREVIEW,
     /* Help */
     SP_VERB_HELP_ABOUT_EXTENSIONS,
     SP_VERB_HELP_MEMORY,
@@ -234,6 +264,7 @@ enum {
     SP_VERB_TUTORIAL_ADVANCED,
     SP_VERB_TUTORIAL_TRACING,
     SP_VERB_TUTORIAL_CALLIGRAPHY,
+    SP_VERB_TUTORIAL_INTERPOLATE,
     SP_VERB_TUTORIAL_DESIGN,
     SP_VERB_TUTORIAL_TIPS,
     /* Effects */
@@ -248,6 +279,12 @@ enum {
     SP_VERB_UNLOCK_ALL_IN_ALL_LAYERS,
     SP_VERB_UNHIDE_ALL,
     SP_VERB_UNHIDE_ALL_IN_ALL_LAYERS,
+    /* Color management */
+    SP_VERB_EDIT_LINK_COLOR_PROFILE,
+    SP_VERB_EDIT_REMOVE_COLOR_PROFILE,
+    /*Scripting*/
+    SP_VERB_EDIT_ADD_EXTERNAL_SCRIPT,
+    SP_VERB_EDIT_REMOVE_EXTERNAL_SCRIPT,
     /* Footer */
     SP_VERB_LAST
 };
@@ -266,12 +303,15 @@ class Verb {
 private:
     /** \brief An easy to use defition of the table of verbs by code. */
     typedef std::map<unsigned int, Inkscape::Verb *> VerbTable;
+
     /** \brief A table of all the dynamically created verbs. */
     static VerbTable _verbs;
+
     /** \brief The table of statically created verbs which are mostly
                'base verbs'. */
     static Verb * _base_verbs[SP_VERB_LAST + 1];
     /* Plus one because there is an entry for SP_VERB_LAST */
+
     /** A string comparison function to be used in the Verb ID lookup
         to find the different verbs in the hash map. */
     struct ltstr {
@@ -285,8 +325,10 @@ private:
             }
         }
     };
+
     /** \brief An easy to use definition of the table of verbs by ID. */
     typedef std::map<gchar const *, Verb *, ltstr> VerbIDTable;
+
     /** \brief Quick lookup of verbs by ID */
     static VerbIDTable _verb_ids;
 
@@ -298,12 +340,20 @@ private:
 
     /** \brief A unique textual ID for the verb. */
     gchar const * _id;
+
     /** \brief The full name of the verb.  (shown on menu entries) */
     gchar const * _name;
+
     /** \brief Tooltip for the verb. */
     gchar const * _tip;
+
+    gchar * _full_tip; // includes shortcut
+
+    unsigned int _shortcut;
+
     /** \brief Name of the image that represents the verb. */
     gchar const * _image;
+
     /** \brief Unique numerical representation of the verb.  In most cases
                it is a value from the anonymous enum at the top of this
                file. */
@@ -312,6 +362,7 @@ private:
     /** \brief Whether this verb is set to default to sensitive or
                insensitive when new actions are created. */
     bool _default_sensitive;
+
 protected:
     /** \brief Allows for preliminary setting of the \c _default_sensitive
                value without effecting existing actions
@@ -334,7 +385,7 @@ public:
     /** \brief Accessor to get the internal variable. */
     gchar const * get_name (void) { return _name; }
     /** \brief Accessor to get the internal variable. */
-    gchar const * get_tip (void) { return _tip; }
+    gchar const * get_tip (void) ;
     /** \brief Accessor to get the internal variable. */
     gchar const * get_image (void) { return _image; }
 
@@ -372,7 +423,16 @@ public:
          gchar const * name,
          gchar const * tip,
          gchar const * image) :
-        _actions(NULL), _id(id), _name(name), _tip(tip), _image(image), _code(code), _default_sensitive(true) {
+        _actions(0),
+        _id(id),
+        _name(name),
+        _tip(tip),
+        _full_tip(0),
+        _shortcut(0),
+        _image(image),
+        _code(code),
+        _default_sensitive(true)
+    {
         _verbs.insert(VerbTable::value_type(_code, this));
         _verb_ids.insert(VerbIDTable::value_type(_id, this));
     }