diff options
author | David Robillard <d@drobilla.net> | 2007-12-18 06:05:55 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-12-18 06:05:55 +0000 |
commit | 35fc31a1de83f59d9b00e92e8e7111865983e378 (patch) | |
tree | 2e6a8b2954e27f3fd3186a34e5dbcc2fdcbae208 /libs/gtkmm2/gtk/gtkmm/cellrenderertoggle.cc | |
parent | 0e31c565916508ceb8cb9511299e8439193b8dd1 (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.cc | 46 |
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())) { } |