Beispiel #1
0
void PageManager::PopLRUPage() {
	for (auto const & it: m_pagesOrderByAccessTime)
		if (!it.second->IsPinned()) {
			RemovePage(it.first, it.second);
			return;
		}
	// If all pages are pinned -> just remove lru.
	auto it = m_pagesOrderByAccessTime.begin();
	RemovePage(it->first, it->second);
}
CNetSettingPropertySheet::~CNetSettingPropertySheet()
{
	RemovePage(&page_Info);
	RemovePage(&page_Wifi);
	RemovePage(&page_NetAdapter);
	//RemovePage(&page_Profile);
	RemovePage(&page_Setting);
	RemovePage(&page_Tools);
	
}
Beispiel #3
0
	void ResizePlayers(size_t numPlayers)
	{
		wxASSERT(numPlayers <= m_Pages.size());

		// We don't really want to destroy the windows corresponding
		//	to the tabs, so we've kept them in a vector and will
		//	only remove and add them to the notebook as needed
		int selection = GetSelection();
		size_t pageCount = GetPageCount();

		if (numPlayers > pageCount)
		{
			// Add previously removed pages
			for (size_t i = pageCount; i < numPlayers; ++i)
			{
				AddPage(m_Pages[i], m_Pages[i]->GetPlayerName());
			}
		}
		else
		{
			// Remove previously added pages
			// we have to manually hide them or they remain visible
			for (size_t i = pageCount - 1; i >= numPlayers; --i)
			{
				m_Pages[i]->Hide();
				RemovePage(i);
			}
		}

		// Workaround for bug on wxGTK 2.8: wxChoice selection doesn't update
		//	(in fact it loses its selection when adding/removing pages)
		GetChoiceCtrl()->SetSelection(selection);
	}
