diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2017-07-09 12:42:10 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2017-07-09 12:42:10 +0000 |
| commit | 241554b7ad311b5868ba284c7a4e6a410432b9bd (patch) | |
| tree | 8bf6fed572d27e9b97ca60b90ae1684ba4856eeb /src/ui/widget | |
| parent | Use .xml when exporting shortcuts by default (diff) | |
| parent | Shortcuts: Fix for 7d248fbba5b0c24d9a24cda8c3f2e79f96395553 (is_user_set was ... (diff) | |
| download | inkscape-241554b7ad311b5868ba284c7a4e6a410432b9bd.tar.gz inkscape-241554b7ad311b5868ba284c7a4e6a410432b9bd.zip | |
Merge branch 'master' into shortcuts
Diffstat (limited to 'src/ui/widget')
30 files changed, 178 insertions, 231 deletions
diff --git a/src/ui/widget/addtoicon.cpp b/src/ui/widget/addtoicon.cpp index 70516ed00..e5119fc60 100644 --- a/src/ui/widget/addtoicon.cpp +++ b/src/ui/widget/addtoicon.cpp @@ -16,7 +16,6 @@ #include <gtkmm/icontheme.h> -#include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" #include "layertypeicon.h" @@ -33,7 +32,10 @@ AddToIcon::AddToIcon() : // _property_pixbuf_add(*this, "pixbuf_on", Glib::RefPtr<Gdk::Pixbuf>(0)) { property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; - phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_BUTTON); + + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_BUTTON, &width, &height); + phys = width; // Assumes that we have a square icon? // Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); // @@ -43,8 +45,6 @@ AddToIcon::AddToIcon() : // if (icon_theme->has_icon(_pixAddName)) { // _property_pixbuf_add = icon_theme->load_icon(_pixAddName, phys, (Gtk::IconLookupFlags)0); // } -// -// _property_pixbuf_add = Gtk::Widget:: set_pixbuf(); } @@ -104,8 +104,10 @@ void AddToIcon::set_pixbuf() { bool active = property_active().get_value(); - GdkPixbuf *pixbuf = sp_pixbuf_new(Inkscape::ICON_SIZE_BUTTON, active ? INKSCAPE_ICON("list-add") : INKSCAPE_ICON("edit-delete")); - property_pixbuf() = Glib::wrap(pixbuf); + auto icon_theme = Gtk::IconTheme::get_default(); + + property_pixbuf() = icon_theme->load_icon(active ? "list-add" : "edit-delete", + phys); } diff --git a/src/ui/widget/addtoicon.h b/src/ui/widget/addtoicon.h index 3b2228754..93d66c8d5 100644 --- a/src/ui/widget/addtoicon.h +++ b/src/ui/widget/addtoicon.h @@ -54,7 +54,7 @@ protected: private: - int phys; + int phys; ///< Physical size of the icon (px) // Glib::ustring _pixAddName; diff --git a/src/ui/widget/anchor-selector.cpp b/src/ui/widget/anchor-selector.cpp index 087e7375e..52768b7f1 100644 --- a/src/ui/widget/anchor-selector.cpp +++ b/src/ui/widget/anchor-selector.cpp @@ -8,15 +8,17 @@ */ #include "ui/widget/anchor-selector.h" -#include "widgets/icon.h" #include "ui/icon-names.h" +#include <gtkmm/image.h> + namespace Inkscape { namespace UI { namespace Widget { void AnchorSelector::setupButton(const Glib::ustring& icon, Gtk::ToggleButton& button) { - Gtk::Widget* buttonIcon = Gtk::manage(sp_icon_get_icon(icon, Inkscape::ICON_SIZE_SMALL_TOOLBAR)); + Gtk::Image* buttonIcon = Gtk::manage(new Gtk::Image()); + buttonIcon->set_from_icon_name(icon, Gtk::ICON_SIZE_SMALL_TOOLBAR); buttonIcon->show(); button.set_relief(Gtk::RELIEF_NONE); @@ -26,9 +28,9 @@ void AnchorSelector::setupButton(const Glib::ustring& icon, Gtk::ToggleButton& b } AnchorSelector::AnchorSelector() - : Gtk::Alignment(0.5, 0, 0, 0), - _container() + : _container() { + set_halign(Gtk::ALIGN_CENTER); setupButton(INKSCAPE_ICON("boundingbox_top_left"), _buttons[0]); setupButton(INKSCAPE_ICON("boundingbox_top"), _buttons[1]); setupButton(INKSCAPE_ICON("boundingbox_top_right"), _buttons[2]); diff --git a/src/ui/widget/anchor-selector.h b/src/ui/widget/anchor-selector.h index 96331fae3..e756e9aa0 100644 --- a/src/ui/widget/anchor-selector.h +++ b/src/ui/widget/anchor-selector.h @@ -14,7 +14,7 @@ #include "config.h" #endif -#include <gtkmm/alignment.h> +#include <gtkmm/bin.h> #include <gtkmm/togglebutton.h> #include <gtkmm/grid.h> @@ -22,7 +22,7 @@ namespace Inkscape { namespace UI { namespace Widget { -class AnchorSelector : public Gtk::Alignment +class AnchorSelector : public Gtk::Bin { private: Gtk::ToggleButton _buttons[9]; diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp index a1e3eaf82..eceff13ca 100644 --- a/src/ui/widget/clipmaskicon.cpp +++ b/src/ui/widget/clipmaskicon.cpp @@ -15,7 +15,6 @@ #include <gtkmm/icontheme.h> -#include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" #include "layertypeicon.h" @@ -37,28 +36,15 @@ ClipMaskIcon::ClipMaskIcon() : { property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; - phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); - Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); - if (!icon_theme->has_icon(_pixClipName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixClipName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixMaskName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixMaskName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixBothName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixBothName.data()), Inkscape::ICON_SIZE_DECORATION ); - } + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); + phys = width; - if (icon_theme->has_icon(_pixClipName)) { - _property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixMaskName)) { - _property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixBothName)) { - _property_pixbuf_both = icon_theme->load_icon(_pixBothName, phys, (Gtk::IconLookupFlags)0); - } + Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); + _property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_both = icon_theme->load_icon(_pixBothName, phys, (Gtk::IconLookupFlags)0); property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0); } diff --git a/src/ui/widget/color-icc-selector.cpp b/src/ui/widget/color-icc-selector.cpp index 616e9afa8..f1dd92746 100644 --- a/src/ui/widget/color-icc-selector.cpp +++ b/src/ui/widget/color-icc-selector.cpp @@ -663,6 +663,9 @@ struct _cmp { } }; +template <typename From, typename To> +struct static_caster { To * operator () (From * value) const { return static_cast<To *>(value); } }; + void ColorICCSelectorImpl::_profilesChanged(std::string const &name) { GtkComboBox *combo = GTK_COMBO_BOX(_profileSel); @@ -680,10 +683,15 @@ void ColorICCSelectorImpl::_profilesChanged(std::string const &name) int index = 1; std::vector<SPObject *> current = SP_ACTIVE_DOCUMENT->getResourceList("iccprofile"); - std::set<SPObject *, _cmp> _current(current.begin(), current.end()); - for (std::set<SPObject *, _cmp>::const_iterator it = _current.begin(); it != _current.end(); ++it) { - SPObject *obj = *it; - Inkscape::ColorProfile *prof = reinterpret_cast<Inkscape::ColorProfile *>(obj); + + std::set<Inkscape::ColorProfile *, Inkscape::ColorProfile::pointerComparator> _current; + std::transform(current.begin(), + current.end(), + std::inserter(_current, _current.begin()), + static_caster<SPObject, Inkscape::ColorProfile>()); + + for (auto &it: _current) { + Inkscape::ColorProfile *prof = it; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, 0, gr_ellipsize_text(prof->name, 25).c_str(), 1, prof->name, -1); diff --git a/src/ui/widget/color-notebook.cpp b/src/ui/widget/color-notebook.cpp index 33e22b59d..0c9402c99 100644 --- a/src/ui/widget/color-notebook.cpp +++ b/src/ui/widget/color-notebook.cpp @@ -19,7 +19,6 @@ #include "config.h" #endif -#include "widgets/icon.h" #include <glibmm/i18n.h> #include <gtkmm/label.h> #include <gtkmm/notebook.h> diff --git a/src/ui/widget/color-wheel-selector.cpp b/src/ui/widget/color-wheel-selector.cpp index 4f011c6c3..6bbb8e21d 100644 --- a/src/ui/widget/color-wheel-selector.cpp +++ b/src/ui/widget/color-wheel-selector.cpp @@ -62,7 +62,8 @@ void ColorWheelSelector::_initUI() /* Label */ Gtk::Label *label = Gtk::manage(new Gtk::Label(_("_A:"), true)); - label->set_alignment(1.0, 0.5); + label->set_halign(Gtk::ALIGN_END); + label->set_valign(Gtk::ALIGN_CENTER); label->show(); #if GTK_CHECK_VERSION(3, 12, 0) diff --git a/src/ui/widget/dock-item.cpp b/src/ui/widget/dock-item.cpp index d124854ae..18ab70eb4 100644 --- a/src/ui/widget/dock-item.cpp +++ b/src/ui/widget/dock-item.cpp @@ -12,7 +12,6 @@ #include "desktop.h" #include "inkscape.h" #include "ui/icon-names.h" -#include "widgets/icon.h" #include <gtkmm/icontheme.h> #include <glibmm/exceptionhandler.h> @@ -22,7 +21,7 @@ namespace UI { namespace Widget { DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& long_name, - const Glib::ustring& icon_name, State state, Placement placement) : + const Glib::ustring& icon_name, State state, GdlDockPlacement placement) : _dock(dock), _prev_state(state), _prev_position(0), @@ -43,15 +42,10 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l if (!icon_name.empty()) { Glib::RefPtr<Gtk::IconTheme> iconTheme = Gtk::IconTheme::get_default(); - if (!iconTheme->has_icon(icon_name)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(icon_name.data()), Inkscape::ICON_SIZE_MENU ); - } - if ( iconTheme->has_icon(icon_name) ) { - int width = 0; - int height = 0; - Gtk::IconSize::lookup(Gtk::ICON_SIZE_MENU, width, height); - _icon_pixbuf = iconTheme->load_icon(icon_name, width); - } + int width = 0; + int height = 0; + Gtk::IconSize::lookup(Gtk::ICON_SIZE_MENU, width, height); + _icon_pixbuf = iconTheme->load_icon(icon_name, width); } if ( _icon_pixbuf ) { @@ -74,7 +68,7 @@ DockItem::DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& l signal_delete_event().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::DockItem::_onDeleteEvent)); signal_realize().connect(sigc::mem_fun(*this, &Inkscape::UI::Widget::DockItem::_onRealize)); - _dock.addItem(*this, ( _prev_state == FLOATING_STATE || _prev_state == ICONIFIED_FLOATING_STATE ) ? FLOATING : placement); + _dock.addItem(*this, ( _prev_state == FLOATING_STATE || _prev_state == ICONIFIED_FLOATING_STATE ) ? GDL_DOCK_FLOATING : placement); if (_prev_state == ICONIFIED_FLOATING_STATE || _prev_state == ICONIFIED_DOCKED_STATE) { iconify(); @@ -218,16 +212,16 @@ DockItem::getPrevState() const return _prev_state; } -DockItem::Placement +GdlDockPlacement DockItem::getPlacement() const { - GdlDockPlacement placement = (GdlDockPlacement)TOP; + GdlDockPlacement placement = GDL_DOCK_TOP; GdlDockObject *parent = gdl_dock_object_get_parent_object (GDL_DOCK_OBJECT(_gdl_dock_item)); if (parent) { gdl_dock_object_child_placement(parent, GDL_DOCK_OBJECT(_gdl_dock_item), &placement); } - return (Placement)placement; + return placement; } void @@ -262,7 +256,7 @@ DockItem::present() show(); } // tabbed - else if (getPlacement() == CENTER) { + else if (getPlacement() == GDL_DOCK_CENTER) { int i = gtk_notebook_page_num(GTK_NOTEBOOK(gtk_widget_get_parent(_gdl_dock_item)), GTK_WIDGET (_gdl_dock_item)); if (i >= 0) diff --git a/src/ui/widget/dock-item.h b/src/ui/widget/dock-item.h index 2df45b207..b5f6c13af 100644 --- a/src/ui/widget/dock-item.h +++ b/src/ui/widget/dock-item.h @@ -45,18 +45,8 @@ public: ICONIFIED_DOCKED_STATE, // item iconified in its assigned dock from dock ICONIFIED_FLOATING_STATE}; // item iconified in its assigned dock from float - enum Placement { - NONE = GDL_DOCK_NONE, - TOP = GDL_DOCK_TOP, - BOTTOM = GDL_DOCK_BOTTOM, - RIGHT = GDL_DOCK_RIGHT, - LEFT = GDL_DOCK_LEFT, - CENTER = GDL_DOCK_CENTER, - FLOATING = GDL_DOCK_FLOATING - }; - DockItem(Dock& dock, const Glib::ustring& name, const Glib::ustring& long_name, - const Glib::ustring& icon_name, State state, Placement placement); + const Glib::ustring& icon_name, State state, GdlDockPlacement placement); ~DockItem(); @@ -80,7 +70,7 @@ public: bool isIconified() const; State getState() const; State getPrevState() const; - Placement getPlacement() const; + GdlDockPlacement getPlacement() const; Gtk::Window *getWindow(); //< gives the parent window, if the dock item has one (i.e. it's floating) diff --git a/src/ui/widget/dock.cpp b/src/ui/widget/dock.cpp index b2dec401f..7dfad9582 100644 --- a/src/ui/widget/dock.cpp +++ b/src/ui/widget/dock.cpp @@ -124,12 +124,13 @@ Dock::~Dock() g_free(_gdl_dock_bar); } -void Dock::addItem(DockItem& item, DockItem::Placement placement) +void Dock::addItem(DockItem& item, GdlDockPlacement placement) { _dock_items.push_back(&item); + gdl_dock_add_item(GDL_DOCK(_gdl_dock), GDL_DOCK_ITEM(item.gobj()), - (GdlDockPlacement)placement); + 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 74b072d22..6258a06e3 100644 --- a/src/ui/widget/dock.h +++ b/src/ui/widget/dock.h @@ -37,7 +37,7 @@ public: Dock(Gtk::Orientation orientation=Gtk::ORIENTATION_VERTICAL); ~Dock(); - void addItem(DockItem& item, DockItem::Placement placement); + void addItem(DockItem& item, GdlDockPlacement placement); Gtk::Widget& getWidget(); //< return the top widget Gtk::Paned *getParentPaned(); diff --git a/src/ui/widget/highlight-picker.cpp b/src/ui/widget/highlight-picker.cpp index 561c1332a..3d8ab50ea 100644 --- a/src/ui/widget/highlight-picker.cpp +++ b/src/ui/widget/highlight-picker.cpp @@ -13,7 +13,6 @@ #include "display/cairo-utils.h" #include "highlight-picker.h" -#include "widgets/icon.h" namespace Inkscape { namespace UI { diff --git a/src/ui/widget/imagetoggler.cpp b/src/ui/widget/imagetoggler.cpp index 987cc67bb..a2783ecb1 100644 --- a/src/ui/widget/imagetoggler.cpp +++ b/src/ui/widget/imagetoggler.cpp @@ -13,7 +13,6 @@ #include <gtkmm/icontheme.h> -#include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" @@ -32,23 +31,14 @@ ImageToggler::ImageToggler( char const* on, char const* off) : _property_pixbuf_off(*this, "pixbuf_off", Glib::RefPtr<Gdk::Pixbuf>(0)) { property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; - int phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); - Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); - - if (!icon_theme->has_icon(_pixOnName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixOnName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixOffName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixOffName.data()), Inkscape::ICON_SIZE_DECORATION ); - } + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); + int phys = width; - if (icon_theme->has_icon(_pixOnName)) { - _property_pixbuf_on = icon_theme->load_icon(_pixOnName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixOffName)) { - _property_pixbuf_off = icon_theme->load_icon(_pixOffName, phys, (Gtk::IconLookupFlags)0); - } + Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); + _property_pixbuf_on = icon_theme->load_icon(_pixOnName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_off = icon_theme->load_icon(_pixOffName, phys, (Gtk::IconLookupFlags)0); property_pixbuf() = _property_pixbuf_off.get_value(); } diff --git a/src/ui/widget/insertordericon.cpp b/src/ui/widget/insertordericon.cpp index 7ed1ed2e2..5d1f64a54 100644 --- a/src/ui/widget/insertordericon.cpp +++ b/src/ui/widget/insertordericon.cpp @@ -11,7 +11,6 @@ #include <gtkmm/icontheme.h> -#include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" #include "layertypeicon.h" @@ -31,22 +30,14 @@ InsertOrderIcon::InsertOrderIcon() : { property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; - phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); - Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); - if (!icon_theme->has_icon(_pixTopName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixTopName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixBottomName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixBottomName.data()), Inkscape::ICON_SIZE_DECORATION ); - } + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); + phys=width; - if (icon_theme->has_icon(_pixTopName)) { - _property_pixbuf_top = icon_theme->load_icon(_pixTopName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixBottomName)) { - _property_pixbuf_bottom = icon_theme->load_icon(_pixBottomName, phys, (Gtk::IconLookupFlags)0); - } + Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); + _property_pixbuf_top = icon_theme->load_icon(_pixTopName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_bottom = icon_theme->load_icon(_pixBottomName, phys, (Gtk::IconLookupFlags)0); property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0); } diff --git a/src/ui/widget/labelled.cpp b/src/ui/widget/labelled.cpp index 6e3652830..d3dc6210f 100644 --- a/src/ui/widget/labelled.cpp +++ b/src/ui/widget/labelled.cpp @@ -14,8 +14,7 @@ #include "labelled.h" -/* For getting the Gtkmmified Icon manager */ -#include "widgets/icon.h" +#include <gtkmm/image.h> #include <gtkmm/label.h> namespace Inkscape { @@ -33,8 +32,9 @@ Labelled::Labelled(Glib::ustring const &label, Glib::ustring const &tooltip, { g_assert(g_utf8_validate(icon.c_str(), -1, NULL)); if (icon != "") { - _icon = sp_icon_get_icon(icon.c_str(), Inkscape::ICON_SIZE_LARGE_TOOLBAR); - pack_start(*Gtk::manage(_icon), Gtk::PACK_SHRINK); + _icon = Gtk::manage(new Gtk::Image()); + _icon->set_from_icon_name(icon, Gtk::ICON_SIZE_LARGE_TOOLBAR); + pack_start(*_icon, Gtk::PACK_SHRINK); } pack_start(*Gtk::manage(_label), Gtk::PACK_EXPAND_WIDGET, 6); pack_start(*Gtk::manage(_widget), Gtk::PACK_SHRINK, 6); diff --git a/src/ui/widget/labelled.h b/src/ui/widget/labelled.h index 88eb3ce19..824abf305 100644 --- a/src/ui/widget/labelled.h +++ b/src/ui/widget/labelled.h @@ -14,6 +14,7 @@ #include <gtkmm/box.h> namespace Gtk { +class Image; class Label; } @@ -64,7 +65,7 @@ protected: Gtk::Widget *_widget; Gtk::Label *_label; Gtk::Label *_suffix; - Gtk::Widget *_icon; + Gtk::Image *_icon; }; } // namespace Widget diff --git a/src/ui/widget/layer-selector.cpp b/src/ui/widget/layer-selector.cpp index 4432a6e09..0332143b5 100644 --- a/src/ui/widget/layer-selector.cpp +++ b/src/ui/widget/layer-selector.cpp @@ -31,7 +31,6 @@ #include "util/filter-list.h" #include "util/reverse-list.h" #include "verbs.h" -#include "widgets/icon.h" #include "xml/node-event-vector.h" #include "widgets/gradient-vector.h" @@ -42,17 +41,19 @@ namespace { class AlternateIcons : public Gtk::HBox { public: - AlternateIcons(Inkscape::IconSize size, gchar const *a, gchar const *b) + AlternateIcons(Gtk::IconSize size, Glib::ustring const &a, Glib::ustring const &b) : _a(NULL), _b(NULL) { set_name("AlternateIcons"); - if (a) { - _a = Gtk::manage(sp_icon_get_icon(a, size)); + if (!a.empty()) { + _a = Gtk::manage(new Gtk::Image()); + _a->set_from_icon_name(a, size); _a->set_no_show_all(true); add(*_a); } - if (b) { - _b = Gtk::manage(sp_icon_get_icon(b, size)); + if (!b.empty()) { + _b = Gtk::manage(new Gtk::Image()); + _b->set_from_icon_name(b, size); _b->set_no_show_all(true); add(*_b); } @@ -80,8 +81,8 @@ public: } private: - Gtk::Widget *_a; - Gtk::Widget *_b; + Gtk::Image *_a; + Gtk::Image *_b; bool _state; }; @@ -98,7 +99,7 @@ LayerSelector::LayerSelector(SPDesktop *desktop) set_name("LayerSelector"); AlternateIcons *label; - label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION, + label = Gtk::manage(new AlternateIcons(Gtk::ICON_SIZE_MENU, INKSCAPE_ICON("object-visible"), INKSCAPE_ICON("object-hidden"))); _visibility_toggle.add(*label); _visibility_toggle.signal_toggled().connect( @@ -118,7 +119,7 @@ LayerSelector::LayerSelector(SPDesktop *desktop) _visibility_toggle.set_tooltip_text(_("Toggle current layer visibility")); pack_start(_visibility_toggle, Gtk::PACK_EXPAND_PADDING); - label = Gtk::manage(new AlternateIcons(Inkscape::ICON_SIZE_DECORATION, + label = Gtk::manage(new AlternateIcons(Gtk::ICON_SIZE_MENU, INKSCAPE_ICON("object-unlocked"), INKSCAPE_ICON("object-locked"))); _lock_toggle.add(*label); _lock_toggle.signal_toggled().connect( diff --git a/src/ui/widget/layertypeicon.cpp b/src/ui/widget/layertypeicon.cpp index df85f271a..3a8ffab44 100644 --- a/src/ui/widget/layertypeicon.cpp +++ b/src/ui/widget/layertypeicon.cpp @@ -15,7 +15,6 @@ #include <gtkmm/icontheme.h> -#include "widgets/icon.h" #include "widgets/toolbox.h" #include "ui/icon-names.h" @@ -37,28 +36,14 @@ LayerTypeIcon::LayerTypeIcon() : { property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE; - int phys = sp_icon_get_phys_size((int)Inkscape::ICON_SIZE_DECORATION); - Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); - - if (!icon_theme->has_icon(_pixLayerName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixLayerName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixGroupName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixGroupName.data()), Inkscape::ICON_SIZE_DECORATION ); - } - if (!icon_theme->has_icon(_pixPathName)) { - Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixPathName.data()), Inkscape::ICON_SIZE_DECORATION ); - } + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); + int phys = width; - if (icon_theme->has_icon(_pixLayerName)) { - _property_pixbuf_layer = icon_theme->load_icon(_pixLayerName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixGroupName)) { - _property_pixbuf_group = icon_theme->load_icon(_pixGroupName, phys, (Gtk::IconLookupFlags)0); - } - if (icon_theme->has_icon(_pixPathName)) { - _property_pixbuf_path = icon_theme->load_icon(_pixPathName, phys, (Gtk::IconLookupFlags)0); - } + Glib::RefPtr<Gtk::IconTheme> icon_theme = Gtk::IconTheme::get_default(); + _property_pixbuf_layer = icon_theme->load_icon(_pixLayerName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_group = icon_theme->load_icon(_pixGroupName, phys, (Gtk::IconLookupFlags)0); + _property_pixbuf_path = icon_theme->load_icon(_pixPathName, phys, (Gtk::IconLookupFlags)0); property_pixbuf() = _property_pixbuf_path.get_value(); } diff --git a/src/ui/widget/object-composite-settings.cpp b/src/ui/widget/object-composite-settings.cpp index 1727660c8..ca33a845c 100644 --- a/src/ui/widget/object-composite-settings.cpp +++ b/src/ui/widget/object-composite-settings.cpp @@ -24,7 +24,6 @@ #include "style.h" #include "svg/css-ostringstream.h" #include "verbs.h" -#include "widgets/icon.h" #include "display/sp-canvas.h" #include "ui/widget/style-subject.h" diff --git a/src/ui/widget/object-composite-settings.h b/src/ui/widget/object-composite-settings.h index ae16564e1..d7525093f 100644 --- a/src/ui/widget/object-composite-settings.h +++ b/src/ui/widget/object-composite-settings.h @@ -12,7 +12,6 @@ */ #include <gtkmm/box.h> -#include <gtkmm/alignment.h> #include <gtkmm/adjustment.h> #include <gtkmm/label.h> #include <gtkmm/scale.h> diff --git a/src/ui/widget/page-sizer.cpp b/src/ui/widget/page-sizer.cpp index 081300b9e..bb88536d5 100644 --- a/src/ui/widget/page-sizer.cpp +++ b/src/ui/widget/page-sizer.cpp @@ -374,37 +374,31 @@ PageSizer::PageSizer(Registry & _wr) _marginTable.set_row_spacing(4); _marginTable.set_column_spacing(4); - _marginTopAlign.set_hexpand(); - _marginTopAlign.set_vexpand(); - _marginTable.attach(_marginTopAlign, 0, 0, 2, 1); - - _marginLeftAlign.set_hexpand(); - _marginLeftAlign.set_vexpand(); - _marginTable.attach(_marginLeftAlign, 0, 1, 1, 1); - - _marginRightAlign.set_hexpand(); - _marginRightAlign.set_vexpand(); - _marginTable.attach(_marginRightAlign, 1, 1, 1, 1); - - _marginBottomAlign.set_hexpand(); - _marginBottomAlign.set_vexpand(); - _marginTable.attach(_marginBottomAlign, 0, 2, 2, 1); - - _fitPageButtonAlign.set_hexpand(); - _fitPageButtonAlign.set_vexpand(); - _marginTable.attach(_fitPageButtonAlign, 0, 3, 2, 1); - - _marginTopAlign.set(0.5, 0.5, 0.0, 1.0); - _marginTopAlign.add(_marginTop); - _marginLeftAlign.set(0.0, 0.5, 0.0, 1.0); - _marginLeftAlign.add(_marginLeft); - _marginRightAlign.set(1.0, 0.5, 0.0, 1.0); - _marginRightAlign.add(_marginRight); - _marginBottomAlign.set(0.5, 0.5, 0.0, 1.0); - _marginBottomAlign.add(_marginBottom); + _marginTop.set_halign(Gtk::ALIGN_CENTER); + _marginTop.set_hexpand(); + _marginTop.set_vexpand(); + _marginTable.attach(_marginTop, 0, 0, 2, 1); + + _marginLeft.set_halign(Gtk::ALIGN_START); + _marginLeft.set_hexpand(); + _marginLeft.set_vexpand(); + _marginTable.attach(_marginLeft, 0, 1, 1, 1); + + _marginRight.set_halign(Gtk::ALIGN_END); + _marginRight.set_hexpand(); + _marginRight.set_vexpand(); + _marginTable.attach(_marginRight, 1, 1, 1, 1); + + _marginBottom.set_halign(Gtk::ALIGN_CENTER); + _marginBottom.set_hexpand(); + _marginBottom.set_vexpand(); + _marginTable.attach(_marginBottom, 0, 2, 2, 1); + + _fitPageButton.set_halign(Gtk::ALIGN_CENTER); + _fitPageButton.set_hexpand(); + _fitPageButton.set_vexpand(); + _marginTable.attach(_fitPageButton, 0, 3, 2, 1); - _fitPageButtonAlign.set(0.5, 0.5, 0.0, 1.0); - _fitPageButtonAlign.add(_fitPageButton); _fitPageButton.set_use_underline(); _fitPageButton.set_label(_("_Resize page to drawing or selection (Ctrl+Shift+R)")); _fitPageButton.set_tooltip_text(_("Resize the page to fit the current selection, or the entire drawing if there is no selection")); diff --git a/src/ui/widget/page-sizer.h b/src/ui/widget/page-sizer.h index f1966f848..d0655fb0e 100644 --- a/src/ui/widget/page-sizer.h +++ b/src/ui/widget/page-sizer.h @@ -20,7 +20,6 @@ #include "util/units.h" -#include <gtkmm/alignment.h> #include <gtkmm/expander.h> #include <gtkmm/frame.h> #include <gtkmm/grid.h> @@ -227,15 +226,10 @@ protected: Gtk::Expander _fitPageMarginExpander; Gtk::Grid _marginTable; - Gtk::Alignment _marginTopAlign; - Gtk::Alignment _marginLeftAlign; - Gtk::Alignment _marginRightAlign; - Gtk::Alignment _marginBottomAlign; RegisteredScalar _marginTop; RegisteredScalar _marginLeft; RegisteredScalar _marginRight; RegisteredScalar _marginBottom; - Gtk::Alignment _fitPageButtonAlign; Gtk::Button _fitPageButton; bool _lockMarginUpdate; diff --git a/src/ui/widget/panel.cpp b/src/ui/widget/panel.cpp index dff92594b..9332fe0f9 100644 --- a/src/ui/widget/panel.cpp +++ b/src/ui/widget/panel.cpp @@ -46,7 +46,7 @@ static const int PANEL_SETTING_NEXTFREE = 5; void Panel::prep() { GtkIconSize sizes[] = { - Inkscape::getRegisteredIconSize(Inkscape::ICON_SIZE_DECORATION), + GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_MENU, GTK_ICON_SIZE_SMALL_TOOLBAR, GTK_ICON_SIZE_BUTTON, @@ -270,7 +270,7 @@ void Panel::_init() gint height = 0; gtk_image_set_from_icon_name(_temp_arrow.gobj(), "pan-start-symbolic", - Inkscape::getRegisteredIconSize(Inkscape::ICON_SIZE_SMALL_TOOLBAR)); + GTK_ICON_SIZE_SMALL_TOOLBAR); _menu_popper.add(_temp_arrow); _menu_popper.signal_button_press_event().connect_notify(sigc::mem_fun(*this, &Panel::_popper)); } diff --git a/src/ui/widget/preferences-widget.cpp b/src/ui/widget/preferences-widget.cpp index b2cebcaa6..2981316c0 100644 --- a/src/ui/widget/preferences-widget.cpp +++ b/src/ui/widget/preferences-widget.cpp @@ -16,7 +16,6 @@ #include <gtkmm/box.h> #include <gtkmm/frame.h> -#include <gtkmm/alignment.h> #include <gtkmm/scale.h> #include <gtkmm/table.h> @@ -77,9 +76,7 @@ void DialogPage::add_line(bool indent, if (tip != "") widget.set_tooltip_text (tip); - Gtk::Alignment* label_alignment = Gtk::manage(new Gtk::Alignment()); - - Gtk::HBox* hb = Gtk::manage(new Gtk::HBox()); + auto hb = Gtk::manage(new Gtk::Box()); hb->set_spacing(12); hb->pack_start(widget, expand_widget, expand_widget); @@ -87,11 +84,7 @@ void DialogPage::add_line(bool indent, if (other_widget) hb->pack_start(*other_widget, expand_widget, expand_widget); - // Pack the widget into an alignment container so that it can - // be indented if desired - Gtk::Alignment* w_alignment = Gtk::manage(new Gtk::Alignment()); - w_alignment->add(*hb); - w_alignment->set_valign(Gtk::ALIGN_CENTER); + hb->set_valign(Gtk::ALIGN_CENTER); // Add a label in the first column if provided if (label != "") @@ -100,30 +93,36 @@ void DialogPage::add_line(bool indent, Gtk::ALIGN_CENTER, true)); label_widget->set_mnemonic_widget(widget); - // Pack the label into an alignment container so that we can indent it - // if necessary - label_alignment->add(*label_widget); - - if (indent) - label_alignment->set_padding(0, 0, 12, 0); + if (indent) { +#if WITH_GTKMM_3_12 + label_widget->set_margin_start(12); +#else + label_widget->set_margin_left(12); +#endif + } - label_alignment->set_valign(Gtk::ALIGN_CENTER); - add(*label_alignment); - attach_next_to(*w_alignment, *label_alignment, Gtk::POS_RIGHT, 1, 1); + label_widget->set_valign(Gtk::ALIGN_CENTER); + add(*label_widget); + attach_next_to(*hb, *label_widget, Gtk::POS_RIGHT, 1, 1); } // Now add the widget to the bottom of the dialog if (label == "") { - if (indent) - w_alignment->set_padding(0, 0, 12, 0); + if (indent) { +#if WITH_GTKMM_3_12 + hb->set_margin_start(12); +#else + hb->set_margin_left(12); +#endif + } - add(*w_alignment); + add(*hb); GValue width = G_VALUE_INIT; g_value_init(&width, G_TYPE_INT); g_value_set_int(&width, 2); - gtk_container_child_set_property(GTK_CONTAINER(gobj()), GTK_WIDGET(w_alignment->gobj()), "width", &width); + gtk_container_child_set_property(GTK_CONTAINER(gobj()), GTK_WIDGET(hb->gobj()), "width", &width); } // Add a label on the right of the widget if desired @@ -505,24 +504,21 @@ ZoomCorrRulerSlider::init(int ruler_width, int ruler_height, double lower, doubl _sb.set_increments (step_increment, 0); _sb.set_value (value); _sb.set_digits(2); + _sb.set_halign(Gtk::ALIGN_CENTER); + _sb.set_valign(Gtk::ALIGN_END); _unit.set_data("sensitive", GINT_TO_POINTER(0)); _unit.setUnitType(UNIT_TYPE_LINEAR); _unit.set_data("sensitive", GINT_TO_POINTER(1)); _unit.setUnit(prefs->getString("/options/zoomcorrection/unit")); - - Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0)); - Gtk::Alignment *alignment2 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0)); - alignment1->add(_sb); - alignment2->add(_unit); + _unit.set_halign(Gtk::ALIGN_CENTER); + _unit.set_valign(Gtk::ALIGN_END); auto table = Gtk::manage(new Gtk::Grid()); - table->attach(*_slider, 0, 0, 1, 1); - alignment1->set_halign(Gtk::ALIGN_CENTER); - table->attach(*alignment1, 1, 0, 1, 1); - table->attach(_ruler, 0, 1, 1, 1); - alignment2->set_halign(Gtk::ALIGN_CENTER); - table->attach(*alignment2, 1, 1, 1, 1); + table->attach(*_slider, 0, 0, 1, 1); + table->attach(_sb, 1, 0, 1, 1); + table->attach(_ruler, 0, 1, 1, 1); + table->attach(_unit, 1, 1, 1, 1); pack_start(*table, Gtk::PACK_SHRINK); } @@ -582,15 +578,13 @@ PrefSlider::init(Glib::ustring const &prefs_path, _sb.set_increments (step_increment, 0); _sb.set_value (value); _sb.set_digits(digits); - - Gtk::Alignment *alignment1 = Gtk::manage(new Gtk::Alignment(0.5,1,0,0)); - alignment1->add(_sb); + _sb.set_halign(Gtk::ALIGN_CENTER); + _sb.set_valign(Gtk::ALIGN_END); auto table = Gtk::manage(new Gtk::Grid()); _slider->set_hexpand(); - table->attach(*_slider, 0, 0, 1, 1); - alignment1->set_halign(Gtk::ALIGN_CENTER); - table->attach(*alignment1, 1, 0, 1, 1); + table->attach(*_slider, 0, 0, 1, 1); + table->attach(_sb, 1, 0, 1, 1); this->pack_start(*table, Gtk::PACK_EXPAND_WIDGET); } diff --git a/src/ui/widget/random.cpp b/src/ui/widget/random.cpp index ba3b025ba..237144c7c 100644 --- a/src/ui/widget/random.cpp +++ b/src/ui/widget/random.cpp @@ -15,11 +15,11 @@ #include "random.h" -#include "widgets/icon.h" #include <glibmm/i18n.h> #include <gtkmm/button.h> +#include <gtkmm/image.h> namespace Inkscape { namespace UI { @@ -70,7 +70,8 @@ void Random::setStartSeed(long newseed) void Random::addReseedButton() { - Gtk::Widget* pIcon = Gtk::manage( sp_icon_get_icon( "randomize", Inkscape::ICON_SIZE_BUTTON) ); + Gtk::Image* pIcon = Gtk::manage(new Gtk::Image()); + pIcon->set_from_icon_name( "randomize", Gtk::ICON_SIZE_BUTTON); Gtk::Button * pButton = Gtk::manage(new Gtk::Button()); pButton->set_relief(Gtk::RELIEF_NONE); pIcon->show(); diff --git a/src/ui/widget/registered-widget.cpp b/src/ui/widget/registered-widget.cpp index be677a434..0af5bdba0 100644 --- a/src/ui/widget/registered-widget.cpp +++ b/src/ui/widget/registered-widget.cpp @@ -55,7 +55,11 @@ RegisteredCheckButton::RegisteredCheckButton (const Glib::ustring& label, const Gtk::Label *l = new Gtk::Label (label); l->set_use_underline (true); add (*manage (l)); - set_alignment (right? 1.0 : 0.0, 0.5); + + if(right) set_halign(Gtk::ALIGN_END); + else set_halign(Gtk::ALIGN_START); + + set_valign(Gtk::ALIGN_CENTER); _toggled_connection = signal_toggled().connect (sigc::mem_fun (*this, &RegisteredCheckButton::on_toggled)); } @@ -107,7 +111,11 @@ RegisteredToggleButton::RegisteredToggleButton (const Glib::ustring& /*label*/, init_parent(key, wr, repr_in, doc_in); setProgrammatically = false; set_tooltip_text (tip); - set_alignment (right? 1.0 : 0.0, 0.5); + + if(right) set_halign(Gtk::ALIGN_END); + else set_halign(Gtk::ALIGN_START); + + set_valign(Gtk::ALIGN_CENTER); _toggled_connection = signal_toggled().connect (sigc::mem_fun (*this, &RegisteredToggleButton::on_toggled)); } diff --git a/src/ui/widget/selected-style.cpp b/src/ui/widget/selected-style.cpp index 65d68195c..8ea1e530f 100644 --- a/src/ui/widget/selected-style.cpp +++ b/src/ui/widget/selected-style.cpp @@ -146,11 +146,14 @@ SelectedStyle::SelectedStyle(bool /*layout*/) _drop[0] = _drop[1] = 0; _dropEnabled[0] = _dropEnabled[1] = false; - _fill_label.set_alignment(0.0, 0.5); + _fill_label.set_halign(Gtk::ALIGN_START); + _fill_label.set_valign(Gtk::ALIGN_CENTER); _fill_label.set_padding(0, 0); - _stroke_label.set_alignment(0.0, 0.5); + _stroke_label.set_halign(Gtk::ALIGN_START); + _stroke_label.set_valign(Gtk::ALIGN_CENTER); _stroke_label.set_padding(0, 0); - _opacity_label.set_alignment(0.0, 0.5); + _opacity_label.set_halign(Gtk::ALIGN_START); + _opacity_label.set_valign(Gtk::ALIGN_CENTER); _opacity_label.set_padding(0, 0); _table.set_column_spacing(2); diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp index f8eac1c78..4beb0b323 100644 --- a/src/ui/widget/style-swatch.cpp +++ b/src/ui/widget/style-swatch.cpp @@ -116,13 +116,15 @@ StyleSwatch::StyleSwatch(SPCSSAttr *css, gchar const *main_tip) _label[SS_STROKE].set_markup(_("Stroke:")); for (int i = SS_FILL; i <= SS_STROKE; i++) { - _label[i].set_alignment(0.0, 0.5); + _label[i].set_halign(Gtk::ALIGN_START); + _label[i].set_valign(Gtk::ALIGN_CENTER); _label[i].set_padding(0, 0); _color_preview[i] = new Inkscape::UI::Widget::ColorPreview (0); } - _opacity_value.set_alignment(0.0, 0.5); + _opacity_value.set_halign(Gtk::ALIGN_START); + _opacity_value.set_valign(Gtk::ALIGN_CENTER); _opacity_value.set_padding(0, 0); _table->set_column_spacing(2); diff --git a/src/ui/widget/tolerance-slider.cpp b/src/ui/widget/tolerance-slider.cpp index dea14585d..47e646c34 100644 --- a/src/ui/widget/tolerance-slider.cpp +++ b/src/ui/widget/tolerance-slider.cpp @@ -72,7 +72,8 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la Gtk::Label *theLabel1 = Gtk::manage(new Gtk::Label(label1)); theLabel1->set_use_underline(); - theLabel1->set_alignment(0, 0.5); + theLabel1->set_halign(Gtk::ALIGN_START); + theLabel1->set_valign(Gtk::ALIGN_CENTER); // align the label with the checkbox text above by indenting 22 px. _hbox->pack_start(*theLabel1, Gtk::PACK_EXPAND_WIDGET, 22); @@ -100,9 +101,11 @@ void ToleranceSlider::init (const Glib::ustring& label1, const Glib::ustring& la _button1->set_tooltip_text (tip2); _button2->set_tooltip_text (tip3); _button1->add (*theLabel3); - _button1->set_alignment (0.0, 0.5); + _button1->set_halign(Gtk::ALIGN_START); + _button1->set_valign(Gtk::ALIGN_CENTER); _button2->add (*theLabel2); - _button2->set_alignment (0.0, 0.5); + _button2->set_halign(Gtk::ALIGN_START); + _button2->set_valign(Gtk::ALIGN_CENTER); _vbox->add (*_button1); _vbox->add (*_button2); |
