diff options
| author | Alexander Valavanis <valavanisalex@gmail.com> | 2017-07-10 09:07:06 +0000 |
|---|---|---|
| committer | Alexander Valavanis <valavanisalex@gmail.com> | 2017-07-10 09:07:06 +0000 |
| commit | e2fb05306d07472389c29b6e0564d0b36bfa32a2 (patch) | |
| tree | c5af9addd7b17611830ecc65755860263097b6e2 /src | |
| parent | Merge branch 'master' of gitlab.com:inkscape/inkscape (diff) | |
| download | inkscape-e2fb05306d07472389c29b6e0564d0b36bfa32a2.tar.gz inkscape-e2fb05306d07472389c29b6e0564d0b36bfa32a2.zip | |
Update GtkMenu usage
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.cpp | 39 | ||||
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.h | 8 |
2 files changed, 27 insertions, 20 deletions
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 01d66d588..e515d7ca0 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1294,21 +1294,22 @@ FilterEffectsDialog::LightSourceControl* FilterEffectsDialog::Settings::add_ligh return ls; } -static Glib::RefPtr<Gtk::Menu> create_popup_menu(Gtk::Widget& parent, sigc::slot<void> dup, - sigc::slot<void> rem) +static Gtk::Menu create_popup_menu(Gtk::Widget& parent, + sigc::slot<void> dup, + sigc::slot<void> rem) { - Glib::RefPtr<Gtk::Menu> menu(new Gtk::Menu); + Gtk::Menu menu; Gtk::MenuItem* mi = Gtk::manage(new Gtk::MenuItem(_("_Duplicate"),true)); mi->signal_activate().connect(dup); mi->show(); - menu->append(*mi); + menu.append(*mi); mi = Gtk::manage(new Gtk::MenuItem(_("_Remove"), true)); - menu->append(*mi); + menu.append(*mi); mi->signal_activate().connect(rem); mi->show(); - menu->accelerate(parent); + menu.accelerate(parent); return menu; } @@ -1358,14 +1359,16 @@ FilterEffectsDialog::FilterModifier::FilterModifier(FilterEffectsDialog& d) _cell_toggle.signal_toggled().connect(sigc::mem_fun(*this, &FilterModifier::on_selection_toggled)); _list.signal_button_release_event().connect_notify( sigc::mem_fun(*this, &FilterModifier::filter_list_button_release)); - _menu = create_popup_menu(*this, sigc::mem_fun(*this, &FilterModifier::duplicate_filter), + + _menu = create_popup_menu(*this, + sigc::mem_fun(*this, &FilterModifier::duplicate_filter), sigc::mem_fun(*this, &FilterModifier::remove_filter)); Gtk::MenuItem *item = Gtk::manage(new Gtk::MenuItem(_("R_ename"), true)); item->signal_activate().connect(sigc::mem_fun(*this, &FilterModifier::rename_filter)); item->show(); - _menu->append(*item); - _menu->accelerate(*this); + _menu.append(*item); + _menu.accelerate(*this); _list.get_selection()->signal_changed().connect(sigc::mem_fun(*this, &FilterModifier::on_filter_selection_changed)); _observer->signal_changed().connect(signal_filter_changed().make_slot()); @@ -1613,10 +1616,10 @@ void FilterEffectsDialog::FilterModifier::filter_list_button_release(GdkEventBut { if((event->type == GDK_BUTTON_RELEASE) && (event->button == 3)) { const bool sensitive = get_selected_filter() != NULL; - std::vector<Gtk::Widget*> items = _menu->get_children(); + std::vector<Gtk::Widget*> items = _menu.get_children(); items[0]->set_sensitive(sensitive); items[1]->set_sensitive(sensitive); - _menu->popup(event->button, event->time); + _menu.popup(event->button, event->time); } } @@ -1867,9 +1870,11 @@ void FilterEffectsDialog::PrimitiveList::update() } } -void FilterEffectsDialog::PrimitiveList::set_menu(Glib::RefPtr<Gtk::Menu> menu) +void FilterEffectsDialog::PrimitiveList::set_menu(Gtk::Widget& parent, + sigc::slot<void> dup, + sigc::slot<void> rem) { - _primitive_menu = menu; + _primitive_menu = create_popup_menu(parent, dup, rem); } SPFilterPrimitive* FilterEffectsDialog::PrimitiveList::get_selected() @@ -2470,10 +2475,10 @@ bool FilterEffectsDialog::PrimitiveList::on_button_release_event(GdkEventButton* if((e->type == GDK_BUTTON_RELEASE) && (e->button == 3)) { const bool sensitive = get_selected() != NULL; - std::vector<Gtk::Widget*> items = _primitive_menu->get_children(); + auto items = _primitive_menu.get_children(); items[0]->set_sensitive(sensitive); items[1]->set_sensitive(sensitive); - _primitive_menu->popup(e->button, e->time); + _primitive_menu.popup(e->button, e->time); return true; } @@ -2694,8 +2699,8 @@ FilterEffectsDialog::FilterEffectsDialog() // fr_settings->set_shadow_type(Gtk::SHADOW_NONE); // ((Gtk::Label*)fr_settings->get_label_widget())->set_use_markup(); _add_primitive.signal_clicked().connect(sigc::mem_fun(*this, &FilterEffectsDialog::add_primitive)); - _primitive_list.set_menu(create_popup_menu(*this, sigc::mem_fun(*this, &FilterEffectsDialog::duplicate_primitive), - sigc::mem_fun(_primitive_list, &PrimitiveList::remove_selected))); + _primitive_list.set_menu(*this, sigc::mem_fun(*this, &FilterEffectsDialog::duplicate_primitive), + sigc::mem_fun(_primitive_list, &PrimitiveList::remove_selected)); show_all_children(); init_settings_widgets(); diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h index e410a88f9..5ea9f192b 100644 --- a/src/ui/dialog/filter-effects-dialog.h +++ b/src/ui/dialog/filter-effects-dialog.h @@ -130,7 +130,7 @@ private: Columns _columns; Gtk::CellRendererToggle _cell_toggle; Gtk::Button _add; - Glib::RefPtr<Gtk::Menu> _menu; + Gtk::Menu _menu; sigc::signal<void> _signal_filter_changed; std::unique_ptr<Inkscape::XML::SignalObserver> _observer; }; @@ -192,7 +192,9 @@ private: sigc::signal<void>& signal_primitive_changed(); void update(); - void set_menu(Glib::RefPtr<Gtk::Menu>); + void set_menu(Gtk::Widget &parent, + sigc::slot<void> dup, + sigc::slot<void> rem); SPFilterPrimitive* get_selected(); void select(SPFilterPrimitive *prim); @@ -232,7 +234,7 @@ private: Glib::RefPtr<Gtk::ListStore> _model; PrimitiveColumns _columns; CellRendererConnection _connection_cell; - Glib::RefPtr<Gtk::Menu> _primitive_menu; + Gtk::Menu _primitive_menu; Glib::RefPtr<Pango::Layout> _vertical_layout; int _in_drag; SPFilterPrimitive* _drag_prim; |
