aboutsummaryrefslogtreecommitdiff
path: root/input.c
diff options
context:
space:
mode:
authornirav <nirav@teisuu.com>2018-09-09 12:13:13 +0530
committerDandelion <nirav@teisuu.com>2018-09-09 12:46:57 +0530
commite54d8327819e310b7b148e45c15fca197be845c7 (patch)
tree04e513d52ed2191364e6b9472cd0f3882a60da4a /input.c
parent661756c9237a26562cae102f53b12aa0b403fde1 (diff)
downloadim-e54d8327819e310b7b148e45c15fca197be845c7.tar.gz
im-e54d8327819e310b7b148e45c15fca197be845c7.zip
Moved source files to src dir, updated makefile
Diffstat (limited to 'input.c')
-rw-r--r--input.c206
1 files changed, 0 insertions, 206 deletions
diff --git a/input.c b/input.c
deleted file mode 100644
index 1d21ef2..0000000
--- a/input.c
+++ /dev/null
@@ -1,206 +0,0 @@
-#include "input.h"
-#include "file.h"
-#include "image.h"
-#include "window.h"
-#include <gtk-3.0/gtk/gtk.h>
-
-#define TIMEOUT 20
-#define SCROLLAMMOUNT 30
-
-int grabbed = 0;
-gdouble start_x, start_y;
-
-void next()
-{
- char *name;
- if ((name = get_next_file()) != NULL)
- load_image(name);
-}
-
-void prev()
-{
- char *name;
- if ((name = get_prev_file()) != NULL)
- load_image(name);
-}
-
-void first()
-{
- char *name;
- if ((name = get_first_file()) != NULL)
- load_image(name);
-}
-
-void last()
-{
- char *name;
- if ((name = get_last_file()) != NULL)
- load_image(name);
-}
-
-void handle_key_press(GdkEvent *event)
-{
- GdkModifierType state;
- gdk_event_get_state(event, &state);
-
- switch (event->key.keyval) {
- case GDK_KEY_q:
- quit();
- case GDK_KEY_w:
- fit_image();
- break;
- case GDK_KEY_plus:
- case GDK_KEY_KP_Add:
- zoom(1);
- break;
- case GDK_KEY_minus:
- case GDK_KEY_KP_Subtract:
- zoom(-1);
- break;
- case GDK_KEY_equal:
- zoom(0);
- break;
- case GDK_KEY_n:
- next();
- break;
- case GDK_KEY_p:
- prev();
- break;
- case GDK_KEY_Up:
- if (curr_scale_mod == fit || state & GDK_SHIFT_MASK)
- prev();
- else
- scroll_window(0, -SCROLLAMMOUNT);
- break;
- case GDK_KEY_Down:
- if (curr_scale_mod == fit || state & GDK_SHIFT_MASK)
- next();
- else
- scroll_window(0, SCROLLAMMOUNT);
- break;
- case GDK_KEY_Right:
- if (curr_scale_mod == fit || state & GDK_SHIFT_MASK)
- next();
- else
- scroll_window(SCROLLAMMOUNT, 0);
- break;
- case GDK_KEY_Left:
- if (curr_scale_mod == fit || state & GDK_SHIFT_MASK)
- prev();
- else
- scroll_window(-SCROLLAMMOUNT, 0);
- break;
- case GDK_KEY_j:
- if (curr_scale_mod == fit)
- next();
- else
- scroll_window(0, SCROLLAMMOUNT);
- break;
- case GDK_KEY_J:
- next();
- break;
- case GDK_KEY_k:
- if (curr_scale_mod == fit)
- prev();
- else
- scroll_window(0, -SCROLLAMMOUNT);
- break;
- case GDK_KEY_K:
- prev();
- break;
- case GDK_KEY_l:
- if (curr_scale_mod == fit)
- next();
- else
- scroll_window(SCROLLAMMOUNT, 0);
- break;
- case GDK_KEY_L:
- next();
- break;
- case GDK_KEY_h:
- if (curr_scale_mod == fit)
- prev();
- else
- scroll_window(-SCROLLAMMOUNT, 0);
- break;
- case GDK_KEY_H:
- prev();
- break;
- case GDK_KEY_g:
- case GDK_KEY_Home:
- first();
- break;
- case GDK_KEY_G:
- case GDK_KEY_End:
- last();
- break;
- default:
- break;
- }
-}
-
-void handle_button_press(GdkEvent *event)
-{
- grabbed = 1;
- start_x = event->motion.x;
- start_y = event->motion.y;
-}
-
-void handle_button_release()
-{
- grabbed = 0;
-}
-
-void handle_mouse_move(gdouble x, gdouble y)
-{
- if (grabbed) {
- gdouble diff_x = start_x - x;
- gdouble diff_y = start_y - y;
- start_x = x;
- start_y = y;
- scroll_window(diff_x, diff_y);
- }
-}
-
-void handle_scroll(GdkEvent *event)
-{
- GdkModifierType state;
- gdk_event_get_state(event, &state);
-
- switch (event->scroll.direction) {
- case GDK_SCROLL_UP:
- if (state & GDK_CONTROL_MASK) {
- zoom(1);
- } else {
- prev();
- }
- break;
- case GDK_SCROLL_DOWN:
- if (state & GDK_CONTROL_MASK) {
- zoom(-1);
- } else {
- next();
- }
- break;
- default:
- break;
- }
-}
-
-gboolean resize_done(gpointer data)
-{
- guint *id = data;
- *id = 0;
- fit_image();
- return FALSE;
-}
-
-void handle_resize()
-{
- if (curr_scale_mod != fit)
- return;
- static guint id = 0;
- if (id)
- g_source_remove(id);
- id = g_timeout_add(TIMEOUT, resize_done, &id);
-}