diff options
| author | Alex Valavanis <valavanisalex@gmail.com> | 2012-06-02 12:23:45 +0000 |
|---|---|---|
| committer | Alex Valavanis <valavanisalex@gmail.com> | 2012-06-02 12:23:45 +0000 |
| commit | e7dbdd1fb8aae96ec0e13b9f1672c805122d85ad (patch) | |
| tree | 8c1c320f811f0891f07ca21d4b2e83091ad7eeaa /src/ui | |
| parent | Cairo rendering in filter effects dialog (diff) | |
| download | inkscape-e7dbdd1fb8aae96ec0e13b9f1672c805122d85ad.tar.gz inkscape-e7dbdd1fb8aae96ec0e13b9f1672c805122d85ad.zip | |
Add draw signal in filter effects dialog
(bzr r11453)
Diffstat (limited to 'src/ui')
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.cpp | 16 | ||||
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.h | 5 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index 1ae1791f8..6a6964477 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1452,10 +1452,15 @@ FilterEffectsDialog::PrimitiveList::PrimitiveList(FilterEffectsDialog& d) _in_drag(0), _observer(new Inkscape::XML::SignalObserver) { +#if WITH_GTKMM_3_0 + d.signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw)); + signal_draw().connect(sigc::mem_fun(*this, &PrimitiveList::on_draw)); +#else d.signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal)); + signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal)); +#endif add_events(Gdk::POINTER_MOTION_MASK | Gdk::BUTTON_PRESS_MASK | Gdk::BUTTON_RELEASE_MASK); - signal_expose_event().connect(sigc::mem_fun(*this, &PrimitiveList::on_expose_signal)); _model = Gtk::ListStore::create(_columns); @@ -1612,10 +1617,17 @@ void FilterEffectsDialog::PrimitiveList::remove_selected() } } +#if !WITH_GTKMM_3_0 bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose* e) { Glib::RefPtr<Gdk::Window> win = get_bin_window(); Cairo::RefPtr<Cairo::Context> cr = win->create_cairo_context(); + return on_draw(cr); +} +#endif + +bool FilterEffectsDialog::PrimitiveList::on_draw(const Cairo::RefPtr<Cairo::Context> &cr) +{ cr->set_line_width(1.0); SPFilterPrimitive* prim = get_selected(); @@ -1657,7 +1669,7 @@ bool FilterEffectsDialog::PrimitiveList::on_expose_signal(GdkEventExpose* e) // Check mouse state int mx, my; Gdk::ModifierType mask; - win->get_pointer(mx, my, mask); + get_bin_window()->get_pointer(mx, my, mask); // Outline the bottom of the connection area const int outline_x = x + fheight * (row_count - row_index); diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h index 55fb0b0da..4e75860a5 100644 --- a/src/ui/dialog/filter-effects-dialog.h +++ b/src/ui/dialog/filter-effects-dialog.h @@ -162,7 +162,12 @@ private: int get_input_type_width() const; protected: + bool on_draw(const Cairo::RefPtr<Cairo::Context> &cr); + +#if !WITH_GTKMM_3_0 bool on_expose_signal(GdkEventExpose*); +#endif + bool on_button_press_event(GdkEventButton*); bool on_motion_notify_event(GdkEventMotion*); bool on_button_release_event(GdkEventButton*); |
