plRegistryPageNode* plPluginResManager::INameToPage(const char* age, const char* page, int32_t sequenceNumber, bool itinerant) { // Find the location first, to see if it already exists plRegistryPageNode* pageNode = FindPage(age, page); if (pageNode == nil) { // This page does not yet exist, so create a new page if (sequenceNumber != uint32_t(-1)) { const plLocation& newLoc = ICreateLocation(age, page, sequenceNumber, itinerant); pageNode = CreatePage(newLoc, age, page); } else { const plLocation& newLoc = ICreateLocation(age, page, itinerant); pageNode = CreatePage(newLoc, age, page); } // Still preload textures on this guy. This should be a no-op for this page since it's new, but won't be // for the shared textures page IPreLoadTextures(pageNode, sequenceNumber); } else if (!pageNode->IsNewPage()) { // Node's already in our registry (i.e. already stored somewhere), so make sure it loads so // we can update from that LoadPageKeys(pageNode); // Now clear out all the unwanted keys. IPreLoadTextures(pageNode, sequenceNumber); } return pageNode; }
//--------------------------------------------------------------------------- void SetNewPageFromDLL(AnsiString DLLName) { if (!FileExists(DLLName)) return; TPageControl *myPages=FormSelected->PageControlSelected; if (!Pages) CountPagesBefore=myPages->PageCount; TForm *Form; dllInstance = LoadLibrary(DLLName.c_str()); if (!Pages) Pages = new TList(); if (!dllInstances) dllInstances=new TList(); dllInstances->Add(dllInstance); CreatePage = NULL; CreatePage = (TCreate *)GetProcAddress(dllInstance, "_CreatePage"); GetTitlePage = (TGetTitle *)GetProcAddress(dllInstance, "_GetTitlePage"); if (CreatePage) { Form = CreatePage(myPages->PageCount,FormSelected); Pages->Add(Form); Form->ManualDock(myPages, NULL, alClient); Form->Visible = true; // myPages->ActivePageIndex = myPages->PageCount - 1; } if (GetTitlePage) myPages->Pages[myPages->PageCount-1]->Caption=AnsiString(GetTitlePage()); }
///////////////////////////////////////////////////////////////////////////// // CSettingsDialog::ShowPage(const PAGE_INFO *pInfo, UINT nShow /* = SW_SHOW */) // Description: Display or hide the page if the associated tree item is selected. // nShow determines whether to display or hide the page. // pInfo identifies the page to be displayed. // Note, if the window of the page has not yet ben created // it will create the page window before the page gets displayed // Return value: NULL // void CSettingsDialog::ShowPage(const PAGE_INFO *pInfo, UINT nShow /* = SW_SHOW */) { if (!pInfo) return; m_CaptionBarCtrl.SetWindowText(""); // Clear the caption bar if (pInfo->pWnd) // If the page is valid { if (!::IsWindow(pInfo->pWnd->m_hWnd)) { // Window has not been created, create it CreatePage(pInfo); pInfo->pWnd->SetWindowPos (&m_TreeCtrl,0,0,0,0,0); pInfo->pWnd->MoveWindow(m_FrameRect.left, m_FrameRect.top, m_FrameRect.Width(), m_FrameRect.Height()); if( pInfo->pWnd->IsKindOf( RUNTIME_CLASS(CView) ) ) ((CView*)pInfo->pWnd)->OnInitialUpdate(); } pInfo->pWnd->ShowWindow(nShow); // Show or hide the window if (nShow == SW_SHOW) // Change the tree selection { pInfo->pWnd->SetFocus(); HTREEITEM hItem = FindItem(pInfo->pWnd); if (hItem) m_TreeCtrl.SelectItem(hItem); ((CPropertyPage*)pInfo->pWnd)->OnSetActive(); } else ((CPropertyPage*)pInfo->pWnd)->OnKillActive(); } if (nShow == SW_SHOW) // Update caption bar m_CaptionBarCtrl.SetWindowText(pInfo->csCaption); }
/// Create all pages, under the dialog's book control, also calling AddPage bool wxRichTextFormattingDialogFactory::CreatePages(long pages, wxRichTextFormattingDialog* dialog) { if (dialog->GetImageList()) dialog->GetBookCtrl()->SetImageList(dialog->GetImageList()); int availablePageCount = GetPageIdCount(); int i; bool selected = false; for (i = 0; i < availablePageCount; i ++) { int pageId = GetPageId(i); if (pageId != -1 && (pages & pageId)) { wxString title; wxPanel* panel = CreatePage(pageId, title, dialog); wxASSERT( panel != NULL ); if (panel) { int imageIndex = GetPageImage(pageId); dialog->GetBookCtrl()->AddPage(panel, title, !selected, imageIndex); selected = true; dialog->AddPageId(pageId); } } } return true; }
void Frame::OnAddPage(wxCommandEvent& WXUNUSED(event)) { wxString caption; caption.Printf(wxT("New Page Added #%ld"), newPageCounter); Freeze(); book->AddPage(CreatePage(), caption, true, m_bShowImages ? rand() % (int)book->GetImageList()->size() : -1); Thaw(); }
void* MessageMemoryManager::AllocateFromPage(MemoryPage* page, size_t size) { if(page->m_currentBlock + size > page->m_firstBlock + c_pageSize) { auto newPage = CreatePage(); page->m_next = newPage; page = newPage; } auto block = page->m_currentBlock; page->m_currentBlock += size; return block; }
void COptionDialog::SetPage(int Page) { if (Page>=0 && Page<NUM_PAGES && m_CurrentPage!=Page) { if (!m_PageList[Page].pOptions->IsCreated()) { Util::CWaitCursor WaitCursor; CreatePage(Page); } m_PageList[m_CurrentPage].pOptions->SetVisible(false); m_PageList[Page].pOptions->SetVisible(true); m_CurrentPage=Page; DlgListBox_SetCurSel(m_hDlg,IDC_OPTIONS_LIST,Page); InvalidateDlgItem(m_hDlg,IDC_OPTIONS_TITLE); } }
SjMyMusicConfigPage::SjMyMusicConfigPage(SjMyMusicModule* myMusicModule, wxWindow* parent, int selectedPage) : wxPanel(parent) { // save given objects m_idxChanged = FALSE; m_configMenuButton = NULL; m_addButton = NULL; m_removeButton = NULL; m_currSortCol = 0; // init dialog wxSizer* dialogSizer = new wxBoxSizer(wxVERTICAL); SetSizer(dialogSizer); m_notebook = new wxNotebook(this, IDC_NOTEBOOK, wxDefaultPosition, wxDefaultSize, 0/*wxCLIP_CHILDREN - problems with wxChoice/wxComboBox*/); wxNotebook* notebookSizer = m_notebook; m_notebook->AddPage(CreatePage(m_notebook), _("Music library")); for( int type=0; type<=1; type++ ) { SjModuleList* moduleList = g_mainFrame->m_moduleSystem.GetModules(type==0? SJ_MODULETYPE_COL : SJ_MODULETYPE_COMMON); SjModuleList::Node* moduleNode = moduleList->GetFirst(); while( moduleNode ) { SjCommonModule* commonModule = (SjCommonModule*)moduleNode->GetData(); if( commonModule->EmbedTo() == SJ_EMBED_TO_MUSICLIB ) { m_notebook->AddPage(commonModule->GetConfigPage(m_notebook, 0), commonModule->m_name); } moduleNode = moduleNode->GetNext(); } } if( selectedPage < 0 || selectedPage >= (int)m_notebook->GetPageCount() ) { selectedPage = 0; } m_notebook->SetSelection(selectedPage); dialogSizer->Add(notebookSizer, 1, wxALL|wxGROW, SJ_DLG_SPACE); dialogSizer->SetSizeHints(this); // init data InitPage(g_tools->m_config->Read("settings/selSource", "")); }
BOOL CSettingsSheet::SetActivePage(CSettingsPage* pPage) { if ( pPage == NULL || pPage == m_pPage ) return FALSE; ASSERT_KINDOF(CSettingsPage, pPage); if ( m_hWnd == NULL ) { m_pFirst = pPage; return TRUE; } if ( m_pPage != NULL ) { if ( ! m_pPage->OnKillActive() ) return FALSE; m_pPage->ShowWindow( SW_HIDE ); } if ( pPage->m_hWnd == NULL && ! CreatePage( pPage ) ) return FALSE; if ( ! pPage->OnSetActive() ) return FALSE; m_pPage = pPage; m_pPage->ShowWindow( SW_SHOW ); for ( HTREEITEM hGroup = m_wndTree.GetRootItem() ; hGroup ; hGroup = m_wndTree.GetNextItem( hGroup, TVGN_NEXT ) ) { if ( m_wndTree.GetItemData( hGroup ) == (DWORD)m_pPage ) { if ( ( m_wndTree.GetItemState( hGroup, TVIS_SELECTED ) & TVIS_SELECTED ) == 0 ) { m_wndTree.SelectItem( hGroup ); } } for ( HTREEITEM hItem = m_wndTree.GetChildItem( hGroup ) ; hItem ; hItem = m_wndTree.GetNextItem( hItem, TVGN_NEXT ) ) { if ( m_wndTree.GetItemData( hItem ) == (DWORD)m_pPage ) { if ( ( m_wndTree.GetItemState( hItem, TVIS_SELECTED ) & TVIS_SELECTED ) == 0 ) { m_wndTree.SelectItem( hItem ); } } } } return TRUE; }
CreateGlossaryMainDialog::CreateGlossaryMainDialog() { //std::cout << "Starting CreateGlossary version 1.1...\n\n"; CreatePage("Command-line glossary","ClGlossary.htm","Cl.*\\.htm\\z"); CreatePage("C++ glossary","CppGlossary.htm","Cpp.*\\.htm\\z"); CreatePage("Game glossary","GameGlossary.htm","Game.*\\.htm\\z"); CreatePage("Levend Cluedo glossary","LevendCluedoGlossary.htm","LevendCluedo.*\\.htm\\z"); CreatePage("Tool glossary","ToolGlossary.htm","Tool.*\\.htm\\z"); CreatePage("Music glossary","MusicGlossary.htm","(Music|Song|Cd).*\\.htm\\z"); CreatePage("Sitemap","Sitemap.htm",".*\\.htm\\z"); //std::cout << "Successfully created glossaries in folder " // << boost::filesystem::path(argv[0]).parent_path().string() << "\n"; }
//FIXME - must check to not set a new active page! BOOL COptionSheet::SetActivePage(COptionPage *newPage) { ASSERT(NULL != newPage); ASSERT_KINDOF(COptionPage, newPage); BOOL result; COptionPage *oldPage; // Save the current item oldPage = m_CurrentPage; // Destroy the old item if(NULL != oldPage) { result = oldPage->OnKillActive(); // Let it know it is gonna die if(FALSE == result) { return FALSE; } oldPage->DestroyWindow(); } // Create the new page and tell it it's active CreatePage(newPage); newPage->OnSetActive(); newPage->ShowWindow(SW_SHOW); // Find the index for(int i = 0; i < m_Pages.GetSize(); i++) { if(newPage == GetPage(i)) { m_PageIndex = i; break; } } // Set the current page m_CurrentPage = newPage; // Set the current selection if(NULL != m_ListWindow) { m_ListWindow->SetSelection(m_CurrentPage); } // Update all button states UpdateAllButtonsState(); return TRUE; }
//--------------------------------------------------------------------------- void TGeneralInfo::Show() { if (Handle) return; bool ShowXReadme=Exists(RunDir+"/README"); bool ShowFAQ=Exists(RunDir+"/FAQ"); bool ShowReadme=Exists(RunDir+"/win32.help"); bool ShowDrawSpeed=0; /*(avg_frame_time && FullScreen==0);*/ bool ShowDiskHowto=Exists(RunDir+"/disk image howto.txt"); bool ShowCartHowto=Exists(RunDir+"/cart image howto.txt"); page_lv.sl.DeleteAll(); page_lv.sl.Sort=eslNoSort; if (ShowXReadme) page_lv.sl.Add(EasyStr("X ")+T("Readme"),101+ICO16_README,INFOPAGE_UNIXREADME); if (ShowReadme) page_lv.sl.Add(EasyStr("Win32 ")+T("Readme"),101+ICO16_README,INFOPAGE_README); if (ShowFAQ) page_lv.sl.Add("FAQ",101+ICO16_FAQ,INFOPAGE_FAQ); page_lv.sl.Add(T("About"),101+ICO16_GENERALINFO,INFOPAGE_ABOUT); if (ShowDrawSpeed) page_lv.sl.Add(T("Draw Speed"),101+ICO16_DRAWSPEED,INFOPAGE_DRAWSPEED); page_lv.sl.Add(T("Links"),101+ICO16_LINKS,INFOPAGE_LINKS); if (ShowDiskHowto) page_lv.sl.Add("Disk Image Howto",101+ICO16_DISK,INFOPAGE_HOWTO_DISK); if (ShowCartHowto) page_lv.sl.Add("Cartridge Image Howto",101+ICO16_CHIP,INFOPAGE_HOWTO_CART); page_lv.lpig=&Ico16; page_lv.display_mode=1; int page_lv_w=page_lv.get_max_width(XD); if (StandardShow(page_lv_w+500,460,T("General Info"), ICO16_GENERALINFO,0,(LPWINDOWPROC)WinProc))return; while (page_lv.select_item_by_data(Page,1)==-1) Page=INFOPAGE_ABOUT; page_lv.id=60000; page_lv.create(XD,Handle,0,0,page_lv_w,460,listview_notify_proc,this); gb.create(XD,Handle,page_lv.w,0,500,460, NULL,this,BT_STATIC | BT_BORDER_NONE,"",-4,hxc::col_bk); CreatePage(Page); if (StemWin) InfBut.set_check(true); XMapWindow(XD,Handle); XFlush(XD); }
BOOL CSettingsSheet::SetActivePage(CSettingsPage* pPage) { CWaitCursor wc; if ( m_hWnd == NULL ) { m_pFirst = pPage; return TRUE; } if ( m_pPage ) { if ( ! m_pPage->OnKillActive() ) return FALSE; m_pPage->ShowWindow( SW_HIDE ); m_pPage = NULL; } CRect rc( 0, GetBannerHeight(), 0, 0 ); rc.left += m_nListWidth + m_nListMargin; rc.right = rc.left + m_szPages.cx; rc.bottom = rc.top + m_szPages.cy; InvalidateRect( &rc ); UpdateWindow(); if ( pPage ) { if ( pPage->m_hWnd == NULL && ! CreatePage( rc, pPage ) ) return FALSE; if ( ! pPage->OnSetActive() ) return FALSE; } m_pPage = pPage; if ( ! m_pPage ) return FALSE; m_pPage->MoveWindow( rc ); m_pPage->ShowWindow( SW_SHOW ); CString strCaption; m_pPage->GetWindowText( strCaption ); strCaption.Trim(); if ( ! strCaption.IsEmpty() ) SetWindowText( m_sCaption + _T(" - ") + strCaption ); else SetWindowText( m_sCaption ); for ( HTREEITEM hGroup = m_wndTree.GetRootItem() ; hGroup ; hGroup = m_wndTree.GetNextItem( hGroup, TVGN_NEXT ) ) { if ( m_wndTree.GetItemData( hGroup ) == (DWORD_PTR)m_pPage ) { if ( ( m_wndTree.GetItemState( hGroup, TVIS_SELECTED ) & TVIS_SELECTED ) == 0 ) { m_wndTree.SelectItem( hGroup ); } } for ( HTREEITEM hItem = m_wndTree.GetChildItem( hGroup ) ; hItem ; hItem = m_wndTree.GetNextItem( hItem, TVGN_NEXT ) ) { if ( m_wndTree.GetItemData( hItem ) == (DWORD_PTR)m_pPage ) { if ( ( m_wndTree.GetItemState( hItem, TVIS_SELECTED ) & TVIS_SELECTED ) == 0 ) { m_wndTree.SelectItem( hItem ); } } } } return TRUE; }
INT_PTR COptionDialog::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { static const int ICON_WIDTH=16,ICON_HEIGHT=16,LIST_MARGIN=1,ICON_TEXT_MARGIN=4; switch (uMsg) { case WM_INITDIALOG: { int i; COptions::ClearGeneralUpdateFlags(); for (i=0;i<NUM_PAGES;i++) { m_PageList[i].pOptions->ClearUpdateFlags(); DlgListBox_AddString(hDlg,IDC_OPTIONS_LIST,i); } if (m_StartPage>=0 && m_StartPage<NUM_PAGES) m_CurrentPage=m_StartPage; CreatePage(m_CurrentPage); m_PageList[m_CurrentPage].pOptions->SetVisible(true); DlgListBox_SetCurSel(hDlg,IDC_OPTIONS_LIST,m_CurrentPage); //m_Icons.Load(GetAppClass().GetResourceInstance(),IDB_OPTIONS); m_himlIcons=::ImageList_LoadImage(GetAppClass().GetResourceInstance(), MAKEINTRESOURCE(IDB_OPTIONS), 16,1,0,IMAGE_BITMAP,LR_CREATEDIBSECTION); HFONT hfont=reinterpret_cast<HFONT>(::SendMessage(hDlg,WM_GETFONT,0,0)); LOGFONT lf; ::GetObject(hfont,sizeof(LOGFONT),&lf); lf.lfWeight=FW_BOLD; m_TitleFont.Create(&lf); m_fApplied=false; } return TRUE; /* case WM_MEASUREITEM: if (wParam==IDC_OPTIONS_LIST) { MEASUREITEMSTRUCT *pmis=reinterpret_cast<MEASUREITEMSTRUCT*>(lParam); //pmis->itemHeight=ICON_HEIGHT+LIST_MARGIN*2; pmis->itemHeight=ICON_HEIGHT; return TRUE; } */ case WM_DRAWITEM: { LPDRAWITEMSTRUCT pdis=reinterpret_cast<LPDRAWITEMSTRUCT>(lParam); if (wParam==IDC_OPTIONS_LIST) { const bool fSelected=(pdis->itemState&ODS_SELECTED)!=0; COLORREF crText,crOldText; int OldBkMode; RECT rc; if (fSelected) { rc=pdis->rcItem; rc.right=rc.left+LIST_MARGIN+ICON_WIDTH+ICON_TEXT_MARGIN/2; ::FillRect(pdis->hDC,&rc,reinterpret_cast<HBRUSH>(COLOR_WINDOW+1)); rc.left=rc.right; rc.right=pdis->rcItem.right; DrawUtil::FillGradient(pdis->hDC,&rc, RGB(0,0,0),GetTitleColor((int)pdis->itemData)); crText=RGB(255,255,255); } else { ::FillRect(pdis->hDC,&pdis->rcItem, reinterpret_cast<HBRUSH>(COLOR_WINDOW+1)); crText=::GetSysColor(COLOR_WINDOWTEXT); } rc=pdis->rcItem; rc.left+=LIST_MARGIN; /* HDC hdcMem=::CreateCompatibleDC(pdis->hDC); if (hdcMem!=NULL) { HBITMAP hbmOld=static_cast<HBITMAP>(::SelectObject(hdcMem,m_Icons.GetHandle())); ::GdiTransparentBlt(pdis->hDC,rc.left,rc.top,ICON_WIDTH,ICON_HEIGHT, hdcMem,(int)pdis->itemData*ICON_WIDTH,0,ICON_WIDTH,ICON_HEIGHT,RGB(255,255,255)); ::SelectObject(hdcMem,hbmOld); ::DeleteDC(hdcMem); } */ ::ImageList_Draw(m_himlIcons,(int)pdis->itemData,pdis->hDC,rc.left,rc.top,ILD_TRANSPARENT); if (fSelected) ::ImageList_Draw(m_himlIcons,(int)pdis->itemData,pdis->hDC,rc.left,rc.top,ILD_TRANSPARENT); crOldText=::SetTextColor(pdis->hDC,crText); OldBkMode=::SetBkMode(pdis->hDC,TRANSPARENT); rc.left+=ICON_WIDTH+ICON_TEXT_MARGIN; ::DrawText(pdis->hDC,m_PageList[pdis->itemData].pszTitle,-1, &rc,DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX); ::SetTextColor(pdis->hDC,crOldText); ::SetBkMode(pdis->hDC,OldBkMode); if ((pdis->itemState & (ODS_FOCUS | ODS_NOFOCUSRECT))==ODS_FOCUS) { rc=pdis->rcItem; rc.left+=LIST_MARGIN+ICON_WIDTH+ICON_TEXT_MARGIN/2; ::DrawFocusRect(pdis->hDC,&rc); } } else if (wParam==IDC_OPTIONS_TITLE) { HFONT hfontOld; COLORREF crOldText; int OldBkMode; RECT rc; DrawUtil::FillGradient(pdis->hDC,&pdis->rcItem, RGB(0,0,0),GetTitleColor(m_CurrentPage)); hfontOld=SelectFont(pdis->hDC,m_TitleFont.GetHandle()); crOldText=::SetTextColor(pdis->hDC,RGB(255,255,255)); OldBkMode=::SetBkMode(pdis->hDC,TRANSPARENT); rc.left=pdis->rcItem.left+2; rc.top=pdis->rcItem.top; rc.right=pdis->rcItem.right-2; rc.bottom=pdis->rcItem.bottom; ::DrawText(pdis->hDC,m_PageList[m_CurrentPage].pszTitle,-1, &rc,DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_NOPREFIX); SelectFont(pdis->hDC,hfontOld); ::SetTextColor(pdis->hDC,crOldText); ::SetBkMode(pdis->hDC,OldBkMode); } } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_OPTIONS_LIST: if (HIWORD(wParam)==LBN_SELCHANGE) { int NewPage=(int)DlgListBox_GetCurSel(hDlg,IDC_OPTIONS_LIST); if (NewPage>=0) SetPage(NewPage); } return TRUE; case IDC_OPTIONS_HELP: GetAppClass().UICore.ShowHelpContent(m_PageList[m_CurrentPage].HelpID); return TRUE; case IDOK: case IDCANCEL: { HCURSOR hcurOld; NMHDR nmh; int i; hcurOld=::SetCursor(::LoadCursor(NULL,IDC_WAIT)); nmh.code=LOWORD(wParam)==IDOK?PSN_APPLY:PSN_RESET; m_fSettingError=false; for (i=0;i<NUM_PAGES;i++) { if (m_PageList[i].pOptions->IsCreated()) { m_PageList[i].pOptions->SendMessage(WM_NOTIFY,0,reinterpret_cast<LPARAM>(&nmh)); if (m_fSettingError) { ::SetCursor(hcurOld); return TRUE; } if (LOWORD(wParam)==IDOK) m_fApplied=true; } } ::SetCursor(hcurOld); ::EndDialog(hDlg,m_fApplied?IDOK:IDCANCEL); } return TRUE; } return TRUE; case WM_DESTROY: //m_Icons.Destroy(); if (m_himlIcons!=NULL) { ::ImageList_Destroy(m_himlIcons); m_himlIcons=NULL; } m_TitleFont.Destroy(); return TRUE; } return FALSE; }
// 현재 페이지를 지정한다. void XWndPageSlideWithXML::SetCurrPage( int idxPage ) { /* if( m_listPageKey.size() > 0 ) { _SetCurrPageForXML( idxPage ); return; } */ XBREAK( idxPage < 0 || idxPage >= m_numPages ); if( m_pCurr ) { if( m_pCurr->GetidxPage() == idxPage ) // 이미 같은페이지면 다시 만들필요 없다. return; XWnd::DestroyWnd( m_pCurr ); } // 현재 페이지 생성 m_pCurr = CreatePage( idxPage ); Add(m_pCurr); // 왼쪽페이지 생성 if( m_pLeft ) XWnd::DestroyWnd( m_pLeft ); int idxPrevPage = GetPrevPage( idxPage ); if( idxPrevPage >= 0 ) { m_pLeft = CreatePage( idxPrevPage ); XE::VEC2 vPos( -XE::GetGameWidth(), 0 ); m_pLeft->SetPosLocal( vPos ); Add(m_pLeft); } // 오른족 페이지생성 if( m_pRight ) XWnd::DestroyWnd( m_pRight ); int idxNextPage = GetNextPage( idxPage ); if( idxNextPage >= 0 ) { m_pRight = CreatePage( idxNextPage ); XE::VEC2 vPos( XE::GetGameWidth(), 0 ); m_pRight->SetPosLocal( vPos ); Add(m_pRight); } //그리지 않는 페이지 생성 m_listLeft.Destroy(); m_listRight.Destroy(); for( int i = idxPage+2; i < m_numPages; i++ ) { XWndPageForSlide *pRight = CreatePage( i ); if( m_pRight ) { XE::VEC2 vPosRight = m_pRight->GetPosLocal(); pRight->SetPosLocal(vPosRight); } m_listRight.push_back( pRight ); Add(pRight); } for( int i = idxPage-2; i >= 0; i-- ) { XWndPageForSlide *pLeft = CreatePage( i ); if( m_pLeft ) { XE::VEC2 vPosLeft = m_pLeft->GetPosLocal(); pLeft->SetPosLocal(vPosLeft); } m_listLeft.push_back( pLeft ); Add(pLeft); } }
// Internal void CFontGen::InternalGeneratePages() { if( arePagesGenerated ) { status = 0; isWorking = false; return; } ClearPages(); bool didNotFit = false; memset(noFit, 0, sizeof(noFit)); if( stopWorking ) { status = 0; isWorking = false; return; } const int maxChars = useUnicode ? maxUnicodeChar+1 : 256; // Add the imported images to the character list for( int n = 0; n < (signed)iconImages.size(); n++ ) { int ch = iconImages[n]->id; chars[ch] = new CFontChar(); chars[ch]->CreateFromImage(n, iconImages[n]->image, iconImages[n]->xoffset, iconImages[n]->yoffset, iconImages[n]->advance); if( chars[ch]->m_height > 0 && chars[ch]->m_width > 0 ) { if( (chars[ch]->m_height + paddingUp + paddingDown) > outHeight-spacingVert || (chars[ch]->m_width + paddingRight + paddingLeft) > outWidth-spacingHoriz ) { didNotFit = true; noFit[ch] = true; // Delete the character again so that it isn't considered again delete chars[ch]; chars[ch] = 0; } } if( stopWorking ) { status = 0; isWorking = false; return; } } // Draw each of the chars into individual images HFONT font = CreateFont(0); for( int n = 0; n < maxChars; n++ ) { if( !disabled[n] && selected[n] ) { // Unless the image is taken by an imported icon // Draw the character in a separate image // Determine the dimensions of the character if( chars[n] == 0 ) { chars[n] = new CFontChar(); chars[n]->DrawChar(font, n, scaleH, aa, useUnicode, useSmoothing); if( outlineThickness ) chars[n]->AddOutline(outlineThickness); if( chars[n]->m_height > 0 && chars[n]->m_width > 0 ) { if( (chars[n]->m_height + paddingUp + paddingDown) > outHeight-spacingVert || (chars[n]->m_width + paddingRight + paddingLeft) > outWidth-spacingHoriz ) { didNotFit = true; noFit[n] = true; // Delete the character again so that it isn't considered again delete chars[n]; chars[n] = 0; } } } counter++; if( stopWorking ) { status = 0; isWorking = false; DeleteObject(font); return; } } } // Build a list of used characters status = 2; counter = 0; static CFontChar *ch[maxUnicodeChar+2]; int numChars = 0; for( int n = 0; n < maxChars; n++ ) { if( chars[n] ) ch[numChars++] = chars[n]; } // Add the invalid char glyph if( outputInvalidCharGlyph ) { invalidCharGlyph = new CFontChar(); invalidCharGlyph->DrawInvalidCharGlyph(font, scaleH, aa, useUnicode, useSmoothing); if( outlineThickness ) invalidCharGlyph->AddOutline(outlineThickness); if( (invalidCharGlyph->m_height + paddingUp + paddingDown) > outHeight-spacingVert || (invalidCharGlyph->m_width + paddingRight + paddingLeft) > outWidth-spacingHoriz ) { didNotFit = true; // Delete the character again so that it isn't considered again delete invalidCharGlyph; invalidCharGlyph = 0; } else ch[numChars++] = invalidCharGlyph; } DeleteObject(font); // Create pages until there are no more chars while( numChars > 0 ) { int page = CreatePage(); pages[page]->AddChars(ch, numChars); // Compact list for( int n = 0; n < numChars; n++ ) { if( ch[n] == 0 ) { // Find the last char for( numChars--; numChars > n; numChars-- ) { if( ch[numChars] ) { ch[n] = ch[numChars]; ch[numChars] = 0; break; } } } } if( stopWorking ) { status = 0; isWorking = false; return; } } status = 0; isWorking = false; arePagesGenerated = true; }
bool Frame::InsertNotebookPage (long tabIdx) { wxString caption; caption.Printf(wxT("New Page Inserted #%ld"), newPageCounter); return book->InsertPage(tabIdx, CreatePage(), caption, true, m_bShowImages ? rand() % (int)book->GetImageList()->size() : -1); }
/////////////////==========================================================| |=============================================- /// PageModule::CreatePage (2) /////==================================================================| |=========================================- int PageModule::CreatePage( uint32_t cols, uint32_t rows ) { // create one page at the specified size return CreatePage( 1, cols, rows ); }
/////////////////==========================================================| |=============================================- /// PageModule::CreatePage (3) /////==================================================================| |=========================================- int PageModule::CreatePage( uint32_t count ) { // create n pages using the display size return CreatePage( count, mCols, mRows ); }
/////////////////==========================================================| |=============================================- /// PageModule::CreatePage (3) /////==================================================================| |=========================================- int PageModule::CreatePage() { // create one page using the display size return CreatePage( 1, mCols, mRows ); }
void SetupPage(void) { num_items = 0; page_check = page; selection = selection_mem[page]; // Check Main Menu below for examples of inserting items. // These two lines underneath give more help on the values required. // CreatePage( "Page description", <MENU enum> ); // CreateItem( "Script description", "script filename" ); if ( page == MENU_MAIN ) { CreatePage( "GTA V Online Missions", MENU_GTAO ); CreatePage( "Custom Missions", MENU_CUSTOM ); CreatePage( "Exit menu", MENU_QUIT ); prev_page = MENU_MAIN; // previous page for when going back page_title = "GTA IV Mission Mod Pack"; // Title header for this page } else if ( page == MENU_GTAO ) { CreateItem("A boat in the bay (Trevor)", "abitb"); CreateItem("All in the Game (Simeon)","aitg"); CreateItem("Blow Up (Simeon)","blowup"); CreateItem("Blow Up II (Simeon)", "blowup2"); CreateItem("Blow Up III (Simeon)", "blowup3"); CreateItem("Crystal Clear Out 2 (Trevor)","ccout2"); CreateItem("El Burro Heists (Simeon)","elbheist"); CreateItem("Gentry Does It (Simeon)","gentrydi"); CreateItem("Lost MC Rip (Lamar)", "lstmcrip"); CreateItem("It Takes A Thief (Simeon)", "itat"); CreateItem("Out of Court Settlement (Martin)", "oocs"); CreateItem("Potshot (Trevor)", "potshot"); CreateItem("Rockford Roll (Simeon)", "rockroll"); CreateItem("Rooftop Rumble (Martin)", "rooftop"); CreateItem("Show me the Monet (Martin)", "smtmonet"); CreateItem("The Parking Garage (Lester)", "prkgarag"); prev_page = MENU_MAIN; page_title = "GTA V Online Missions"; } else if ( page == MENU_CUSTOM ) { CreateItem("Saints and Devils","sntsdvls"); CreateItem("Death Penalty","dethpnty"); CreateItem("Gruppe Sechs Heists","gsheist"); CreateItem("Deal Breaker 2","dealbrk2"); prev_page = MENU_MAIN; page_title = "Custom Missions"; } else if ( page == MENU_QUIT ) { UNPAUSE_GAME(); DISPLAY_AREA_NAME(TRUE); DISPLAY_CASH(TRUE); DISPLAY_FRONTEND_MAP_BLIPS(TRUE); DISPLAY_HUD(TRUE); DISPLAY_RADAR(TRUE); TERMINATE_THIS_SCRIPT(); } window_height = ( ( num_items + 1 ) * TEXT_LINE_SPACING ) + ( WINDOW_HEIGHT_CUT + ( TEXT_LINE_SPACING / 4 ) ); window_height_centre = ( TEXT_TOP - TEXT_INDENT ) + window_height / 2; }
INT_PTR CSettingsDialog::DlgProc(HWND hDlg,UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { ::SetWindowText(hDlg,GetTitle()); DeleteAllPages(); for (int i=0;;i++) { CPage *pPage=CreatePage(i); if (pPage==nullptr) break; m_PageList.push_back(pPage); ::SendDlgItemMessage(hDlg,IDC_SETTINGS_LIST,LB_ADDSTRING,0,i); } int Page=0; if (m_StartPage>=0 && m_StartPage<(int)m_PageList.size()) Page=m_StartPage; else if (m_CurrentPage>=0 && m_CurrentPage<(int)m_PageList.size()) Page=m_CurrentPage; m_CurrentPage=-1; if (SetPage(Page)) { ::SendDlgItemMessage(hDlg,IDC_SETTINGS_LIST,LB_SETCURSEL,Page,0); } m_himlIcons=::ImageList_LoadImage(m_hinst,MAKEINTRESOURCE(IDB_SETTINGS),16,1, CLR_NONE,IMAGE_BITMAP,LR_CREATEDIBSECTION); LRESULT ItemHeight=::SendDlgItemMessage(hDlg,IDC_SETTINGS_LIST,LB_GETITEMHEIGHT,0,0); if (ItemHeight<16+8) ::SendDlgItemMessage(hDlg,IDC_SETTINGS_LIST,LB_SETITEMHEIGHT,0,16+8); AdjustPos(); } return TRUE; case WM_DRAWITEM: { LPDRAWITEMSTRUCT pdis=reinterpret_cast<LPDRAWITEMSTRUCT>(lParam); if (wParam==IDC_SETTINGS_LIST) { if (pdis->itemData>=m_PageList.size()) break; const CPage *pPage=m_PageList[pdis->itemData]; const bool fSelected=(pdis->itemState&ODS_SELECTED)!=0; COLORREF crText,crOldText; int OldBkMode; RECT rcBack,rcText; rcBack=pdis->rcItem; rcBack.left+=4+16+4; if (fSelected) { RECT rc=pdis->rcItem; rc.right=rcBack.left; ::FillRect(pdis->hDC,&rc, reinterpret_cast<HBRUSH>(COLOR_WINDOW+1)); FillGradient(pdis->hDC,rcBack, RGB(0,0,0),pPage->GetTitleColor()); crText=RGB(255,255,255); } else { ::FillRect(pdis->hDC,&pdis->rcItem, reinterpret_cast<HBRUSH>(COLOR_WINDOW+1)); crText=::GetSysColor(COLOR_WINDOWTEXT); } ::ImageList_Draw(m_himlIcons,pPage->GetIcon(),pdis->hDC, pdis->rcItem.left+4, rcBack.top+((rcBack.bottom-rcBack.top)-16)/2, ILD_TRANSPARENT); rcText=rcBack; rcText.left+=4; rcText.right-=4; crOldText=::SetTextColor(pdis->hDC,crText); OldBkMode=::SetBkMode(pdis->hDC,TRANSPARENT); ::DrawText(pdis->hDC,pPage->GetTitle(),-1, &rcText,DT_LEFT | DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX); ::SetTextColor(pdis->hDC,crOldText); ::SetBkMode(pdis->hDC,OldBkMode); if ((pdis->itemState & (ODS_FOCUS | ODS_NOFOCUSRECT))==ODS_FOCUS) { ::DrawFocusRect(pdis->hDC,&rcBack); } } else if (wParam==IDC_SETTINGS_TITLE) { if (m_CurrentPage<0 || (size_t)m_CurrentPage>=m_PageList.size()) break; CPage *pPage=m_PageList[m_CurrentPage]; RECT rc; FillGradient(pdis->hDC,pdis->rcItem, RGB(0,0,0),pPage->GetTitleColor()); LOGFONT lf; ::GetObject(reinterpret_cast<HFONT>(::SendMessage(hDlg,WM_GETFONT,0,0)),sizeof(lf),&lf); lf.lfWeight=FW_BOLD; HFONT hfont=::CreateFontIndirect(&lf); HFONT hfontOld=SelectFont(pdis->hDC,hfont); COLORREF crOldText=::SetTextColor(pdis->hDC,RGB(255,255,255)); int OldBkMode=::SetBkMode(pdis->hDC,TRANSPARENT); rc.left=pdis->rcItem.left+2; rc.top=pdis->rcItem.top; rc.right=pdis->rcItem.right-2; rc.bottom=pdis->rcItem.bottom; ::DrawText(pdis->hDC,pPage->GetTitle(),-1, &rc,DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_NOPREFIX); SelectFont(pdis->hDC,hfontOld); ::DeleteObject(hfont); ::SetTextColor(pdis->hDC,crOldText); ::SetBkMode(pdis->hDC,OldBkMode); } } return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_SETTINGS_LIST: if (HIWORD(wParam)==LBN_SELCHANGE) { int Page=(int)::SendDlgItemMessage(hDlg,IDC_SETTINGS_LIST,LB_GETCURSEL,0,0); if (Page>=0) SetPage(Page); } return TRUE; case IDOK: if (QueryOK() && OnOK()) { End(IDOK); } return TRUE; case IDCANCEL: OnCancel(); End(IDCANCEL); return TRUE; } return TRUE; case WM_APP_SET_PAGE: SetPage((int)wParam); return TRUE; case WM_DESTROY: { m_StartPage=m_CurrentPage; DeleteAllPages(); if (m_himlIcons!=nullptr) { ::ImageList_Destroy(m_himlIcons); m_himlIcons=nullptr; } m_Core.RemoveModelessDialog(this); } return TRUE; } return FALSE; }
bool MessageMemoryManager::Initialize() { m_pages = CreatePage(); return true; }