summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2019-01-19 13:58:46 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2019-01-19 13:58:46 +0000
commite77e650354daef5ced80adddf6d5a334bb6216d3 (patch)
treeac1237a3194056ac457b5a9a7468b0d61c3a7335 /src/widgets
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-e77e650354daef5ced80adddf6d5a334bb6216d3.tar.gz
inkscape-e77e650354daef5ced80adddf6d5a334bb6216d3.zip
derive all toolbars from Inkscape::Toolbar
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/CMakeLists.txt2
-rw-r--r--src/widgets/sp-widget.cpp322
-rw-r--r--src/widgets/sp-widget.h74
-rw-r--r--src/widgets/spinbutton-events.cpp1
-rw-r--r--src/widgets/stroke-style.h1
-rw-r--r--src/widgets/toolbox.cpp58
-rw-r--r--src/widgets/toolbox.h9
7 files changed, 36 insertions, 431 deletions
diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt
index 5a3b101e5..c41fcdb03 100644
--- a/src/widgets/CMakeLists.txt
+++ b/src/widgets/CMakeLists.txt
@@ -18,7 +18,6 @@ set(widgets_SRC
paint-selector.cpp
sp-attribute-widget.cpp
sp-color-selector.cpp
- sp-widget.cpp
sp-xmlview-tree.cpp
spinbutton-events.cpp
spw-utilities.cpp
@@ -46,7 +45,6 @@ set(widgets_SRC
paint-selector.h
sp-attribute-widget.h
sp-color-selector.h
- sp-widget.h
sp-xmlview-tree.h
spinbutton-events.h
spw-utilities.h
diff --git a/src/widgets/sp-widget.cpp b/src/widgets/sp-widget.cpp
deleted file mode 100644
index 1e82d69ac..000000000
--- a/src/widgets/sp-widget.cpp
+++ /dev/null
@@ -1,322 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-/*
- * Abstract base class for dynamic control widgets
- *
- * Authors:
- * Lauris Kaplinski <lauris@kaplinski.com>
- * bulia byak <buliabyak@users.sf.net>
- * Jon A. Cruz <jon@joncruz.org>
- *
- * Copyright (C) 1999-2002 Lauris Kaplinski
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2012 Authors
- *
- * Released under GNU GPL v2+, read the file 'COPYING' for more information.
- */
-
-#include "document.h"
-#include "inkscape.h"
-#include "sp-widget.h"
-#include "helper/sp-marshal.h"
-
-using Inkscape::SPWidgetImpl;
-
-enum {
- CONSTRUCT,
- MODIFY_SELECTION,
- CHANGE_SELECTION,
- SET_SELECTION,
- LAST_SIGNAL
-};
-
-namespace Inkscape {
-
-class SPWidgetImpl
-{
-public:
- SPWidgetImpl(SPWidget &target);
- ~SPWidgetImpl();
-
- static void dispose(GObject *object);
- static void show(GtkWidget *widget);
- static void hide(GtkWidget *widget);
-
- static void getPreferredWidth(GtkWidget *widget,
- gint *minimal_width,
- gint *natural_width);
-
- static void getPreferredHeight(GtkWidget *widget,
- gint *minimal_height,
- gint *natural_height);
- static gboolean draw(GtkWidget *widget, cairo_t *cr);
-
- static void sizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
- static void modifySelectionCB(Selection *selection, guint flags, SPWidget *spw);
- static void changeSelectionCB(Selection *selection, SPWidget *spw);
- static void setSelectionCB(Selection *selection, SPWidget *spw);
-
- static GtkWidget *constructGlobal(SPWidget *spw);
-
- void modifySelection(Selection *selection, guint flags);
- void changeSelection(Selection *selection);
- void setSelection(Selection *selection);
-
-private:
- SPWidget &_target;
-};
-} // namespace Inkscape
-
-G_DEFINE_TYPE(SPWidget, sp_widget, GTK_TYPE_BIN);
-
-static guint signals[LAST_SIGNAL] = {0};
-
-static void
-sp_widget_class_init(SPWidgetClass *klass)
-{
- GObjectClass *object_class = reinterpret_cast<GObjectClass *>(klass);
- GtkWidgetClass *widget_class = reinterpret_cast<GtkWidgetClass *>(klass);
-
- object_class->dispose = SPWidgetImpl::dispose;
-
- signals[CONSTRUCT] = g_signal_new ("construct",
- G_TYPE_FROM_CLASS(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(SPWidgetClass, construct),
- nullptr, nullptr,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
- signals[CHANGE_SELECTION] = g_signal_new ("change_selection",
- G_TYPE_FROM_CLASS(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(SPWidgetClass, change_selection),
- nullptr, nullptr,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER);
-
- signals[MODIFY_SELECTION] = g_signal_new ("modify_selection",
- G_TYPE_FROM_CLASS(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(SPWidgetClass, modify_selection),
- nullptr, nullptr,
- sp_marshal_VOID__POINTER_UINT,
- G_TYPE_NONE, 2,
- G_TYPE_POINTER, G_TYPE_UINT);
-
- signals[SET_SELECTION] = g_signal_new ("set_selection",
- G_TYPE_FROM_CLASS(object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET(SPWidgetClass, set_selection),
- nullptr, nullptr,
- g_cclosure_marshal_VOID__POINTER,
- G_TYPE_NONE, 1,
- G_TYPE_POINTER);
-
- widget_class->show = SPWidgetImpl::show;
- widget_class->hide = SPWidgetImpl::hide;
- widget_class->get_preferred_width = SPWidgetImpl::getPreferredWidth;
- widget_class->get_preferred_height = SPWidgetImpl::getPreferredHeight;
- widget_class->draw = SPWidgetImpl::draw;
- widget_class->size_allocate = SPWidgetImpl::sizeAllocate;
-}
-
-static void sp_widget_init(SPWidget *spw)
-{
- spw->_impl = new SPWidgetImpl(*spw); // ctor invoked after all other init
-}
-
-namespace Inkscape {
-
-SPWidgetImpl::SPWidgetImpl(SPWidget &target) :
- _target(target)
-{
-}
-
-SPWidgetImpl::~SPWidgetImpl()
-= default;
-
-void SPWidgetImpl::dispose(GObject *object)
-{
- SPWidget *spw = reinterpret_cast<SPWidget *>(object);
-
- // Disconnect signals
- if (Application::exists()) {
- spw->selModified.disconnect();
- spw->selChanged.disconnect();
- spw->selSet.disconnect();
- }
-
- delete spw->_impl;
- spw->_impl = nullptr;
-
- if (G_OBJECT_CLASS(sp_widget_parent_class)->dispose) {
- G_OBJECT_CLASS(sp_widget_parent_class)->dispose(object);
- }
-}
-
-void SPWidgetImpl::show(GtkWidget *widget)
-{
- SPWidget *spw = SP_WIDGET(widget);
-
- if (Application::exists()) {
- // Connect signals
- spw->selModified = INKSCAPE.signal_selection_modified.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw)
- );
- spw->selChanged = INKSCAPE.signal_selection_changed.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw)
- );
- spw->selSet = INKSCAPE.signal_selection_set.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw)
- );
- }
-
- if (GTK_WIDGET_CLASS(sp_widget_parent_class)->show) {
- GTK_WIDGET_CLASS(sp_widget_parent_class)->show(widget);
- }
-}
-
-void SPWidgetImpl::hide(GtkWidget *widget)
-{
- SPWidget *spw = SP_WIDGET (widget);
-
- if (Application::exists()) {
- // Disconnect signals
- spw->selModified.disconnect();
- spw->selChanged.disconnect();
- spw->selSet.disconnect();
- }
-
- if (GTK_WIDGET_CLASS(sp_widget_parent_class)->hide) {
- GTK_WIDGET_CLASS(sp_widget_parent_class)->hide(widget);
- }
-}
-
-gboolean SPWidgetImpl::draw(GtkWidget *widget, cairo_t *cr)
-{
- GtkBin *bin = GTK_BIN(widget);
- GtkWidget *child = gtk_bin_get_child(bin);
-
- if (child) {
- gtk_container_propagate_draw(GTK_CONTAINER(widget), child, cr);
- }
-
- return FALSE;
-}
-
-void SPWidgetImpl::getPreferredWidth(GtkWidget *widget, gint *minimal_width, gint *natural_width)
-{
- GtkBin *bin = GTK_BIN(widget);
- GtkWidget *child = gtk_bin_get_child(bin);
-
- if(child) {
- gtk_widget_get_preferred_width(child, minimal_width, natural_width);
- }
-}
-
-void SPWidgetImpl::getPreferredHeight(GtkWidget *widget, gint *minimal_height, gint *natural_height)
-{
- GtkBin *bin = GTK_BIN(widget);
- GtkWidget *child = gtk_bin_get_child(bin);
-
- if(child) {
- gtk_widget_get_preferred_height(child, minimal_height, natural_height);
- }
-}
-
-void SPWidgetImpl::sizeAllocate(GtkWidget *widget, GtkAllocation *allocation)
-{
- gtk_widget_set_allocation(widget, allocation);
-
- GtkBin *bin = GTK_BIN(widget);
- GtkWidget *child = gtk_bin_get_child(bin);
-
- if (child) {
- gtk_widget_size_allocate(child, allocation);
- }
-}
-
-GtkWidget *SPWidgetImpl::constructGlobal(SPWidget *spw)
-{
- if (gtk_widget_get_visible(GTK_WIDGET(spw))) {
- spw->selModified = INKSCAPE.signal_selection_modified.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::modifySelectionCB), spw)
- );
- spw->selChanged = INKSCAPE.signal_selection_changed.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::changeSelectionCB), spw)
- );
- spw->selSet = INKSCAPE.signal_selection_set.connect(
- sigc::bind(
- sigc::ptr_fun(SPWidgetImpl::setSelectionCB), spw)
- );
- }
-
- g_signal_emit(spw, signals[CONSTRUCT], 0);
-
- return GTK_WIDGET(spw);
-}
-
-void SPWidgetImpl::modifySelectionCB(Selection *selection, guint flags, SPWidget *spw)
-{
- spw->_impl->modifySelection(selection, flags);
-}
-
-void SPWidgetImpl::changeSelectionCB(Selection *selection, SPWidget *spw)
-{
- spw->_impl->changeSelection(selection);
-}
-
-void SPWidgetImpl::setSelectionCB(Selection *selection, SPWidget *spw)
-{
- spw->_impl->setSelection(selection);
-}
-
-void SPWidgetImpl::modifySelection(Selection *selection, guint flags)
-{
- g_signal_emit(&_target, signals[MODIFY_SELECTION], 0, selection, flags);
-}
-
-void SPWidgetImpl::changeSelection(Selection *selection)
-{
- g_signal_emit(&_target, signals[CHANGE_SELECTION], 0, selection);
-}
-
-void SPWidgetImpl::setSelection(Selection *selection)
-{
- // Emit "set_selection" signal
- g_signal_emit(&_target, signals[SET_SELECTION], 0, selection);
- // Inkscape will force "change_selection" anyways
-}
-
-} // namespace Inkscape
-
-// Methods
-
-GtkWidget *sp_widget_new_global()
-{
- SPWidget *spw = reinterpret_cast<SPWidget*>(g_object_new(SP_TYPE_WIDGET, nullptr));
-
- if (!SPWidgetImpl::constructGlobal(spw)) {
- g_object_unref(spw);
- spw = nullptr;
- }
-
- return reinterpret_cast<GtkWidget *>(spw);
-}
-
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/widgets/sp-widget.h b/src/widgets/sp-widget.h
deleted file mode 100644
index 3c08a3a50..000000000
--- a/src/widgets/sp-widget.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-or-later
-#ifndef SEEN_SP_WIDGET_H
-#define SEEN_SP_WIDGET_H
-
-/*
- * Abstract base class for dynamic control widgets
- *
- * Authors:
- * Lauris Kaplinski <lauris@kaplinski.com>
- * Jon A. Cruz <jon@joncruz.org>
- *
- * Copyright (C) 1999-2002 Lauris Kaplinski
- * Copyright (C) 2000-2001 Ximian, Inc.
- * Copyright (C) 2012 Authors
- *
- * Released under GNU GPL v2+, read the file 'COPYING' for more information.
- */
-
-#include <gtk/gtk.h>
-#include "inkscape.h"
-
-#define SP_TYPE_WIDGET (sp_widget_get_type())
-#define SP_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SP_TYPE_WIDGET, SPWidget))
-#define SP_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SP_TYPE_WIDGET, SPWidgetClass))
-#define SP_IS_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SP_TYPE_WIDGET))
-#define SP_IS_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SP_TYPE_WIDGET))
-
-namespace Inkscape {
-
-class Selection;
-class SPWidgetImpl;
-}
-
-struct SPWidget {
- friend class Inkscape::SPWidgetImpl;
-
- static GType getType();
-
- GtkBin bin;
-
- Inkscape::SPWidgetImpl *_impl;
-private:
- sigc::connection selModified;
- sigc::connection selChanged;
- sigc::connection selSet;
-};
-
-struct SPWidgetClass {
- GtkBinClass bin_class;
-
- void (* construct) (SPWidget *spw);
-
- // Selection change handlers
- void (* modify_selection) (SPWidget *spw, Inkscape::Selection *selection, guint flags);
- void (* change_selection) (SPWidget *spw, Inkscape::Selection *selection);
- void (* set_selection) (SPWidget *spw, Inkscape::Selection *selection);
-};
-
-GType sp_widget_get_type();
-
-/** Generic constructor for global widget. */
-GtkWidget *sp_widget_new_global();
-
-#endif // SEEN_SP_WIDGET_H
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :
diff --git a/src/widgets/spinbutton-events.cpp b/src/widgets/spinbutton-events.cpp
index 1ed55f13f..9800cf5fb 100644
--- a/src/widgets/spinbutton-events.cpp
+++ b/src/widgets/spinbutton-events.cpp
@@ -17,7 +17,6 @@
#include "ui/tools/tool-base.h"
-#include "sp-widget.h"
#include "spinbutton-events.h"
gboolean spinbutton_focus_in(GtkWidget *w, GdkEventKey * /*event*/, gpointer /*data*/)
diff --git a/src/widgets/stroke-style.h b/src/widgets/stroke-style.h
index aca20718b..7d06a5173 100644
--- a/src/widgets/stroke-style.h
+++ b/src/widgets/stroke-style.h
@@ -51,7 +51,6 @@
#include "ui/widget/spinbutton.h"
#include "widgets/paint-selector.h"
-#include "widgets/sp-widget.h"
#include "widgets/spw-utilities.h"
#include "widgets/stroke-marker-selector.h"
diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp
index ffc829789..2dd1c57ef 100644
--- a/src/widgets/toolbox.cpp
+++ b/src/widgets/toolbox.cpp
@@ -186,57 +186,57 @@ static struct {
gchar const *type_name;
gchar const *data_name;
GtkWidget *(*create_func)(SPDesktop *desktop);
- void (*prep_func)(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
+ GtkWidget *(*prep_func)(SPDesktop *desktop, GtkActionGroup* mainActions);
gchar const *ui_name;
gint swatch_verb_id;
gchar const *swatch_tool;
gchar const *swatch_tip;
} const aux_toolboxes[] = {
- { "/tools/select", "select_toolbox", nullptr, sp_select_toolbox_prep, "SelectToolbar",
+ { "/tools/select", "select_toolbox", nullptr, Inkscape::UI::Toolbar::SelectToolbar::prep, "SelectToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/nodes", "node_toolbox", nullptr, sp_node_toolbox_prep, "NodeToolbar",
+ { "/tools/nodes", "node_toolbox", nullptr, Inkscape::UI::Toolbar::NodeToolbar::prep, "NodeToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/tweak", "tweak_toolbox", nullptr, sp_tweak_toolbox_prep, "TweakToolbar",
+ { "/tools/tweak", "tweak_toolbox", nullptr, Inkscape::UI::Toolbar::TweakToolbar::prep, "TweakToolbar",
SP_VERB_CONTEXT_TWEAK_PREFS, "/tools/tweak", N_("Color/opacity used for color tweaking")},
- { "/tools/spray", "spray_toolbox", nullptr, sp_spray_toolbox_prep, "SprayToolbar",
+ { "/tools/spray", "spray_toolbox", nullptr, Inkscape::UI::Toolbar::SprayToolbar::prep, "SprayToolbar",
SP_VERB_INVALID, nullptr, nullptr},
{ "/tools/zoom", "zoom_toolbox", Inkscape::UI::Toolbar::ZoomToolbar::create, nullptr, "ZoomToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/measure", "measure_toolbox", nullptr, sp_measure_toolbox_prep, "MeasureToolbar",
+ { "/tools/measure", "measure_toolbox", nullptr, Inkscape::UI::Toolbar::MeasureToolbar::prep, "MeasureToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/shapes/star", "star_toolbox", nullptr, sp_star_toolbox_prep, "StarToolbar",
+ { "/tools/shapes/star", "star_toolbox", nullptr, Inkscape::UI::Toolbar::StarToolbar::prep, "StarToolbar",
SP_VERB_CONTEXT_STAR_PREFS, "/tools/shapes/star", N_("Style of new stars")},
- { "/tools/shapes/rect", "rect_toolbox", nullptr, sp_rect_toolbox_prep, "RectToolbar",
+ { "/tools/shapes/rect", "rect_toolbox", nullptr, Inkscape::UI::Toolbar::RectToolbar::prep, "RectToolbar",
SP_VERB_CONTEXT_RECT_PREFS, "/tools/shapes/rect", N_("Style of new rectangles")},
- { "/tools/shapes/3dbox", "3dbox_toolbox", nullptr, box3d_toolbox_prep, "3DBoxToolbar",
+ { "/tools/shapes/3dbox", "3dbox_toolbox", nullptr, Inkscape::UI::Toolbar::Box3DToolbar::prep, "3DBoxToolbar",
SP_VERB_CONTEXT_3DBOX_PREFS, "/tools/shapes/3dbox", N_("Style of new 3D boxes")},
- { "/tools/shapes/arc", "arc_toolbox", nullptr, sp_arc_toolbox_prep, "ArcToolbar",
+ { "/tools/shapes/arc", "arc_toolbox", nullptr, Inkscape::UI::Toolbar::ArcToolbar::prep, "ArcToolbar",
SP_VERB_CONTEXT_ARC_PREFS, "/tools/shapes/arc", N_("Style of new ellipses")},
- { "/tools/shapes/spiral", "spiral_toolbox", nullptr, sp_spiral_toolbox_prep, "SpiralToolbar",
+ { "/tools/shapes/spiral", "spiral_toolbox", nullptr, Inkscape::UI::Toolbar::SpiralToolbar::prep, "SpiralToolbar",
SP_VERB_CONTEXT_SPIRAL_PREFS, "/tools/shapes/spiral", N_("Style of new spirals")},
- { "/tools/freehand/pencil", "pencil_toolbox", nullptr, sp_pencil_toolbox_prep, "PencilToolbar",
+ { "/tools/freehand/pencil", "pencil_toolbox", nullptr, Inkscape::UI::Toolbar::PencilToolbar::prep_pencil, "PencilToolbar",
SP_VERB_CONTEXT_PENCIL_PREFS, "/tools/freehand/pencil", N_("Style of new paths created by Pencil")},
- { "/tools/freehand/pen", "pen_toolbox", nullptr, sp_pen_toolbox_prep, "PenToolbar",
+ { "/tools/freehand/pen", "pen_toolbox", nullptr, Inkscape::UI::Toolbar::PencilToolbar::prep_pen, "PenToolbar",
SP_VERB_CONTEXT_PEN_PREFS, "/tools/freehand/pen", N_("Style of new paths created by Pen")},
- { "/tools/calligraphic", "calligraphy_toolbox", nullptr, sp_calligraphy_toolbox_prep,"CalligraphyToolbar",
+ { "/tools/calligraphic", "calligraphy_toolbox", nullptr, Inkscape::UI::Toolbar::CalligraphyToolbar::prep,"CalligraphyToolbar",
SP_VERB_CONTEXT_CALLIGRAPHIC_PREFS, "/tools/calligraphic", N_("Style of new calligraphic strokes")},
- { "/tools/eraser", "eraser_toolbox", nullptr, sp_eraser_toolbox_prep,"EraserToolbar",
+ { "/tools/eraser", "eraser_toolbox", nullptr, Inkscape::UI::Toolbar::EraserToolbar::prep,"EraserToolbar",
SP_VERB_CONTEXT_ERASER_PREFS, "/tools/eraser", _("TBD")},
- { "/tools/lpetool", "lpetool_toolbox", nullptr, sp_lpetool_toolbox_prep, "LPEToolToolbar",
+ { "/tools/lpetool", "lpetool_toolbox", nullptr, Inkscape::UI::Toolbar::LPEToolbar::prep, "LPEToolToolbar",
SP_VERB_CONTEXT_LPETOOL_PREFS, "/tools/lpetool", _("TBD")},
// If you change TextToolbar here, change it also in desktop-widget.cpp
- { "/tools/text", "text_toolbox", nullptr, sp_text_toolbox_prep, "TextToolbar",
+ { "/tools/text", "text_toolbox", nullptr, Inkscape::UI::Toolbar::TextToolbar::prep, "TextToolbar",
SP_VERB_INVALID, nullptr, nullptr},
{ "/tools/dropper", "dropper_toolbox", Inkscape::UI::Toolbar::DropperToolbar::create, nullptr, "DropperToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/connector", "connector_toolbox", nullptr, sp_connector_toolbox_prep, "ConnectorToolbar",
+ { "/tools/connector", "connector_toolbox", nullptr, Inkscape::UI::Toolbar::ConnectorToolbar::prep, "ConnectorToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/gradient", "gradient_toolbox", nullptr, sp_gradient_toolbox_prep, "GradientToolbar",
+ { "/tools/gradient", "gradient_toolbox", nullptr, Inkscape::UI::Toolbar::GradientToolbar::prep, "GradientToolbar",
SP_VERB_INVALID, nullptr, nullptr},
- { "/tools/mesh", "mesh_toolbox", nullptr, sp_mesh_toolbox_prep, "MeshToolbar",
+ { "/tools/mesh", "mesh_toolbox", nullptr, Inkscape::UI::Toolbar::MeshToolbar::prep, "MeshToolbar",
SP_VERB_INVALID, nullptr, nullptr},
#if HAVE_POTRACE
- { "/tools/paintbucket", "paintbucket_toolbox", nullptr, sp_paintbucket_toolbox_prep, "PaintbucketToolbar",
+ { "/tools/paintbucket", "paintbucket_toolbox", nullptr, Inkscape::UI::Toolbar::PaintbucketToolbar::prep, "PaintbucketToolbar",
SP_VERB_CONTEXT_PAINTBUCKET_PREFS, "/tools/paintbucket", N_("Style of Paint Bucket fill objects")},
#else
{ "/tools/paintbucket", "paintbucket_toolbox", 0, NULL, "PaintbucketToolbar", SP_VERB_NONE, "/tools/paintbucket", N_("Disabled")},
@@ -401,7 +401,7 @@ void purge_repr_listener( GObject* /*obj*/, GObject* tbl )
}
}
-PrefPusher::PrefPusher( GtkToggleAction *act, Glib::ustring const &path, void (*callback)(GObject*), GObject *cbData ) :
+PrefPusher::PrefPusher( GtkToggleAction *act, Glib::ustring const &path, void (*callback)(gpointer), gpointer cbData ) :
Observer(path),
act(act),
callback(callback),
@@ -714,7 +714,7 @@ EgeAdjustmentAction * create_adjustment_action( gchar const *name,
gchar const *label, gchar const *shortLabel, gchar const *tooltip,
Glib::ustring const &path, gdouble def,
GtkWidget *focusTarget,
- GObject *dataKludge,
+ GObject * /* dataKludge */,
gboolean altx, gchar const *altx_mark,
gdouble lower, gdouble upper, gdouble step, gdouble page,
gchar const** descrLabels, gdouble const* descrValues, guint descrCount,
@@ -732,7 +732,7 @@ EgeAdjustmentAction * create_adjustment_action( gchar const *name,
GtkAdjustment* adj = GTK_ADJUSTMENT( gtk_adjustment_new( prefs->getDouble(path, def) * factor,
lower, upper, step, page, 0 ) );
- g_signal_connect( G_OBJECT(adj), "value-changed", G_CALLBACK(callback), dataKludge );
+// g_signal_connect( G_OBJECT(adj), "value-changed", G_CALLBACK(callback), dataKludge );
EgeAdjustmentAction* act = ege_adjustment_action_new( adj, name, label, tooltip, nullptr, climb, digits, unit_tracker );
if ( shortLabel ) {
@@ -751,11 +751,14 @@ EgeAdjustmentAction * create_adjustment_action( gchar const *name,
g_object_set( G_OBJECT(act), "self-id", altx_mark, NULL );
}
+ /*
+ * TODO: Is this ever used?
if ( dataKludge ) {
// Rather lame, but it's the only place where we need to get the entry name
// but we don't have an Entry
g_object_set_data( dataKludge, prefs->getEntry(path).getEntryName().data(), adj );
}
+ */
if (unit_tracker) {
unit_tracker->addAdjustment(adj);
@@ -1027,12 +1030,11 @@ void setup_aux_toolbox(GtkWidget *toolbox, SPDesktop *desktop)
// that only contains a set of GtkActions. In other
// words, this doesn't actually show anything... it
// just defines behaviour.
- GtkWidget* kludge = gtk_toolbar_new();
+ GtkWidget* kludge = aux_toolboxes[i].prep_func(desktop, mainActions->gobj());
gtk_widget_set_name( kludge, "Kludge" );
- g_object_set_data( G_OBJECT(kludge), "dtw", desktop->canvas);
- g_object_set_data( G_OBJECT(kludge), "desktop", desktop);
+ // g_object_set_data( G_OBJECT(kludge), "dtw", desktop->canvas);
+ // g_object_set_data( G_OBJECT(kludge), "desktop", desktop);
dataHolders[aux_toolboxes[i].type_name] = kludge;
- aux_toolboxes[i].prep_func( desktop, mainActions->gobj(), G_OBJECT(kludge) );
} else {
// For the "create" method, directly create a "real" toolbar,
diff --git a/src/widgets/toolbox.h b/src/widgets/toolbox.h
index 4a61a7892..2236a7ab1 100644
--- a/src/widgets/toolbox.h
+++ b/src/widgets/toolbox.h
@@ -84,7 +84,10 @@ public:
* @param callback function to invoke when changes are pushed.
* @param cbData data to be passed on to the callback function.
*/
- PrefPusher( GtkToggleAction *act, Glib::ustring const &path, void (*callback)(GObject*) = nullptr, GObject *cbData = nullptr );
+ PrefPusher( GtkToggleAction *act,
+ Glib::ustring const & path,
+ void (*callback)(gpointer) = nullptr,
+ gpointer cbData = nullptr );
/**
* Destructor that unregisters the preference callback.
@@ -112,8 +115,8 @@ private:
void handleToggled();
GtkToggleAction *act;
- void (*callback)(GObject*);
- GObject *cbData;
+ void (*callback)(gpointer);
+ gpointer cbData;
bool freeze;
};