[gtkmm-documentation] Adapt to latest versions of gtk+ and gtkmm (event signals)
- From: Kjell Ahlstedt <kjellahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtkmm-documentation] Adapt to latest versions of gtk+ and gtkmm (event signals)
- Date: Fri, 19 Jan 2018 17:52:42 +0000 (UTC)
commit a298170bf215fa7deb7a9e4d7fcd932080b540f9
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date: Fri Jan 19 18:50:10 2018 +0100
Adapt to latest versions of gtk+ and gtkmm (event signals)
Most event signals have been removed. Use Widget::signal_event() instead.
GtkWidget::event and signal_event() are deprecated. They may soon be
replaced by something else.
.../book/combobox/entry_complex/examplewindow.cc | 23 +++++++++++++-------
.../book/combobox/entry_complex/examplewindow.h | 2 +-
examples/book/combobox/entry_text/examplewindow.cc | 18 +++++++++++----
examples/book/combobox/entry_text/examplewindow.h | 2 +-
examples/book/menus/popup/examplewindow.cc | 11 +++++----
examples/book/menus/popup/examplewindow.h | 2 +-
examples/book/treeview/popup/treeview_withpopup.cc | 11 ++++-----
examples/book/treeview/popup/treeview_withpopup.h | 4 +-
.../others/cellrenderercustom/cellrendererlist.cc | 9 ++++---
.../others/cellrenderercustom/cellrendererlist.h | 2 +-
.../others/cellrenderercustom/cellrendererpopup.cc | 15 +++++++------
.../others/cellrenderercustom/cellrendererpopup.h | 2 +-
12 files changed, 59 insertions(+), 42 deletions(-)
---
diff --git a/examples/book/combobox/entry_complex/examplewindow.cc
b/examples/book/combobox/entry_complex/examplewindow.cc
index 2b4c53c..bf3ea11 100644
--- a/examples/book/combobox/entry_complex/examplewindow.cc
+++ b/examples/book/combobox/entry_complex/examplewindow.cc
@@ -14,6 +14,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+//TODO: Remove this undef when we know what to use instead of signal_event().
+#undef GTKMM_DISABLE_DEPRECATED
+
#include "examplewindow.h"
#include <iostream>
@@ -76,7 +79,7 @@ ExampleWindow::ExampleWindow()
&ExampleWindow::on_entry_changed) );
entry->signal_activate().connect(sigc::mem_fun(*this,
&ExampleWindow::on_entry_activate) );
- m_ConnectionFocusOut = entry->signal_focus_out_event().
+ m_ConnectionFocusOut = entry->signal_event().
connect(sigc::mem_fun(*this, &ExampleWindow::on_entry_focus_out_event), true);
}
else
@@ -85,7 +88,7 @@ ExampleWindow::ExampleWindow()
ExampleWindow::~ExampleWindow()
{
- // The focus_out signal may be emitted while m_Combo is being destructed.
+ // The event signal may be emitted while m_Combo is being destructed.
// The signal handler can generate critical messages, if it's called when
// m_Combo has been partly destructed.
m_ConnectionFocusOut.disconnect();
@@ -111,14 +114,18 @@ void ExampleWindow::on_entry_activate()
}
}
-bool ExampleWindow::on_entry_focus_out_event(const Glib::RefPtr<Gdk::EventFocus>& /* event */)
+bool ExampleWindow::on_entry_focus_out_event(const Glib::RefPtr<Gdk::Event>& event)
{
- auto entry = m_Combo.get_entry();
- if (entry)
+ if (event->get_event_type() == Gdk::Event::Type::FOCUS_CHANGE &&
+ !std::static_pointer_cast<Gdk::EventFocus>(event)->get_focus_in())
{
- std::cout << "on_entry_focus_out_event(): Row=" << m_Combo.get_active_row_number()
- << ", ID=" << entry->get_text() << std::endl;
- return true;
+ auto entry = m_Combo.get_entry();
+ if (entry)
+ {
+ std::cout << "on_entry_focus_out_event(): Row=" << m_Combo.get_active_row_number()
+ << ", ID=" << entry->get_text() << std::endl;
+ return true;
+ }
}
return false;
}
diff --git a/examples/book/combobox/entry_complex/examplewindow.h
b/examples/book/combobox/entry_complex/examplewindow.h
index 622d2b9..98cb6e5 100644
--- a/examples/book/combobox/entry_complex/examplewindow.h
+++ b/examples/book/combobox/entry_complex/examplewindow.h
@@ -31,7 +31,7 @@ protected:
//Signal handlers:
void on_entry_changed();
void on_entry_activate();
- bool on_entry_focus_out_event(const Glib::RefPtr<Gdk::EventFocus>& event);
+ bool on_entry_focus_out_event(const Glib::RefPtr<Gdk::Event>& event);
//Signal connection:
sigc::connection m_ConnectionFocusOut;
diff --git a/examples/book/combobox/entry_text/examplewindow.cc
b/examples/book/combobox/entry_text/examplewindow.cc
index c661b56..04c9631 100644
--- a/examples/book/combobox/entry_text/examplewindow.cc
+++ b/examples/book/combobox/entry_text/examplewindow.cc
@@ -14,6 +14,9 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+//TODO: Remove this undef when we know what to use instead of signal_event().
+#undef GTKMM_DISABLE_DEPRECATED
+
#include "examplewindow.h"
#include <iostream>
@@ -39,7 +42,7 @@ ExampleWindow::ExampleWindow()
{
entry->signal_activate().connect(sigc::mem_fun(*this,
&ExampleWindow::on_entry_activate) );
- m_ConnectionFocusOut = entry->signal_focus_out_event().
+ m_ConnectionFocusOut = entry->signal_event().
connect(sigc::mem_fun(*this, &ExampleWindow::on_entry_focus_out_event),true);
}
else
@@ -68,9 +71,14 @@ void ExampleWindow::on_entry_activate()
<< ", Text=" << m_Combo.get_active_text() << std::endl;
}
-bool ExampleWindow::on_entry_focus_out_event(const Glib::RefPtr<Gdk::EventFocus>& /* event */)
+bool ExampleWindow::on_entry_focus_out_event(const Glib::RefPtr<Gdk::Event>& event)
{
- std::cout << "on_entry_focus_out_event(): Row=" << m_Combo.get_active_row_number()
- << ", Text=" << m_Combo.get_active_text() << std::endl;
- return true;
+ if (event->get_event_type() == Gdk::Event::Type::FOCUS_CHANGE &&
+ !std::static_pointer_cast<Gdk::EventFocus>(event)->get_focus_in())
+ {
+ std::cout << "on_entry_focus_out_event(): Row=" << m_Combo.get_active_row_number()
+ << ", Text=" << m_Combo.get_active_text() << std::endl;
+ return true;
+ }
+ return false;
}
diff --git a/examples/book/combobox/entry_text/examplewindow.h
b/examples/book/combobox/entry_text/examplewindow.h
index cd8f707..e7370ad 100644
--- a/examples/book/combobox/entry_text/examplewindow.h
+++ b/examples/book/combobox/entry_text/examplewindow.h
@@ -30,7 +30,7 @@ protected:
//Signal handlers:
void on_combo_changed();
void on_entry_activate();
- bool on_entry_focus_out_event(const Glib::RefPtr<Gdk::EventFocus>& event);
+ bool on_entry_focus_out_event(const Glib::RefPtr<Gdk::Event>& event);
//Signal connection:
sigc::connection m_ConnectionFocusOut;
diff --git a/examples/book/menus/popup/examplewindow.cc b/examples/book/menus/popup/examplewindow.cc
index b0f632c..f4da415 100644
--- a/examples/book/menus/popup/examplewindow.cc
+++ b/examples/book/menus/popup/examplewindow.cc
@@ -14,7 +14,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-//TODO: Remove this undef when we know what to use instead of signal_button_press_event().
+//TODO: Remove this undef when we know what to use instead of signal_event().
#undef GTKMM_DISABLE_DEPRECATED
#include "examplewindow.h"
@@ -32,8 +32,8 @@ ExampleWindow::ExampleWindow()
// Catch button_press events:
m_Box.pack_start(m_Label, Gtk::PackOptions::EXPAND_WIDGET);
- m_Label.signal_button_press_event().connect(sigc::mem_fun(*this,
- &ExampleWindow::on_button_press_event), true);
+ m_Label.signal_event().connect(sigc::mem_fun(*this,
+ &ExampleWindow::on_label_button_press_event), true);
//Create actions:
@@ -111,9 +111,10 @@ void ExampleWindow::on_menu_file_popup_generic()
std::cout << "A popup menu item was selected." << std::endl;
}
-bool ExampleWindow::on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& button_event)
+bool ExampleWindow::on_label_button_press_event(const Glib::RefPtr<Gdk::Event>& event)
{
- if (button_event->shall_trigger_context_menu())
+ if (event->get_event_type() == Gdk::Event::Type::BUTTON_PRESS &&
+ std::static_pointer_cast<Gdk::EventButton>(event)->shall_trigger_context_menu())
{
if (m_pMenuPopup && !m_pMenuPopup->get_attach_widget())
m_pMenuPopup->attach_to_widget(*this);
diff --git a/examples/book/menus/popup/examplewindow.h b/examples/book/menus/popup/examplewindow.h
index e6d7017..35e22f0 100644
--- a/examples/book/menus/popup/examplewindow.h
+++ b/examples/book/menus/popup/examplewindow.h
@@ -27,7 +27,7 @@ public:
protected:
//Signal handlers:
- bool on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& button_event) override;
+ bool on_label_button_press_event(const Glib::RefPtr<Gdk::Event>& event);
void on_menu_file_popup_generic();
diff --git a/examples/book/treeview/popup/treeview_withpopup.cc
b/examples/book/treeview/popup/treeview_withpopup.cc
index b934a7c..456b35c 100644
--- a/examples/book/treeview/popup/treeview_withpopup.cc
+++ b/examples/book/treeview/popup/treeview_withpopup.cc
@@ -63,17 +63,16 @@ TreeView_WithPopup::~TreeView_WithPopup()
{
}
-bool TreeView_WithPopup::on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& button_event)
+bool TreeView_WithPopup::on_event(const Glib::RefPtr<Gdk::Event>& event)
{
- bool return_value = false;
-
//Call base class, to allow normal handling,
//such as allowing the row to be selected by the right-click:
- return_value = TreeView::on_button_press_event(button_event);
+ const bool return_value = TreeView::on_event(event);
//Then do our custom stuff:
- if (button_event->shall_trigger_context_menu())
- m_Menu_Popup.popup_at_pointer(button_event);
+ if (event->get_event_type() == Gdk::Event::Type::BUTTON_PRESS &&
+ std::static_pointer_cast<Gdk::EventButton>(event)->shall_trigger_context_menu())
+ m_Menu_Popup.popup_at_pointer(event);
return return_value;
}
diff --git a/examples/book/treeview/popup/treeview_withpopup.h
b/examples/book/treeview/popup/treeview_withpopup.h
index c445fc2..3879098 100644
--- a/examples/book/treeview/popup/treeview_withpopup.h
+++ b/examples/book/treeview/popup/treeview_withpopup.h
@@ -27,8 +27,8 @@ public:
protected:
// Override Signal handler:
- // Alternatively, use signal_button_press_event().connect_notify()
- bool on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& button_event) override;
+ // Alternatively, use signalevent().connect_notify()
+ bool on_event(const Glib::RefPtr<Gdk::Event>& event) override;
//Signal handler for popup menu items:
void on_menu_file_popup_generic();
diff --git a/examples/others/cellrenderercustom/cellrendererlist.cc
b/examples/others/cellrenderercustom/cellrendererlist.cc
index a6392db..baf57cc 100644
--- a/examples/others/cellrenderercustom/cellrendererlist.cc
+++ b/examples/others/cellrenderercustom/cellrendererlist.cc
@@ -14,7 +14,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-//TODO: Remove this undef when we know what to use instead of signal_button_release_event().
+//TODO: Remove this undef when we know what to use instead of signal_event().
#undef GTKMM_DISABLE_DEPRECATED
#include <gtkmm.h>
@@ -49,7 +49,7 @@ CellRendererList::CellRendererList()
{
tree_view_.set_headers_visible(false);
tree_view_.append_column("", popup_columns().item);
- tree_view_.signal_button_release_event().connect(
+ tree_view_.signal_event().connect(
sigc::mem_fun(*this, &Self::on_tree_view_button_release_event), true);
const auto selection = tree_view_.get_selection();
@@ -91,9 +91,10 @@ void CellRendererList::on_show_popup(const Glib::ustring& path, int x1, int y1,
CellRendererPopup::on_show_popup(path, x1, y1, x2, y2);
}
-bool CellRendererList::on_tree_view_button_release_event(const Glib::RefPtr<Gdk::EventButton>& event)
+bool CellRendererList::on_tree_view_button_release_event(const Glib::RefPtr<Gdk::Event>& event)
{
- if (event->get_button() == 1)
+ if (event->get_event_type() == Gdk::Event::Type::BUTTON_RELEASE &&
+ std::static_pointer_cast<Gdk::EventButton>(event)->get_button() == 1)
{
hide_popup();
return true;
diff --git a/examples/others/cellrenderercustom/cellrendererlist.h
b/examples/others/cellrenderercustom/cellrendererlist.h
index e525d00..20ca267 100644
--- a/examples/others/cellrenderercustom/cellrendererlist.h
+++ b/examples/others/cellrenderercustom/cellrendererlist.h
@@ -38,7 +38,7 @@ private:
Glib::RefPtr<Gtk::ListStore> list_store_;
Gtk::TreeView tree_view_;
- bool on_tree_view_button_release_event(const Glib::RefPtr<Gdk::EventButton>& event);
+ bool on_tree_view_button_release_event(const Glib::RefPtr<Gdk::Event>& event);
void on_tree_selection_changed();
};
diff --git a/examples/others/cellrenderercustom/cellrendererpopup.cc
b/examples/others/cellrenderercustom/cellrendererpopup.cc
index 90e8921..1910619 100644
--- a/examples/others/cellrenderercustom/cellrendererpopup.cc
+++ b/examples/others/cellrenderercustom/cellrendererpopup.cc
@@ -14,7 +14,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-//TODO: Remove this undef when we know what to use instead of signal_button_press_event().
+//TODO: Remove this undef when we know what to use instead of signal_event().
#undef GTKMM_DISABLE_DEPRECATED
#include <gtkmm.h>
@@ -58,9 +58,9 @@ CellRendererPopup::CellRendererPopup()
signal_show_popup_.connect(sigc::mem_fun(*this, &Self::on_show_popup));
signal_hide_popup_.connect(sigc::mem_fun(*this, &Self::on_hide_popup));
- popup_window_.signal_button_press_event().connect(sigc::mem_fun(*this, &Self::on_button_press_event),
true);
- popup_window_.signal_key_press_event ().connect(sigc::mem_fun(*this, &Self::on_key_press_event), true);
- popup_window_.signal_style_updated ().connect(sigc::mem_fun(*this, &Self::on_style_updated));
+ popup_window_.signal_event().connect(sigc::mem_fun(*this, &Self::on_button_press_event), true);
+ popup_window_.signal_key_press_event().connect(sigc::mem_fun(*this, &Self::on_key_press_event), true);
+ popup_window_.signal_style_updated().connect(sigc::mem_fun(*this, &Self::on_style_updated));
}
CellRendererPopup::~CellRendererPopup()
@@ -226,16 +226,17 @@ void CellRendererPopup::on_hide_popup()
editing_canceled_ = false;
}
-bool CellRendererPopup::on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& event)
+bool CellRendererPopup::on_button_press_event(const Glib::RefPtr<Gdk::Event>& event)
{
- if (event->get_button() != 1)
+ if (!(event->get_event_type() == Gdk::Event::Type::BUTTON_PRESS &&
+ std::static_pointer_cast<Gdk::EventButton>(event)->get_button() == 1))
return false;
// If the event happened outside the popup, cancel editing.
double x = 0.0;
double y = 0.0;
- event->get_root_coords(x, y);
+ std::static_pointer_cast<Gdk::EventButton>(event)->get_root_coords(x, y);
int xoffset = 0, yoffset = 0;
popup_window_.get_window()->get_root_origin(xoffset, yoffset);
diff --git a/examples/others/cellrenderercustom/cellrendererpopup.h
b/examples/others/cellrenderercustom/cellrendererpopup.h
index 23642f6..2f41b86 100644
--- a/examples/others/cellrenderercustom/cellrendererpopup.h
+++ b/examples/others/cellrenderercustom/cellrendererpopup.h
@@ -70,7 +70,7 @@ private:
bool shown_;
bool editing_canceled_;
- bool on_button_press_event(const Glib::RefPtr<Gdk::EventButton>& event);
+ bool on_button_press_event(const Glib::RefPtr<Gdk::Event>& event);
bool on_key_press_event(const Glib::RefPtr<Gdk::EventKey>& event);
void on_style_updated();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]