CRCitesMenu::CRCitesMenu(CRGUIWindowManager * wm, LVDocView * docview, int numItems, lvRect & rc) : CRFullScreenMenu( wm, MCMD_CITES_LIST, lString16(_("Citations")), numItems, rc ) , _docview(docview) { CRGUIAcceleratorTableRef acc = _wm->getAccTables().get("bookmarks"); if ( acc.isNull() ) acc = _wm->getAccTables().get("menu"); setAccelerators( acc ); setSkinName(lString16("#cites-list"), lString16("#bookmarks")); int mc = getSkin()->getMinItemCount(); if ( _pageItems < mc ) _pageItems = mc; CRFileHistRecord * rec = docview->getCurrentFileHistRecord(); LVPtrVector < CRBookmark > &bookmarks = rec->getBookmarks(); for ( int i=0; i < bookmarks.length(); i++ ) { CRBookmark * bmk = bookmarks[i]; if (!bmk || ((bmk->getType() != bmkt_comment && bmk->getType() != bmkt_correction))) continue; ldomXPointer p = docview->getDocument()->createXPointer( bmk->getStartPos() ); if ( p.isNull() ) continue; int page = docview->getBookmarkPage( p ); /// get bookmark position text if ( page<0 ) continue; CRBookmarkMenuItem * item = new CRBookmarkMenuItem( this, i, bmk, page ); addItem( item ); } #ifdef CR_POCKETBOOK citesDialog = this; #endif if (_items.length() == 0) createDefaultItem(); }
CRRecentBooksMenu::CRRecentBooksMenu(CRGUIWindowManager * wm, LVDocView * docview, int numItems, lvRect & rc) : CRFullScreenMenu( wm, MCMD_MAIN_MENU, lString16(_("Open recent book")), numItems, rc ) { docview->savePosition(); // to move current file to top LVPtrVector<CRFileHistRecord> & files = docview->getHistory()->getRecords(); _files = &files; // skip Null for ( int i=1; i<files.length(); i++ ) { CRFileHistRecord * file = files.get( i ); CRRecentBookMenuItem * item = new CRRecentBookMenuItem( this, i, file ); addItem( item ); } //_helpText = "Long press 1..8 = set, short press = go to"; //_helpHeight = 36; CRGUIAcceleratorTableRef acc = _wm->getAccTables().get("bookmarks"); if ( acc.isNull() ) acc = _wm->getAccTables().get("menu"); setAccelerators( acc ); setSkinName(lString16("#bookmarks")); lString16 pattern(_("$1 - open book\n$2, $3 - close")); #ifdef CR_POCKETBOOK pattern.replaceParam(1, getCommandKeyName( MCMD_SELECT )); #else pattern.replaceParam(1, getItemNumberKeysName()); #endif pattern.replaceParam(2, getCommandKeyName(MCMD_OK) ); pattern.replaceParam(3, getCommandKeyName(MCMD_CANCEL) ); _statusText = pattern; #ifdef CR_POCKETBOOK bmkDialog = this; #endif }
CRBookmarkMenu::CRBookmarkMenu(CRGUIWindowManager * wm, LVDocView * docview, int numItems, lvRect & rc, bool goToMode) : CRFullScreenMenu( wm, MCMD_BOOKMARK_LIST, lString16(_("Bookmarks")), numItems, rc ) , _docview(docview) { CRFileHistRecord * bookmarks = docview->getCurrentFileHistRecord(); CRGUIAcceleratorTableRef acc = _wm->getAccTables().get("bookmarks"); if ( acc.isNull() ) acc = _wm->getAccTables().get("menu"); setAccelerators( acc ); setSkinName(lString16("#bookmarks")); int mc = getSkin()->getMinItemCount(); if ( _pageItems < mc ) _pageItems = mc; int n = bookmarks->getLastShortcutBookmark()+1; n = (n + _pageItems - 1) / _pageItems * _pageItems; int minitems = (MIN_BOOKMARK_ITEMS + _pageItems - 1) / _pageItems * _pageItems; if ( n<minitems ) n = minitems; for ( int i=1; i<=n; i++ ) { CRBookmark * bm = bookmarks->getShortcutBookmark(i); int page = 0; if ( bm ) { ldomXPointer p = docview->getDocument()->createXPointer( bm->getStartPos() ); if ( !p.isNull() ) { /// get page number by bookmark page = docview->getBookmarkPage( p ); /// get bookmark position text if ( page<0 ) bm = NULL; } } CRBookmarkMenuItem * item = new CRBookmarkMenuItem( this, i, bm, page ); addItem( item ); } setMode( goToMode ); #ifdef CR_POCKETBOOK bmkDialog = this; #endif }