diff options
| author | Yoshihisa Uchida <uchida@rockbox.org> | 2010-04-14 11:19:30 +0000 |
|---|---|---|
| committer | Yoshihisa Uchida <uchida@rockbox.org> | 2010-04-14 11:19:30 +0000 |
| commit | 4157a31924be37b440c92df8a141ada7e7bfb704 (patch) | |
| tree | d26a07f45b66aa8fc35ff8bec22aa15823fc037e /apps/plugins/textviewer/tv_menu.c | |
| parent | 2ca2684ede50f145985ae147ca52aef27f7580b2 (diff) | |
| download | rockbox-4157a31924be37b440c92df8a141ada7e7bfb704.zip rockbox-4157a31924be37b440c92df8a141ada7e7bfb704.tar.gz rockbox-4157a31924be37b440c92df8a141ada7e7bfb704.tar.bz2 rockbox-4157a31924be37b440c92df8a141ada7e7bfb704.tar.xz | |
rvert r25644
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25645 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/textviewer/tv_menu.c')
| -rw-r--r-- | apps/plugins/textviewer/tv_menu.c | 384 |
1 files changed, 0 insertions, 384 deletions
diff --git a/apps/plugins/textviewer/tv_menu.c b/apps/plugins/textviewer/tv_menu.c deleted file mode 100644 index aa1b8d6..0000000 --- a/apps/plugins/textviewer/tv_menu.c +++ /dev/null @@ -1,384 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2002 Gilles Roux - * 2003 Garrett Derner - * 2010 Yoshihisa Uchida - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ -#include "plugin.h" -#include "lib/playback_control.h" - - -/* settings helper functions */ - -static bool encoding_setting(void) -{ - static struct opt_items names[NUM_CODEPAGES]; - int idx; - bool res; - enum codepages oldenc = prefs.encoding; - - for (idx = 0; idx < NUM_CODEPAGES; idx++) - { - names[idx].string = rb->get_codepage_name(idx); - names[idx].voice_id = -1; - } - - res = rb->set_option("Encoding", &prefs.encoding, INT, names, - sizeof(names) / sizeof(names[0]), NULL); - - /* When prefs.encoding changes into UTF-8 or changes from UTF-8, - * filesize (file_size) might change. - * In addition, if prefs.encoding is UTF-8, then BOM does not read. - */ - if (oldenc != prefs.encoding && (oldenc == UTF_8 || prefs.encoding == UTF_8)) - { - check_bom(); - get_filesize(); - fill_buffer(file_pos, buffer, buffer_size); - } - - return res; -} - -static bool word_wrap_setting(void) -{ - static const struct opt_items names[] = { - {"On", -1}, - {"Off (Chop Words)", -1}, - }; - - return rb->set_option("Word Wrap", &prefs.word_mode, INT, - names, 2, NULL); -} - -static bool line_mode_setting(void) -{ - static const struct opt_items names[] = { - {"Normal", -1}, - {"Join Lines", -1}, - {"Expand Lines", -1}, -#ifdef HAVE_LCD_BITMAP - {"Reflow Lines", -1}, -#endif - }; - - return rb->set_option("Line Mode", &prefs.line_mode, INT, names, - sizeof(names) / sizeof(names[0]), NULL); -} - -static bool view_mode_setting(void) -{ - static const struct opt_items names[] = { - {"No (Narrow)", -1}, - {"Yes", -1}, - }; - bool ret; - ret = rb->set_option("Wide View", &prefs.view_mode, INT, - names , 2, NULL); - if (prefs.view_mode == NARROW) - col = 0; - calc_max_width(); - return ret; -} - -static bool scroll_mode_setting(void) -{ - static const struct opt_items names[] = { - {"Scroll by Page", -1}, - {"Scroll by Line", -1}, - }; - - return rb->set_option("Scroll Mode", &prefs.scroll_mode, INT, - names, 2, NULL); -} - -#ifdef HAVE_LCD_BITMAP -static bool page_mode_setting(void) -{ - static const struct opt_items names[] = { - {"No", -1}, - {"Yes", -1}, - }; - - return rb->set_option("Overlap Pages", &prefs.page_mode, INT, - names, 2, NULL); -} - -static bool scrollbar_setting(void) -{ - static const struct opt_items names[] = { - {"Off", -1}, - {"On", -1} - }; - - return rb->set_option("Show Scrollbar", &prefs.scrollbar_mode, INT, - names, 2, NULL); -} - -static bool header_setting(void) -{ - int len = (rb->global_settings->statusbar == STATUSBAR_TOP)? 4 : 2; - struct opt_items names[len]; - - names[0].string = "None"; - names[0].voice_id = -1; - names[1].string = "File path"; - names[1].voice_id = -1; - - if (rb->global_settings->statusbar == STATUSBAR_TOP) - { - names[2].string = "Status bar"; - names[2].voice_id = -1; - names[3].string = "Both"; - names[3].voice_id = -1; - } - - return rb->set_option("Show Header", &prefs.header_mode, INT, - names, len, NULL); -} - -static bool footer_setting(void) -{ - int len = (rb->global_settings->statusbar == STATUSBAR_BOTTOM)? 4 : 2; - struct opt_items names[len]; - - names[0].string = "None"; - names[0].voice_id = -1; - names[1].string = "Page Num"; - names[1].voice_id = -1; - - if (rb->global_settings->statusbar == STATUSBAR_BOTTOM) - { - names[2].string = "Status bar"; - names[2].voice_id = -1; - names[3].string = "Both"; - names[3].voice_id = -1; - } - - return rb->set_option("Show Footer", &prefs.footer_mode, INT, - names, len, NULL); -} - -static int font_comp(const void *a, const void *b) -{ - struct opt_items *pa; - struct opt_items *pb; - - pa = (struct opt_items *)a; - pb = (struct opt_items *)b; - - return rb->strcmp(pa->string, pb->string); -} - -static bool font_setting(void) -{ - int count = 0; - DIR *dir; - struct dirent *entry; - int i = 0; - int len; - int new_font = 0; - int old_font; - bool res; - int size = 0; - - dir = rb->opendir(FONT_DIR); - if (!dir) - { - rb->splash(HZ/2, "font dir does not access."); - return false; - } - - while (1) - { - entry = rb->readdir(dir); - - if (entry == NULL) - break; - - len = rb->strlen(entry->d_name); - if (len < 4 || rb->strcmp(entry->d_name + len-4, ".fnt")) - continue; - size += len-3; - count++; - } - rb->closedir(dir); - - struct opt_items names[count]; - unsigned char font_names[size]; - unsigned char *p = font_names; - - dir = rb->opendir(FONT_DIR); - if (!dir) - { - rb->splash(HZ/2, "font dir does not access."); - return false; - } - - while (1) - { - entry = rb->readdir(dir); - - if (entry == NULL) - break; - - len = rb->strlen(entry->d_name); - if (len < 4 || rb->strcmp(entry->d_name + len-4, ".fnt")) - continue; - - rb->snprintf(p, len-3, "%s", entry->d_name); - names[i].string = p; - names[i].voice_id = -1; - p += len-3; - i++; - if (i >= count) - break; - } - rb->closedir(dir); - - rb->qsort(names, count, sizeof(struct opt_items), font_comp); - - for (i = 0; i < count; i++) - { - if (!rb->strcmp(names[i].string, prefs.font)) - { - new_font = i; - break; - } - } - old_font = new_font; - - res = rb->set_option("Select Font", &new_font, INT, - names, count, NULL); - - if (new_font != old_font) - { - rb->memset(prefs.font, 0, MAX_PATH); - rb->snprintf(prefs.font, MAX_PATH, "%s", names[new_font].string); - change_font(prefs.font); - } - - return res; -} -#endif - -static bool autoscroll_speed_setting(void) -{ - return rb->set_int("Auto-scroll Speed", "", UNIT_INT, - &prefs.autoscroll_speed, NULL, 1, 1, 10, NULL); -} - -MENUITEM_FUNCTION(encoding_item, 0, "Encoding", encoding_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(word_wrap_item, 0, "Word Wrap", word_wrap_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(line_mode_item, 0, "Line Mode", line_mode_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(view_mode_item, 0, "Wide View", view_mode_setting, - NULL, NULL, Icon_NOICON); -#ifdef HAVE_LCD_BITMAP -MENUITEM_FUNCTION(scrollbar_item, 0, "Show Scrollbar", scrollbar_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(page_mode_item, 0, "Overlap Pages", page_mode_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(header_item, 0, "Show Header", header_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(footer_item, 0, "Show Footer", footer_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(font_item, 0, "Font", font_setting, - NULL, NULL, Icon_NOICON); -#endif -MENUITEM_FUNCTION(scroll_mode_item, 0, "Scroll Mode", scroll_mode_setting, - NULL, NULL, Icon_NOICON); -MENUITEM_FUNCTION(autoscroll_speed_item, 0, "Auto-Scroll Speed", - autoscroll_speed_setting, NULL, NULL, Icon_NOICON); -MAKE_MENU(option_menu, "Viewer Options", NULL, Icon_NOICON, - &encoding_item, &word_wrap_item, &line_mode_item, &view_mode_item, -#ifdef HAVE_LCD_BITMAP - &scrollbar_item, &page_mode_item, &header_item, &footer_item, &font_item, -#endif - &scroll_mode_item, &autoscroll_speed_item); - -static bool viewer_options_menu(bool is_global) -{ - bool result; - struct preferences tmp_prefs; - - rb->memcpy(&tmp_prefs, &prefs, sizeof(struct preferences)); - - result = (rb->do_menu(&option_menu, NULL, NULL, false) == MENU_ATTACHED_USB); - - if (!is_global && rb->memcmp(&tmp_prefs, &prefs, sizeof(struct preferences))) - { - /* Show-scrollbar mode for current view-width mode */ -#ifdef HAVE_LCD_BITMAP - init_need_scrollbar(); - init_header_and_footer(); -#endif - calc_page(); - } - return result; -} - -void viewer_menu(void) -{ - int result; - - MENUITEM_STRINGLIST(menu, "Viewer Menu", NULL, - "Return", "Viewer Options", - "Show Playback Menu", "Select Bookmark", - "Global Settings", "Quit"); - - result = rb->do_menu(&menu, NULL, NULL, false); - switch (result) - { - case 0: /* return */ - break; - case 1: /* change settings */ - done = viewer_options_menu(false); - break; - case 2: /* playback control */ - playback_control(NULL); - break; - case 3: /* select bookmark */ - viewer_select_bookmark(viewer_add_last_read_bookmark()); - viewer_remove_last_read_bookmark(); - fill_buffer(file_pos, buffer, buffer_size); - if (prefs.scroll_mode == PAGE && cline > 1) - viewer_scroll_to_top_line(); - break; - case 4: /* change global settings */ - { - struct preferences orig_prefs; - - rb->memcpy(&orig_prefs, &prefs, sizeof(struct preferences)); - if (!viewer_load_global_settings()) - viewer_default_preferences(); - done = viewer_options_menu(true); - viewer_save_global_settings(); - rb->memcpy(&prefs, &orig_prefs, sizeof(struct preferences)); - } - break; - case 5: /* quit */ - viewer_exit(NULL); - done = true; - break; - } - viewer_draw(col); -} |