diff options
author | Jens Arnold <amiconn@rockbox.org> | 2006-05-03 23:16:53 +0000 |
---|---|---|
committer | Jens Arnold <amiconn@rockbox.org> | 2006-05-03 23:16:53 +0000 |
commit | 2343a1935d70e358ab6bbeda87d0016686eca7a3 (patch) | |
tree | 32d33e20bad1176a763520e63c23c785bc153615 /apps/plugins/viewer.c | |
parent | 542d9b594212554077b63824eafc4f8a33135881 (diff) | |
download | rockbox-2343a1935d70e358ab6bbeda87d0016686eca7a3.tar.gz rockbox-2343a1935d70e358ab6bbeda87d0016686eca7a3.zip |
Text viewer: * Only show those options which really exist. * Basic button functions now available on all targets. * Implemented option setting in a more straightforward way (like the core options menus).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@9874 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/viewer.c')
-rw-r--r-- | apps/plugins/viewer.c | 229 |
1 files changed, 115 insertions, 114 deletions
diff --git a/apps/plugins/viewer.c b/apps/plugins/viewer.c index 18c6a36360..bdebbbe506 100644 --- a/apps/plugins/viewer.c +++ b/apps/plugins/viewer.c | |||
@@ -75,20 +75,24 @@ PLUGIN_HEADER | |||
75 | 75 | ||
76 | /* Ondio keys */ | 76 | /* Ondio keys */ |
77 | #elif CONFIG_KEYPAD == ONDIO_PAD | 77 | #elif CONFIG_KEYPAD == ONDIO_PAD |
78 | #define VIEWER_QUIT BUTTON_OFF | ||
78 | #define VIEWER_PAGE_UP BUTTON_UP | 79 | #define VIEWER_PAGE_UP BUTTON_UP |
79 | #define VIEWER_PAGE_DOWN BUTTON_DOWN | 80 | #define VIEWER_PAGE_DOWN BUTTON_DOWN |
80 | #define VIEWER_SCREEN_LEFT BUTTON_LEFT | 81 | #define VIEWER_SCREEN_LEFT BUTTON_LEFT |
81 | #define VIEWER_SCREEN_RIGHT BUTTON_RIGHT | 82 | #define VIEWER_SCREEN_RIGHT BUTTON_RIGHT |
82 | #define VIEWER_MENU BUTTON_OFF | 83 | #define VIEWER_MENU (BUTTON_MENU|BUTTON_REPEAT) |
83 | #define VIEWER_AUTOSCROLL BUTTON_MENU | 84 | #define VIEWER_AUTOSCROLL_PRE BUTTON_MENU |
85 | #define VIEWER_AUTOSCROLL (BUTTON_MENU|BUTTON_REL) | ||
84 | 86 | ||
85 | /* Player keys */ | 87 | /* Player keys */ |
86 | #elif CONFIG_KEYPAD == PLAYER_PAD | 88 | #elif CONFIG_KEYPAD == PLAYER_PAD |
87 | #define VIEWER_QUIT BUTTON_STOP | 89 | #define VIEWER_QUIT BUTTON_STOP |
88 | #define VIEWER_PAGE_UP BUTTON_LEFT | 90 | #define VIEWER_PAGE_UP BUTTON_LEFT |
89 | #define VIEWER_PAGE_DOWN BUTTON_RIGHT | 91 | #define VIEWER_PAGE_DOWN BUTTON_RIGHT |
92 | #define VIEWER_SCREEN_LEFT (BUTTON_ON|BUTTON_LEFT) | ||
93 | #define VIEWER_SCREEN_RIGHT (BUTTON_ON|BUTTON_RIGHT) | ||
90 | #define VIEWER_MENU BUTTON_MENU | 94 | #define VIEWER_MENU BUTTON_MENU |
91 | #define VIEWER_AUTOSCROLL BUTTON_ON | 95 | #define VIEWER_AUTOSCROLL BUTTON_PLAY |
92 | 96 | ||
93 | /* iRiver H1x0 && H3x0 keys */ | 97 | /* iRiver H1x0 && H3x0 keys */ |
94 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ | 98 | #elif (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ |
@@ -102,18 +106,20 @@ PLUGIN_HEADER | |||
102 | #define VIEWER_AUTOSCROLL BUTTON_SELECT | 106 | #define VIEWER_AUTOSCROLL BUTTON_SELECT |
103 | #define VIEWER_LINE_UP (BUTTON_ON | BUTTON_UP) | 107 | #define VIEWER_LINE_UP (BUTTON_ON | BUTTON_UP) |
104 | #define VIEWER_LINE_DOWN (BUTTON_ON | BUTTON_DOWN) | 108 | #define VIEWER_LINE_DOWN (BUTTON_ON | BUTTON_DOWN) |
109 | #define VIEWER_COLUMN_LEFT (BUTTON_ON | BUTTON_LEFT) | ||
110 | #define VIEWER_COLUMN_RIGHT (BUTTON_ON | BUTTON_RIGHT) | ||
105 | 111 | ||
106 | /* iPods with the 4G pad */ | 112 | /* iPods with the 4G pad */ |
107 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ | 113 | #elif (CONFIG_KEYPAD == IPOD_4G_PAD) || \ |
108 | (CONFIG_KEYPAD == IPOD_3G_PAD) | 114 | (CONFIG_KEYPAD == IPOD_3G_PAD) |
109 | #define VIEWER_QUIT_PRE BUTTON_SELECT | 115 | #define VIEWER_QUIT_PRE BUTTON_SELECT |
110 | #define VIEWER_QUIT (BUTTON_SELECT | BUTTON_MENU) | 116 | #define VIEWER_QUIT (BUTTON_SELECT | BUTTON_MENU) |
111 | #define VIEWER_MENU BUTTON_MENU | ||
112 | #define VIEWER_AUTOSCROLL BUTTON_PLAY | ||
113 | #define VIEWER_PAGE_UP BUTTON_SCROLL_BACK | 117 | #define VIEWER_PAGE_UP BUTTON_SCROLL_BACK |
114 | #define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD | 118 | #define VIEWER_PAGE_DOWN BUTTON_SCROLL_FWD |
115 | #define VIEWER_SCREEN_LEFT BUTTON_LEFT | 119 | #define VIEWER_SCREEN_LEFT BUTTON_LEFT |
116 | #define VIEWER_SCREEN_RIGHT BUTTON_RIGHT | 120 | #define VIEWER_SCREEN_RIGHT BUTTON_RIGHT |
121 | #define VIEWER_MENU BUTTON_MENU | ||
122 | #define VIEWER_AUTOSCROLL BUTTON_PLAY | ||
117 | 123 | ||
118 | /* iFP7xx keys */ | 124 | /* iFP7xx keys */ |
119 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD | 125 | #elif CONFIG_KEYPAD == IRIVER_IFP7XX_PAD |
@@ -151,48 +157,36 @@ struct preferences { | |||
151 | enum { | 157 | enum { |
152 | WRAP=0, | 158 | WRAP=0, |
153 | CHOP, | 159 | CHOP, |
154 | WORD_MODES | ||
155 | } word_mode; | 160 | } word_mode; |
156 | 161 | ||
157 | enum { | 162 | enum { |
158 | NORMAL=0, | 163 | NORMAL=0, |
159 | JOIN, | 164 | JOIN, |
160 | #ifdef HAVE_LCD_BITMAP | ||
161 | REFLOW, /* Makes no sense for the player */ | ||
162 | #endif | ||
163 | EXPAND, | 165 | EXPAND, |
164 | LINE_MODES, | 166 | REFLOW, /* won't be set on charcell LCD, must be last */ |
165 | #ifndef HAVE_LCD_BITMAP | ||
166 | REFLOW /* Sorting it behind LINE_MODES effectively disables it. */ | ||
167 | #endif | ||
168 | } line_mode; | 167 | } line_mode; |
169 | 168 | ||
170 | enum { | 169 | enum { |
171 | NARROW=0, | 170 | NARROW=0, |
172 | WIDE, | 171 | WIDE, |
173 | VIEW_MODES | ||
174 | } view_mode; | 172 | } view_mode; |
175 | 173 | ||
176 | #ifdef HAVE_LCD_BITMAP | 174 | #ifdef HAVE_LCD_BITMAP |
177 | enum { | 175 | enum { |
178 | SB_OFF=0, | 176 | SB_OFF=0, |
179 | SB_ON, | 177 | SB_ON, |
180 | SCROLLBAR_MODES | ||
181 | } scrollbar_mode; | 178 | } scrollbar_mode; |
182 | bool need_scrollbar; | 179 | bool need_scrollbar; |
183 | 180 | ||
184 | enum { | 181 | enum { |
185 | NO_OVERLAP=0, | 182 | NO_OVERLAP=0, |
186 | OVERLAP, | 183 | OVERLAP, |
187 | PAGE_MODES | ||
188 | } page_mode; | 184 | } page_mode; |
189 | |||
190 | #endif /* HAVE_LCD_BITMAP */ | 185 | #endif /* HAVE_LCD_BITMAP */ |
191 | 186 | ||
192 | enum { | 187 | enum { |
193 | PAGE=0, | 188 | PAGE=0, |
194 | LINE, | 189 | LINE, |
195 | SCROLL_MODES | ||
196 | } scroll_mode; | 190 | } scroll_mode; |
197 | 191 | ||
198 | int autoscroll_speed; | 192 | int autoscroll_speed; |
@@ -816,7 +810,6 @@ static void viewer_top(void) | |||
816 | fill_buffer(0, buffer, BUFFER_SIZE); | 810 | fill_buffer(0, buffer, BUFFER_SIZE); |
817 | } | 811 | } |
818 | 812 | ||
819 | #ifdef HAVE_LCD_BITMAP | ||
820 | static void viewer_bottom(void) | 813 | static void viewer_bottom(void) |
821 | { | 814 | { |
822 | /* Read bottom of file into buffer | 815 | /* Read bottom of file into buffer |
@@ -838,6 +831,7 @@ static void viewer_bottom(void) | |||
838 | fill_buffer(last_sectors, buffer, BUFFER_SIZE); | 831 | fill_buffer(last_sectors, buffer, BUFFER_SIZE); |
839 | } | 832 | } |
840 | 833 | ||
834 | #ifdef HAVE_LCD_BITMAP | ||
841 | static void init_need_scrollbar(void) { | 835 | static void init_need_scrollbar(void) { |
842 | /* Call viewer_draw in quiet mode to initialize next_screen_ptr, | 836 | /* Call viewer_draw in quiet mode to initialize next_screen_ptr, |
843 | and thus ONE_SCREEN_FITS_ALL(), and thus NEED_SCROLLBAR() */ | 837 | and thus ONE_SCREEN_FITS_ALL(), and thus NEED_SCROLLBAR() */ |
@@ -911,6 +905,7 @@ static void viewer_reset_settings(void) | |||
911 | prefs.page_mode = NO_OVERLAP; | 905 | prefs.page_mode = NO_OVERLAP; |
912 | prefs.scrollbar_mode = SB_OFF; | 906 | prefs.scrollbar_mode = SB_OFF; |
913 | #endif | 907 | #endif |
908 | prefs.autoscroll_speed = 1; | ||
914 | } | 909 | } |
915 | 910 | ||
916 | static void viewer_load_settings(void) /* same name as global, but not the same file.. */ | 911 | static void viewer_load_settings(void) /* same name as global, but not the same file.. */ |
@@ -963,7 +958,6 @@ static void viewer_exit(void *parameter) | |||
963 | rb->close(fd); | 958 | rb->close(fd); |
964 | } | 959 | } |
965 | 960 | ||
966 | #ifdef HAVE_LCD_BITMAP | ||
967 | static int col_limit(int col) | 961 | static int col_limit(int col) |
968 | { | 962 | { |
969 | if (col < 0) | 963 | if (col < 0) |
@@ -974,114 +968,120 @@ static int col_limit(int col) | |||
974 | 968 | ||
975 | return col; | 969 | return col; |
976 | } | 970 | } |
977 | #endif | ||
978 | 971 | ||
979 | static void change_options_menu(void) | 972 | /* settings helper functions */ |
980 | { | ||
981 | int m, result; | ||
982 | bool done = false; | ||
983 | 973 | ||
984 | static const struct menu_item items[] = { | 974 | static bool word_wrap_setting(void) |
985 | {"Word Wrap", NULL }, | 975 | { |
986 | {"Line Mode", NULL }, | 976 | static const struct opt_items names[] = { |
987 | {"Wide View", NULL }, | 977 | {"On", NULL}, |
988 | {"Overlap Pages", NULL }, | 978 | {"Off (Chop Words)", NULL}, |
989 | {"Scroll Mode", NULL}, | ||
990 | #ifdef HAVE_LCD_BITMAP | ||
991 | {"Show Scrollbar", NULL }, | ||
992 | #endif | ||
993 | {"Auto-Scroll Speed", NULL }, | ||
994 | }; | ||
995 | static const struct opt_items opt_word_mode[2] = { | ||
996 | {"On",NULL},{"Off (Chop Words)",NULL}, | ||
997 | }; | 979 | }; |
980 | |||
981 | return rb->set_option("Word Wrap", &prefs.word_mode, INT, | ||
982 | names, 2, NULL); | ||
983 | } | ||
984 | |||
985 | static bool line_mode_setting(void) | ||
986 | { | ||
987 | static const struct opt_items names[] = { | ||
988 | {"Normal", NULL}, | ||
989 | {"Join Lines", NULL}, | ||
990 | {"Expand Lines", NULL}, | ||
998 | #ifdef HAVE_LCD_BITMAP | 991 | #ifdef HAVE_LCD_BITMAP |
999 | static const struct opt_items opt_line_mode[4] = { | 992 | {"Reflow Lines", NULL}, |
1000 | {"Normal",NULL},{"Join Lines",NULL}, | ||
1001 | {"Reflow Lines",NULL},{"Expand Lines",NULL}, | ||
1002 | #else | ||
1003 | static const struct opt_items opt_line_mode[3] = { | ||
1004 | {"Normal",NULL},{"Join Lines",NULL}, | ||
1005 | {"Expand Lines",NULL}, | ||
1006 | #endif | 993 | #endif |
1007 | }; | 994 | }; |
1008 | static const struct opt_items opt_view_mode[2] = { | 995 | |
1009 | {"No (Narrow)",NULL},{"Yes",NULL} | 996 | return rb->set_option("Line Mode", &prefs.line_mode, INT, names, |
997 | sizeof(names) / sizeof(names[0]), NULL); | ||
998 | } | ||
999 | |||
1000 | static bool view_mode_setting(void) | ||
1001 | { | ||
1002 | static const struct opt_items names[] = { | ||
1003 | {"No (Narrow)", NULL}, | ||
1004 | {"Yes", NULL}, | ||
1010 | }; | 1005 | }; |
1011 | static const struct opt_items opt_scroll_mode[2] = { | 1006 | |
1012 | {"Scroll by Page",NULL},{"Scroll by Line",NULL} | 1007 | return rb->set_option("Wide View", &prefs.view_mode, INT, |
1008 | names , 2, NULL); | ||
1009 | } | ||
1010 | |||
1011 | static bool scroll_mode_setting(void) | ||
1012 | { | ||
1013 | static const struct opt_items names[] = { | ||
1014 | {"Scroll by Page", NULL}, | ||
1015 | {"Scroll by Line", NULL}, | ||
1013 | }; | 1016 | }; |
1017 | |||
1018 | return rb->set_option("Scroll Mode", &prefs.scroll_mode, INT, | ||
1019 | names, 2, NULL); | ||
1020 | } | ||
1021 | |||
1014 | #ifdef HAVE_LCD_BITMAP | 1022 | #ifdef HAVE_LCD_BITMAP |
1015 | static const struct opt_items opt_scrollbar_mode[2] = { | 1023 | static bool page_mode_setting(void) |
1016 | {"Off",NULL},{"On",NULL} | 1024 | { |
1025 | static const struct opt_items names[] = { | ||
1026 | {"No", NULL}, | ||
1027 | {"Yes", NULL}, | ||
1017 | }; | 1028 | }; |
1018 | static const struct opt_items opt_page_mode[2] = { | 1029 | |
1019 | {"No",NULL},{"Yes",NULL} | 1030 | return rb->set_option("Overlap Pages", &prefs.page_mode, INT, |
1031 | names, 2, NULL); | ||
1032 | } | ||
1033 | |||
1034 | static bool scrollbar_setting(void) | ||
1035 | { | ||
1036 | static const struct opt_items names[] = { | ||
1037 | {"Off", NULL}, | ||
1038 | {"On", NULL} | ||
1020 | }; | 1039 | }; |
1040 | |||
1041 | return rb->set_option("Show Scrollbar", &prefs.scrollbar_mode, INT, | ||
1042 | names, 2, NULL); | ||
1043 | } | ||
1021 | #endif | 1044 | #endif |
1022 | static const struct opt_items opt_autoscroll_speed[10] = { | ||
1023 | { "1", NULL },{ "2", NULL },{ "3", NULL },{ "4", NULL },{ "5", NULL }, | ||
1024 | { "6", NULL },{ "7", NULL },{ "8", NULL },{ "9", NULL },{ "10", NULL } | ||
1025 | }; | ||
1026 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), | ||
1027 | NULL, NULL, NULL, NULL); | ||
1028 | 1045 | ||
1029 | while(!done) | 1046 | static bool autoscroll_speed_setting(void) |
1030 | { | 1047 | { |
1031 | result=rb->menu_show(m); | 1048 | return rb->set_int("Auto-scroll Speed", "", UNIT_INT, |
1032 | switch (result) | 1049 | &prefs.autoscroll_speed, NULL, 1, 1, 10, NULL); |
1033 | { | 1050 | } |
1034 | case MENU_SELECTED_EXIT: | ||
1035 | done = true; | ||
1036 | break; | ||
1037 | 1051 | ||
1038 | case 0: /* word mode */ | 1052 | static bool viewer_options_menu(void) |
1039 | rb->set_option("Word Wrap", &prefs.word_mode, INT, | 1053 | { |
1040 | opt_word_mode , 2, NULL); | 1054 | int m; |
1041 | break; | 1055 | bool result; |
1042 | case 1: /* line mode */ | 1056 | |
1043 | rb->set_option("Line Mode", &prefs.line_mode, INT, opt_line_mode, | 1057 | static const struct menu_item items[] = { |
1044 | sizeof(opt_line_mode) / sizeof(*opt_line_mode), NULL); | 1058 | {"Word Wrap", word_wrap_setting }, |
1045 | break; | 1059 | {"Line Mode", line_mode_setting }, |
1046 | case 2: /* view mode */ | 1060 | {"Wide View", view_mode_setting }, |
1047 | rb->set_option("Wide View", &prefs.view_mode, INT, | ||
1048 | opt_view_mode , 2, NULL); | ||
1049 | break; | ||
1050 | #ifdef HAVE_LCD_BITMAP | 1061 | #ifdef HAVE_LCD_BITMAP |
1051 | case 3: | 1062 | {"Show Scrollbar", scrollbar_setting }, |
1052 | rb->set_option("Overlap Pages", &prefs.page_mode, INT, | 1063 | {"Overlap Pages", page_mode_setting }, |
1053 | opt_page_mode , 2, NULL); | ||
1054 | break; | ||
1055 | #endif | 1064 | #endif |
1056 | case 4: | 1065 | {"Scroll Mode", scroll_mode_setting}, |
1057 | rb->set_option("Scroll Mode", &prefs.scroll_mode, INT, | 1066 | {"Auto-Scroll Speed", autoscroll_speed_setting }, |
1058 | opt_scroll_mode , 2, NULL); | 1067 | }; |
1059 | break; | 1068 | m = rb->menu_init(items, sizeof(items) / sizeof(*items), |
1060 | #ifdef HAVE_LCD_BITMAP | 1069 | NULL, NULL, NULL, NULL); |
1061 | case 5: | 1070 | |
1062 | rb->set_option("Show Scrollbar", &prefs.scrollbar_mode, INT, | 1071 | result = rb->menu_run(m); |
1063 | opt_scrollbar_mode , 2, NULL); | ||
1064 | /* Show-scrollbar mode for current view-width mode */ | ||
1065 | if (!(ONE_SCREEN_FITS_ALL())) { | ||
1066 | if (prefs.scrollbar_mode == true) | ||
1067 | init_need_scrollbar(); | ||
1068 | } | ||
1069 | break; | ||
1070 | #endif | ||
1071 | case 6: | ||
1072 | rb->set_option("Auto-Scroll Speed", &prefs.autoscroll_speed, INT, | ||
1073 | opt_autoscroll_speed, sizeof(opt_autoscroll_speed) / | ||
1074 | sizeof(*opt_autoscroll_speed), NULL); | ||
1075 | break; | ||
1076 | } /* switch() */ | ||
1077 | } | ||
1078 | rb->menu_exit(m); | 1072 | rb->menu_exit(m); |
1079 | #ifdef HAVE_LCD_BITMAP | 1073 | #ifdef HAVE_LCD_BITMAP |
1080 | rb->lcd_setmargins(0,0); | 1074 | rb->lcd_setmargins(0,0); |
1075 | |||
1076 | /* Show-scrollbar mode for current view-width mode */ | ||
1077 | if (!ONE_SCREEN_FITS_ALL()) | ||
1078 | if (prefs.scrollbar_mode == true) | ||
1079 | init_need_scrollbar(); | ||
1081 | #endif | 1080 | #endif |
1081 | return result; | ||
1082 | } | 1082 | } |
1083 | 1083 | ||
1084 | static void show_menu(void) | 1084 | static void viewer_menu(void) |
1085 | { | 1085 | { |
1086 | int m; | 1086 | int m; |
1087 | int result; | 1087 | int result; |
@@ -1103,7 +1103,7 @@ static void show_menu(void) | |||
1103 | done = true; | 1103 | done = true; |
1104 | break; | 1104 | break; |
1105 | case 1: /* change settings */ | 1105 | case 1: /* change settings */ |
1106 | change_options_menu(); | 1106 | done = viewer_options_menu(); |
1107 | break; | 1107 | break; |
1108 | case 2: /* playback control */ | 1108 | case 2: /* playback control */ |
1109 | playback_control(rb); | 1109 | playback_control(rb); |
@@ -1121,6 +1121,7 @@ static void show_menu(void) | |||
1121 | enum plugin_status plugin_start(struct plugin_api* api, void* file) | 1121 | enum plugin_status plugin_start(struct plugin_api* api, void* file) |
1122 | { | 1122 | { |
1123 | int button, i, ok; | 1123 | int button, i, ok; |
1124 | int lastbutton = BUTTON_NONE; | ||
1124 | bool autoscroll = false; | 1125 | bool autoscroll = false; |
1125 | int old_tick = *rb->current_tick; | 1126 | int old_tick = *rb->current_tick; |
1126 | 1127 | ||
@@ -1157,10 +1158,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1157 | button = rb->button_get_w_tmo(HZ/10); | 1158 | button = rb->button_get_w_tmo(HZ/10); |
1158 | switch (button) { | 1159 | switch (button) { |
1159 | case VIEWER_MENU: | 1160 | case VIEWER_MENU: |
1160 | show_menu(); | 1161 | viewer_menu(); |
1161 | break; | 1162 | break; |
1162 | 1163 | ||
1163 | case VIEWER_AUTOSCROLL: | 1164 | case VIEWER_AUTOSCROLL: |
1165 | #ifdef VIEWER_AUTOSCROLL_PRE | ||
1166 | if (lastbutton != VIEWER_AUTOSCROLL_PRE) | ||
1167 | break; | ||
1168 | #endif | ||
1164 | autoscroll = !autoscroll; | 1169 | autoscroll = !autoscroll; |
1165 | break; | 1170 | break; |
1166 | 1171 | ||
@@ -1196,7 +1201,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1196 | viewer_draw(col); | 1201 | viewer_draw(col); |
1197 | break; | 1202 | break; |
1198 | 1203 | ||
1199 | #ifdef VIEWER_SCREEN_LEFT | ||
1200 | case VIEWER_SCREEN_LEFT: | 1204 | case VIEWER_SCREEN_LEFT: |
1201 | case VIEWER_SCREEN_LEFT | BUTTON_REPEAT: | 1205 | case VIEWER_SCREEN_LEFT | BUTTON_REPEAT: |
1202 | if (prefs.view_mode == WIDE) { | 1206 | if (prefs.view_mode == WIDE) { |
@@ -1211,9 +1215,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1211 | 1215 | ||
1212 | viewer_draw(col); | 1216 | viewer_draw(col); |
1213 | break; | 1217 | break; |
1214 | #endif | ||
1215 | 1218 | ||
1216 | #ifdef VIEWER_SCREEN_LEFT | ||
1217 | case VIEWER_SCREEN_RIGHT: | 1219 | case VIEWER_SCREEN_RIGHT: |
1218 | case VIEWER_SCREEN_RIGHT | BUTTON_REPEAT: | 1220 | case VIEWER_SCREEN_RIGHT | BUTTON_REPEAT: |
1219 | if (prefs.view_mode == WIDE) { | 1221 | if (prefs.view_mode == WIDE) { |
@@ -1228,7 +1230,6 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1228 | 1230 | ||
1229 | viewer_draw(col); | 1231 | viewer_draw(col); |
1230 | break; | 1232 | break; |
1231 | #endif | ||
1232 | 1233 | ||
1233 | #ifdef VIEWER_LINE_UP | 1234 | #ifdef VIEWER_LINE_UP |
1234 | case VIEWER_LINE_UP: | 1235 | case VIEWER_LINE_UP: |
@@ -1266,12 +1267,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1266 | break; | 1267 | break; |
1267 | #endif | 1268 | #endif |
1268 | 1269 | ||
1269 | #ifdef VIEWER_QUIT | ||
1270 | case VIEWER_QUIT: | 1270 | case VIEWER_QUIT: |
1271 | viewer_exit(NULL); | 1271 | viewer_exit(NULL); |
1272 | done = true; | 1272 | done = true; |
1273 | break; | 1273 | break; |
1274 | #endif | ||
1275 | 1274 | ||
1276 | default: | 1275 | default: |
1277 | if (rb->default_event_handler_ex(button, viewer_exit, NULL) | 1276 | if (rb->default_event_handler_ex(button, viewer_exit, NULL) |
@@ -1279,6 +1278,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* file) | |||
1279 | return PLUGIN_USB_CONNECTED; | 1278 | return PLUGIN_USB_CONNECTED; |
1280 | break; | 1279 | break; |
1281 | } | 1280 | } |
1281 | if (button != BUTTON_NONE) | ||
1282 | lastbutton = button; | ||
1282 | } | 1283 | } |
1283 | return PLUGIN_OK; | 1284 | return PLUGIN_OK; |
1284 | } | 1285 | } |