summaryrefslogtreecommitdiffstats
path: root/config.h
diff options
context:
space:
mode:
authorBert <ber.t@gmx.com>2011-07-26 18:01:29 +0200
committerBert <ber.t@gmx.com>2011-07-26 18:01:29 +0200
commitb8ff1677b1cbb4d3e769861d1e14234c6a38a80a (patch)
tree32da4629b8874fbe17deab774f78314b56607302 /config.h
parenta271e167443aedca2ed9c28b51fc6de33692dadb (diff)
downloadnsxiv-b8ff1677b1cbb4d3e769861d1e14234c6a38a80a.tar.zst
Major code refactoring
- Configurable key and mouse mappings in config.h - Put event handling code from main.c into events.[ch]
Diffstat (limited to 'config.h')
-rw-r--r--config.h122
1 files changed, 103 insertions, 19 deletions
diff --git a/config.h b/config.h
index d852091..aac4244 100644
--- a/config.h
+++ b/config.h
@@ -1,36 +1,120 @@
-/* default window dimensions (overwritten via -g option): */
+#ifdef _GENERAL_CONFIG
+
+/* enable external commands (defined below)? 0 = off, 1 = on: */
+enum { EXT_COMMANDS = 0 };
+
+#endif
+#ifdef _WINDOW_CONFIG
+
+/* default window dimensions (overwritten via -g option): */
enum { WIN_WIDTH = 800, WIN_HEIGHT = 600 };
-/* default color for window background: *
- * (see X(7) "COLOR NAMES" section for valid values) */
+/* default color for window background: *
+ * (see X(7) "COLOR NAMES" section for valid values) */
static const char * const BG_COLOR = "#999999";
-/* default color for thumbnail selection: */
+/* default color for thumbnail selection: */
static const char * const SEL_COLOR = "#0066FF";
-/* how should images be scaled when they are loaded?: *
- * (also controllable via -d/-s/-Z/-z options) *
- * SCALE_DOWN: 100%, but fit large images into window, *
- * SCALE_FIT: fit all images into window, *
- * SCALE_ZOOM: use current zoom level, 100% at startup */
+#endif
+#ifdef _IMAGE_CONFIG
+
+/* how should images be scaled when they are loaded?: *
+ * (also controllable via -d/-s/-Z/-z options) *
+ * SCALE_DOWN: 100%, but fit large images into window, *
+ * SCALE_FIT: fit all images into window, *
+ * SCALE_ZOOM: use current zoom level, 100% at startup */
static const scalemode_t SCALE_MODE = SCALE_DOWN;
-/* levels (percent) to use when zooming via '-' and '+': */
+/* levels (percent) to use when zooming via '-' and '+': */
static const float zoom_levels[] = {
12.5, 25.0, 50.0, 75.0,
100.0, 150.0, 200.0, 400.0, 800.0
};
-/* default dimension of thumbnails (width == height): */
+#endif
+#ifdef _THUMBS_CONFIG
+
+/* default dimension of thumbnails (width == height): */
enum { THUMB_SIZE = 60 };
-/* enable external commands (defined below)? 0=off, 1=on: */
-enum { EXT_COMMANDS = 0 };
+#endif
+#ifdef _MAPPINGS_CONFIG
+
+/* keyboard mappings for image and thumbnail mode: */
+static const keymap_t keys[] = {
+ /* key function argument */
+ { XK_q, quit, None },
+ { XK_r, reload, None },
+ { XK_f, toggle_fullscreen, None },
+ { XK_a, toggle_antialias, None },
+ { XK_A, toggle_alpha, None },
+ { XK_Return, switch_mode, None },
+
+ { XK_g, first, None },
+ { XK_G, last, None },
+ { XK_n, navigate, +1 },
+ { XK_space, navigate, +1 },
+ { XK_p, navigate, -1 },
+ { XK_BackSpace, navigate, -1 },
+ { XK_bracketright, navigate, +10 },
+ { XK_bracketleft, navigate, -10 },
+
+ { XK_D, remove_image, None },
-/* external commands and corresponding key mappings: */
+ { XK_h, move, DIR_LEFT },
+ { XK_Left, move, DIR_LEFT },
+ { XK_j, move, DIR_DOWN },
+ { XK_Down, move, DIR_DOWN },
+ { XK_k, move, DIR_UP },
+ { XK_Up, move, DIR_UP },
+ { XK_l, move, DIR_RIGHT },
+ { XK_Right, move, DIR_RIGHT },
+
+ { XK_braceleft, scroll, DIR_LEFT },
+ { XK_Next, scroll, DIR_DOWN },
+ { XK_Prior, scroll, DIR_UP },
+ { XK_braceright, scroll, DIR_RIGHT },
+
+ { XK_H, pan_edge, DIR_LEFT },
+ { XK_J, pan_edge, DIR_DOWN },
+ { XK_K, pan_edge, DIR_UP },
+ { XK_L, pan_edge, DIR_RIGHT },
+
+ { XK_plus, zoom, +1 },
+ { XK_equal, zoom, +1 },
+ { XK_KP_Add, zoom, +1 },
+ { XK_minus, zoom, -1 },
+ { XK_KP_Subtract, zoom, -1 },
+ { XK_0, zoom, 0 },
+ { XK_KP_0, zoom, 0 },
+ { XK_w, fit_to_win, None },
+ { XK_W, fit_to_img, None },
+
+ { XK_less, rotate, DIR_LEFT },
+ { XK_greater, rotate, DIR_RIGHT },
+};
+
+/* external commands and corresponding key mappings: */
static const command_t commands[] = {
- /* ctrl-... reload? command, '#' is replaced by filename */
- { ',', 1, "jpegtran -rotate 270 -copy all -outfile # #" },
- { '.', 1, "jpegtran -rotate 90 -copy all -outfile # #" },
- { '<', 1, "mogrify -rotate -90 #" },
- { '>', 1, "mogrify -rotate +90 #" }
+ /* ctrl-... reload? command, '#' is replaced by filename */
+ { XK_comma, True, "jpegtran -rotate 270 -copy all -outfile # #" },
+ { XK_period, True, "jpegtran -rotate 90 -copy all -outfile # #" },
+ { XK_less, True, "mogrify -rotate -90 #" },
+ { XK_greater, True, "mogrify -rotate +90 #" }
+};
+
+/* mouse button mappings for image mode: */
+static const button_t buttons[] = {
+ /* modifier button function argument */
+ { None, Button1, navigate, +1 },
+ { None, Button3, navigate, -1 },
+ { None, Button2, drag, None },
+ { None, Button4, move, DIR_UP },
+ { None, Button5, move, DIR_DOWN },
+ { ShiftMask, Button4, move, DIR_LEFT },
+ { ShiftMask, Button5, move, DIR_RIGHT },
+ { ControlMask, Button4, zoom, +1 },
+ { ControlMask, Button5, zoom, -1 },
};
+
+#endif