static void netlist_helper_nl_wire_traverse (Wire *wire, GSList **lst) { GSList *nodes; g_return_if_fail (wire != NULL); g_return_if_fail (IS_WIRE (wire)); if (wire_is_visited (wire)) return; wire_set_visited (wire, TRUE); for (nodes = wire_get_nodes (wire); nodes; nodes = nodes->next) { GSList *pins; Part *part; Node *node = nodes->data; for (pins=node->pins; pins; pins=pins->next) { char *template, *tmp; char **template_split; part = PART (((Pin *)pins->data)->part); tmp = part_get_property (part, "template"); if (!tmp) continue;
static void wire_traverse (Wire *wire) { GSList *iter; g_return_if_fail (wire != NULL); g_return_if_fail (IS_WIRE (wire)); if (wire_is_visited (wire)) return; wire_set_visited (wire, TRUE); g_signal_emit_by_name (wire, "highlight"); for (iter = wire_get_nodes (wire); iter; iter = iter->next) { Node *node = iter->data; node_traverse (node); } }
static void mouse_over_wire_callback (WireItem *item, Sheet *sheet) { GList *iter; Wire *wire; NodeStore *store; if (sheet->state != SHEET_STATE_NONE) return; store = schematic_get_store (schematic_view_get_schematic_from_sheet (sheet)); node_store_node_foreach (store, (GHFunc *)node_foreach_reset, NULL); for (iter = store->wires; iter; iter = iter->next) { wire = iter->data; wire_set_visited (wire, FALSE); } wire = WIRE (sheet_item_get_data (SHEET_ITEM (item))); wire_traverse (wire); }
static void wire_traverse (Wire *wire) { GSList *nodes; g_return_if_fail (wire != NULL); g_return_if_fail (IS_WIRE (wire)); if (wire_is_visited (wire)) return; wire_set_visited (wire, TRUE); g_signal_emit_by_name (wire, "highlight"); for (nodes = wire_get_nodes (wire); nodes; nodes = nodes->next) { Node *node = nodes->data; node_traverse (node); } g_slist_free_full (nodes, g_object_unref); }
static void mouse_over_wire_cb (WireItem *item, SchematicView *sv) { GList *wires; Wire *wire; NodeStore *store; Sheet *sheet; sheet = schematic_view_get_sheet (sv); if (sheet->state != SHEET_STATE_NONE) return; store = schematic_get_store (schematic_view_get_schematic (sv)); node_store_node_foreach (store, (GHFunc *) node_foreach_reset, NULL); for (wires = store->wires; wires; wires = wires->next) { wire = wires->data; wire_set_visited (wire, FALSE); } wire = WIRE (sheet_item_get_data (SHEET_ITEM (item))); wire_traverse (wire); }