void wxPageContainer::OnLeftDClick(wxMouseEvent& event)
{
	wxPageInfo pgInfo;
	int tabIdx;
	int where = HitTest(event.GetPosition(), pgInfo, tabIdx);
	switch(where)
	{
	case wxFNB_RIGHT_ARROW:
		RotateRight();
		break;
	case wxFNB_LEFT_ARROW:
		RotateLeft();
		break;
	case wxFNB_TAB:
		if(HasFlag(wxFNB_DCLICK_CLOSES_TABS))
		{
			DeletePage((size_t)tabIdx);
		}
		break;
	case wxFNB_X:
		{
			OnLeftDown(event);
		}
		break;
	default:
		event.Skip();
		break;
	}
}
Exemple #2
0
void CMuleNotebook::OnMouseButtonRelease(wxMouseEvent &event)
{
	if (GetImageList() == NULL) {
		// This Mulenotebook has no images on tabs, so nothing to do.
		event.Skip();
		return;
	}

	long xpos, ypos;
	event.GetPosition(&xpos, &ypos);

	long flags = 0;
	int tab = HitTest(wxPoint(xpos,ypos),&flags);

	if ((tab != -1) &&  (((flags == wxNB_HITTEST_ONICON) && event.LeftUp()) ||
			((flags == wxNB_HITTEST_ONLABEL) && event.MiddleUp()))) {
		// User did click on a 'x' or middle click on the label
#if MULE_NEEDS_DELETEPAGE_WORKAROUND
		/*	WORKAROUND: Instead of calling DeletePage, we need to wait for the
		 *	mouse release signal to reach Gtk. Inconsistent with normal wxEvent
		 *	behaviour the button release handler in wxWidgets don't evaluate
		 *	the result of the signal handling. */
		wxNotebookEvent evt( wxEVT_COMMAND_MULENOTEBOOK_DELETE_PAGE, GetId(), tab );
		evt.SetEventObject(this);
		AddPendingEvent( evt );
#else
		DeletePage(tab);
#endif // MULE_NEEDS_DELETEPAGE_WORKAROUND
	} else {
		// Is not a 'x'. Send this event up.
		event.Skip();
	}
}
Exemple #3
0
	bool CloseCanvas(ICmdParam& cmd,wxWindow* w=NULL)
	{
		wxWindow* pPage=w?w:m_pCurrentCanvas;
		if(!pPage) return false;

		int nSelection=this->GetPageIndex(pPage);
		if(nSelection<0) return false;

		LockGuard<WndUpdator> lock(wm.wup);

		MvcView* pView=MvcView::GetViewByCanvas(pPage);
		if(pView)
		{
			if(!pView->OnClose(wm))
			{
				return false;
			}
			wm.book.DetachView(pView);
		}

		if(m_pCurrentCanvas==pPage)
		{
			m_pCurrentCanvas.reset(NULL);
			SetActiveView(NULL);
		}

		DeletePage(nSelection);
		wm.wup.gp_add("CmdProc");

		return true;
	}
Exemple #4
0
 void delete_page( boost::shared_ptr<Window> window ) {
     for (size_t i = 0; i < GetPageCount(); ++i) 
         if ( GetPage(i) == *window ) {
             DeletePage(i);
             return;
         }
 }
