aboutsummaryrefslogtreecommitdiff
path: root/widget.h
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2014-09-10 21:21:43 +0000
committerDimitri Sokolyuk <demon@dim13.org>2014-09-10 21:21:43 +0000
commitce4c20d0acc9cec5551934131feae7ecd11ddedf (patch)
tree11610670bfa274dc3ad6bc053686f529fb9c2b29 /widget.h
parentb610c168ab0b5b964f72554bedd0b8c3a3365a39 (diff)
split code
Diffstat (limited to 'widget.h')
-rw-r--r--widget.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/widget.h b/widget.h
new file mode 100644
index 0000000..002db22
--- /dev/null
+++ b/widget.h
@@ -0,0 +1,71 @@
+/* $Id$ */
+/*
+ * Copyright (c) 2010 Dimitri Sokolyuk <demon@dim13.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _WIDGET_H
+#define _WIDGET_H
+
+#define HGAP 4
+#define VGAP 1
+
+struct background {
+ Pixmap pix;
+ Pixmap mask;
+ GC gc;
+ XRectangle geo;
+};
+
+struct subwin {
+ Window win;
+ Pixmap pix; /* buffer */
+ GC gc;
+ XRectangle geo;
+};
+
+struct panel {
+ Window win; /* container */
+ struct subwin *wf;
+ struct subwin *sp;
+ struct background *bg;
+ struct background *shadow;
+ int mirror;
+ int maxval;
+ double *data;
+ unsigned long *palette;
+};
+
+struct hsl {
+ float h, s, l;
+};
+
+struct palette {
+ struct hsl from, to;
+};
+
+enum mirror { LTR, RTL };
+
+__BEGIN_DECLS
+unsigned long hslcolor(Display *, struct hsl);
+unsigned long *init_palette(Display *, struct palette, int);
+void draw_panel(Display *, struct panel *);
+void flip_panel(Display *, struct panel *);
+struct panel *init_panel(Display *, Window, XRectangle, enum mirror);
+void free_panel(Display *, struct panel *);
+void toggle_mirror(struct panel *);
+double *dataptr(struct panel *);
+__END_DECLS
+
+#endif