Beispiel #4
0
bool wxSTEditorNotebook::CloseAllPages(bool query_save_if_modified, int except_this_page)
{
    if (query_save_if_modified && !QuerySaveIfModified())
        return false;

    if (except_this_page < 0)
    {
        DeleteAllPages();
    }
    else
    {
        wxWindow* win = GetPage(except_this_page);
        wxString title(GetPageText(except_this_page));

        if (win && RemovePage(except_this_page))
        {
            DeleteAllPages();
            AddPage(win, title, true);
        }
    }

    if ((GetPageCount() == 0) && !GetOptions().HasNotebookOption(STN_ALLOW_NO_PAGES))
        InsertEditorSplitter(-1, wxID_ANY, GetOptions().GetDefaultFileName(), true);

    UpdateAllItems();
    return true;
}
//---------------------------------------------------------
bool CACTIVE::_Hide_Page(wxWindow *pPage)
{
#ifdef ACTIVE_SHOW_ALL_PAGES
	return( true );
#endif

	//-----------------------------------------------------
	if( pPage == m_pHistory     )	m_pHistory   ->Set_Item(NULL);
	if( pPage == m_pLegend      )	m_pLegend    ->Set_Item(NULL);
	if( pPage == m_pAttributes  )	m_pAttributes->Set_Item(NULL);

	//-----------------------------------------------------
	for(int i=0; i<(int)GetPageCount(); i++)
	{
		if( GetPage(i) == pPage )
		{
			if( i == GetSelection() )
			{
				SetSelection(i - 1);
			}

			RemovePage(i);

			return( true );
		}
	}

	return( false );
}
void QuickPagingLayout::RemovePage(QuickWidget* content)
{
	const INT32 pos = m_pages.Find(content);
	if (pos >= 0)
	{
		RemovePage(pos);
	}
}
Beispiel #7
0
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
void
Notebook::hidePage(wxWindow* _pWindow)
{
    int pageIndex = GetPageIndex(_pWindow);
    if (pageIndex != wxNOT_FOUND)
    {
        RemovePage(pageIndex);
    }
}
Beispiel #8
0
void CxDlgPropertySheetSqlWizard::SetCategoryInsert()
{
	int i, nPages = GetPageCount();
	for (i=1; i<nPages; i++)
	{
		RemovePage (1);
	}
	SetCategory(SQLW_INSERT);
	AddPage(&m_PageInsert1);
}
Beispiel #9
0
void wxPropertyGridManager::Clear()
{
    m_pPropGrid->Freeze();

    int i;
    for ( i=(int)GetPageCount()-1; i>=0; i-- )
        RemovePage(i);

    m_pPropGrid->Thaw();
}
Beispiel #10
0
void CxDlgPropertySheetSqlWizard::SetCategoryDelete()
{
	int i, nPages = GetPageCount();
	for (i=1; i<nPages; i++)
	{
		RemovePage (1);
	}
	SetCategory(SQLW_DELETE);
	AddPage(&m_PageDelete1);
}
Beispiel #11
0
BOOL COptionsDlg::ShowRulePicker()
{
	//remove all pages
	int nMax = GetPageCount();
	for( int i = 0; i < nMax; i++ ) RemovePage(0);

	//add rule pick page
	AddPage(&m_Page1);

	return( DoModal() == IDOK );
}
Beispiel #12
0
void CInfoSheet::DeleteAllPages()
{
  // disable data exchange
  theApp.m_bDisableDataExchange = TRUE;
  INDEX iPagesCt, i;
  iPagesCt = GetPageCount();
  for( i=0; i<iPagesCt; i++)
    RemovePage( 0);
  // enable data exchange
  theApp.m_bDisableDataExchange = FALSE;
}
Beispiel #13
0
void CxDlgPropertySheetSqlWizard::SetCategoryUpdate()
{
	int i, nPages = GetPageCount();
	for (i=1; i<nPages; i++)
	{
		RemovePage (1);
	}
	SetCategory(SQLW_UPDATE);
	AddPage(&m_PageUpdate1);
	AddPage(&m_PageUpdate2);
	AddPage(&m_PageUpdate3);
}
Beispiel #14
0
void CxDlgPropertySheetSqlWizard::SetCategorySelect()
{
	int i, nPages = GetPageCount();
	for (i=1; i<nPages; i++)
	{
		RemovePage (1);
	}
	SetCategory(SQLW_SELECT);
	AddPage(&m_PageSelect1);
	AddPage(&m_PageSelect2);
	AddPage(&m_PageSelect3);
}
Beispiel #15
0
//-------------------------------------------------------------
// VtxCloudsTabs::updateControls() update UI
//-------------------------------------------------------------
void VtxCloudsTabs::updateControls(){
	CloudLayer *obj=object();
	int pages=GetPageCount();
	if(obj->threeD()){
		if(pages==2)
			InsertPage(2,geometry_page,"Volume",false,-1);
	}
	else if(pages==3){
		RemovePage(2);
	}
	if(update_needed){
		getObjAttributes();
	}
}
Beispiel #16
0
void wxPropertyGridManager::Clear()
{
    m_pPropGrid->ClearSelection(false);

    m_pPropGrid->Freeze();

    int i;
    for ( i=(int)GetPageCount()-1; i>=0; i-- )
        RemovePage(i);

    // Reset toolbar ids
    m_nextTbInd = m_baseId+ID_ADVTBITEMSBASE_OFFSET + 2;

    m_pPropGrid->Thaw();
}
Beispiel #17
0
	/******************************************************************************
	* 函数名称	:  TablePageFullToFree
	* 函数描述	:  页从满链到自由链
	* 输入		:  
	* 输出		:  
	* 返回值	:  0 - 成功!0 -失败
	* 作者		:  jin.shaohua
	*******************************************************************************/
	int TMdbTableCtrl::TablePageFullToFree(TMdbPage* pCurPage)
	{
		TADD_FUNC("Start.");
		int iRet = 0;
		//从full链上移除
		CHECK_RET(RemovePage(pCurPage,m_pTable->m_iFullPageID),"RemovePage failed.");
		//添加到free链上
		CHECK_RET(AddPageToTop(pCurPage,m_pTable->m_iFreePageID),"AddPageToTop failed.");
		//把状态设置为free
		SAFESTRCPY(pCurPage->m_sState, sizeof(pCurPage->m_sState),"free");
		--m_pTable->m_iFullPages;
		++m_pTable->m_iFreePages;
		TADD_FUNC("Finish.");
		return iRet;
	}
Beispiel #18
0
void InfoPane::Toggle(size_t i)
{
    if(page[i].indexInNB == -1)
        page[i].indexInNB = AddPagePrivate(page[i].window, page[i].title, page[i].icon);
    else
    {
        // Hide the window, otherwise the controls remain partly visible on some windows-versions
        // if we toggle the active logger
        if(page[i].window)
        {
            page[i].window->Hide();
        }
        RemovePage(GetPageIndex(page[i].window));
        page[i].indexInNB = -1;
    }
}
Beispiel #19
0
	/******************************************************************************
	* 函数名称	:  TablePageFreeToFull
	* 函数描述	: 页从自由链到满链
	* 输入		:  
	* 输出		:  
	* 返回值	:  0 - 成功!0 -失败
	* 作者		:  jin.shaohua
	*******************************************************************************/
	int TMdbTableCtrl::TablePageFreeToFull(TMdbPage* pCurPage)
	{
		int iRet = 0;
		TADD_FUNC("Start.");
		//从free链上移除
		CHECK_RET(RemovePage(pCurPage,m_pTable->m_iFreePageID),"RemovePage failed.");
		//添加到full链上
		CHECK_RET(AddPageToTop(pCurPage,m_pTable->m_iFullPageID),"AddPageToTop failed.");
		TADD_DETAIL("Cur-Page-ID=%d, NextPageID=%d, PrePageID=%d.", pCurPage->m_iPageID, pCurPage->m_iPrePageID, pCurPage->m_iNextPageID);
		//把状态设置为full
		SAFESTRCPY(pCurPage->m_sState,sizeof(pCurPage->m_sState), "full");
		++m_pTable->m_iFullPages;
		--m_pTable->m_iFreePages;
		TADD_FUNC("Finish.");
		return iRet;
	}