Exemple #5
0
bool wxSTEditorNotebook::ClosePage(int n, bool query_save_if_modified)
{
    wxCHECK_MSG((n >= 0) && (n < (int)GetPageCount()), false, wxT("Invalid page"));
    wxSTEditor *editor = GetEditor(n);

    if (!editor)
        return false;

    int ret = wxID_NO;
    int sel = GetSelection();

    if (query_save_if_modified)
        ret = editor->QuerySaveIfModified(true);

    if (ret != wxCANCEL)
        ret = int(DeletePage(n));

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

    // Force selection for GTK, else if try to close the "current page" without
    //  first clicking in it you delete some other page
    int page_count = (int)GetPageCount();
    if ((sel >= page_count) && (page_count > 0))
        SetSelection(wxMax(0, wxMin(sel, page_count-1)));

    UpdateAllItems();

    return ret != 0;
}
void browsers::browserTAB::OnTELLclearGDStab() {
   if (_GDSstruct) {
      _GDSstruct->DeleteAllItems();
      DeletePage(2);
      _GDSstruct = NULL;
   }
}
Exemple #7
0
bool InfoPane::DeleteLogger(Logger* l)
{
    if (!l)
    {
        return false;
    }

    for(int i = 0; i < num_pages; ++i)
    {
        if(page[i].logger == l)
        {
            int index = Manager::Get()->GetLogManager()->FindIndex(l);
            if (index != -1)
            {
                Manager::Get()->GetLogManager()->DeleteLog(index);
            }

            if (page[i].indexInNB != -1)
            {
                DeletePage(GetPageIndex(page[i].window));
            }

            page[i] = Page();
            return true;
        }
    }

   return false;
}
Exemple #8
0
bool wxNotebook::DeleteAllPages()
{
    for (size_t i = GetPageCount(); i--;)
        DeletePage(i);

    return wxNotebookBase::DeleteAllPages();
}
bool Notebook::DeleteAllPages(bool notify)
{
    bool res = true;
    size_t count = GetPageCount();
    for (size_t i=0; i<count && res; i++) {
        res = DeletePage(0, notify);
    }
    return res;
}
Exemple #10
0
void CMuleNotebook::OnPopupCloseOthers(wxCommandEvent& WXUNUSED(evt))
{
	wxNotebookPage* current = GetPage( GetSelection() );

	for ( int i = GetPageCount() - 1; i >= 0; i-- ) {
		if ( current != GetPage( i ) )
			DeletePage( i );
	}
}
Exemple #11
0
//---------------------------------------------------------------------------------------
void ContentWindow::close_all()
{
    if (GetPageCount() == 0) return;     //nothing to close.

    int iActive = GetSelection();
    while(iActive != -1)
    {
        DeletePage(iActive);
        iActive = GetSelection();
    }
}
Exemple #12
0
bool wxNotebook::DeleteAllPages()
{
    wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );

    while (m_pagesData.GetCount() > 0)
        DeletePage( m_pagesData.GetCount()-1 );

    wxASSERT_MSG( GetPageCount() == 0, wxT("all pages must have been deleted") );

    InvalidateBestSize();
    return wxNotebookBase::DeleteAllPages();
}
Exemple #13
0
BOOL COXTabViewContainer::DeletePage(CWnd* pWnd, 
									 BOOL bDestroy/*=TRUE*/) 
{
	ASSERT(pWnd!=NULL);
	ASSERT(IsPage(pWnd));
	int nIndex=-1;
	if(FindPage(pWnd,nIndex))
	{
		return DeletePage(nIndex,bDestroy);
	}
	return FALSE;
}
Exemple #14
0
bool CMuleNotebook::DeleteAllPages()
{
	Freeze();

	bool result = true;
	while ( GetPageCount() ) {
		result &= DeletePage( 0 );
	}

	Thaw();

	return result;
}
bool Notebook::DeleteAllPages(bool notify)
{
    bool res = true;
	Freeze();

	size_t count = m_tabs->GetTabsCount();
	for(size_t i=0; i<count && res; i++){
		res = DeletePage(0, notify);
	}

	Thaw();
    return res;
}
Exemple #16
0
void CChatSelector::EndSession(uint64 client_id)
{
	int usedtab;
	if (client_id) {
		usedtab = GetTabByClientID(client_id);
	} else {
		usedtab = GetSelection();
	}

	if (usedtab == -1) {
		return;
	}

	DeletePage(usedtab);
}
bool wxNotebook::DeleteAllPages()
{
    wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid notebook") );

#if defined(__INTEL_COMPILER) && 1 /* VDM auto patch */
#   pragma ivdep
#   pragma swp
#   pragma unroll
#   pragma prefetch
#   if 0
#       pragma simd noassert
#   endif
#endif /* VDM auto patch */
    while (m_pagesData.GetCount() > 0)
        DeletePage( m_pagesData.GetCount()-1 );

    wxASSERT_MSG( GetPageCount() == 0, wxT("all pages must have been deleted") );

    InvalidateBestSize();
    return wxNotebookBase::DeleteAllPages();
}
Exemple #18
0
bool InfoPane::DeleteNonLogger(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."));
            }

            if (page[i].indexInNB != -1)
            {
                DeletePage(GetPageIndex(page[i].window));
            }
            page[i] = Page();
            return true;
        }
    }

   return false;
}
void wxPageContainer::OnMiddleDown(wxMouseEvent& event)
{
	// Test if this style is enabled
	long style = GetParent()->GetWindowStyleFlag();
	if(!(style & wxFNB_MOUSE_MIDDLE_CLOSES_TABS))
		return;

	wxPageInfo pgInfo;
	int tabIdx;
	int where = HitTest(event.GetPosition(), pgInfo, tabIdx);
	switch(where)
	{
	case wxFNB_TAB:
		{
			DeletePage((size_t)tabIdx);
			break;
		}
	default:
		break;
	}

	event.Skip();
}
void wxPageContainer::OnLeftUp(wxMouseEvent& event)
{
	wxPageInfo pgInfo;
	int tabIdx;

	// forget the zone that was initially clicked
	m_nLeftClickZone = wxFNB_NOWHERE;

	int where = HitTest(event.GetPosition(), pgInfo, tabIdx);
	switch(where)
	{
	case wxFNB_LEFT_ARROW:
		{
			RotateLeft();
			break;
		}
	case wxFNB_RIGHT_ARROW:
		{
			RotateRight();
			break;
		}
	case wxFNB_X:
		{
			// Make sure that the button was pressed before
			if(m_nXButtonStatus != wxFNB_BTN_PRESSED)
				break;

			m_nXButtonStatus = wxFNB_BTN_HOVER;

			DeletePage((size_t)m_iActivePage);
			break;
		}
	case wxFNB_TAB_X:
		{
			// Make sure that the button was pressed before
			if(m_nTabXButtonStatus != wxFNB_BTN_PRESSED)
				break;

			m_nTabXButtonStatus = wxFNB_BTN_HOVER;

			DeletePage((size_t)m_iActivePage);
			break;
		}
	case wxFNB_DROP_DOWN_ARROW:
		{
			// Make sure that the button was pressed before
			if(m_nArrowDownButtonStatus != wxFNB_BTN_PRESSED)
				break;

			m_nArrowDownButtonStatus = wxFNB_BTN_NONE;

			// Refresh the button status
			wxFNBRendererPtr render = wxFNBRendererMgrST::Get()->GetRenderer( GetParent()->GetWindowStyleFlag() );
			wxClientDC dc(this);
			render->DrawDropDownArrow(this, dc);

			PopupTabsMenu();
			break;
		}
	}
	event.Skip();
}
Exemple #21
0
void WandProfile::DeleteWandSyncItem(int index)
{
	DeletePage(index);
}
Exemple #22
0
//---------------------------------------------------------------------------------------
void ContentWindow::close_active_canvas()
{
    int iActive = GetSelection();
    if (iActive != -1)
        DeletePage(iActive);
}
BOOL COXCustomizeManager::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO: Add extra initialization here

	// setup shortcut bar
	m_shb.SetBarStyle(SHBS_INFOTIP|SHBS_UNDERLINEHOTITEM|SHBS_SHOWACTIVEALWAYS|
		SHBS_BOLDEXPANDEDGROUP|SHBS_DISABLEDRAGDROPITEM|SHBS_DRAWHEADERDRAGIMAGE);

	// setup title
	m_title.SetTextColor(::GetSysColor(COLOR_CAPTIONTEXT));
	m_title.SetBkColor(::GetSysColor(COLOR_BTNFACE));
	m_title.SetBackgroundFillType(GRADIENT_LEFT);
	CFont fontTitle;
	VERIFY(fontTitle.CreatePointFont(120,_T("MS Sans Serif")));
	m_title.SetTextFont(&fontTitle);

	// layout manager 
	//
	if(m_LayoutManager.IsAttached())
		m_LayoutManager.Detach();
	m_LayoutManager.Attach(this);
	
	// shortcut bar control
	m_LayoutManager.TieChild(IDC_OX_SHB_PAGES,OX_LMS_TOP|OX_LMS_BOTTOM,OX_LMT_SAME);

	// title
	m_LayoutManager.TieChild(IDC_OX_STATIC_TITLE,OX_LMS_RIGHT|OX_LMS_LEFT,OX_LMT_SAME);

	// title separator
	m_LayoutManager.TieChild(IDC_OX_SEPARATOR_TITLE,
		OX_LMS_RIGHT|OX_LMS_LEFT,OX_LMT_SAME);

	// bottom separator
	m_LayoutManager.TieChild(IDC_OX_SEPARATOR_BOTTOM,
		OX_LMS_RIGHT|OX_LMS_LEFT|OX_LMS_BOTTOM,OX_LMT_SAME);

	// OK, Cancel, Apply buttons
	m_LayoutManager.TieChild(IDOK,OX_LMS_BOTTOM|OX_LMS_RIGHT,OX_LMT_SAME);
	m_LayoutManager.TieChild(IDCANCEL,OX_LMS_BOTTOM|OX_LMS_RIGHT,OX_LMT_SAME);
	m_LayoutManager.TieChild(IDC_OX_BUTTON_APPLY,OX_LMS_BOTTOM|OX_LMS_RIGHT,OX_LMT_SAME);

	//////////////////////////////////////

	// populate the manager with standard and user defined pages
	PopulatePages();

	for(int nIndex=0; nIndex<m_shb.GetGroupCount(); nIndex++)
	{
		HSHBGROUP hGroup=m_shb.FindGroupByOrder(nIndex);
		ASSERT(hGroup!=NULL);
		m_shb.SortLCItems(hGroup);
	}

