aboutsummaryrefslogtreecommitdiffstats
path: root/src/yawa.h
diff options
context:
space:
mode:
authorJohannes Löthberg <johannes@kyriasis.com>2014-11-05 08:41:28 +0100
committerJohannes Löthberg <johannes@kyriasis.com>2014-11-05 08:42:45 +0100
commit3e19de1edd83d44458d138d8a1b9fc8049b30c06 (patch)
tree136a372b80a7aa9275e6fbbdd443285294792c37 /src/yawa.h
parent491750b98acf9f4fa4aeaa438ee6d847b7d8bcec (diff)
downloadyawa-3e19de1edd83d44458d138d8a1b9fc8049b30c06.tar.xz
Split yawa.h out
Diffstat (limited to 'src/yawa.h')
-rw-r--r--src/yawa.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/yawa.h b/src/yawa.h
new file mode 100644
index 0000000..088e585
--- /dev/null
+++ b/src/yawa.h
@@ -0,0 +1,86 @@
+#ifndef YAWA_H
+#define YAWA_H
+#include "config.h"
+
+typedef struct
+{
+ int r, g, b, a;
+} Color, *PColor;
+
+typedef enum
+{ Full, Fill, Center, Tile } ImageMode;
+
+int setRootAtoms (Pixmap pixmap);
+int getHex (char c);
+int parse_color (char *arg, PColor c, int a);
+int load_image (ImageMode mode, const char *arg, int rootW, int rootH, int alpha,
+ Imlib_Image rootimg);
+
+static char doc[] = "yawa -- Yet Another Wallpaper Application";
+const char *argp_program_version = PACKAGE_STRING;
+const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">";
+
+static int num_add_colors;
+struct arguments {
+ char *image;
+ char *color;
+ int angle;
+ int alpha_amount;
+
+ bool add: 1;
+ bool gradient: 1;
+ bool clear: 1;
+ bool solid: 1;
+ bool center: 1;
+ bool tile: 1;
+ bool full: 1;
+ bool fill: 1;
+ bool tint: 1;
+ bool blur: 1;
+ bool sharpen: 1;
+ bool contrast: 1;
+ bool brightness: 1;
+ bool gamma: 1;
+ bool flipv: 1;
+ bool fliph: 1;
+ bool flipd;
+ bool alpha;
+ bool write;
+ char add_color[9][9];
+};
+
+/* Order of fields: {NAME, KEY, ARG, FLAGS, DOC, GROUP}. */
+static struct argp_option options[] =
+{
+ {0, 0, 0, 0, "Gradients:", 1},
+ {"add", 'a', "COLOR", 0, "Add color to range using distance 1", 1},
+ // TODO: Figure out what to do about `-addd <color> <distance>
+ {"gradient", 'g', "ANGLE", 0, "Render gradient using specified angle", 1},
+ {"clear", 'c', 0, 0, "Clear the color range", 1},
+
+ {0, 0, 0, 0, "Solid:", 2},
+ {"solid", 's', "COLOR", 0, "Render a solid using the specified color", 2},
+
+ {0, 0, 0, 0, "Image files:", 3},
+ {"center", 'C', "IMAGE", 0, "Render an image centered on the screen", 3},
+ {"tile", 't', "IMAGE", 0, "Render an image tiled", 3},
+ {"full", 'f', "IMAGE", 0, "Render an image maximum aspect", 3},
+ {"fill", 'F', "IMAGE", 0, "Render an image stretched", 3},
+
+ {0, 0, 0, 0, "Manipulations:", 4},
+ {"tint", 'T', "COLOR", 0, "Tint current image", 4},
+ {"blur", 'b', "RADIUS", 0, "Blur the current image", 4}, // Not implemented
+ {"sharpen", 'S', "RADIUS", 0, "Sharpen the current image", 4}, // Not implemented
+ {"contrast", 'o', "AMOUNT", 0, "Adjust the contrast of the current image", 4}, // Not implemented
+ {"brightness", 'G', "AMOUNT", 0, "Adjust the bightness of the current image", 4}, // Not implemented
+ {"gamma", 'G', "AMOUNT", 0, "Adjust the gamma level of the current image", 4}, // Not implemented
+ {"flipv", 'v', 0, 0, "Flip the current image vertically", 4}, // Not implemented
+ {"fliph", 'h', 0, 0, "Flip the current image horizontally", 4}, // Not implemented
+ {"flipd", 'd', 0, 0, "Flip the current image diagonally", 4}, // Not implemented
+
+ {0, 0, 0, 0, "Misc:", -1},
+ {"alpha", 'A', "AMOUNT", 0, "Adjust alpha level for colors and images", -1},
+ {"write", 'w', "FILENAME", 0, "Write the current image to a file", -1}, // Not implemented
+ {0, 0, 0, 0, 0, 0}
+};
+#endif