static void node_dot_added_callback (Schematic *schematic, Coords *pos, Sheet *sheet) { NodeItem *node_item; Coords *key; g_return_if_fail (sheet != NULL); g_return_if_fail (IS_SHEET (sheet)); node_item = g_hash_table_lookup (sheet->priv->node_dots, pos); if (node_item == NULL) { node_item = NODE_ITEM (g_object_new (TYPE_NODE_ITEM, NULL)); g_object_set (node_item, "parent", goo_canvas_get_root_item (GOO_CANVAS (sheet)), "x", pos->x, "y", pos->y, NULL); } node_item_show_dot (node_item, TRUE); key = g_new0 (Coords, 1); key->x = pos->x; key->y = pos->y; g_hash_table_insert (sheet->priv->node_dots, key, node_item); }
static void node_item_dispose (GObject *object) { NodeItem *item = NODE_ITEM (object); NodeItemPriv *priv = item->priv; g_clear_object (&(priv->dot_item)); g_clear_object (&(priv->circle_item)); G_OBJECT_CLASS (node_item_parent_class)->dispose (object); }