summaryrefslogtreecommitdiff
path: root/libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-12-18 06:05:55 +0000
committerDavid Robillard <d@drobilla.net>2007-12-18 06:05:55 +0000
commit35fc31a1de83f59d9b00e92e8e7111865983e378 (patch)
tree2e6a8b2954e27f3fd3186a34e5dbcc2fdcbae208 /libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc
parent0e31c565916508ceb8cb9511299e8439193b8dd1 (diff)
Remove ancient/unused flowcanvas and libglademm from repository.
Update libraries to latest stable released version (except gnomecanvasmm, which is strangely packaged...). Fixes building (at least here). git-svn-id: svn://localhost/ardour2/trunk@2790 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc')
-rw-r--r--libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc46
1 files changed, 25 insertions, 21 deletions
diff --git a/libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc b/libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc
index 55742abf81..62b08cf4b2 100644
--- a/libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc
+++ b/libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc
@@ -140,7 +140,7 @@ void CellRendererToggle_Class::class_init_function(void* g_class, void* class_da
#ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
void CellRendererToggle_Class::toggled_callback(GtkCellRendererToggle* self, const gchar* p0)
{
- CppObjectType *const obj = dynamic_cast<CppObjectType*>(
+ Glib::ObjectBase *const obj_base = static_cast<Glib::ObjectBase*>(
Glib::ObjectBase::_get_current_wrapper((GObject*)self));
// Non-gtkmmproc-generated custom classes implicitly call the default
@@ -148,33 +148,36 @@ void CellRendererToggle_Class::toggled_callback(GtkCellRendererToggle* self, con
// generated classes can use this optimisation, which avoids the unnecessary
// parameter conversions if there is no possibility of the virtual function
// being overridden:
- if(obj && obj->is_derived_())
+ if(obj_base && obj_base->is_derived_())
{
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
- try // Trap C++ exceptions which would normally be lost because this is a C callback.
+ CppObjectType *const obj = dynamic_cast<CppObjectType* const>(obj_base);
+ if(obj) // This can be NULL during destruction.
{
- #endif //GLIBMM_EXCEPTIONS_ENABLED
- // Call the virtual member method, which derived classes might override.
- obj->on_toggled(Glib::convert_const_gchar_ptr_to_ustring(p0)
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ try // Trap C++ exceptions which would normally be lost because this is a C callback.
+ {
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
+ // Call the virtual member method, which derived classes might override.
+ obj->on_toggled(Glib::convert_const_gchar_ptr_to_ustring(p0)
);
- #ifdef GLIBMM_EXCEPTIONS_ENABLED
- }
- catch(...)
- {
- Glib::exception_handlers_invoke();
+ return;
+ #ifdef GLIBMM_EXCEPTIONS_ENABLED
+ }
+ catch(...)
+ {
+ Glib::exception_handlers_invoke();
+ }
+ #endif //GLIBMM_EXCEPTIONS_ENABLED
}
- #endif //GLIBMM_EXCEPTIONS_ENABLED
}
- else
- {
- BaseClassType *const base = static_cast<BaseClassType*>(
+
+ BaseClassType *const base = static_cast<BaseClassType*>(
g_type_class_peek_parent(G_OBJECT_GET_CLASS(self)) // Get the parent class of the object class (The original underlying C class).
);
- // Call the original underlying C function:
- if(base && base->toggled)
- (*base->toggled)(self, p0);
- }
+ // Call the original underlying C function:
+ if(base && base->toggled)
+ (*base->toggled)(self, p0);
}
#endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED
@@ -220,7 +223,8 @@ GType CellRendererToggle::get_base_type()
CellRendererToggle::CellRendererToggle()
:
- Glib::ObjectBase(0), //Mark this class as gtkmmproc-generated, rather than a custom class, to allow vfunc optimisations.
+ // Mark this class as non-derived to allow C++ vfuncs to be skipped.
+ Glib::ObjectBase(0),
Gtk::CellRenderer(Glib::ConstructParams(cellrenderertoggle_class_.init()))
{
}