summaryrefslogtreecommitdiffstats
path: root/src/sp-switch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sp-switch.cpp')
-rw-r--r--src/sp-switch.cpp32
1 files changed, 5 insertions, 27 deletions
diff --git a/src/sp-switch.cpp b/src/sp-switch.cpp
index 2c98c54fc..f4c5d8a49 100644
--- a/src/sp-switch.cpp
+++ b/src/sp-switch.cpp
@@ -25,35 +25,11 @@
#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);
-
-static SPGroupClass * parent_class;
-
-GType SPSwitch::getType (void)
-{
- static GType switch_type = 0;
- if (!switch_type) {
- GTypeInfo switch_info = {
- sizeof (SPSwitchClass),
- NULL, /* base_init */
- NULL, /* base_finalize */
- (GClassInitFunc) sp_switch_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (SPSwitch),
- 16, /* n_preallocs */
- (GInstanceInitFunc) sp_switch_init,
- NULL, /* value_table */
- };
- switch_type = g_type_register_static (SP_TYPE_GROUP, "SPSwitch", &switch_info, (GTypeFlags)0);
- }
- return switch_type;
-}
+G_DEFINE_TYPE(SPSwitch, sp_switch, SP_TYPE_GROUP);
static void
-sp_switch_class_init (SPSwitchClass *) {
- parent_class = (SPGroupClass *)g_type_class_ref (SP_TYPE_GROUP);
+sp_switch_class_init (SPSwitchClass *)
+{
}
CSwitch::CSwitch(SPSwitch* sw) : CGroup(sw) {
@@ -66,6 +42,8 @@ CSwitch::~CSwitch() {
static void sp_switch_init (SPSwitch *sw)
{
sw->cswitch = new CSwitch(sw);
+
+ delete sw->cgroup;
sw->cgroup = sw->cswitch;
sw->clpeitem = sw->cswitch;
sw->citem = sw->cswitch;