bool AddPage(wxWindow* page, const wxAuiNotebookPage& info);
bool InsertPage(wxWindow* page, const wxAuiNotebookPage& info, size_t idx);
+ bool MovePage(wxWindow* page, size_t new_idx);
bool RemovePage(wxWindow* page);
bool SetActivePage(wxWindow* page);
bool SetActivePage(size_t page);
return true;
}
+bool wxAuiTabContainer::MovePage(wxWindow* page,
+ size_t new_idx)
+{
+ int idx = GetIdxFromWindow(page);
+ if (idx == -1)
+ return false;
+
+ // get page entry, make a copy of it
+ wxAuiNotebookPage p = GetPage(idx);
+
+ // remove old page entry
+ RemovePage(page);
+
+ // insert page where it should be
+ InsertPage(page, p, new_idx);
+
+ return true;
+}
+
bool wxAuiTabContainer::RemovePage(wxWindow* wnd)
{
size_t i, page_count = m_pages.GetCount();
dest_tabs = tab_frame->m_tabs;
if (dest_tabs == src_tabs)
+ {
+ wxPoint pt = dest_tabs->ScreenToClient(mouse_screen_pt);
+ wxWindow* dest_location_tab;
+
+ // -- this is an inner-tab drag/reposition
+ if (dest_tabs->TabHitTest(pt.x, pt.y, &dest_location_tab))
+ {
+ wxWindow* src_tab = src_tabs->GetWindowFromIdx(evt.GetSelection());
+ int dest_idx = dest_tabs->GetIdxFromWindow(dest_location_tab);
+ if (dest_idx != -1)
+ {
+ dest_tabs->MovePage(src_tab, dest_idx);
+ dest_tabs->SetActivePage((size_t)dest_idx);
+ dest_tabs->DoShowHide();
+ dest_tabs->Refresh();
+ }
+ }
+
return;
+ }
}
else
{