summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEric Greveson <eric@greveson.co.uk>2013-07-10 10:53:56 +0000
committerEric Greveson <eric@greveson.co.uk>2013-07-10 10:53:56 +0000
commitf01122d8c2a4a697eea3b725cb90740442e171f4 (patch)
treee82369fc947020f42251fd9bf264ba7d7cebf3c0 /src
parentAdded "dbus-name" command line option to allow a D-Bus bus name other than (diff)
parentSmall refactor of align and distribute to reduce complexity. (diff)
downloadinkscape-f01122d8c2a4a697eea3b725cb90740442e171f4.tar.gz
inkscape-f01122d8c2a4a697eea3b725cb90740442e171f4.zip
Merge from trunk
(bzr r12402.1.2)
Diffstat (limited to 'src')
-rw-r--r--src/Makefile_insert1
-rw-r--r--src/document.cpp5
-rw-r--r--src/document.h1
-rw-r--r--src/pixmaps/handles.xpm178
-rw-r--r--src/select-context.cpp28
-rw-r--r--src/seltrans-handles.cpp14
-rw-r--r--src/seltrans-handles.h2
-rw-r--r--src/seltrans.h2
-rw-r--r--src/ui/dialog/align-and-distribute.cpp59
-rw-r--r--src/ui/tool/transform-handle-set.cpp12
-rw-r--r--src/ui/widget/dock.cpp20
-rw-r--r--src/ui/widget/dock.h10
-rw-r--r--src/verbs.cpp12
13 files changed, 95 insertions, 249 deletions
diff --git a/src/Makefile_insert b/src/Makefile_insert
index 023d640ca..88f809b52 100644
--- a/src/Makefile_insert
+++ b/src/Makefile_insert
@@ -21,6 +21,7 @@ ink_common_sources += \
color-profile.cpp color-profile.h \
color-profile-cms-fns.h \
color-rgba.h \
+ colorspace.h \
common-context.cpp common-context.h \
composite-undo-stack-observer.cpp \
composite-undo-stack-observer.h \
diff --git a/src/document.cpp b/src/document.cpp
index 706710cfc..0e9c43fe4 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -611,6 +611,11 @@ Geom::Point SPDocument::getDimensions() const
return Geom::Point(getWidth(), getHeight());
}
+Geom::OptRect SPDocument::preferredBounds() const
+{
+ return Geom::OptRect( Geom::Point(0, 0), getDimensions() );
+}
+
/**
* Given a Geom::Rect that may, for example, correspond to the bbox of an object,
* this function fits the canvas to that rect by resizing the canvas
diff --git a/src/document.h b/src/document.h
index 606a83be8..d49067250 100644
--- a/src/document.h
+++ b/src/document.h
@@ -228,6 +228,7 @@ public:
gdouble getWidth() const;
gdouble getHeight() const;
Geom::Point getDimensions() const;
+ Geom::OptRect preferredBounds() const;
void setWidth(gdouble width, const SPUnit *unit);
void setHeight(gdouble height, const SPUnit *unit);
void requestModified();
diff --git a/src/pixmaps/handles.xpm b/src/pixmaps/handles.xpm
index f2afa026b..b61ad377c 100644
--- a/src/pixmaps/handles.xpm
+++ b/src/pixmaps/handles.xpm
@@ -1,5 +1,5 @@
-/* XPM */
-static char const *handle_scale_nw_xpm[] = {
+/* XPM North-West */
+static char const *handle_scale_xpm[] = {
"13 13 3 1",
" c None",
". c #000000",
@@ -18,28 +18,8 @@ static char const *handle_scale_nw_xpm[] = {
" ....... ",
" "};
-/* XPM */
-static char const *handle_scale_ne_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" ",
-" ....... ",
-" ..+++. ",
-" .++++. ",
-" .+++++. ",
-" . .+++++.. ",
-" ...+++++... ",
-" ..+++++. . ",
-" .+++++. ",
-" .++++. ",
-" .+++.. ",
-" ....... ",
-" "};
-
-/* XPM */
-static char const *handle_scale_h_xpm[] = {
+/* XPM Vertical */
+static char const *handle_stretch_xpm[] = {
"13 13 3 1",
" c None",
". c #000000",
@@ -58,28 +38,8 @@ static char const *handle_scale_h_xpm[] = {
" ",
" "};
-/* XPM */
-static char const *handle_scale_v_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" ... ",
-" ..+.. ",
-" ..+++.. ",
-" ..+++++.. ",
-" .+++. ",
-" .+++. ",
-" .+++. ",
-" ..+++++.. ",
-" ..+++.. ",
-" ..+.. ",
-" ... ",
-" . "};
-
-/* XPM */
-static char const *handle_rotate_nw_xpm[] = {
+/* XPM North-West */
+static char const *handle_rotate_xpm[] = {
"13 13 3 1",
" c None",
". c #000000",
@@ -98,8 +58,8 @@ static char const *handle_rotate_nw_xpm[] = {
" ... ",
" . "};
-/* XPM */
-static char const *handle_rotate_n_xpm[] = {
+/* XPM North */
+static char const *handle_skew_xpm[] = {
"13 13 3 1",
" c None",
". c #000000",
@@ -119,127 +79,6 @@ static char const *handle_rotate_n_xpm[] = {
" "};
/* XPM */
-static char const *handle_rotate_ne_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" .. ",
-" .... ",
-" ..++... ",
-"..++++++. ",
-" .+++++++. ",
-" .+..++++. ",
-" . .+++. ",
-" .+++...",
-" .++++.. ",
-" .++.. ",
-" ... ",
-" . "};
-
-/* XPM */
-static char const *handle_rotate_e_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" ... ",
-" ..+.. ",
-" ..+++.. ",
-" ...+++...",
-" .+++. ",
-" .+++. ",
-" .+++. ",
-" ...+++...",
-" ..+++.. ",
-" ..+.. ",
-" ... ",
-" . "};
-
-/* XPM */
-static char const *handle_rotate_se_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" ... ",
-" .++.. ",
-" .++++.. ",
-" .+++...",
-" . .+++. ",
-" .+..++++. ",
-" .+++++++. ",
-"..++++++. ",
-" ..++... ",
-" .... ",
-" .. ",
-" . "};
-
-
-/* XPM */
-static char const *handle_rotate_s_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" ",
-" ",
-" ",
-" ",
-" . . ",
-" .. .. ",
-" ......... ",
-" ..+++++++.. ",
-"..+++++++++..",
-" ..+++++++.. ",
-" ......... ",
-" .. .. ",
-" . . "};
-
-/* XPM */
-static char const *handle_rotate_sw_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" ... ",
-" ..++. ",
-" ..++++. ",
-"...+++. ",
-" .+++. . ",
-" .++++..+. ",
-" .+++++++. ",
-" .++++++..",
-" ...++.. ",
-" .... ",
-" .. ",
-" . "};
-
-/* XPM */
-static char const *handle_rotate_w_xpm[] = {
-"13 13 3 1",
-" c None",
-". c #000000",
-"+ c #FFFFFF",
-" . ",
-" ... ",
-" ..+.. ",
-" ..+++.. ",
-"...+++... ",
-" .+++. ",
-" .+++. ",
-" .+++. ",
-"...+++. . ",
-" ..+++.. ",
-" ..+.. ",
-" ... ",
-" . "};
-
-/* XPM */
static char const *handle_center_xpm[] = {
"13 13 3 1",
" c None",
@@ -258,3 +97,4 @@ static char const *handle_center_xpm[] = {
" . ",
" . ",
" "};
+
diff --git a/src/select-context.cpp b/src/select-context.cpp
index 3df047368..b4b01bf15 100644
--- a/src/select-context.cpp
+++ b/src/select-context.cpp
@@ -91,6 +91,16 @@ sp_select_context_class_init(SPSelectContextClass *klass)
event_context_class->item_handler = sp_select_context_item_handler;
}
+//Creates rotated variations for handles
+static void
+sp_load_handles(int start, int count, char const **xpm) {
+ handles[start] = gdk_pixbuf_new_from_xpm_data((gchar const **)xpm);
+ for(int i = start + 1; i < start + count; i++) {
+ // We use either the original at *start or previous loop item to rotate
+ handles[i] = gdk_pixbuf_rotate_simple(handles[i-1], GDK_PIXBUF_ROTATE_CLOCKWISE);
+ }
+}
+
static void
sp_select_context_init(SPSelectContext *sc)
{
@@ -111,19 +121,11 @@ sp_select_context_init(SPSelectContext *sc)
CursorSelectMouseover = sp_cursor_new_from_xpm(cursor_select_m_xpm , 1, 1);
CursorSelectDragging = sp_cursor_new_from_xpm(cursor_select_d_xpm , 1, 1);
// selection handles
- handles[0] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_scale_nw_xpm);
- handles[1] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_scale_ne_xpm);
- handles[2] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_scale_h_xpm);
- handles[3] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_scale_v_xpm);
- handles[4] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_nw_xpm);
- handles[5] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_n_xpm);
- handles[6] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_ne_xpm);
- handles[7] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_e_xpm);
- handles[8] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_se_xpm);
- handles[9] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_s_xpm);
- handles[10] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_sw_xpm);
- handles[11] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_rotate_w_xpm);
- handles[12] = gdk_pixbuf_new_from_xpm_data((gchar const **)handle_center_xpm);
+ sp_load_handles(0, 2, handle_scale_xpm);
+ sp_load_handles(2, 2, handle_stretch_xpm);
+ sp_load_handles(4, 4, handle_rotate_xpm);
+ sp_load_handles(8, 4, handle_skew_xpm);
+ sp_load_handles(12, 1, handle_center_xpm);
}
static void
diff --git a/src/seltrans-handles.cpp b/src/seltrans-handles.cpp
index bacb1301e..6dd94d297 100644
--- a/src/seltrans-handles.cpp
+++ b/src/seltrans-handles.cpp
@@ -16,7 +16,7 @@ SPSelTransTypeInfo const handtypes[] = {
SPSelTransHandle const hands[] = {
//center handle will be 0 so we can reference it quickly.
{HANDLE_CENTER, SP_ANCHOR_CENTER, GDK_CROSSHAIR, 12, 0.5, 0.5},
-//handle-type anchor cursor control x y
+//handle-type anchor-nudge cursor image x y
{HANDLE_STRETCH, SP_ANCHOR_S, GDK_TOP_SIDE, 3, 0.5, 1},
{HANDLE_STRETCH, SP_ANCHOR_W, GDK_RIGHT_SIDE, 2, 1, 0.5},
{HANDLE_STRETCH, SP_ANCHOR_N, GDK_BOTTOM_SIDE, 3, 0.5, 0},
@@ -25,14 +25,14 @@ SPSelTransHandle const hands[] = {
{HANDLE_SCALE, SP_ANCHOR_SW, GDK_TOP_RIGHT_CORNER, 1, 1, 1},
{HANDLE_SCALE, SP_ANCHOR_NW, GDK_BOTTOM_RIGHT_CORNER, 0, 1, 0},
{HANDLE_SCALE, SP_ANCHOR_NE, GDK_BOTTOM_LEFT_CORNER, 1, 0, 0},
- {HANDLE_SKEW, SP_ANCHOR_S, GDK_SB_H_DOUBLE_ARROW, 5, 0.5, 1},
- {HANDLE_SKEW, SP_ANCHOR_W, GDK_SB_V_DOUBLE_ARROW, 7, 1, 0.5},
- {HANDLE_SKEW, SP_ANCHOR_N, GDK_SB_H_DOUBLE_ARROW, 9, 0.5, 0},
+ {HANDLE_SKEW, SP_ANCHOR_S, GDK_SB_H_DOUBLE_ARROW, 8, 0.5, 1},
+ {HANDLE_SKEW, SP_ANCHOR_W, GDK_SB_V_DOUBLE_ARROW, 9, 1, 0.5},
+ {HANDLE_SKEW, SP_ANCHOR_N, GDK_SB_H_DOUBLE_ARROW, 10, 0.5, 0},
{HANDLE_SKEW, SP_ANCHOR_E, GDK_SB_V_DOUBLE_ARROW, 11, 0, 0.5},
{HANDLE_ROTATE, SP_ANCHOR_SE, GDK_EXCHANGE, 4, 0, 1},
- {HANDLE_ROTATE, SP_ANCHOR_SW, GDK_EXCHANGE, 6, 1, 1},
- {HANDLE_ROTATE, SP_ANCHOR_NW, GDK_EXCHANGE, 8, 1, 0},
- {HANDLE_ROTATE, SP_ANCHOR_NE, GDK_EXCHANGE, 10, 0, 0},
+ {HANDLE_ROTATE, SP_ANCHOR_SW, GDK_EXCHANGE, 5, 1, 1},
+ {HANDLE_ROTATE, SP_ANCHOR_NW, GDK_EXCHANGE, 6, 1, 0},
+ {HANDLE_ROTATE, SP_ANCHOR_NE, GDK_EXCHANGE, 7, 0, 0},
};
/*
diff --git a/src/seltrans-handles.h b/src/seltrans-handles.h
index 5c3fdd269..740729a6e 100644
--- a/src/seltrans-handles.h
+++ b/src/seltrans-handles.h
@@ -33,7 +33,7 @@ enum SPSelTransType {
};
struct SPSelTransTypeInfo {
- uint const *color;
+ guint32 const *color;
gchar const *tip;
};
// One per handle type in order
diff --git a/src/seltrans.h b/src/seltrans.h
index 667dedaf0..d97375520 100644
--- a/src/seltrans.h
+++ b/src/seltrans.h
@@ -180,7 +180,7 @@ private:
bool _center_is_set; ///< we've already set _center, no need to reread it from items
int _center_handle;
- SPKnot *knots[27]; // Only some as shown at any time
+ SPKnot *knots[NUMHANDS];
SPCanvasItem *_norm;
SPCanvasItem *_grip;
SPCtrlLine *_l[4];
diff --git a/src/ui/dialog/align-and-distribute.cpp b/src/ui/dialog/align-and-distribute.cpp
index 7f88824f7..6a1cfc0ba 100644
--- a/src/ui/dialog/align-and-distribute.cpp
+++ b/src/ui/dialog/align-and-distribute.cpp
@@ -88,23 +88,23 @@ Action::Action(const Glib::ustring &id,
}
-void ActionAlign::do_action(SPDesktop *desktop, int index) {
-
+void ActionAlign::do_action(SPDesktop *desktop, int index)
+{
Inkscape::Selection *selection = sp_desktop_selection(desktop);
if (!selection) return;
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool sel_as_group = prefs->getBool("/dialogs/align/sel-as-groups");
- int prefs_bbox = prefs->getBool("/tools/bounding_box");
using Inkscape::Util::GSListConstIterator;
std::list<SPItem *> selected;
selected.insert<GSListConstIterator<SPItem *> >(selected.end(), selection->itemList(), NULL);
if (selected.empty()) return;
- Geom::Point mp; //Anchor point
+ const Coeffs &a = _allCoeffs[index];
+ Geom::OptRect b = Geom::OptRect();
AlignAndDistribute::AlignTarget target = AlignAndDistribute::getAlignTarget();
- const Coeffs &a= _allCoeffs[index];
+
switch (target)
{
case AlignAndDistribute::LAST:
@@ -132,51 +132,27 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) {
/*if (!sel_as_group) { */
selected.erase(master);
/*}*/
- //Compute the anchor point
- Geom::OptRect b = !prefs_bbox ? thing->desktopVisualBounds() : thing->desktopGeometricBounds();
- if (b) {
- mp = Geom::Point(a.mx0 * b->min()[Geom::X] + a.mx1 * b->max()[Geom::X],
- a.my0 * b->min()[Geom::Y] + a.my1 * b->max()[Geom::Y]);
- } else {
- return;
- }
+ b = thing->desktopPreferredBounds();
break;
}
-
case AlignAndDistribute::PAGE:
- mp = Geom::Point(a.mx1 * sp_desktop_document(desktop)->getWidth(),
- a.my1 * sp_desktop_document(desktop)->getHeight());
+ b = sp_desktop_document(desktop)->preferredBounds();
break;
-
case AlignAndDistribute::DRAWING:
- {
- Geom::OptRect b = !prefs_bbox ? sp_desktop_document(desktop)->getRoot()->desktopVisualBounds()
- : sp_desktop_document(desktop)->getRoot()->desktopGeometricBounds();
- if (b) {
- mp = Geom::Point(a.mx0 * b->min()[Geom::X] + a.mx1 * b->max()[Geom::X],
- a.my0 * b->min()[Geom::Y] + a.my1 * b->max()[Geom::Y]);
- } else {
- return;
- }
+ b = sp_desktop_document(desktop)->getRoot()->desktopPreferredBounds();
break;
- }
-
case AlignAndDistribute::SELECTION:
- {
- Geom::OptRect b = !prefs_bbox ? selection->visualBounds() : selection->geometricBounds();
- if (b) {
- mp = Geom::Point(a.mx0 * b->min()[Geom::X] + a.mx1 * b->max()[Geom::X],
- a.my0 * b->min()[Geom::Y] + a.my1 * b->max()[Geom::Y]);
- } else {
- return;
- }
+ b = selection->preferredBounds();
break;
- }
-
default:
g_assert_not_reached ();
break;
- }; // end of switch
+ };
+
+ g_return_if_fail(b);
+
+ Geom::Point mp = Geom::Point(a.mx0 * b->min()[Geom::X] + a.mx1 * b->max()[Geom::X],
+ a.my0 * b->min()[Geom::Y] + a.my1 * b->max()[Geom::Y]);
// Top hack: temporarily set clone compensation to unmoved, so that we can align/distribute
// clones with their original (and the move of the original does not disturb the
@@ -188,9 +164,8 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) {
prefs->setInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_UNMOVED);
bool changed = false;
- Geom::OptRect b;
if (sel_as_group)
- b = !prefs_bbox ? selection->visualBounds() : selection->geometricBounds();
+ b = selection->preferredBounds();
//Move each item in the selected list separately
for (std::list<SPItem *>::iterator it(selected.begin());
@@ -199,7 +174,7 @@ void ActionAlign::do_action(SPDesktop *desktop, int index) {
{
sp_desktop_document (desktop)->ensureUpToDate();
if (!sel_as_group)
- b = !prefs_bbox ? (*it)->desktopVisualBounds() : (*it)->desktopGeometricBounds();
+ b = (*it)->desktopPreferredBounds();
if (b) {
Geom::Point const sp(a.sx0 * b->min()[Geom::X] + a.sx1 * b->max()[Geom::X],
a.sy0 * b->min()[Geom::Y] + a.sy1 * b->max()[Geom::Y]);
diff --git a/src/ui/tool/transform-handle-set.cpp b/src/ui/tool/transform-handle-set.cpp
index f0bf149f4..30963cabd 100644
--- a/src/ui/tool/transform-handle-set.cpp
+++ b/src/ui/tool/transform-handle-set.cpp
@@ -458,9 +458,9 @@ private:
static Glib::RefPtr<Gdk::Pixbuf> _corner_to_pixbuf(unsigned c) {
sp_select_context_get_type();
switch (c % 4) {
- case 0: return Glib::wrap(handles[10], true);
- case 1: return Glib::wrap(handles[8], true);
- case 2: return Glib::wrap(handles[6], true);
+ case 0: return Glib::wrap(handles[7], true);
+ case 1: return Glib::wrap(handles[6], true);
+ case 2: return Glib::wrap(handles[5], true);
default: return Glib::wrap(handles[4], true);
}
}
@@ -605,9 +605,9 @@ private:
static Glib::RefPtr<Gdk::Pixbuf> _side_to_pixbuf(unsigned s) {
sp_select_context_get_type();
switch (s % 4) {
- case 0: return Glib::wrap(handles[9], true);
- case 1: return Glib::wrap(handles[7], true);
- case 2: return Glib::wrap(handles[5], true);
+ case 0: return Glib::wrap(handles[10], true);
+ case 1: return Glib::wrap(handles[9], true);
+ case 2: return Glib::wrap(handles[8], true);
default: return Glib::wrap(handles[11], true);
}
}
diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp
index 2bfc7e0df..52e9ea605 100644
--- a/src/ui/widget/dock.cpp
+++ b/src/ui/widget/dock.cpp
@@ -48,11 +48,21 @@ const int Dock::_default_dock_bar_width = 36;
Dock::Dock(Gtk::Orientation orientation)
- : _gdl_dock (GDL_DOCK (gdl_dock_new())),
- _gdl_dock_bar (GDL_DOCK_BAR (gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
+ : _gdl_dock(gdl_dock_new()),
+#if WITH_GDL_3_6
+ _gdl_dock_bar(GDL_DOCK_BAR(gdl_dock_bar_new(G_OBJECT(_gdl_dock)))),
+#else
+ _gdl_dock_bar(GDL_DOCK_BAR(gdl_dock_bar_new(GDL_DOCK(_gdl_dock)))),
+#endif
_scrolled_window (Gtk::manage(new Gtk::ScrolledWindow))
{
- gdl_dock_bar_set_orientation(_gdl_dock_bar, static_cast<GtkOrientation>(orientation));
+#if WITH_GDL_3_6
+ gtk_orientable_set_orientation(GTK_ORIENTABLE(_gdl_dock_bar),
+ static_cast<GtkOrientation>(orientation));
+#else
+ gdl_dock_bar_set_orientation(_gdl_dock_bar,
+ static_cast<GtkOrientation>(orientation));
+#endif
#if WITH_GTKMM_3_0
switch(orientation) {
@@ -127,7 +137,9 @@ Dock::~Dock()
void Dock::addItem(DockItem& item, DockItem::Placement placement)
{
_dock_items.push_back(&item);
- gdl_dock_add_item(_gdl_dock, GDL_DOCK_ITEM(item.gobj()), (GdlDockPlacement)placement);
+ gdl_dock_add_item(GDL_DOCK(_gdl_dock),
+ GDL_DOCK_ITEM(item.gobj()),
+ (GdlDockPlacement)placement);
// FIXME: This is a hack to prevent the dock from expanding the main window, this can't be done
// initially as the paned doesn't exist.
diff --git a/src/ui/widget/dock.h b/src/ui/widget/dock.h
index 611c10f46..33e60b836 100644
--- a/src/ui/widget/dock.h
+++ b/src/ui/widget/dock.h
@@ -74,11 +74,11 @@ protected:
/** Interface widgets, will be packed like
* _scrolled_window -> (_dock_box -> (_paned -> (_dock -> _filler) | _dock_bar))
*/
- Gtk::Box *_dock_box;
- Gtk::Paned* _paned;
- GdlDock *_gdl_dock;
- GdlDockBar *_gdl_dock_bar;
- Gtk::VBox _filler;
+ Gtk::Box *_dock_box;
+ Gtk::Paned *_paned;
+ GtkWidget *_gdl_dock;
+ GdlDockBar *_gdl_dock_bar;
+ Gtk::VBox _filler;
Gtk::ScrolledWindow *_scrolled_window;
/** Internal signal handlers */
diff --git a/src/verbs.cpp b/src/verbs.cpp
index 1dae8bcf0..d0396155c 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -2903,7 +2903,17 @@ Verb *Verb::_base_verbs[] = {
N_("Link an ICC color profile"), NULL),
new EditVerb(SP_VERB_EDIT_REMOVE_COLOR_PROFILE, "RemoveColorProfile", N_("Remove Color Profile"),
N_("Remove a linked ICC color profile"), NULL),
-
+ // Scripting
+ new ContextVerb(SP_VERB_EDIT_ADD_EXTERNAL_SCRIPT, "AddExternalScript",
+ N_("Add External Script"), N_("Add an external script"), NULL),
+ new ContextVerb(SP_VERB_EDIT_ADD_EMBEDDED_SCRIPT, "AddEmbeddedScript",
+ N_("Add Embedded Script"), N_("Add an embedded script"), NULL),
+ new ContextVerb(SP_VERB_EDIT_EMBEDDED_SCRIPT, "EditEmbeddedScript",
+ N_("Edit Embedded Script"), N_("Edit an embedded script"), NULL),
+ new ContextVerb(SP_VERB_EDIT_REMOVE_EXTERNAL_SCRIPT, "RemoveExternalScript",
+ N_("Remove External Script"), N_("Remove an external script"), NULL),
+ new ContextVerb(SP_VERB_EDIT_REMOVE_EMBEDDED_SCRIPT, "RemoveEmbeddedScript",
+ N_("Remove Embedded Script"), N_("Remove an embedded script"), NULL),
// Align
new ContextVerb(SP_VERB_ALIGN_HORIZONTAL_RIGHT_TO_ANCHOR, "AlignHorizontalRightToAnchor", N_("Align right edges of objects to the left edge of the anchor"),
N_("Align right edges of objects to the left edge of the anchor"), INKSCAPE_ICON("align-horizontal-right-to-anchor")),