summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/events.c126
-rw-r--r--src/feh.h1
-rw-r--r--src/keyevents.c269
3 files changed, 142 insertions, 254 deletions
diff --git a/src/events.c b/src/events.c
index 61cc644..4a894e8 100644
--- a/src/events.c
+++ b/src/events.c
@@ -161,133 +161,13 @@ void init_buttonbindings(void)
cur_bb = &keys.zoom_in;
else if (!strcmp(action, "zoom_out"))
cur_bb = &keys.zoom_out;
- else if (!strcmp(action, "menu_close"))
- cur_bb = &keys.menu_close;
- else if (!strcmp(action, "menu_parent"))
- cur_bb = &keys.menu_parent;
- else if (!strcmp(action, "menu_down"))
- cur_bb = &keys.menu_down;
- else if (!strcmp(action, "menu_up"))
- cur_bb = &keys.menu_up;
- else if (!strcmp(action, "menu_child"))
- cur_bb = &keys.menu_child;
- else if (!strcmp(action, "menu_select"))
- cur_bb = &keys.menu_select;
- else if (!strcmp(action, "scroll_right"))
- cur_bb = &keys.scroll_right;
- else if (!strcmp(action, "scroll_left"))
- cur_bb = &keys.scroll_left;
- else if (!strcmp(action, "scroll_up"))
- cur_bb = &keys.scroll_up;
- else if (!strcmp(action, "scroll_down"))
- cur_bb = &keys.scroll_down;
- else if (!strcmp(action, "scroll_right_page"))
- cur_bb = &keys.scroll_right_page;
- else if (!strcmp(action, "scroll_left_page"))
- cur_bb = &keys.scroll_left_page;
- else if (!strcmp(action, "scroll_up_page"))
- cur_bb = &keys.scroll_up_page;
- else if (!strcmp(action, "scroll_down_page"))
- cur_bb = &keys.scroll_down_page;
- else if (!strcmp(action, "jump_back"))
- cur_bb = &keys.jump_back;
- else if (!strcmp(action, "jump_fwd"))
- cur_bb = &keys.jump_fwd;
- else if (!strcmp(action, "prev_dir"))
- cur_bb = &keys.prev_dir;
- else if (!strcmp(action, "next_dir"))
- cur_bb = &keys.next_dir;
- else if (!strcmp(action, "jump_random"))
- cur_bb = &keys.jump_random;
- else if (!strcmp(action, "quit"))
- cur_bb = &keys.quit;
- else if (!strcmp(action, "close"))
- cur_bb = &keys.close;
- else if (!strcmp(action, "remove"))
- cur_bb = &keys.remove;
- else if (!strcmp(action, "delete"))
- cur_bb = &keys.delete;
- else if (!strcmp(action, "jump_first"))
- cur_bb = &keys.jump_first;
- else if (!strcmp(action, "jump_last"))
- cur_bb = &keys.jump_last;
- else if (!strcmp(action, "action_0"))
- cur_bb = &keys.action_0;
- else if (!strcmp(action, "action_1"))
- cur_bb = &keys.action_1;
- else if (!strcmp(action, "action_2"))
- cur_bb = &keys.action_2;
- else if (!strcmp(action, "action_3"))
- cur_bb = &keys.action_3;
- else if (!strcmp(action, "action_4"))
- cur_bb = &keys.action_4;
- else if (!strcmp(action, "action_5"))
- cur_bb = &keys.action_5;
- else if (!strcmp(action, "action_6"))
- cur_bb = &keys.action_6;
- else if (!strcmp(action, "action_7"))
- cur_bb = &keys.action_7;
- else if (!strcmp(action, "action_8"))
- cur_bb = &keys.action_8;
- else if (!strcmp(action, "action_9"))
- cur_bb = &keys.action_9;
- else if (!strcmp(action, "zoom_in"))
- cur_bb = &keys.zoom_in;
- else if (!strcmp(action, "zoom_out"))
- cur_bb = &keys.zoom_out;
- else if (!strcmp(action, "zoom_default"))
- cur_bb = &keys.zoom_default;
- else if (!strcmp(action, "zoom_fit"))
- cur_bb = &keys.zoom_fit;
- else if (!strcmp(action, "size_to_image"))
- cur_bb = &keys.size_to_image;
- else if (!strcmp(action, "render"))
- cur_bb = &keys.render;
- else if (!strcmp(action, "toggle_actions"))
- cur_bb = &keys.toggle_actions;
- else if (!strcmp(action, "toggle_aliasing"))
- cur_bb = &keys.toggle_aliasing;
- else if (!strcmp(action, "toggle_filenames"))
- cur_bb = &keys.toggle_filenames;
-#ifdef HAVE_LIBEXIF
- else if (!strcmp(action, "toggle_exif"))
- cur_bb = &keys.toggle_exif;
-#endif
- else if (!strcmp(action, "toggle_info"))
- cur_bb = &keys.toggle_info;
- else if (!strcmp(action, "toggle_pointer"))
- cur_bb = &keys.toggle_pointer;
- else if (!strcmp(action, "toggle_caption"))
- cur_bb = &keys.toggle_caption;
- else if (!strcmp(action, "toggle_pause"))
- cur_bb = &keys.toggle_pause;
- else if (!strcmp(action, "toggle_fullscreen"))
- cur_bb = &keys.toggle_fullscreen;
- else if (!strcmp(action, "reload_image"))
- cur_bb = &keys.reload_image;
- else if (!strcmp(action, "save_image"))
- cur_bb = &keys.save_image;
- else if (!strcmp(action, "save_filelist"))
- cur_bb = &keys.save_filelist;
- else if (!strcmp(action, "orient_1"))
- cur_bb = &keys.orient_1;
- else if (!strcmp(action, "orient_3"))
- cur_bb = &keys.orient_3;
- else if (!strcmp(action, "flip"))
- cur_bb = &keys.flip;
- else if (!strcmp(action, "mirror"))
- cur_bb = &keys.mirror;
- else if (!strcmp(action, "reload_minus"))
- cur_bb = &keys.reload_minus;
- else if (!strcmp(action, "reload_plus"))
- cur_bb = &keys.reload_plus;
- else if (!strcmp(action, "toggle_keep_vp"))
- cur_bb = &keys.toggle_keep_vp;
else
- weprintf("buttons: Invalid action: %s", action);
+ cur_bb = feh_str_to_kb(action);
if (cur_bb)
feh_set_parse_bb_partial(cur_bb, button);
+ else
+ weprintf("buttons: Invalid action: %s", action);
}
fclose(conf);
}
diff --git a/src/feh.h b/src/feh.h
index 970b93a..65e8393 100644
--- a/src/feh.h
+++ b/src/feh.h
@@ -142,6 +142,7 @@ void init_keyevents(void);
void init_buttonbindings(void);
void feh_event_handle_keypress(XEvent * ev);
void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysym, unsigned int button);
+fehkey *feh_str_to_kb(char * action);
void feh_action_run(feh_file * file, char *action);
char *format_size(int size);
char *feh_printf(char *str, feh_file * file, winwidget winwid);
diff --git a/src/keyevents.c b/src/keyevents.c
index 012e79c..e691eaa 100644
--- a/src/keyevents.c
+++ b/src/keyevents.c
@@ -87,7 +87,7 @@ void init_keyevents(void) {
char *confpath = NULL;
char line[128];
char action[32], k1[32], k2[32], k3[32];
- struct __fehkey *cur_kb = NULL;
+ fehkey *cur_kb = NULL;
FILE *conf = NULL;
int read = 0;
@@ -189,141 +189,14 @@ void init_keyevents(void) {
if ((read == EOF) || (read == 0) || (line[0] == '#'))
continue;
- if (!strcmp(action, "menu_close"))
- cur_kb = &keys.menu_close;
- else if (!strcmp(action, "menu_parent"))
- cur_kb = &keys.menu_parent;
- else if (!strcmp(action, "menu_down"))
- cur_kb = &keys.menu_down;
- else if (!strcmp(action, "menu_up"))
- cur_kb = &keys.menu_up;
- else if (!strcmp(action, "menu_child"))
- cur_kb = &keys.menu_child;
- else if (!strcmp(action, "menu_select"))
- cur_kb = &keys.menu_select;
- else if (!strcmp(action, "scroll_right"))
- cur_kb = &keys.scroll_right;
- else if (!strcmp(action, "scroll_left"))
- cur_kb = &keys.scroll_left;
- else if (!strcmp(action, "scroll_up"))
- cur_kb = &keys.scroll_up;
- else if (!strcmp(action, "scroll_down"))
- cur_kb = &keys.scroll_down;
- else if (!strcmp(action, "scroll_right_page"))
- cur_kb = &keys.scroll_right_page;
- else if (!strcmp(action, "scroll_left_page"))
- cur_kb = &keys.scroll_left_page;
- else if (!strcmp(action, "scroll_up_page"))
- cur_kb = &keys.scroll_up_page;
- else if (!strcmp(action, "scroll_down_page"))
- cur_kb = &keys.scroll_down_page;
- else if (!strcmp(action, "prev_img"))
- cur_kb = &keys.prev_img;
- else if (!strcmp(action, "next_img"))
- cur_kb = &keys.next_img;
- else if (!strcmp(action, "jump_back"))
- cur_kb = &keys.jump_back;
- else if (!strcmp(action, "jump_fwd"))
- cur_kb = &keys.jump_fwd;
- else if (!strcmp(action, "prev_dir"))
- cur_kb = &keys.prev_dir;
- else if (!strcmp(action, "next_dir"))
- cur_kb = &keys.next_dir;
- else if (!strcmp(action, "jump_random"))
- cur_kb = &keys.jump_random;
- else if (!strcmp(action, "quit"))
- cur_kb = &keys.quit;
- else if (!strcmp(action, "close"))
- cur_kb = &keys.close;
- else if (!strcmp(action, "remove"))
- cur_kb = &keys.remove;
- else if (!strcmp(action, "delete"))
- cur_kb = &keys.delete;
- else if (!strcmp(action, "jump_first"))
- cur_kb = &keys.jump_first;
- else if (!strcmp(action, "jump_last"))
- cur_kb = &keys.jump_last;
- else if (!strcmp(action, "action_0"))
- cur_kb = &keys.action_0;
- else if (!strcmp(action, "action_1"))
- cur_kb = &keys.action_1;
- else if (!strcmp(action, "action_2"))
- cur_kb = &keys.action_2;
- else if (!strcmp(action, "action_3"))
- cur_kb = &keys.action_3;
- else if (!strcmp(action, "action_4"))
- cur_kb = &keys.action_4;
- else if (!strcmp(action, "action_5"))
- cur_kb = &keys.action_5;
- else if (!strcmp(action, "action_6"))
- cur_kb = &keys.action_6;
- else if (!strcmp(action, "action_7"))
- cur_kb = &keys.action_7;
- else if (!strcmp(action, "action_8"))
- cur_kb = &keys.action_8;
- else if (!strcmp(action, "action_9"))
- cur_kb = &keys.action_9;
- else if (!strcmp(action, "zoom_in"))
- cur_kb = &keys.zoom_in;
- else if (!strcmp(action, "zoom_out"))
- cur_kb = &keys.zoom_out;
- else if (!strcmp(action, "zoom_default"))
- cur_kb = &keys.zoom_default;
- else if (!strcmp(action, "zoom_fit"))
- cur_kb = &keys.zoom_fit;
- else if (!strcmp(action, "size_to_image"))
- cur_kb = &keys.size_to_image;
- else if (!strcmp(action, "render"))
- cur_kb = &keys.render;
- else if (!strcmp(action, "toggle_actions"))
- cur_kb = &keys.toggle_actions;
- else if (!strcmp(action, "toggle_aliasing"))
- cur_kb = &keys.toggle_aliasing;
- else if (!strcmp(action, "toggle_filenames"))
- cur_kb = &keys.toggle_filenames;
-#ifdef HAVE_LIBEXIF
- else if (!strcmp(action, "toggle_exif"))
- cur_kb = &keys.toggle_exif;
-#endif
- else if (!strcmp(action, "toggle_info"))
- cur_kb = &keys.toggle_info;
- else if (!strcmp(action, "toggle_pointer"))
- cur_kb = &keys.toggle_pointer;
- else if (!strcmp(action, "toggle_caption"))
- cur_kb = &keys.toggle_caption;
- else if (!strcmp(action, "toggle_pause"))
- cur_kb = &keys.toggle_pause;
- else if (!strcmp(action, "toggle_menu"))
- cur_kb = &keys.toggle_menu;
- else if (!strcmp(action, "toggle_fullscreen"))
- cur_kb = &keys.toggle_fullscreen;
- else if (!strcmp(action, "reload_image"))
- cur_kb = &keys.reload_image;
- else if (!strcmp(action, "save_image"))
- cur_kb = &keys.save_image;
- else if (!strcmp(action, "save_filelist"))
- cur_kb = &keys.save_filelist;
- else if (!strcmp(action, "orient_1"))
- cur_kb = &keys.orient_1;
- else if (!strcmp(action, "orient_3"))
- cur_kb = &keys.orient_3;
- else if (!strcmp(action, "flip"))
- cur_kb = &keys.flip;
- else if (!strcmp(action, "mirror"))
- cur_kb = &keys.mirror;
- else if (!strcmp(action, "reload_minus"))
- cur_kb = &keys.reload_minus;
- else if (!strcmp(action, "reload_plus"))
- cur_kb = &keys.reload_plus;
- else if (!strcmp(action, "toggle_keep_vp"))
- cur_kb = &keys.toggle_keep_vp;
- else
- weprintf("keys: Invalid action: %s", action);
+ cur_kb = feh_str_to_kb(action);
if (cur_kb) {
feh_set_parse_kb_partial(cur_kb, 0, k1);
feh_set_parse_kb_partial(cur_kb, 1, k2);
feh_set_parse_kb_partial(cur_kb, 2, k3);
+ } else {
+ weprintf("keys: Invalid action: %s", action);
}
}
fclose(conf);
@@ -482,6 +355,140 @@ void feh_event_handle_keypress(XEvent * ev)
feh_event_handle_generic(winwid, state, keysym, 0);
}
+fehkey *feh_str_to_kb(char *action)
+{
+ if (!strcmp(action, "menu_close"))
+ return &keys.menu_close;
+ else if (!strcmp(action, "menu_parent"))
+ return &keys.menu_parent;
+ else if (!strcmp(action, "menu_down"))
+ return &keys.menu_down;
+ else if (!strcmp(action, "menu_up"))
+ return &keys.menu_up;
+ else if (!strcmp(action, "menu_child"))
+ return &keys.menu_child;
+ else if (!strcmp(action, "menu_select"))
+ return &keys.menu_select;
+ else if (!strcmp(action, "scroll_right"))
+ return &keys.scroll_right;
+ else if (!strcmp(action, "scroll_left"))
+ return &keys.scroll_left;
+ else if (!strcmp(action, "scroll_up"))
+ return &keys.scroll_up;
+ else if (!strcmp(action, "scroll_down"))
+ return &keys.scroll_down;
+ else if (!strcmp(action, "scroll_right_page"))
+ return &keys.scroll_right_page;
+ else if (!strcmp(action, "scroll_left_page"))
+ return &keys.scroll_left_page;
+ else if (!strcmp(action, "scroll_up_page"))
+ return &keys.scroll_up_page;
+ else if (!strcmp(action, "scroll_down_page"))
+ return &keys.scroll_down_page;
+ else if (!strcmp(action, "prev_img"))
+ return &keys.prev_img;
+ else if (!strcmp(action, "next_img"))
+ return &keys.next_img;
+ else if (!strcmp(action, "jump_back"))
+ return &keys.jump_back;
+ else if (!strcmp(action, "jump_fwd"))
+ return &keys.jump_fwd;
+ else if (!strcmp(action, "prev_dir"))
+ return &keys.prev_dir;
+ else if (!strcmp(action, "next_dir"))
+ return &keys.next_dir;
+ else if (!strcmp(action, "jump_random"))
+ return &keys.jump_random;
+ else if (!strcmp(action, "quit"))
+ return &keys.quit;
+ else if (!strcmp(action, "close"))
+ return &keys.close;
+ else if (!strcmp(action, "remove"))
+ return &keys.remove;
+ else if (!strcmp(action, "delete"))
+ return &keys.delete;
+ else if (!strcmp(action, "jump_first"))
+ return &keys.jump_first;
+ else if (!strcmp(action, "jump_last"))
+ return &keys.jump_last;
+ else if (!strcmp(action, "action_0"))
+ return &keys.action_0;
+ else if (!strcmp(action, "action_1"))
+ return &keys.action_1;
+ else if (!strcmp(action, "action_2"))
+ return &keys.action_2;
+ else if (!strcmp(action, "action_3"))
+ return &keys.action_3;
+ else if (!strcmp(action, "action_4"))
+ return &keys.action_4;
+ else if (!strcmp(action, "action_5"))
+ return &keys.action_5;
+ else if (!strcmp(action, "action_6"))
+ return &keys.action_6;
+ else if (!strcmp(action, "action_7"))
+ return &keys.action_7;
+ else if (!strcmp(action, "action_8"))
+ return &keys.action_8;
+ else if (!strcmp(action, "action_9"))
+ return &keys.action_9;
+ else if (!strcmp(action, "zoom_in"))
+ return &keys.zoom_in;
+ else if (!strcmp(action, "zoom_out"))
+ return &keys.zoom_out;
+ else if (!strcmp(action, "zoom_default"))
+ return &keys.zoom_default;
+ else if (!strcmp(action, "zoom_fit"))
+ return &keys.zoom_fit;
+ else if (!strcmp(action, "size_to_image"))
+ return &keys.size_to_image;
+ else if (!strcmp(action, "render"))
+ return &keys.render;
+ else if (!strcmp(action, "toggle_actions"))
+ return &keys.toggle_actions;
+ else if (!strcmp(action, "toggle_aliasing"))
+ return &keys.toggle_aliasing;
+ else if (!strcmp(action, "toggle_filenames"))
+ return &keys.toggle_filenames;
+#ifdef HAVE_LIBEXIF
+ else if (!strcmp(action, "toggle_exif"))
+ return &keys.toggle_exif;
+#endif
+ else if (!strcmp(action, "toggle_info"))
+ return &keys.toggle_info;
+ else if (!strcmp(action, "toggle_pointer"))
+ return &keys.toggle_pointer;
+ else if (!strcmp(action, "toggle_caption"))
+ return &keys.toggle_caption;
+ else if (!strcmp(action, "toggle_pause"))
+ return &keys.toggle_pause;
+ else if (!strcmp(action, "toggle_menu"))
+ return &keys.toggle_menu;
+ else if (!strcmp(action, "toggle_fullscreen"))
+ return &keys.toggle_fullscreen;
+ else if (!strcmp(action, "reload_image"))
+ return &keys.reload_image;
+ else if (!strcmp(action, "save_image"))
+ return &keys.save_image;
+ else if (!strcmp(action, "save_filelist"))
+ return &keys.save_filelist;
+ else if (!strcmp(action, "orient_1"))
+ return &keys.orient_1;
+ else if (!strcmp(action, "orient_3"))
+ return &keys.orient_3;
+ else if (!strcmp(action, "flip"))
+ return &keys.flip;
+ else if (!strcmp(action, "mirror"))
+ return &keys.mirror;
+ else if (!strcmp(action, "reload_minus"))
+ return &keys.reload_minus;
+ else if (!strcmp(action, "reload_plus"))
+ return &keys.reload_plus;
+ else if (!strcmp(action, "toggle_keep_vp"))
+ return &keys.toggle_keep_vp;
+
+ return NULL;
+}
+
void feh_event_handle_generic(winwidget winwid, unsigned int state, KeySym keysym, unsigned int button) {
int curr_screen = 0;