void tcStoresGui::IncrementPage(int dir) { size_t nPages = pageBoxes.size(); if (nPages == 0) return; if ((dir > 0) && (currentPage < (nPages-1))) { SetCurrentPage(currentPage+1); } else if ((dir < 0) && (currentPage > 0)) { SetCurrentPage(currentPage-1); } }
// Actual zoom code. void CPreviewView::DoZoom(UINT nPage, CPoint point) { if (m_nZoomState == ZOOM_OUT) { // taking over scroll bars m_nPages = m_nZoomOutPages; ShowScrollBar(SB_HORZ, FALSE); //hide the horizontal bar BOOL bShowBar = m_pPreviewInfo->GetMaxPage() < 0x8000 && m_pPreviewInfo->GetMaxPage() - m_pPreviewInfo->GetMinPage() <= 32767U; ShowScrollBar(SB_VERT, bShowBar); //Show the vertical bar if (bShowBar) { SetScrollRange(SB_VERT, m_pPreviewInfo->GetMinPage(), m_pPreviewInfo->GetMaxPage(), FALSE); SetScrollPos(SB_VERT, m_nCurrentPage, TRUE); } SetCurrentPage(m_nCurrentPage, TRUE); } else { m_nPages = 1; // only one page in zoomed states m_pPageInfo[0].sizeZoomOutRatio = m_pPageInfo[nPage].sizeZoomOutRatio; m_pPageInfo[0].sizeUnscaled = m_pPageInfo[nPage].sizeUnscaled; // Sets the printer page SetCurrentPage(m_nCurrentPage + nPage, FALSE); SetScaledSize(0); CSize* pRatio = &m_pPageInfo[nPage].sizeScaleRatio; // convert Hit Point from screen 1:1 point.x = MulDiv(point.x, pRatio->cx, pRatio->cy); point.y = MulDiv(point.y, pRatio->cx, pRatio->cy); // Adjust point for page position point += (CSize)m_pPageInfo[0].rectScreen.TopLeft(); // Scroll to center CenterOnPoint(point); } }
void TabMenuControl::SetCurrentPage(TabMenuControl::MenuTabIndex menuIndex) { assert(!menuIndex.IsNone()); SetCurrentPage(GetPageNum(menuIndex)); }
//----------------------------------------------------------------------------- //! //----------------------------------------------------------------------------- void tPagesSettings::GenerateDefaultPagesSettings() { if ( m_pProductFactory ) { // maximum of 8 pages plus MOB page SetCurrentPage( 1 ); QList<Page::ePageId> defaultPages( m_pProductFactory->GetPageFactory()->GetDefaultPages() ); int page = 0; foreach ( Page::ePageId pageId, defaultPages ) { tPageConfig pageConfig = tPageConfig( PageConfig( pageId ) ); SetPageConfigPrivate( page++, &pageConfig ); } for ( int i(page); i < 8; ++i ) { tPageConfig pageConfig = tPageConfig( PageConfig( m_pProductFactory->GetPageFactory()->GetAllowedPages().at( 0 ), false ) ); SetPageConfigPrivate( page++, &pageConfig ); } if ( m_pProductFactory->ProductSupportsMob() == true ) { // todo remove magic 9 // Mob page tPageConfig pageConfig = tPageConfig( PageConfig( Page::ePageMOB, false ) ); SetPageConfigPrivate( defaultPages.count(), &pageConfig ); } m_Settings.Synchronize(); }
BOOL AnimeDialog::OnInitDialog() { if (mode_ == DIALOG_MODE_NOW_PLAYING) { SetStyle(DS_CONTROL | WS_CHILD | WS_CLIPCHILDREN, WS_OVERLAPPEDWINDOW); SetStyle(0, WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE, GWL_EXSTYLE); SetParent(g_hMain); } // Initialize image label image_label_.Attach(GetDlgItem(IDC_STATIC_ANIME_IMG)); // Initialize title edit_title_.Attach(GetDlgItem(IDC_EDIT_ANIME_TITLE)); edit_title_.SendMessage(WM_SETFONT, reinterpret_cast<WPARAM>(UI.font_header.Get()), FALSE); // Initialize sys_link_.Attach(GetDlgItem(IDC_LINK_NOWPLAYING)); sys_link_.Hide(); // Initialize tabs tab_.Attach(GetDlgItem(IDC_TAB_ANIME)); switch (mode_) { case DIALOG_MODE_ANIME_INFORMATION: tab_.InsertItem(0, L"Main information", 0); if (AnimeDatabase.FindItem(anime_id_)->IsInList()) tab_.InsertItem(1, L"My list and settings", 0); break; case DIALOG_MODE_NOW_PLAYING: tab_.Hide(); break; } // Initialize pages page_series_info.parent = this; page_my_info.parent = this; page_series_info.Create(IDD_ANIME_INFO_PAGE01, m_hWindow, false); switch (mode_) { case DIALOG_MODE_ANIME_INFORMATION: page_my_info.Create(IDD_ANIME_INFO_PAGE02, m_hWindow, false); EnableThemeDialogTexture(page_series_info.GetWindowHandle(), ETDT_ENABLETAB); EnableThemeDialogTexture(page_my_info.GetWindowHandle(), ETDT_ENABLETAB); break; case DIALOG_MODE_NOW_PLAYING: break; } // Initialize buttons int show = SW_SHOW; if (mode_ == DIALOG_MODE_NOW_PLAYING || !AnimeDatabase.FindItem(anime_id_)->IsInList()) { show = SW_HIDE; } ShowDlgItem(IDOK, show); ShowDlgItem(IDCANCEL, show); // Refresh SetCurrentPage(current_page_); Refresh(); return TRUE; }
void AnimeDialog::SetCurrentId(int anime_id) { anime_id_ = anime_id; switch (anime_id_) { case anime::ID_NOTINLIST: SetCurrentPage(INFOPAGE_NOTRECOGNIZED); break; case anime::ID_UNKNOWN: SetCurrentPage(INFOPAGE_NONE); break; default: SetCurrentPage(INFOPAGE_SERIESINFO); break; } Refresh(); }
int TABLEDBInfo::PageMove(int a_nPageDistance) { int nNewpage = m_nCurrentPage + a_nPageDistance; nNewpage = MIN(nNewpage, m_nTotalPage); nNewpage = MAX(nNewpage, 1); SetCurrentPage(nNewpage); return m_nCurrentPage; }
void TabMenuControl::NextPage() { const unsigned NumAllPages = pager.GetTabCount(); if (NumAllPages < 2) return; SetCurrentPage((GetCurrentPage() + 1) % NumAllPages); }
void TabbedControl::NextPage() { if (tabs.size() < 2) return; assert(current < tabs.size()); SetCurrentPage((current + 1) % tabs.size()); }
void TabbedControl::PreviousPage() { if (tabs.size() < 2) return; assert(current < tabs.size()); SetCurrentPage((current + tabs.size() - 1) % tabs.size()); }
void CPreviewView::OnNumPageChange() { ASSERT(m_nPages == 1 || m_nPages == 2); m_nPages = 3 - m_nPages; // Toggle between 1 and 2 AfxGetApp()->m_nNumPreviewPages = m_nPages; m_nZoomOutPages = m_nPages; // Just do this to set the status correctly and invalidate SetCurrentPage(m_nCurrentPage, TRUE); }
void TBTabContainer::OnProcess() { if (m_need_page_update) { m_need_page_update = false; // Force update SetCurrentPage int current_page = m_current_page; m_current_page = -1; SetCurrentPage(current_page); } }
bool TBTabContainer::OnEvent(const TBWidgetEvent &ev) { if ((ev.type == EVENT_TYPE_CLICK || ev.type == EVENT_TYPE_POINTER_DOWN) && ev.target->GetID() == TBIDC("tab")) { int clicked_index = m_tab_layout.GetIndexFromChild(ev.target); SetCurrentPage(clicked_index); return true; } return false; }
LRESULT AnimeDialog::OnNotify(int idCtrl, LPNMHDR pnmh) { switch (idCtrl) { case IDC_LINK_NOWPLAYING: { switch (pnmh->code) { // Link click case NM_CLICK: { PNMLINK pNMLink = reinterpret_cast<PNMLINK>(pnmh); wstring action = pNMLink->item.szUrl; if (IsEqual(pNMLink->item.szID, L"menu")) { action = UI.Menus.Show(m_hWindow, 0, 0, pNMLink->item.szUrl); } else if (IsEqual(pNMLink->item.szID, L"search")) { action = L"SearchAnime(" + CurrentEpisode.title + L")"; } else if (IsEqual(pNMLink->item.szUrl, L"score")) { action = L""; CurrentEpisode.anime_id = ToInt(pNMLink->item.szID); auto anime_item = AnimeDatabase.FindItem(CurrentEpisode.anime_id); if (anime_item) { anime_item->AddtoUserList(); auto synonyms = anime_item->GetUserSynonyms(); synonyms.push_back(CurrentEpisode.title); anime_item->SetUserSynonyms(synonyms); Meow.UpdateCleanTitles(anime_item->GetId()); Settings.Save(); anime_item->StartWatching(CurrentEpisode); MainDialog.ChangeStatus(); } } ExecuteAction(action, 0, GetCurrentId()); return TRUE; } // Custom draw case NM_CUSTOMDRAW: { return CDRF_DODEFAULT; } } break; } case IDC_TAB_ANIME: { switch (pnmh->code) { // Tab select case TCN_SELCHANGE: { SetCurrentPage(tab_.GetCurrentlySelected() + 1); break; } } break; } } return 0; }
/** * Change page if click in page box */ void tcStoresGui::OnLButtonDown(wxMouseEvent& event) { wxPoint pos = event.GetPosition(); size_t nPages = pageBoxes.size(); for (size_t n=0; n<nPages; n++) { if (pageBoxes[n].ContainsPoint(float(pos.x), float(pos.y))) { if (n != currentPage) SetCurrentPage(n); return; } } tcContainerGui::OnLButtonDown(event); }
void tcStoresGui::InitializeGui() { tcStores* stores = GetStores(); wxASSERT(stores); if (stores == 0) return; // tcStoresDBObject* storesData = stores->GetDatabaseObject(); // wxASSERT(storesData); for (size_t n=0; n<maxSlots; n++) { tcRect slotLoc(upperLeft.x, upperLeft.x + slotSize, upperLeft.y, upperLeft.y + slotSize + float(n%slotsPerPage)*verticalSpacing); AddSlot(slotLoc, tcContainerGui::SMALL_ICON_SIZE); } SetCurrentPage(0); }
void NavigateToPage( HWND appHwnd, Document * doc, NMTREEVIEW * info ) { if (!info->itemNew.hItem) return; Dictionary * dict = (Dictionary *)info->itemNew.lParam; if (!dict) return; PObject dest = dict->Get( "Dest", doc->xrefTable ); if (!dest) return; if (dest->Type() == ObjectType::String) { String * s = (String *)dest.get(); dest = Object::ResolveIndirect_<Object>( NameTreeGetValue( doc, *s ), doc->xrefTable ); } PArray destArray; if (dest->Type() == ObjectType::Dictionary) { PDictionary d = boost::shared_static_cast<Dictionary>(dest); //TODO: Implement link action //For now handle everything as GoTo (here be Raptors) //d->Get<Name>("S", doc->xrefTable); destArray = d->Get<Array>("D", doc->xrefTable); } else if (dest->Type() == ObjectType::Array) destArray = boost::shared_static_cast<Array>(dest); if (destArray) { if (destArray->elements.empty()) return; PDictionary page = Object::ResolveIndirect_<Dictionary>( destArray->elements[0], doc->xrefTable ); SetCurrentPage( page ); } }
void CPreviewView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { if (m_nZoomState != ZOOM_OUT) { CScrollView::OnVScroll(nSBCode, nPos, pScrollBar); return; } switch (nSBCode) { case SB_BOTTOM: SetCurrentPage(m_pPreviewInfo->GetMaxPage(), TRUE); break; case SB_TOP: SetCurrentPage(m_pPreviewInfo->GetMinPage(), TRUE); break; case SB_PAGEDOWN: SetCurrentPage(m_nCurrentPage + (m_pPreviewInfo->GetMaxPage() - m_pPreviewInfo->GetMinPage() + 9) / 10, TRUE); break; case SB_PAGEUP: SetCurrentPage(m_nCurrentPage - (m_pPreviewInfo->GetMaxPage() - m_pPreviewInfo->GetMinPage() + 9) / 10, TRUE); break; case SB_LINEDOWN: SetCurrentPage(m_nCurrentPage + 1, TRUE); break; case SB_LINEUP: SetCurrentPage(m_nCurrentPage - 1, TRUE); break; case SB_THUMBPOSITION: SetCurrentPage(nPos, TRUE); break; } }
BOOL CPreviewView::SetPrintView(CView* pPrintView) { ASSERT_VALID(pPrintView); m_pPrintView = pPrintView; // allocate preview info m_pPreviewInfo = new CPrintInfo; m_pPreviewInfo->m_pPD->SetHelpID(AFX_IDD_PRINTSETUP); m_pPreviewInfo->m_pPD->m_pd.Flags |= PD_PRINTSETUP; m_pPreviewInfo->m_pPD->m_pd.Flags &= ~PD_RETURNDC; m_pPreviewInfo->m_bPreview = TRUE; // signal that this is preview ASSERT(m_pPreviewInfo->m_pPD != NULL); m_pPreviewDC = new CPreviewDC; // must be created before any // possible error returns if (!m_pPrintView->OnPreparePrinting(m_pPreviewInfo)) return FALSE; #ifdef _DEBUG if (m_pPreviewInfo->m_pPD->m_pd.hDC == NULL) { TRACE0("Error: hDC not set for printing --\n"); TRACE0("\tDid you remember to call DoPreparePrinting?\n"); ASSERT(FALSE); // common mistake gets trapped here } #endif //_DEBUG m_dcPrint.Attach(m_pPreviewInfo->m_pPD->m_pd.hDC); m_pPreviewDC->SetAttribDC(m_pPreviewInfo->m_pPD->m_pd.hDC); m_pPreviewDC->m_bPrinting = TRUE; m_dcPrint.m_bPrinting = TRUE; m_dcPrint.SaveDC(); // Save pristine state of DC HDC hDC = ::GetDC(m_hWnd); m_pPreviewDC->SetOutputDC(hDC); m_pPrintView->OnBeginPrinting(m_pPreviewDC, m_pPreviewInfo); m_pPreviewDC->ReleaseOutputDC(); ::ReleaseDC(m_hWnd, hDC); m_dcPrint.RestoreDC(-1); // restore to untouched state // Get Pixels per inch from Printer m_sizePrinterPPI.cx = m_dcPrint.GetDeviceCaps(LOGPIXELSX); m_sizePrinterPPI.cy = m_dcPrint.GetDeviceCaps(LOGPIXELSY); m_nPages = m_pPreviewInfo->m_nNumPreviewPages; if (m_nPages == 0) m_nPages = 1; else if (m_nPages > m_nMaxPages) m_nPages = m_nMaxPages; // Sanity Check! m_nZoomOutPages = m_nPages; SetScrollSizes(MM_TEXT, CSize(1, 1)); // initialize mapping mode only if (m_pPreviewInfo->GetMaxPage() < 0x8000 && m_pPreviewInfo->GetMaxPage() - m_pPreviewInfo->GetMinPage() <= 32767U) SetScrollRange(SB_VERT, m_pPreviewInfo->GetMinPage(), m_pPreviewInfo->GetMaxPage(), FALSE); else ShowScrollBar(SB_VERT, FALSE); // if no range specified, or too // large don't show SetCurrentPage(m_pPreviewInfo->m_nCurPage, TRUE); return TRUE; }
void CPreviewView::OnNextPage() { SetCurrentPage(m_nCurrentPage + 1, TRUE); }
void CPreviewView::OnPrevPage() { SetCurrentPage(m_nCurrentPage - 1, TRUE); }
unsigned TabMenuControl::GotoMenuPage() { SetCurrentPage(GetMenuPage()); return GetMenuPage(); }
void CPreviewView::OnDraw(CDC* pDC) { ASSERT_VALID(pDC); // don't do anything if not fully initialized if (m_pPrintView == NULL || m_dcPrint.m_hDC == NULL) return; CPoint ViewportOrg = pDC->GetViewportOrg(); CPen rectPen; rectPen.CreatePen(PS_SOLID, 2, GetSysColor(COLOR_WINDOWFRAME)); CPen shadowPen; shadowPen.CreatePen(PS_SOLID, 3, GetSysColor(COLOR_BTNSHADOW)); m_pPreviewInfo->m_bContinuePrinting = TRUE; // do this once each paint for (UINT nPage = 0; nPage < m_nPages; nPage++) { int nSavedState = m_dcPrint.SaveDC(); // Save pristine state of DC // Use paint DC for print preview output m_pPreviewDC->SetOutputDC(pDC->GetSafeHdc()); m_pPreviewInfo->m_nCurPage = m_nCurrentPage + nPage; // Only call PrepareDC if within page range, otherwise use default // rect to draw page rectangle if (m_nCurrentPage + nPage <= m_pPreviewInfo->GetMaxPage()) m_pPrintView->OnPrepareDC(m_pPreviewDC, m_pPreviewInfo); // Set up drawing rect to entire page (in logical coordinates) m_pPreviewInfo->m_rectDraw.SetRect(0, 0, m_pPreviewDC->GetDeviceCaps(HORZRES), m_pPreviewDC->GetDeviceCaps(VERTRES)); m_pPreviewDC->DPtoLP(&m_pPreviewInfo->m_rectDraw); // Draw empty page on screen pDC->SaveDC(); // save the output dc state CSize* pRatio = &m_pPageInfo[nPage].sizeScaleRatio; CRect* pRect = &m_pPageInfo[nPage].rectScreen; if (pRatio->cx == 0) { // page position has not been determined PositionPage(nPage); // compute page position if (m_nZoomState != ZOOM_OUT) ViewportOrg = -GetDeviceScrollPosition(); } pDC->SetMapMode(MM_TEXT); // Page Rectangle is in screen device coords pDC->SetViewportOrg(ViewportOrg); pDC->SetWindowOrg(0, 0); pDC->SelectStockObject(HOLLOW_BRUSH); pDC->SelectObject(&rectPen); pDC->Rectangle(pRect); pDC->SelectObject(&shadowPen); pDC->MoveTo(pRect->right + 1, pRect->top + 3); pDC->LineTo(pRect->right + 1, pRect->bottom + 1); pDC->MoveTo(pRect->left + 3, pRect->bottom + 1); pDC->LineTo(pRect->right + 1, pRect->bottom + 1); // erase background to white (most paper is white) CRect rectFill = *pRect; rectFill.left += 1; rectFill.top += 1; rectFill.right -= 2; rectFill.bottom -= 2; ::FillRect(pDC->m_hDC, rectFill, (HBRUSH)GetStockObject(WHITE_BRUSH)); pDC->RestoreDC(-1); // restore to synchronized state if (!m_pPreviewInfo->m_bContinuePrinting || m_nCurrentPage + nPage > m_pPreviewInfo->GetMaxPage()) { m_pPreviewDC->ReleaseOutputDC(); m_dcPrint.RestoreDC(nSavedState); // restore to untouched state // if the first page is not displayable, back up one page // but never go below 1 if (nPage == 0 && m_nCurrentPage > 1) SetCurrentPage(m_nCurrentPage - 1, TRUE); break; } // Display page number OnDisplayPageNumber(m_nCurrentPage, nPage + 1); // Set scale ratio for this page m_pPreviewDC->SetScaleRatio(pRatio->cx, pRatio->cy); CSize PrintOffset; VERIFY(m_pPreviewDC->Escape(GETPRINTINGOFFSET, 0, NULL, (LPVOID)&PrintOffset)); m_pPreviewDC->PrinterDPtoScreenDP((LPPOINT)&PrintOffset); PrintOffset += (CSize)pRect->TopLeft(); PrintOffset += CSize(1, 1); PrintOffset += (CSize)ViewportOrg; // For Scrolling m_pPreviewDC->SetTopLeftOffset(PrintOffset); m_pPreviewDC->ClipToPage(); m_pPrintView->OnPrint(m_pPreviewDC, m_pPreviewInfo); m_pPreviewDC->ReleaseOutputDC(); m_dcPrint.RestoreDC(nSavedState); // restore to untouched state } rectPen.DeleteObject(); shadowPen.DeleteObject(); }