FBReader::FBReader(const std::string &bookToOpen) : ZLApplication("FBReader"), QuitOnCancelOption(ZLCategoryKey::CONFIG, OPTIONS, "QuitOnCancel", false), KeyScrollingDelayOption(ZLCategoryKey::CONFIG, "Scrollings", "Delay", 0, 2000, 100), LinesToScrollOption(ZLCategoryKey::CONFIG, "SmallScrolling", "LinesToScroll", 1, 20, 1), LinesToKeepOption(ZLCategoryKey::CONFIG, "LargeScrolling", "LinesToKeepOption", 0, 20, 0), EnableTapScrollingOption(ZLCategoryKey::CONFIG, "TapScrolling", "Enabled", true), TapScrollingOnFingerOnlyOption(ZLCategoryKey::CONFIG, "TapScrolling", "FingerOnly", true), UseSeparateBindingsOption(ZLCategoryKey::CONFIG, "KeysOptions", "UseSeparateBindings", false), EnableSingleClickDictionaryOption(ZLCategoryKey::CONFIG, "Dictionary", "SingleClick", false), myBindings0(new ZLKeyBindings("Keys")), myBindings90(new ZLKeyBindings("Keys90")), myBindings180(new ZLKeyBindings("Keys180")), myBindings270(new ZLKeyBindings("Keys270")), myBookToOpen(bookToOpen), myBookAlreadyOpen(false), myBookReady(false), myGlobalAllowHyphenations(false), myActionOnCancel(UNFULLSCREEN) { myBookTextView = new BookTextView(*context()); myFootnoteView = new FootnoteView(*context()); myContentsView = new ContentsView(*context()); myNetworkLibraryView = new NetworkView(*context()); myLibraryByAuthorView = new LibraryByAuthorView(*context()); myLibraryByTagView = new LibraryByTagView(*context()); myRecentBooksPopupData = new RecentBooksPopupData(); myMode = UNDEFINED_MODE; myPreviousMode = BOOK_TEXT_MODE; setMode(BOOK_TEXT_MODE); addAction(ActionCode::SHOW_READING, new UndoAction(FBReader::ALL_MODES & ~FBReader::BOOK_TEXT_MODE)); addAction(ActionCode::SHOW_LIBRARY, new SetModeAction(FBReader::LIBRARY_MODE, FBReader::BOOK_TEXT_MODE | FBReader::CONTENTS_MODE)); addAction(ActionCode::SHOW_NETWORK_LIBRARY, new ShowNetworkLibraryAction()); addAction(ActionCode::SEARCH_ON_NETWORK, new SimpleSearchOnNetworkAction()); addAction(ActionCode::ADVANCED_SEARCH_ON_NETWORK, new AdvancedSearchOnNetworkAction()); registerPopupData(ActionCode::SHOW_LIBRARY, myRecentBooksPopupData); addAction(ActionCode::SHOW_OPTIONS_DIALOG, new ShowOptionsDialogAction()); addAction(ActionCode::SHOW_TOC, new ShowContentsAction()); addAction(ActionCode::SHOW_BOOK_INFO_DIALOG, new ShowBookInfoAction()); addAction(ActionCode::ADD_BOOK, new AddBookAction(FBReader::BOOK_TEXT_MODE | FBReader::LIBRARY_MODE | FBReader::CONTENTS_MODE)); addAction(ActionCode::UNDO, new UndoAction(FBReader::BOOK_TEXT_MODE)); addAction(ActionCode::REDO, new RedoAction()); addAction(ActionCode::SEARCH, new SearchPatternAction()); addAction(ActionCode::FIND_NEXT, new FindNextAction()); addAction(ActionCode::FIND_PREVIOUS, new FindPreviousAction()); addAction(ActionCode::SCROLL_TO_HOME, new ScrollToHomeAction()); addAction(ActionCode::SCROLL_TO_START_OF_TEXT, new ScrollToStartOfTextAction()); addAction(ActionCode::SCROLL_TO_END_OF_TEXT, new ScrollToEndOfTextAction()); addAction(ActionCode::PAGE_SCROLL_FORWARD, new PageScrollingAction(true)); addAction(ActionCode::PAGE_SCROLL_BACKWARD, new PageScrollingAction(false)); addAction(ActionCode::LINE_SCROLL_FORWARD, new LineScrollingAction(true)); addAction(ActionCode::LINE_SCROLL_BACKWARD, new LineScrollingAction(false)); addAction(ActionCode::MOUSE_SCROLL_FORWARD, new MouseWheelScrollingAction(true)); addAction(ActionCode::MOUSE_SCROLL_BACKWARD, new MouseWheelScrollingAction(false)); addAction(ActionCode::TAP_SCROLL_FORWARD, new TapScrollingAction(true)); addAction(ActionCode::TAP_SCROLL_BACKWARD, new TapScrollingAction(false)); addAction(ActionCode::INCREASE_FONT, new ChangeFontSizeAction(2)); addAction(ActionCode::DECREASE_FONT, new ChangeFontSizeAction(-2)); addAction(ActionCode::ROTATE_SCREEN, new RotationAction()); addAction(ActionCode::TOGGLE_FULLSCREEN, new FBFullscreenAction()); addAction(ActionCode::FULLSCREEN_ON, new FBFullscreenAction()); addAction(ActionCode::CANCEL, new CancelAction()); addAction(ActionCode::SHOW_HIDE_POSITION_INDICATOR, new ToggleIndicatorAction()); addAction(ActionCode::QUIT, new QuitAction()); addAction(ActionCode::FORCE_QUIT, new ForceQuitAction()); addAction(ActionCode::OPEN_PREVIOUS_BOOK, new OpenPreviousBookAction()); addAction(ActionCode::SHOW_HELP, new ShowHelpAction()); addAction(ActionCode::GOTO_NEXT_TOC_SECTION, new GotoNextTOCSectionAction()); addAction(ActionCode::GOTO_PREVIOUS_TOC_SECTION, new GotoPreviousTOCSectionAction()); addAction(ActionCode::COPY_SELECTED_TEXT_TO_CLIPBOARD, new CopySelectedTextAction()); addAction(ActionCode::OPEN_SELECTED_TEXT_IN_DICTIONARY, new OpenSelectedTextInDictionaryAction()); addAction(ActionCode::CLEAR_SELECTION, new ClearSelectionAction()); addAction(ActionCode::GOTO_PAGE_NUMBER, new GotoPageNumberAction(std::string())); addAction(ActionCode::GOTO_PAGE_NUMBER_WITH_PARAMETER, new GotoPageNumberAction(PageIndexParameter)); shared_ptr<Action> booksOrderAction = new BooksOrderAction(); addAction(ActionCode::ORGANIZE_BOOKS_BY_AUTHOR, booksOrderAction); addAction(ActionCode::ORGANIZE_BOOKS_BY_TAG, booksOrderAction); addAction(ActionCode::FILTER_LIBRARY, new FilterLibraryAction()); myOpenFileHandler = new OpenFileHandler(); ZLCommunicationManager::Instance().registerHandler("openFile", myOpenFileHandler); }
FBReader::FBReader(const std::string &bookToOpen) : ZLApplication("FBReader"), QuitOnCancelOption(ZLCategoryKey::CONFIG, OPTIONS, "QuitOnCancel", true), LargeScrollingOptions(LARGE_SCROLLING, 250, ZLTextView::NO_OVERLAPPING, 1, 1, 50), SmallScrollingOptions(SMALL_SCROLLING, 50, ZLTextView::SCROLL_LINES, 1, 1, 50), MouseScrollingOptions(MOUSE_SCROLLING, 0, ZLTextView::SCROLL_LINES, 1, 1, 50), TapScrollingOptions(TAP_SCROLLING, 0, ZLTextView::NO_OVERLAPPING, 1, 1, 50), EnableTapScrollingOption(ZLCategoryKey::CONFIG, TAP_SCROLLING, "Enabled", true), TapScrollingOnFingerOnlyOption(ZLCategoryKey::CONFIG, TAP_SCROLLING, "FingerOnly", true), UseSeparateBindingsOption(ZLCategoryKey::CONFIG, "KeysOptions", "UseSeparateBindings", false), EnableSingleClickDictionaryOption(ZLCategoryKey::CONFIG, "Dictionary", "SingleClick", false), myBindings0(new ZLKeyBindings("Keys")), myBindings90(new ZLKeyBindings("Keys90")), myBindings180(new ZLKeyBindings("Keys180")), myBindings270(new ZLKeyBindings("Keys270")), myBookToOpen(bookToOpen), myBookAlreadyOpen(false), myActionOnCancel(UNFULLSCREEN) { myModel = 0; myBookTextView = new BookTextView(*this, context()); myFootnoteView = new FootnoteView(*this, context()); myContentsView = new ContentsView(*this, context()); myCollectionView = new CollectionView(*this, context()); myNetLibraryView = new NetLibraryView(*this, context()); myRecentBooksPopupData = new RecentBooksPopupData(*this); myMode = UNDEFINED_MODE; myPreviousMode = BOOK_TEXT_MODE; setMode(BOOK_TEXT_MODE); addAction(ActionCode::SHOW_READING, new UndoAction(*this, FBReader::ALL_MODES & ~FBReader::BOOK_TEXT_MODE)); addAction(ActionCode::SHOW_COLLECTION, new SetModeAction(*this, FBReader::BOOK_COLLECTION_MODE, FBReader::BOOK_TEXT_MODE | FBReader::CONTENTS_MODE)); addAction(ActionCode::SHOW_NET_LIBRARY, new ShowNetworkLibraryAction(*this)); addAction(ActionCode::SEARCH_ON_NETWORK, new SearchOnNetworkAction(*this)); addAction(ActionCode::ADVANCED_SEARCH_ON_NETWORK, new AdvancedSearchOnNetworkAction(*this)); registerPopupData(ActionCode::SHOW_COLLECTION, myRecentBooksPopupData); addAction(ActionCode::SHOW_OPTIONS, new ShowOptionsDialogAction(*this)); addAction(ActionCode::SHOW_MENU, new ShowMenuDialogAction(*this)); addAction(ActionCode::SHOW_CONTENTS, new ShowContentsAction(*this)); addAction(ActionCode::SHOW_BOOK_INFO, new ShowBookInfoAction(*this)); addAction(ActionCode::ADD_BOOK, new AddBookAction(*this, FBReader::BOOK_TEXT_MODE | FBReader::BOOK_COLLECTION_MODE | FBReader::CONTENTS_MODE)); addAction(ActionCode::UNDO, new UndoAction(*this, FBReader::BOOK_TEXT_MODE)); addAction(ActionCode::REDO, new RedoAction(*this)); addAction(ActionCode::SEARCH, new SearchPatternAction(*this)); addAction(ActionCode::FIND_NEXT, new FindNextAction(*this)); addAction(ActionCode::FIND_PREVIOUS, new FindPreviousAction(*this)); addAction(ActionCode::SCROLL_TO_HOME, new ScrollToHomeAction(*this)); addAction(ActionCode::SCROLL_TO_START_OF_TEXT, new ScrollToStartOfTextAction(*this)); addAction(ActionCode::SCROLL_TO_END_OF_TEXT, new ScrollToEndOfTextAction(*this)); addAction(ActionCode::LARGE_SCROLL_FORWARD, new ScrollingAction(*this, LargeScrollingOptions, true)); addAction(ActionCode::LARGE_SCROLL_BACKWARD, new ScrollingAction(*this, LargeScrollingOptions, false)); addAction(ActionCode::SMALL_SCROLL_FORWARD, new ScrollingAction(*this, SmallScrollingOptions, true)); addAction(ActionCode::SMALL_SCROLL_BACKWARD, new ScrollingAction(*this, SmallScrollingOptions, false)); addAction(ActionCode::MOUSE_SCROLL_FORWARD, new ScrollingAction(*this, MouseScrollingOptions, true)); addAction(ActionCode::MOUSE_SCROLL_BACKWARD, new ScrollingAction(*this, MouseScrollingOptions, false)); addAction(ActionCode::TAP_SCROLL_FORWARD, new ScrollingAction(*this, TapScrollingOptions, true)); addAction(ActionCode::TAP_SCROLL_BACKWARD, new ScrollingAction(*this, TapScrollingOptions, false)); addAction(ActionCode::INCREASE_FONT, new ChangeFontSizeAction(*this, 2)); addAction(ActionCode::DECREASE_FONT, new ChangeFontSizeAction(*this, -2)); addAction(ActionCode::ROTATE_SCREEN, new RotationAction(*this)); addAction(ActionCode::TOGGLE_FULLSCREEN, new FBFullscreenAction(*this)); addAction(ActionCode::FULLSCREEN_ON, new FBFullscreenAction(*this)); addAction(ActionCode::CANCEL, new CancelAction(*this)); addAction(ActionCode::SHOW_HIDE_POSITION_INDICATOR, new ToggleIndicatorAction(*this)); addAction(ActionCode::QUIT, new QuitAction(*this)); addAction(ActionCode::OPEN_PREVIOUS_BOOK, new OpenPreviousBookAction(*this)); addAction(ActionCode::SHOW_HELP, new ShowHelpAction(*this)); addAction(ActionCode::GOTO_NEXT_TOC_SECTION, new GotoNextTOCSectionAction(*this)); addAction(ActionCode::GOTO_PREVIOUS_TOC_SECTION, new GotoPreviousTOCSectionAction(*this)); addAction(ActionCode::COPY_SELECTED_TEXT_TO_CLIPBOARD, new CopySelectedTextAction(*this)); addAction(ActionCode::OPEN_SELECTED_TEXT_IN_DICTIONARY, new OpenSelectedTextInDictionaryAction(*this)); addAction(ActionCode::CLEAR_SELECTION, new ClearSelectionAction(*this)); addAction(ActionCode::GOTO_PAGE_NUMBER, new GotoPageNumber(*this, std::string())); addAction(ActionCode::GOTO_PAGE_NUMBER_WITH_PARAMETER, new GotoPageNumber(*this, PageIndexParameter)); shared_ptr<Action> booksOrderAction = new BooksOrderAction(*this); addAction(ActionCode::ORGANIZE_BOOKS_BY_AUTHOR, booksOrderAction); addAction(ActionCode::ORGANIZE_BOOKS_BY_TAG, booksOrderAction); addAction(ActionCode::SHOW_FOOTNOTES, new ShowFootnotes(*this)); addAction(ActionCode::HYPERLINK_NAV_START, new HyperlinkNavStart(*this)); addAction(ActionCode::BMK_ADD, new BookmarkAdd(*this)); addAction(ActionCode::BMK_SHOW, new BookmarksShow(*this)); myOpenFileHandler = new OpenFileHandler(*this); ZLCommunicationManager::instance().registerHandler("openFile", myOpenFileHandler); }