static void sp_button_set_action (SPButton *button, SPAction *action) { GtkWidget *child; if (button->action) { nr_active_object_remove_listener_by_data ((NRActiveObject *) button->action, button); nr_object_unref ((NRObject *) button->action); child = gtk_bin_get_child (GTK_BIN (button)); if (child) { gtk_container_remove (GTK_CONTAINER (button), child); } } button->action = action; if (action) { button->action = (SPAction *) nr_object_ref ((NRObject *) action); nr_active_object_add_listener ((NRActiveObject *) action, (NRObjectEventVector *) &button_event_vector, sizeof (SPActionEventVector), button); if (action->image) { child = sp_icon_new (button->lsize, action->image); gtk_widget_show (child); gtk_container_add (GTK_CONTAINER (button), child); } } if (button->tooltips) { sp_button_set_composed_tooltip (button->tooltips, (GtkWidget *) button, action); } }
static void sp_canvas_arena_init (SPCanvasArena *arena) { arena->sticky = FALSE; arena->arena = (NRArena *) nr_object_new (NR_TYPE_ARENA); arena->root = nr_arena_item_new (arena->arena, NR_TYPE_ARENA_GROUP); nr_arena_group_set_transparent (NR_ARENA_GROUP (arena->root), TRUE); arena->active = NULL; #if 0 g_signal_connect (G_OBJECT (arena->arena), "item_added", G_CALLBACK (sp_canvas_arena_item_added), arena); g_signal_connect (G_OBJECT (arena->arena), "remove_item", G_CALLBACK (sp_canvas_arena_remove_item), arena); g_signal_connect (G_OBJECT (arena->arena), "request_update", G_CALLBACK (sp_canvas_arena_request_update), arena); g_signal_connect (G_OBJECT (arena->arena), "request_render", G_CALLBACK (sp_canvas_arena_request_render), arena); #endif nr_active_object_add_listener ((NRActiveObject *) arena->arena, (NRObjectEventVector *) &carenaev, sizeof (carenaev), arena); }