diff options
| author | MenTaLguY <mental@rydia.net> | 2006-07-29 21:25:37 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-07-29 21:25:37 +0000 |
| commit | 02d3149c468e6d648a84577830577bf638badf69 (patch) | |
| tree | 0fd7beb3f6a722aebcda0c4a50da4cfaa446487c /src/sp-switch.cpp | |
| parent | switch to sigc++ SPObject signals for SPPattern (diff) | |
| download | inkscape-02d3149c468e6d648a84577830577bf638badf69.tar.gz inkscape-02d3149c468e6d648a84577830577bf638badf69.zip | |
switch to sigc++ SPObject signals for SPSwitch
(bzr r1510)
Diffstat (limited to 'src/sp-switch.cpp')
| -rw-r--r-- | src/sp-switch.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp index 65ecc5442..bafb9de18 100644 --- a/src/sp-switch.cpp +++ b/src/sp-switch.cpp @@ -5,6 +5,7 @@ * * Authors: * Andrius R. <knutux@gmail.com> + * MenTaLguY <mental@rydia.net> * * Copyright (C) 2006 authors * @@ -21,6 +22,9 @@ #include "display/nr-arena-group.h" #include "conditions.h" +#include <sigc++/functors/ptr_fun.h> +#include <sigc++/adaptors/bind.h> + static void sp_switch_class_init (SPSwitchClass *klass); static void sp_switch_init (SPSwitch *group); @@ -60,7 +64,7 @@ static void sp_switch_init (SPSwitch *group) group->group = new CSwitch(group); } -CSwitch::CSwitch(SPGroup *group) : CGroup(group), _cached_item(NULL), _release_handler_id(0) { +CSwitch::CSwitch(SPGroup *group) : CGroup(group), _cached_item(NULL) { } CSwitch::~CSwitch() { @@ -133,10 +137,7 @@ void CSwitch::_reevaluate(bool add_to_arena) { } _cached_item = evaluated_child; - _release_handler_id = g_signal_connect( - G_OBJECT(evaluated_child), "release", - G_CALLBACK(&CSwitch::_releaseItem), - this); + _release_connection = evaluated_child->connectRelease(sigc::bind(sigc::ptr_fun(&CSwitch::_releaseItem), this)); _group->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_STYLE_MODIFIED_FLAG); } @@ -151,8 +152,7 @@ void CSwitch::_releaseLastItem(SPObject *obj) if (NULL == _cached_item || _cached_item != obj) return; - g_signal_handler_disconnect(G_OBJECT(_cached_item), _release_handler_id); - _release_handler_id = 0; + _release_connection.disconnect(); _cached_item = NULL; } |