void uwNotebook::OnCloseFile()
{
    Show(false);
    bClosing = true;

    while( GetPageCount() > 0 )
    {
        wxNotebookPage* page = GetPage(0);
        RemovePage(0);
        page->Show(false);
        delete page;
        //page->Destroy();
    }

    Package = NULL;
    bClosing = false;
    Show(true);
}
Beispiel #21
0
bool InfoPane::RemoveNonLogger(wxWindow* p)
{
    for(int i = 0; i < num_pages; ++i)
    {
        if(page[i].window == p)
        {
            if(page[i].islogger)
            {
                cbThrow(_T("Bad API usage. Shame on you."));
            }

            RemovePage(GetPageIndex(page[i].window));
            page[i] = Page();
            return true;
        }
    }

   return false;
}
Beispiel #22
0
void CxDlgPropertySheetSqlWizard::SetCategoryInsert2(BOOL bManual)
{
	int i, nPages = GetPageCount();
	for (i=2; i<nPages; i++)
	{
		RemovePage (2);
	}
	if (bManual)
	{
		m_nInsertType = SQLW_INSERT_MANUAL;
		AddPage(&m_PageInsert2);
	}
	else
	{
		m_nInsertType = SQLW_INSERT_SUBSELECT;
		AddPage(&m_PageSelect1);
		AddPage(&m_PageSelect2);
		AddPage(&m_PageSelect3);
	}
}
int CAllToolSetupSheet::AddControlPages()
{
	while (GetPageCount()) 
		RemovePage(0);

	AddPage(&m_ToolSetupM1Page);
	AddPage(&m_ToolSetupM100Page);
	AddPage(&m_ToolSetupButtonsPage);
	AddPage(&m_ToolSetupFilesPage);
	AddPage(&m_ToolSetupTPPage);
	
	if (GetPageCount() == 0)
	{
		AfxMessageBox("No Tool Setup Tabs");
		return 1;
	}

	m_KeepCancelButton=true;

	return 0;
}
Beispiel #24
0
void wxSTEditorNotebook::SortTabs(int style)
{
    if ((int)GetPageCount() < 2)
        return;

    if (STE_HASBIT(style, STN_ALPHABETICAL_TABS))
    {
        int sel = GetSelection();
        int new_sel = sel;
        size_t page_count = GetPageCount();
        size_t n;

        if (page_count < 2)
            return;

        wxString curPageName;
        wxArrayString names;

        for (n = 0; n < page_count; n++)
        {
            wxString name(GetPageText(n));
            if ((name.Length() > 0) && (name[0u] == wxT('*')))
                name = name.Mid(1);

            names.Add(name + wxString::Format(wxT("=%d"), (int)n));
        }

        names.Sort(STN_SortNameCompareFunction);

        bool sel_changed = false;

        for (n = 0; n < page_count; n++)
        {
            long old_page = 0;
            names[n].AfterLast(wxT('=')).ToLong(&old_page);

            if (old_page != long(n))
            {
                wxWindow *oldWin = GetPage(old_page);
                wxString oldName(GetPageText(old_page));

                if (oldWin && RemovePage(old_page))
                {
                    sel_changed = true;

                    if (old_page == sel)
                        new_sel = (int)n;

                    if (n < page_count - 1)
                        InsertPage((int)(n+1), oldWin, oldName, old_page == sel);
                    else
                        AddPage(oldWin, oldName, old_page == sel);
                }
            }
        }

        if (sel_changed)
        {
            wxNotebookEvent noteEvent(wxEVT_COMMAND_NOTEBOOK_PAGE_CHANGED, GetId(),
                                    new_sel, new_sel);
            noteEvent.SetString(wxT("wxSTEditorNotebook Page Change"));
            noteEvent.SetExtraLong(new_sel); // FIXME no Clone in wxNotebookEvent
            // NOTE: this may have to be AddPendingEvent for wx < 2.7 since gtk
            //       can become reentrant
            GetEventHandler()->AddPendingEvent(noteEvent);
        }

        // causes reentrant assert in gtk, even though it's necessary sometimes
        //SetSelection(new_sel); // force selection for GTK
    }
}
/**
 * \brief Simulates the output
 *
 * This routine simulates the movement of paper in the engine.
 * The first part of the loop determines if a sheet can be lifted from a paper tray,
 * the second part determines if the sheet has reached the output tray.
 */
