static void XawFormRedisplay(Widget w, XEvent *event, Region region) { FormWidget xaw = (FormWidget)w; if (xaw->form.display_list) XawRunDisplayList(w, xaw->form.display_list, event, region); }
static void XawSimpleExpose(Widget w, XEvent *event, Region region) { SimpleWidget xaw = (SimpleWidget)w; if (xaw->simple.display_list) XawRunDisplayList(w, xaw->simple.display_list, event, region); }
/* ARGSUSED */ static void XawTreeRedisplay(Widget gw, XEvent *event, Region region) { TreeWidget tw = (TreeWidget) gw; #ifndef OLDXAW if (tw->tree.display_list) XawRunDisplayList(gw, tw->tree.display_list, event, region); #endif /* * If the Tree widget is visible, visit each managed child. */ if (tw->core.visible) { Cardinal i; int j; Display *dpy = XtDisplay (tw); Window w = XtWindow (tw); for (i = 0; i < tw->composite.num_children; i++) { Widget child = tw->composite.children[i]; TreeConstraints tc = TREE_CONSTRAINT(child); /* * Don't draw lines from the fake tree_root. */ if (child != tw->tree.tree_root && tc->tree.n_children) { int srcx = child->core.x + child->core.border_width; int srcy = child->core.y + child->core.border_width; switch (tw->tree.gravity) { case WestGravity: srcx += child->core.width + child->core.border_width; /* fall through */ case EastGravity: srcy += child->core.height / 2; break; case NorthGravity: srcy += child->core.height + child->core.border_width; /* fall through */ case SouthGravity: srcx += child->core.width / 2; break; } for (j = 0; j < tc->tree.n_children; j++) { Widget k = tc->tree.children[j]; GC gc = (tc->tree.gc ? tc->tree.gc : tw->tree.gc); switch (tw->tree.gravity) { case WestGravity: /* * right center to left center */ XDrawLine (dpy, w, gc, srcx, srcy, (int) k->core.x, (k->core.y + ((int) k->core.border_width) + ((int) k->core.height) / 2)); break; case NorthGravity: /* * bottom center to top center */ XDrawLine (dpy, w, gc, srcx, srcy, (k->core.x + ((int) k->core.border_width) + ((int) k->core.width) / 2), (int) k->core.y); break; case EastGravity: /* * left center to right center */ XDrawLine (dpy, w, gc, srcx, srcy, (k->core.x + (((int) k->core.border_width) << 1) + (int) k->core.width), (k->core.y + ((int) k->core.border_width) + ((int) k->core.height) / 2)); break; case SouthGravity: /* * top center to bottom center */ XDrawLine (dpy, w, gc, srcx, srcy, (k->core.x + ((int) k->core.border_width) + ((int) k->core.width) / 2), (k->core.y + (((int) k->core.border_width) << 1) + (int) k->core.height)); break; } } } } } }