/* ARGSUSED */ static void LoseSelection(Widget w, Atom selection) { BitmapWidget BW = (BitmapWidget) w; if (DEBUG) fprintf(stderr, "Lost Selection\n"); BW->bitmap.selection.own = False; BWUnmark(w); }
void BWMark(Widget w, Position from_x, Position from_y, Position to_x, Position to_y) { BitmapWidget BW = (BitmapWidget) w; BWUnmark(w); if (QuerySet(from_x, from_y)) { if ((from_x == to_x) && (from_y == to_y)) { /* BW->bitmap.mark.from_x = 0; BW->bitmap.mark.from_y = 0; BW->bitmap.mark.to_x = BW->bitmap.image->width - 1; BW->bitmap.mark.to_y = BW->bitmap.image->height - 1; */ return; } else { QuerySwap(from_x, to_x); QuerySwap(from_y, to_y); from_x = max(0, from_x); from_y = max(0, from_y); to_x = min(BW->bitmap.image->width - 1, to_x); to_y = min(BW->bitmap.image->height - 1, to_y); BW->bitmap.mark.from_x = from_x; BW->bitmap.mark.from_y = from_y; BW->bitmap.mark.to_x = to_x; BW->bitmap.mark.to_y = to_y; } XFillRectangle(XtDisplay(BW), XtWindow(BW), BW->bitmap.highlighting_gc, InWindowX(BW, BW->bitmap.mark.from_x), InWindowY(BW, BW->bitmap.mark.from_y), InWindowX(BW, BW->bitmap.mark.to_x + 1) - InWindowX(BW, BW->bitmap.mark.from_x), InWindowY(BW, BW->bitmap.mark.to_y +1) - InWindowY(BW, BW->bitmap.mark.from_y)); } }