static AtkObject* goo_canvas_item_accessible_ref_child (AtkObject *accessible, gint child_num) { GooCanvasItem *item, *child; AtkObject *atk_object; GObject *object; g_return_val_if_fail (GOO_IS_CANVAS_ITEM_ACCESSIBLE (accessible), NULL); object = atk_gobject_accessible_get_object (ATK_GOBJECT_ACCESSIBLE (accessible)); if (object == NULL) return NULL; item = GOO_CANVAS_ITEM (object); child = goo_canvas_item_get_child (item, child_num); if (!child) return NULL; atk_object = atk_gobject_accessible_for_object (G_OBJECT (child)); g_object_ref (atk_object); return atk_object; }
void canvas_t::move_background(int x, int y) { canvas_goocanvas *gcanvas = static_cast<canvas_goocanvas *>(this); GooCanvasItem *bgitem = goo_canvas_item_get_child(gcanvas->group[CANVAS_GROUP_BG], 0); assert(bgitem != nullptr); g_object_set(G_OBJECT(bgitem), "x", static_cast<gdouble>(x) / gcanvas->bg.scale.x, "y", static_cast<gdouble>(y) / gcanvas->bg.scale.y, nullptr); }
/* * This does the moves of the game items on the play canvas * */ static gint planegame_move_items (GtkWidget *widget, gpointer data) { int i; /* Check collision with each cloud */ for(i = 0; i < goo_canvas_item_get_n_children(clouds_rootitem); i++) planegame_cloud_colision(goo_canvas_item_get_child(clouds_rootitem, i)); /* move the plane */ planegame_move_plane(planeitem); planemove_id = g_timeout_add (speed, (GtkFunction) planegame_move_items, NULL); return(FALSE); }