};
+const int auiToolBarLayer = 10;
class wxPseudoTransparentFrame : public wxFrame
// GetMaxLayer() is an internal function which returns
// the highest layer inside the specified dock
-static int GetMaxLayer(const wxAuiDockInfoArray& docks, int dock_direction)
+static int GetMaxLayer(const wxAuiDockInfoArray& docks,
+ int dock_direction)
{
int i, dock_count, max_layer = 0;
for (i = 0, dock_count = docks.GetCount(); i < dock_count; ++i)
return false;
// if the new pane is docked then we should undo maximize
- if(pane_info.IsDocked())
+ if (pane_info.IsDocked())
RestoreMaximizedPane();
m_panes.Add(pane_info);
p.frame->Show(false);
// reparent to m_frame and destroy the pane
- if(m_action_window == p.frame)
+ if (m_action_window == p.frame)
{
m_action_window = NULL;
}
{
wxWindow * window = pane_info.window;
DetachPane(window);
- if(window)
+ if (window)
{
window->Destroy();
}
for (i = 0, pane_count = m_panes.GetCount(); i < pane_count; ++i)
{
wxAuiPaneInfo& p = m_panes.Item(i);
- if(p.IsMaximized())
+ if (p.IsMaximized())
{
RestorePane(p);
break;
{
wxAuiPaneInfo& pane = *(dock.panes.Item(pane_i));
- if(pane.IsMaximized())
+ if (pane.IsMaximized())
has_maximized_pane = true;
// if this is not the first pane being added,
p.frame->Show(false);
// reparent to m_frame and destroy the pane
- if(m_action_window == p.frame)
+ if (m_action_window == p.frame)
{
m_action_window = NULL;
}
const int auiLayerInsertOffset = 5;
bool wxAuiManager::DoDrop(wxAuiDockInfoArray& docks,
- wxAuiPaneInfoArray& panes,
- wxAuiPaneInfo& target,
- const wxPoint& pt,
- const wxPoint& offset)
+ wxAuiPaneInfoArray& panes,
+ wxAuiPaneInfo& target,
+ const wxPoint& pt,
+ const wxPoint& offset)
{
wxSize cli_size = m_frame->GetClientSize();
int layer_insert_offset = auiLayerInsertOffset;
- if (target.IsToolbar())
+ if (drop.IsToolbar())
layer_insert_offset = 0;
+
if (pt.x < layer_insert_offset &&
pt.x > layer_insert_offset-auiLayerInsertPixels)
{
int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_LEFT),
GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)),
- GetMaxLayer(docks, wxAUI_DOCK_TOP)) + 1;
+ GetMaxLayer(docks, wxAUI_DOCK_TOP)) + 1;
+
+ if (drop.IsToolbar())
+ new_layer = auiToolBarLayer;
+
drop.Dock().Left().
Layer(new_layer).
Row(0).
int new_layer = wxMax(wxMax(GetMaxLayer(docks, wxAUI_DOCK_TOP),
GetMaxLayer(docks, wxAUI_DOCK_LEFT)),
GetMaxLayer(docks, wxAUI_DOCK_RIGHT)) + 1;
+
+ if (drop.IsToolbar())
+ new_layer = auiToolBarLayer;
+
drop.Dock().Top().
Layer(new_layer).
Row(0).
GetMaxLayer(docks, wxAUI_DOCK_TOP)),
GetMaxLayer(docks, wxAUI_DOCK_BOTTOM)) + 1;
+ if (drop.IsToolbar())
+ new_layer = auiToolBarLayer;
+
drop.Dock().Right().
Layer(new_layer).
Row(0).
int new_layer = wxMax( wxMax( GetMaxLayer(docks, wxAUI_DOCK_BOTTOM),
GetMaxLayer(docks, wxAUI_DOCK_LEFT)),
GetMaxLayer(docks, wxAUI_DOCK_RIGHT)) + 1;
-
+
+ if (drop.IsToolbar())
+ new_layer = auiToolBarLayer;
+
drop.Dock().Bottom().
Layer(new_layer).
Row(0).
return ProcessDockResult(target, drop);
}
+
wxAuiDockUIPart* part = HitTest(pt.x, pt.y);
}
else if (m_action == actionDragFloatingPane)
{
- if(m_action_window) {
+ if (m_action_window)
+ {
wxPoint pt = m_frame->ClientToScreen(event.GetPosition());
m_action_window->Move(pt.x - m_action_offset.x,
pt.y - m_action_offset.y);