--- apps/plugins/viewer.c 2006-11-20 08:01:18.000000000 +0300 +++ apps/plugins/viewer.c 2007-01-07 22:31:27.796875000 +0300 @@ -125,6 +125,8 @@ #define VIEWER_LINE_DOWN (BUTTON_ON | BUTTON_DOWN) #define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT) #define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT) +#define VIEWER_PREV (BUTTON_ON | BUTTON_OFF) +#define VIEWER_NEXT (BUTTON_ON | BUTTON_SELECT) #define VIEWER_RC_QUIT BUTTON_RC_STOP @@ -1419,6 +1421,29 @@ break; case VIEWER_SCREEN_LEFT: + if (prefs.view_mode == WIDE) { + /* Screen left */ + col -= draw_columns/glyph_width('o'); + col = col_limit(col); + } + else { if (prefs.scroll_mode == PAGE) + { + /* Page up */ +#ifdef HAVE_LCD_BITMAP + for (i = prefs.page_mode==OVERLAP? 1:0; i < display_lines; i++) +#else + for (i = 0; i < display_lines; i++) +#endif + viewer_scroll_up(); + } + else + viewer_scroll_up(); + old_tick = *rb->current_tick; + } + + viewer_draw(col); + break; + case VIEWER_SCREEN_LEFT | BUTTON_REPEAT: if (prefs.view_mode == WIDE) { /* Screen left */ @@ -1434,6 +1459,25 @@ break; case VIEWER_SCREEN_RIGHT: + if (prefs.view_mode == WIDE) { + /* Screen right */ + col += draw_columns/glyph_width('o'); + col = col_limit(col); + } + else { if (prefs.scroll_mode == PAGE) + { + /* Page down */ + if (next_screen_ptr != NULL) + screen_top_ptr = next_screen_to_draw_ptr; + } + else + viewer_scroll_down(); + old_tick = *rb->current_tick; + } + + viewer_draw(col); + break; + case VIEWER_SCREEN_RIGHT | BUTTON_REPEAT: if (prefs.view_mode == WIDE) { /* Screen right */ @@ -1488,6 +1532,21 @@ break; #endif +#ifdef VIEWER_NEXT + case VIEWER_NEXT: + case VIEWER_NEXT | BUTTON_REPEAT: + rb->audio_next(); + break; + +#endif +#ifdef VIEWER_PREV + case VIEWER_PREV: + case VIEWER_PREV | BUTTON_REPEAT: + rb->audio_prev(); + break; + +#endif + #ifdef VIEWER_RC_QUIT case VIEWER_RC_QUIT: #endif