#ifdef OX_CUSTOMIZE_WORKSPACE_STATE
	ASSERT(GetWorkspaceStatePage()!=NULL);
	// go through all pages and check if it should be displayed
	POSITION pos=m_mapPages.GetStartPosition();
	while(pos!=NULL)
	{
		DWORD dwID=NULL;
		COXCustomizePage* pCustomizePage=NULL;
		m_mapPages.GetNextAssoc(pos,pCustomizePage,dwID);
		ASSERT(pCustomizePage!=NULL && dwID!=NULL);
		if(!GetWorkspaceStatePage()->IsViewablePage(pCustomizePage))
			VERIFY(DeletePage(pCustomizePage));
	}
#endif	//	OX_CUSTOMIZE_WORKSPACE_STATE

	// activate first page
	HSHBGROUP hGroup=m_shb.FindGroupByOrder(0);
	ASSERT(hGroup!=NULL);
	COXCustomizePage* pCustomizePage=GetPageByLocation(hGroup,0);
	ASSERT(pCustomizePage!=NULL);
	VERIFY(ActivatePage(pCustomizePage));

	// calculate the position of the active page window
	RecalcPageRect();
	// adjust the position of the current active page 
	if(m_pActivePage!=NULL)
		m_pActivePage->MoveWindow(GetPageRect());

	// mark the dialog as initialized
	m_bInitialized=TRUE;

	return FALSE; 
}
Exemple #24
0
void CMuleNotebook::OnDeletePage(wxBookCtrlEvent& evt)
{
	int page = evt.GetSelection();
	DeletePage(page);
}
Exemple #25
0
void CMuleNotebook::OnPopupClose(wxCommandEvent& WXUNUSED(evt))
{
	DeletePage( GetSelection() );
}