[ 1578466 ] Support for custom floating panes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42062 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -35,18 +35,24 @@ public:
 | 
			
		||||
    wxFloatingPane(wxWindow* parent,
 | 
			
		||||
                   wxFrameManager* owner_mgr,
 | 
			
		||||
                   const wxPaneInfo& pane,
 | 
			
		||||
                   wxWindowID id = wxID_ANY
 | 
			
		||||
                   wxWindowID id = wxID_ANY,
 | 
			
		||||
                   long style = wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
 | 
			
		||||
                                wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | 
 | 
			
		||||
                                wxCLIP_CHILDREN
 | 
			
		||||
                   );
 | 
			
		||||
    virtual ~wxFloatingPane();
 | 
			
		||||
    void SetPaneWindow(const wxPaneInfo& pane);
 | 
			
		||||
    
 | 
			
		||||
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, wxDirection dir);
 | 
			
		||||
    void OnMoveFinished();
 | 
			
		||||
    void OnActivate(wxActivateEvent& event);
 | 
			
		||||
    static bool isMouseDown();
 | 
			
		||||
private:
 | 
			
		||||
 
 | 
			
		||||
@@ -443,6 +443,7 @@ public:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
    virtual wxFloatingPane * CreateFloatingFrame(wxWindow* parent, const wxPaneInfo& p);
 | 
			
		||||
 | 
			
		||||
    void DrawHintRect(wxWindow* pane_window,
 | 
			
		||||
                       const wxPoint& pt,
 | 
			
		||||
 
 | 
			
		||||
@@ -37,13 +37,15 @@ IMPLEMENT_CLASS( wxFloatingPane, wxFloatingPaneBaseClass )
 | 
			
		||||
wxFloatingPane::wxFloatingPane(wxWindow* parent,
 | 
			
		||||
                wxFrameManager* owner_mgr,
 | 
			
		||||
                const wxPaneInfo& pane,
 | 
			
		||||
                wxWindowID id /*= wxID_ANY*/)
 | 
			
		||||
                wxWindowID id /*= wxID_ANY*/,
 | 
			
		||||
                long style /*=wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
 | 
			
		||||
                              wxFRAME_NO_TASKBAR | wxFRAME_FLOAT_ON_PARENT | 
 | 
			
		||||
                              wxCLIP_CHILDREN
 | 
			
		||||
                           */)
 | 
			
		||||
                : wxFloatingPaneBaseClass(parent, id, wxEmptyString,
 | 
			
		||||
                        pane.floating_pos, pane.floating_size,
 | 
			
		||||
                        wxRESIZE_BORDER | wxSYSTEM_MENU | wxCAPTION |
 | 
			
		||||
                        style | 
 | 
			
		||||
                        (pane.HasCloseButton()?wxCLOSE_BOX:0) |
 | 
			
		||||
                        wxFRAME_NO_TASKBAR |
 | 
			
		||||
                        wxFRAME_FLOAT_ON_PARENT | wxCLIP_CHILDREN |
 | 
			
		||||
                        (pane.IsFixed()?0:wxRESIZE_BORDER)
 | 
			
		||||
                        )
 | 
			
		||||
{
 | 
			
		||||
 
 | 
			
		||||
@@ -494,6 +494,12 @@ wxFrameManager::~wxFrameManager()
 | 
			
		||||
    delete m_art;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Creates a floating frame for the windows
 | 
			
		||||
wxFloatingPane * wxFrameManager::CreateFloatingFrame(wxWindow* parent, const wxPaneInfo& p)
 | 
			
		||||
{
 | 
			
		||||
    return new wxFloatingPane(parent, this, p);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// GetPane() looks up a wxPaneInfo structure based
 | 
			
		||||
// on the supplied window pointer.  Upon failure, GetPane()
 | 
			
		||||
// returns an empty wxPaneInfo, a condition which can be checked
 | 
			
		||||
@@ -2038,9 +2044,7 @@ void wxFrameManager::Update()
 | 
			
		||||
            {
 | 
			
		||||
                // we need to create a frame for this
 | 
			
		||||
                // pane, which has recently been floated
 | 
			
		||||
                wxFloatingPane* frame = new wxFloatingPane(m_frame,
 | 
			
		||||
                                                  this,
 | 
			
		||||
                                                  p);
 | 
			
		||||
                wxFloatingPane* frame = CreateFloatingFrame(m_frame, p);
 | 
			
		||||
 | 
			
		||||
#if wxCHECK_VERSION(2,7,0)
 | 
			
		||||
                // on MSW and Mac, if the owner desires transparent dragging, and
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user