Преглед на файлове

Use Button1 to open thumbnail

master
Bert преди 14 години
родител
ревизия
6adbb3831d
променени са 3 файла, в които са добавени 74 реда и са изтрити 41 реда
  1. +56
    -41
      main.c
  2. +16
    -0
      thumbs.c
  3. +2
    -0
      thumbs.h

+ 56
- 41
main.c Целия файл

@@ -268,11 +268,11 @@ void redraw() {
}

void on_keypress(XKeyEvent *kev) {
int sel, x, y;
int x, y;
unsigned int w, h;
char key;
KeySym ksym;
int changed;
int changed, sel;

if (!kev)
return;
@@ -439,7 +439,7 @@ void on_keypress(XKeyEvent *kev) {
}

void on_buttonpress(XButtonEvent *bev) {
int changed;
int changed, sel;
unsigned int mask;

if (!bev)
@@ -448,46 +448,61 @@ void on_buttonpress(XButtonEvent *bev) {
mask = CLEANMASK(bev->state);
changed = 0;

switch (bev->button) {
case Button1:
if (fileidx + 1 < filecnt) {
++fileidx;
changed = load_image();
}
break;
case Button2:
mox = bev->x;
moy = bev->y;
win_set_cursor(&win, CURSOR_HAND);
break;
case Button3:
if (fileidx > 0) {
--fileidx;
changed = load_image();
}
break;
case Button4:
if (mask == ControlMask)
changed = img_zoom_in(&img);
else if (mask == ShiftMask)
if (mode == MODE_NORMAL) {
switch (bev->button) {
case Button1:
if (fileidx + 1 < filecnt) {
++fileidx;
changed = load_image();
}
break;
case Button2:
mox = bev->x;
moy = bev->y;
win_set_cursor(&win, CURSOR_HAND);
break;
case Button3:
if (fileidx > 0) {
--fileidx;
changed = load_image();
}
break;
case Button4:
if (mask == ControlMask)
changed = img_zoom_in(&img);
else if (mask == ShiftMask)
changed = img_pan(&img, &win, PAN_LEFT);
else
changed = img_pan(&img, &win, PAN_UP);
break;
case Button5:
if (mask == ControlMask)
changed = img_zoom_out(&img);
else if (mask == ShiftMask)
changed = img_pan(&img, &win, PAN_RIGHT);
else
changed = img_pan(&img, &win, PAN_DOWN);
break;
case 6:
changed = img_pan(&img, &win, PAN_LEFT);
else
changed = img_pan(&img, &win, PAN_UP);
break;
case Button5:
if (mask == ControlMask)
changed = img_zoom_out(&img);
else if (mask == ShiftMask)
break;
case 7:
changed = img_pan(&img, &win, PAN_RIGHT);
else
changed = img_pan(&img, &win, PAN_DOWN);
break;
case 6:
changed = img_pan(&img, &win, PAN_LEFT);
break;
case 7:
changed = img_pan(&img, &win, PAN_RIGHT);
break;
break;
}
} else {
/* thumbnail mode */
switch (bev->button) {
case Button1:
if ((sel = tns_translate(&tns, bev->x, bev->y)) >= 0) {
fileidx = sel;
load_image();
mode = MODE_NORMAL;
changed = 1;
break;
}
break;
}
}

if (changed)


+ 16
- 0
thumbs.c Целия файл

@@ -170,3 +170,19 @@ void tns_move_selection(tns_t *tns, win_t *win, movedir_t dir) {
break;
}
}

int tns_translate(tns_t *tns, int x, int y) {
int n;
thumb_t *t;

if (!tns || x < 5 || y < 5)
return -1;

if ((n = y / thumb_dim * tns-> cols + x / thumb_dim) < tns->cnt) {
t = &tns->thumbs[n];
if (x > t->x && x < t->x + t->w && y > t->y && y < t->y + t->h)
return n;
}

return -1;
}

+ 2
- 0
thumbs.h Целия файл

@@ -57,4 +57,6 @@ void tns_highlight(tns_t*, win_t*, int);

void tns_move_selection(tns_t*, win_t*, movedir_t);

int tns_translate(tns_t*, int, int);

#endif /* THUMBS_H */

Loading…
Отказ
Запис