コード例 #1
0
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;
}
コード例 #2
0
ファイル: UnitWorkDLL.cpp プロジェクト: txe/ieml
//---------------------------------------------------------------------------
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());
}
コード例 #3
0
/////////////////////////////////////////////////////////////////////////////
// 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);
}
コード例 #4
0
/// 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;
}
コード例 #5
0
ファイル: Frame.cpp プロジェクト: senadj/wxfolder
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();	
}
コード例 #6
0
    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;
    }
コード例 #7
0
ファイル: OptionDialog.cpp プロジェクト: kento1218/TVTest
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);
	}
}
コード例 #8
0
ファイル: mymusic.cpp プロジェクト: r10s/silverjuke
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", ""));
}
コード例 #9
0
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;
}
コード例 #10
0
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";
}
コード例 #11
0
ファイル: OptionSheet.cpp プロジェクト: leiqunni/STEP_Unicode
//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;
}
コード例 #12
0
//---------------------------------------------------------------------------
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);
}
コード例 #13
0
ファイル: WndSettingsSheet.cpp プロジェクト: ivan386/Shareaza
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;
}
コード例 #14
0
ファイル: OptionDialog.cpp プロジェクト: kento1218/TVTest
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;
}
コード例 #15
0
ファイル: XWndPageSlide.cpp プロジェクト: xahgo/tama
// 현재 페이지를 지정한다.
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);
	}
}
コード例 #16
0
ファイル: fontgen.cpp プロジェクト: vchelaru/FlatRedBall
// 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;
}
コード例 #17
0
ファイル: Frame.cpp プロジェクト: senadj/wxfolder
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);
}
コード例 #18
0
ファイル: PageModule.cpp プロジェクト: SeeK-ntr0py/LuSiD
/////////////////==========================================================|   |=============================================-
///  PageModule::CreatePage (2)
/////==================================================================|   |=========================================-
int PageModule::CreatePage( uint32_t cols, uint32_t rows )
{
	// create one page at the specified size
	return CreatePage( 1, cols, rows );
}
コード例 #19
0
ファイル: PageModule.cpp プロジェクト: SeeK-ntr0py/LuSiD
/////////////////==========================================================|   |=============================================-
///  PageModule::CreatePage (3)
/////==================================================================|   |=========================================-
int PageModule::CreatePage( uint32_t count )
{
	// create n pages using the display size
	return CreatePage( count, mCols, mRows );
}
コード例 #20
0
ファイル: PageModule.cpp プロジェクト: SeeK-ntr0py/LuSiD
/////////////////==========================================================|   |=============================================-
///  PageModule::CreatePage (3)
/////==================================================================|   |=========================================-
int PageModule::CreatePage()
{
	// create one page using the display size
	return CreatePage( 1, mCols, mRows );
}
コード例 #21
0
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;
}
コード例 #22
0
ファイル: SettingsDialog.cpp プロジェクト: nexus7ici/TSTask
	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;
	}
コード例 #23
0
 bool MessageMemoryManager::Initialize()
 {
     m_pages = CreatePage();
     return true;
 }