#include "wx/msw/private.h"
#endif
-IMPLEMENT_CLASS( wxAuiFloatingFrame, wxAuiFloatingFrameBaseClass )
+IMPLEMENT_CLASS(wxAuiFloatingFrame, wxAuiFloatingFrameBaseClass)
wxAuiFloatingFrame::wxAuiFloatingFrame(wxWindow* parent,
wxAuiManager* owner_mgr,
wxAuiFloatingFrame::~wxAuiFloatingFrame()
{
// if we do not do this, then we can crash...
- if(m_owner_mgr && m_owner_mgr->m_action_window == this) {
+ if(m_owner_mgr && m_owner_mgr->m_action_window == this)
+ {
m_owner_mgr->m_action_window = NULL;
}
m_mgr.UnInit();
Layer(0).Row(0).Position(0);
// Carry over the minimum size
+ wxSize pane_min_size = pane.window->GetMinSize();
+
+ // if the frame window's max size is greater than the min size
+ // then set the max size to the min size as well
+ wxSize cur_max_size = GetMaxSize();
+ if (cur_max_size.IsFullySpecified() &&
+ (cur_max_size.x < pane.min_size.x ||
+ cur_max_size.y < pane.min_size.y)
+ )
+ {
+ SetMaxSize(pane_min_size);
+ }
+
SetMinSize(pane.window->GetMinSize());
m_mgr.AddPane(m_pane_window, contained_pane);
if (pane.HasGripper())
{
if (pane.HasGripperTop())
- size.y += m_owner_mgr->m_art->GetMetric(wxAUI_ART_GRIPPER_SIZE);
+ size.y += m_owner_mgr->m_art->GetMetric(wxAUI_DOCKART_GRIPPER_SIZE);
else
- size.x += m_owner_mgr->m_art->GetMetric(wxAUI_ART_GRIPPER_SIZE);
+ size.x += m_owner_mgr->m_art->GetMetric(wxAUI_DOCKART_GRIPPER_SIZE);
}
SetClientSize(size);
}
}
+wxAuiManager* wxAuiFloatingFrame::GetOwnerManager() const
+{
+ return m_owner_mgr;
+}
+
+
void wxAuiFloatingFrame::OnSize(wxSizeEvent& event)
{
m_owner_mgr->OnFloatingPaneResized(m_pane_window, event.GetSize());
void wxAuiFloatingFrame::OnClose(wxCloseEvent& evt)
{
m_owner_mgr->OnFloatingPaneClosed(m_pane_window, evt);
- if (!evt.GetVeto())
+ if (!evt.GetVeto()) {
+ m_mgr.DetachPane(m_pane_window);
Destroy();
+ }
}
void wxAuiFloatingFrame::OnMoveEvent(wxMoveEvent& event)