void PMSOutput(void * dummy)
{
  PMS_TyPage *ThisPage = NULL;    /* pointer the the current page being checked */
  PMS_TyPage LastPage;            /* pointer the the last sheet that was picked up */
  PMS_TyPageList *tmpPageList;    /* local pagelist pointer */
  unsigned int uCurrentPageGap;   /* the gap between sheet pickup */
  unsigned int uLastPickUp;       /* the time the last sheet was pickup from inout tray */
  unsigned int  uPagesInMotion;   /* the number of sheets travelling in the system */

  UNUSED_PARAM(void *, dummy);

  uCurrentPageGap = 0;
  uLastPickUp = 0;
  uPagesInMotion = 0;
  g_eJobState = PMS_Waiting_For_Page;

  /* loop until the RIP has quit */
  while(g_eJobState != PMS_AllJobs_Completed)  /* pages in motion OR RIP active */
  {
    /* keep a local copy of the pagelist for local manipulation */
    tmpPageList = g_pstPageList;

    if(g_tSystemInfo.uUseEngineSimulator)
    {
      /* small delay to prevent total processor consumption */
      PMS_Delay(PAGECHECK_FREQUENCY);
    }
    else if(tmpPageList==NULL)
    {
      /* wait for a page to arrive */
      PMS_WaitOnSemaphore_Forever(g_semPageQueue);
    }

    /* walk through all the pages */
    while (tmpPageList!=NULL)
    {
      ThisPage = tmpPageList->pPage;
      if(g_tSystemInfo.uUseEngineSimulator)
        PMS_Delay(PAGECHECK_FREQUENCY);

      /* is there a page waiting to start travelling */
      if (ThisPage->eState==PMS_CHECKEDIN)
      {
        /* work out the gap between last page and this page */
        uCurrentPageGap = EngineGetInterpageGap(ThisPage, &LastPage);

        /* has enough time passed since the last sheet pickup */
        if(PMS_TimeInMilliSecs() > (uLastPickUp + uCurrentPageGap))
        {
          /* pick up sheet, mark as printing */
          ThisPage->eState = PMS_PRINTING;
          ThisPage->ulPickupTime = PMS_TimeInMilliSecs();
          ThisPage->ulOutputTime = ThisPage->ulPickupTime + EngineGetTravelTime(g_pstPageList->pPage);
          uPagesInMotion++;

          /* PMS_SHOW("Pickup Sheet: %d - output: %d\n", ThisPage->ulPickupTime, ThisPage->ulOutputTime); */

          /* record some stats about this page incase next page is different a requires a stall in paper path */
          LastPage.uTotalPlanes = ThisPage->uTotalPlanes;

          /* record pickup time in global */
          uLastPickUp = PMS_TimeInMilliSecs();
        }
        break;
      }

      /* check sheets that are printing */
      if (ThisPage->eState==PMS_PRINTING)
      {
        /* has a sheet reached output bin */
        if(PMS_TimeInMilliSecs() > (ThisPage->ulOutputTime))
        {
          /* print sheet */
          PrintPage(ThisPage);
          ThisPage->eState = PMS_COMPLETE;

          /* PMS_SHOW("Output Sheet: %d\n", PMS_TimeInMilliSecs()); */

          /* send page done at this point*/
          OIL_PageDone(ThisPage);

          /* remove sheet from system, RemovePage is protected against other threads */
          RemovePage(ThisPage);
          uPagesInMotion--;

          /* page list modified so break out and start again */
          break;
        }
      }

      /* move onto the next page */
      tmpPageList = tmpPageList->pNext;
    }

    if(uPagesInMotion == 0)
    {
        /* set the job state to indicate pms is waiting for next page. */
        g_eJobState = PMS_Waiting_For_Page;
    }
    else
    {
        /* set the job state to indicate pms has received a page and is processing it. */
        g_eJobState = PMS_Page_In_Progress;
    }

    /* if RIP has finished ripping and page list is empty means all jobs are printed */
    if((g_eRipState == PMS_Rip_Finished) && (g_pstPageList == NULL))
    {
      g_eJobState = PMS_AllJobs_Completed;
    }
  }
  return;
}