git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47254 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			68 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        reparent.h
 | 
						|
// Purpose:     Reparenting classes
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     2002-03-09
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_REPARENT_H_
 | 
						|
#define _WX_REPARENT_H_
 | 
						|
 | 
						|
#include "wx/window.h"
 | 
						|
 | 
						|
/*
 | 
						|
 * This class helps to reparent a specific window
 | 
						|
 */
 | 
						|
 | 
						|
class WXDLLIMPEXP_FWD_CORE wxAdoptedWindow;
 | 
						|
class WXDLLIMPEXP_CORE wxReparenter: public wxObject
 | 
						|
{
 | 
						|
public:
 | 
						|
    wxReparenter() {}
 | 
						|
 | 
						|
    // We assume that toReparent has had its X window set
 | 
						|
    // appropriately. toReparent is typically a wxAdoptedWindow.
 | 
						|
    bool Reparent(wxWindow* newParent, wxAdoptedWindow* toReparent);
 | 
						|
 | 
						|
    // Wait for an appropriate window to be created.
 | 
						|
    // If exactMatch is FALSE, a substring match is OK.
 | 
						|
    // If windowName is empty, then wait for the next overrideRedirect window.
 | 
						|
    bool WaitAndReparent(wxWindow* newParent, wxAdoptedWindow* toReparent,
 | 
						|
                         const wxString& windowName = wxEmptyString,
 | 
						|
                         bool exactMatch = TRUE);
 | 
						|
 | 
						|
protected:
 | 
						|
 | 
						|
    bool ProcessXEvent(WXEvent* event);
 | 
						|
    WXWindow FindAClientWindow(WXWindow window, const wxString& name);
 | 
						|
    
 | 
						|
    static bool sm_done;
 | 
						|
    static wxAdoptedWindow* sm_toReparent;
 | 
						|
    static wxWindow* sm_newParent;
 | 
						|
    static wxString  sm_name;
 | 
						|
    static bool      sm_exactMatch;
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * A window that adopts its handle from the native
 | 
						|
 * toolkit. It has no parent until reparented.
 | 
						|
 */
 | 
						|
 | 
						|
class WXDLLIMPEXP_CORE wxAdoptedWindow: public wxWindow
 | 
						|
{
 | 
						|
  public:
 | 
						|
    wxAdoptedWindow();
 | 
						|
    wxAdoptedWindow(WXWindow window);
 | 
						|
    virtual ~wxAdoptedWindow();
 | 
						|
 | 
						|
    void SetHandle(WXWindow window) { m_mainWindow = window; m_clientWindow = window; }
 | 
						|
    WXWindow GetHandle() const { return GetMainWindow(); }
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
// _WX_REPARENT_H_
 |