From e5ab82d310f12d56978f1e36d9cec6d3c84b0b8f Mon Sep 17 00:00:00 2001 From: Alex Bligh Date: Tue, 4 Jul 2006 15:26:33 +0000 Subject: [PATCH] wxAUI: Made fixed size floating panes work wxAUI: Added IMPLEMENT_CLASS etc. for wxFloatingPane for a later patch git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/aui/floatpane.h | 8 +++++--- src/aui/floatpane.cpp | 17 +++++++++-------- src/aui/framemanager.cpp | 5 ++--- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/include/wx/aui/floatpane.h b/include/wx/aui/floatpane.h index 70b44ac90c..204652a21c 100644 --- a/include/wx/aui/floatpane.h +++ b/include/wx/aui/floatpane.h @@ -34,9 +34,9 @@ class WXDLLIMPEXP_AUI wxFloatingPane : public wxFloatingPaneBaseClass public: wxFloatingPane(wxWindow* parent, wxFrameManager* owner_mgr, - wxWindowID id = wxID_ANY, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize); + const wxPaneInfo& pane, + wxWindowID id = wxID_ANY + ); ~wxFloatingPane(); void SetPaneWindow(const wxPaneInfo& pane); private: @@ -59,6 +59,8 @@ private: wxFrameManager m_mgr; DECLARE_EVENT_TABLE() + + DECLARE_CLASS(wxFloatingPaneBaseClass) }; #endif // wxUSE_AUI diff --git a/src/aui/floatpane.cpp b/src/aui/floatpane.cpp index 00b4bd7b52..e79355872e 100644 --- a/src/aui/floatpane.cpp +++ b/src/aui/floatpane.cpp @@ -32,15 +32,19 @@ #ifndef WX_PRECOMP #endif +IMPLEMENT_CLASS( wxFloatingPane, wxFloatingPaneBaseClass ) + wxFloatingPane::wxFloatingPane(wxWindow* parent, wxFrameManager* owner_mgr, - wxWindowID id /*= wxID_ANY*/, - const wxPoint& pos /*= wxDefaultPosition*/, - const wxSize& size /*= wxDefaultSize*/) - : wxFloatingPaneBaseClass(parent, id, wxEmptyString, pos, size, + const wxPaneInfo& pane, + wxWindowID id /*= wxID_ANY*/) + : wxFloatingPaneBaseClass(parent, id, wxEmptyString, + pane.floating_pos, pane.floating_size, wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxFRAME_NO_TASKBAR | - wxFRAME_FLOAT_ON_PARENT | wxCLIP_CHILDREN) + wxFRAME_FLOAT_ON_PARENT | wxCLIP_CHILDREN | + (pane.IsFixed()?0:wxRESIZE_BORDER) + ) { m_owner_mgr = owner_mgr; m_moving = false; @@ -80,9 +84,6 @@ void wxFloatingPane::SetPaneWindow(const wxPaneInfo& pane) SetTitle(pane.caption); - if (contained_pane.IsFixed()) - SetWindowStyle(GetWindowStyle() & ~wxRESIZE_BORDER); - if (pane.floating_size != wxDefaultSize) { SetSize(pane.floating_size); diff --git a/src/aui/framemanager.cpp b/src/aui/framemanager.cpp index ec8eeded93..62f9cf23a9 100644 --- a/src/aui/framemanager.cpp +++ b/src/aui/framemanager.cpp @@ -1782,9 +1782,8 @@ void wxFrameManager::Update() // we need to create a frame for this // pane, which has recently been floated wxFloatingPane* frame = new wxFloatingPane(m_frame, - this, -1, - p.floating_pos, - p.floating_size); + this, + p); // on MSW, if the owner desires transparent dragging, and // the dragging is happening right now, then the floating -- 2.45.2