summaryrefslogtreecommitdiff
path: root/app/ssh-askpass/drawing.c
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-26 10:57:01 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2006-11-26 10:57:01 +0000
commitf35ebe9caf290b8266faae05f7ab8491ad301d7a (patch)
tree39d39e6eac3dd73663d172228b40ec9bc2709301 /app/ssh-askpass/drawing.c
parent1cb4778bcef21ea9015cfccdb99abb7a0e035d74 (diff)
Importing from XF4, plus BSD make infrastructure
Diffstat (limited to 'app/ssh-askpass/drawing.c')
-rw-r--r--app/ssh-askpass/drawing.c81
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);
+}
+