diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-26 10:57:01 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-26 10:57:01 +0000 |
commit | f35ebe9caf290b8266faae05f7ab8491ad301d7a (patch) | |
tree | 39d39e6eac3dd73663d172228b40ec9bc2709301 /app/ssh-askpass/drawing.c | |
parent | 1cb4778bcef21ea9015cfccdb99abb7a0e035d74 (diff) |
Importing from XF4, plus BSD make infrastructure
Diffstat (limited to 'app/ssh-askpass/drawing.c')
-rw-r--r-- | app/ssh-askpass/drawing.c | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/app/ssh-askpass/drawing.c b/app/ssh-askpass/drawing.c new file mode 100644 index 000000000..14ec37b3e --- /dev/null +++ b/app/ssh-askpass/drawing.c @@ -0,0 +1,81 @@ +/* xscreensaver, Copyright (c) 1991-1998 Jamie Zawinski <jwz@netscape.com> + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + */ + +/* 1999-Nov-21 Modified by Jim Knoble <jmknoble@jmknoble.cx> + * Modifications: + * - Extracted draw_shaded_rectangle() from xscreensaver source for use + * in a separate application. Constructed separate header file. + */ + +#include <X11/Intrinsic.h> + +void +draw_shaded_rectangle (Display *dpy, Window window, + int x, int y, + int width, int height, + int thickness, + unsigned long top_color, + unsigned long bottom_color) +{ + XPoint points[4]; + XGCValues gcv; + GC gc1, gc2; + if (thickness == 0) return; + + gcv.foreground = top_color; + gc1 = XCreateGC (dpy, window, GCForeground, &gcv); + gcv.foreground = bottom_color; + gc2 = XCreateGC (dpy, window, GCForeground, &gcv); + + points [0].x = x; + points [0].y = y; + points [1].x = x + width; + points [1].y = y; + points [2].x = x + width - thickness; + points [2].y = y + thickness; + points [3].x = x; + points [3].y = y + thickness; + XFillPolygon (dpy, window, gc1, points, 4, Convex, CoordModeOrigin); + + points [0].x = x; + points [0].y = y + thickness; + points [1].x = x; + points [1].y = y + height; + points [2].x = x + thickness; + points [2].y = y + height - thickness; + points [3].x = x + thickness; + points [3].y = y + thickness; + XFillPolygon (dpy, window, gc1, points, 4, Convex, CoordModeOrigin); + + points [0].x = x + width; + points [0].y = y; + points [1].x = x + width - thickness; + points [1].y = y + thickness; + points [2].x = x + width - thickness; + points [2].y = y + height - thickness; + points [3].x = x + width; + points [3].y = y + height - thickness; + XFillPolygon (dpy, window, gc2, points, 4, Convex, CoordModeOrigin); + + points [0].x = x; + points [0].y = y + height; + points [1].x = x + width; + points [1].y = y + height; + points [2].x = x + width; + points [2].y = y + height - thickness; + points [3].x = x + thickness; + points [3].y = y + height - thickness; + XFillPolygon (dpy, window, gc2, points, 4, Convex, CoordModeOrigin); + + XFreeGC (dpy, gc1); + XFreeGC (dpy, gc2); +} + |