Added reparenting helper classes to help apps to grab the windows
of other applications. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14524 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
71
include/wx/x11/reparent.h
Normal file
71
include/wx/x11/reparent.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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_
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma interface "reparent.h"
|
||||
#endif
|
||||
|
||||
#include "wx/window.h"
|
||||
|
||||
/*
|
||||
* This class helps to reparent a specific window
|
||||
*/
|
||||
|
||||
class wxAdoptedWindow;
|
||||
class 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 wxAdoptedWindow: public wxWindow
|
||||
{
|
||||
public:
|
||||
wxAdoptedWindow();
|
||||
wxAdoptedWindow(WXWindow window);
|
||||
~wxAdoptedWindow();
|
||||
|
||||
void SetHandle(WXWindow window) { m_mainWidget = window; }
|
||||
WXWindow GetHandle() const { return GetXWindow(); }
|
||||
};
|
||||
|
||||
#endif
|
||||
// _WX_REPARENT_H_
|
Reference in New Issue
Block a user