///////////////////////////////////////////////////////////////////////////////
-// Name: floatpane.h
+// Name: wx/aui/floatpane.h
// Purpose: wxaui: wx advanced user interface - docking window manager
// Author: Benjamin I. Williams
// Modified by:
// Created: 2005-05-17
-// RCS-ID:
+// RCS-ID: $Id$
// Copyright: (C) Copyright 2005, Kirix Corporation, All Rights Reserved.
// Licence: wxWindows Library Licence, Version 3.1
///////////////////////////////////////////////////////////////////////////////
// ----------------------------------------------------------------------------
#include "wx/defs.h"
+#include "wx/weakref.h"
#if wxUSE_AUI
-#if defined( __WXMSW__ ) || defined( __WXMAC__ )
-#include "wx/minifram.h"
-#define wxFloatingPaneBaseClass wxMiniFrame
+#if wxUSE_MINIFRAME
+ #include "wx/minifram.h"
+ #define wxAuiFloatingFrameBaseClass wxMiniFrame
#else
-#define wxFloatingPaneBaseClass wxFrame
+ #include "wx/frame.h"
+ #define wxAuiFloatingFrameBaseClass wxFrame
#endif
-class WXDLLIMPEXP_AUI wxFloatingPane : public wxFloatingPaneBaseClass
+class WXDLLIMPEXP_AUI wxAuiFloatingFrame : public wxAuiFloatingFrameBaseClass
{
public:
- wxFloatingPane(wxWindow* parent,
- wxFrameManager* owner_mgr,
- wxWindowID id = -1,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize);
- ~wxFloatingPane();
- void SetPaneWindow(const wxPaneInfo& pane);
+ wxAuiFloatingFrame(wxWindow* parent,
+ wxAuiManager* owner_mgr,
+ const wxAuiPaneInfo& pane,
+ wxWindowID id = wxID_ANY,
+ long style = wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
+ wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT |
+ wxCLIP_CHILDREN
+ );
+ virtual ~wxAuiFloatingFrame();
+ void SetPaneWindow(const wxAuiPaneInfo& pane);
+ wxAuiManager* GetOwnerManager() const;
+
+protected:
+ virtual void OnMoveStart();
+ virtual void OnMoving(const wxRect& window_rect, wxDirection dir);
+ virtual void OnMoveFinished();
+
private:
void OnSize(wxSizeEvent& event);
void OnClose(wxCloseEvent& event);
void OnMoveEvent(wxMoveEvent& event);
void OnIdle(wxIdleEvent& event);
- void OnMoveStart();
- void OnMoving(const wxRect& window_rect);
- void OnMoveFinished();
void OnActivate(wxActivateEvent& event);
static bool isMouseDown();
+
private:
wxWindow* m_pane_window; // pane window being managed
+ bool m_solid_drag; // true if system uses solid window drag
bool m_moving;
wxRect m_last_rect;
+ wxRect m_last2_rect;
+ wxRect m_last3_rect;
wxSize m_last_size;
+ wxDirection m_lastDirection;
- wxFrameManager* m_owner_mgr;
- wxFrameManager m_mgr;
+ wxWeakRef<wxAuiManager> m_owner_mgr;
+ wxAuiManager m_mgr;
+#ifndef SWIG
DECLARE_EVENT_TABLE()
+ DECLARE_CLASS(wxAuiFloatingFrame)
+#endif // SWIG
};
#endif // wxUSE_AUI