Merged o_cue_undraw() and o_cue_undraw_complex(). Also added
documentation.
---
gschem/include/prototype.h | 1 -
gschem/src/o_cue.c | 75 +++++++++++++++++++++-----------------------
gschem/src/o_delete.c | 2 +-
3 files changed, 37 insertions(+), 41 deletions(-)
diff --git a/gschem/include/prototype.h b/gschem/include/prototype.h
index 718c530..1bdc549 100644
--- a/gschem/include/prototype.h
+++ b/gschem/include/prototype.h
@@ -562,7 +562,6 @@ void o_cue_draw_lowlevel_midpoints(GSCHEM_TOPLEVEL
*w_current, OBJECT *object);
void o_cue_draw_single(GSCHEM_TOPLEVEL *w_current, OBJECT *object);
void o_cue_erase_single(GSCHEM_TOPLEVEL *w_current, OBJECT *object);
void o_cue_undraw(GSCHEM_TOPLEVEL *w_current, OBJECT *object);
-void o_cue_undraw_complex(GSCHEM_TOPLEVEL *w_current, OBJECT *object);
void o_cue_draw_list(GSCHEM_TOPLEVEL *w_current, GList *object_list);
void o_cue_undraw_list(GSCHEM_TOPLEVEL *w_current, GList *object_list);
void o_cue_undraw_objects(GSCHEM_TOPLEVEL *w_current, OBJECT *list);
diff --git a/gschem/src/o_cue.c b/gschem/src/o_cue.c
index 99c5fec..547d9e9 100644
--- a/gschem/src/o_cue.c
+++ b/gschem/src/o_cue.c
@@ -432,18 +432,21 @@ void o_cue_erase_single(GSCHEM_TOPLEVEL *w_current,
OBJECT *object)
}
}
-/*! \todo Finish function documentation!!!
- * \brief
+/*! \brief Erase the cues of an object and redraw connected objects.
* \par Function Description
+ * This function erases the cues on object \a object. It then redraws
+ * the cues of its connected objects.
*
+ * \param [in] w_current The GSCHEM_TOPLEVEL object.
+ * \param [in] object The object to redraw with no cue.
*/
-void o_cue_undraw(GSCHEM_TOPLEVEL *w_current, OBJECT *object)
+static void o_cue_undraw_lowlevel(GSCHEM_TOPLEVEL *w_current, OBJECT *object)
{
GList *cl_current;
CONN *conn;
-
+
o_cue_erase_single(w_current, object);
-
+
cl_current = object->conn_list;
while(cl_current != NULL) {
conn = (CONN *) cl_current->data;
@@ -454,49 +457,43 @@ void o_cue_undraw(GSCHEM_TOPLEVEL *w_current, OBJECT
*object)
cl_current = g_list_next(cl_current);
}
-
- o_redraw_single(w_current, object);
}
-/*! \brief Undraw complex OBJECT.
+/*! \brief Hide the cues of an object.
* \par Function Description
- * This function undraws complex objects (pass in the GSCHEM_TOPLEVEL object)
+ * This function takes an object and redraws it without its cues. It
+ * also manages the redraw of connected objects.
*
- * \param [in] w_current The GSCHEM_TOPLEVEL object.
- * \param [in] object OBJECT to undraw.
+ * \note
+ * The connections of the object are unchanged by this function.
+ *
+ * \param [in] w_current The GSCHEM_TOPLEVEL object.
+ * \param [in] object The object to redraw with no cue.
*/
-void o_cue_undraw_complex(GSCHEM_TOPLEVEL *w_current, OBJECT *object)
+void o_cue_undraw(GSCHEM_TOPLEVEL *w_current, OBJECT *object)
{
- GList *cl_current;
- CONN *conn;
- OBJECT *o_current;
-
- if (object->type != OBJ_COMPLEX && object->type != OBJ_PLACEHOLDER) {
- return;
- }
-
- o_current = object->complex->prim_objs;
- while(o_current != NULL) {
-
- if (o_current->type == OBJ_PIN || o_current->type == OBJ_NET ||
- o_current->type == OBJ_BUS) {
-
- o_cue_erase_single(w_current, o_current);
-
- cl_current = o_current->conn_list;
- while(cl_current != NULL) {
- conn = (CONN *) cl_current->data;
-
- if (conn->other_object) {
- o_redraw_single(w_current, conn->other_object);
+ switch (object->type) {
+ case OBJ_PIN:
+ case OBJ_NET:
+ case OBJ_BUS:
+ o_cue_undraw_lowlevel (w_current, object);
+ break;
+ case OBJ_COMPLEX:
+ case OBJ_PLACEHOLDER:
+ {
+ OBJECT *o_current;
+ for (o_current = object->complex->prim_objs;
+ o_current != NULL;
+ o_current = o_current->next) {
+ if (o_current->type == OBJ_PIN ||
+ o_current->type == OBJ_NET ||
+ o_current->type == OBJ_BUS) {
+ o_cue_undraw_lowlevel (w_current, o_current);
+ }
}
-
- cl_current = g_list_next(cl_current);
}
- }
- o_current = o_current->next;
}
-
+
o_redraw_single(w_current, object);
}
diff --git a/gschem/src/o_delete.c b/gschem/src/o_delete.c
index 9d9b2dd..3103ef3 100644
--- a/gschem/src/o_delete.c
+++ b/gschem/src/o_delete.c
@@ -121,7 +121,7 @@ void o_delete_complex(GSCHEM_TOPLEVEL *w_current, OBJECT
*obj)
TOPLEVEL *toplevel = w_current->toplevel;
GList *other_objects = NULL;
- o_cue_undraw_complex(w_current, obj);
+ o_cue_undraw(w_current, obj);
o_erase_single(w_current, obj);
other_objects = s_conn_return_complex_others(other_objects, obj);
--
1.5.6
_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev