Ejemplo n.º 1
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;
}
Ejemplo n.º 2
0
	void LoadTerrain()
	{
		wxBusyInfo busy (_("Loading terrain groups"));

		DeleteAllPages();
		m_TerrainGroups.Clear();

		// Get the list of terrain groups from the engine
		AtlasMessage::qGetTerrainGroups qry;
		qry.Post();
		std::vector<std::wstring> groupnames = *qry.groupNames;
		for (std::vector<std::wstring>::iterator it = groupnames.begin(); it != groupnames.end(); ++it)
			m_TerrainGroups.Add(it->c_str());

		for (size_t i = 0; i < m_TerrainGroups.GetCount(); ++i)
		{
			wxString visibleName = m_TerrainGroups[i];
			// Format name slightly
			if (visibleName.Len())
				visibleName[0] = wxToupper(visibleName[0]);
			visibleName.Replace(_T("_"), _T(" "));
			AddPage(new TextureNotebookPage(m_ScenarioEditor, this, m_TerrainGroups[i]), visibleName);
		}

		// On some platforms (wxOSX) there is no initial OnPageChanged event, so it loads with a blank page
		//	and setting selection to 0 won't trigger it either, so just force first page to display
		// (this is safe because the sidebar has already been displayed)
		if (GetPageCount() > 0)
		{
			static_cast<TextureNotebookPage*>(GetPage(0))->OnDisplay();
		}
	}
Ejemplo n.º 3
0
void CInfoSheet::SetInfoModeTerrain(void)
{
  m_ModeID = INFO_MODE_TERRAIN;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  AddPage( &m_PgTerrain);
  SoftSetActivePage(1);
}
Ejemplo n.º 4
0
void CInfoSheet::SetInfoModeGlobal(void)
{
  m_ModeID = INFO_MODE_GLOBAL;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  //AddPage( &m_PgRenderingStatistics);
  SoftSetActivePage(0);
}
Ejemplo n.º 5
0
void CInfoSheet::SetInfoModePosition(void)
{
  m_ModeID = INFO_MODE_POSITION;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  //AddPage( &m_PgRenderingStatistics);
  AddPage( &m_PgPosition);
  SoftSetActivePage(1);
}
Ejemplo n.º 6
0
WandProfile::~WandProfile()
{
#ifdef SYNC_HAVE_PASSWORD_MANAGER
	WandManager::SyncBlocker sync_blocker; // don't sync delete events to server 
										   // when shutting down.
#endif // SYNC_HAVE_PASSWORD_MANAGER

	DeleteAllPages();
}
Ejemplo n.º 7
0
void CInfoSheet::SetInfoModeSector(void)
{
  m_ModeID = INFO_MODE_SECTOR;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  //AddPage( &m_PgRenderingStatistics);
  AddPage( &m_PgSector);
  SoftSetActivePage(1);
}
Ejemplo n.º 8
0
void CInfoSheet::SetInfoModePrimitive(void)
{
  m_ModeID = INFO_MODE_PRIMITIVE;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  //AddPage( &m_PgRenderingStatistics);
  AddPage( &m_PgPosition);
  AddPage( &m_PgPrimitive);
  SoftSetActivePage(2);
}
Ejemplo n.º 9
0
void CInfoSheet::SetInfoModePolygon(void)
{
  m_ModeID = INFO_MODE_POLYGON;
  DeleteAllPages();
  AddPage( &m_PgGlobal);
  //AddPage( &m_PgRenderingStatistics);
  AddPage( &m_PgPolygon);
  AddPage( &m_PgShadow);
  AddPage( &m_PgTexture);
  SoftSetActivePage( _iLastActivePgInPolygonMode);
}
Ejemplo n.º 10
0
wxNotebook::~wxNotebook()
{
    // Ensure that we don't generate page changing events during the
    // destruction, this is unexpected and may reference the already (half)
    // destroyed parent window, for example. So make sure our switch_page
    // callback is not called from inside DeleteAllPages() by disconnecting all
    // the callbacks associated with this widget.
    GTKDisconnect(m_widget);

    DeleteAllPages();
}
Ejemplo n.º 11
0
	CamControl::~CamControl()
	{      
		DeleteAllPages();      

        if ( m_pWindow != NULL )
        {
            delete m_pWindow;
            m_pWindow = NULL;
        }

	}
Ejemplo n.º 12
0
void               P3DBranchPanel::SwitchToBranch
                                      (P3DBranchModel     *BranchModel)
 {
  int                                  OldPageIndex;
  size_t                               OldPageCount;

  OldPageCount = GetPageCount();
  OldPageIndex = GetSelection();

  DeleteAllPages();

  this->BranchModel = BranchModel;

  CreateTabs();

  if (OldPageIndex != wxNOT_FOUND)
   {
    if (OldPageCount == 1) /* for base */
     {
      if (GetPageCount() == 1)
       {
        SetSelection(OldPageIndex);
       }
      else
       {
        SetSelection(0);
       }
     }
    else
     {
      if (GetPageCount() == 1)
       {
        SetSelection(0);
       }
      else
       {
        SetSelection(OldPageIndex);
       }
     }
   }

  #if defined(__WXMSW__)
   {
    Refresh();
   }
  #endif

 }
Ejemplo n.º 13
0
void GLIBitmapNotebook::ResetAllPages()
{
  // Reset the scale
  viewScaleMultiply = 1;
  viewScaleDivide   = 1;

  // Delete all attached pages
  DeleteAllPages();

  // Clear the stored array
  bitmapViews.clear();

  // Reset the selection point
  SetSelectedPosition(wxPoint(-1, -1));

  // Update the window title for new zoom factor
  parentControl->UpdateWindowTitle();
}
Ejemplo n.º 14
0
	void LoadTerrain()
	{
		wxBusyInfo busy (_("Loading terrain groups"));

		DeleteAllPages();
		m_TerrainGroups.Clear();

		// Get the list of terrain groups from the engine
		AtlasMessage::qGetTerrainGroups qry;
		qry.Post();
		std::vector<std::wstring> groupnames = *qry.groupNames;
		for (std::vector<std::wstring>::iterator it = groupnames.begin(); it != groupnames.end(); ++it)
			m_TerrainGroups.Add(it->c_str());

		for (size_t i = 0; i < m_TerrainGroups.GetCount(); ++i)
		{
			wxString visibleName = m_TerrainGroups[i];
			if (visibleName.Len())
				visibleName[0] = wxToupper(visibleName[0]);
			AddPage(new TextureNotebookPage(m_ScenarioEditor, this, m_TerrainGroups[i]), visibleName);
		}
	}
Ejemplo n.º 15
0
wxNotebook::~wxNotebook()
{
    DeleteAllPages();
}
Ejemplo n.º 16
0
CMuleNotebook::~CMuleNotebook()
{
	// Ensure that all notifications gets sent
	DeleteAllPages();
}
Ejemplo n.º 17
0
void CMuleNotebook::OnPopupCloseAll(wxCommandEvent& WXUNUSED(evt))
{
	DeleteAllPages();
}
Ejemplo n.º 18
0
	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;
	}
Ejemplo n.º 19
0
	CSettingsDialog::~CSettingsDialog()
	{
		Destroy();
		DeleteAllPages();
	}