Implemented two-window approach for wxX11.
Implemented wxSTAY_ON_TOP the way Qt does it. Added group window support. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -51,6 +51,12 @@ enum
|
||||
wxCONTROL_DIRTY = 0x80000000
|
||||
};
|
||||
|
||||
#ifdef __WXX11__
|
||||
#define wxUSE_TWO_WINDOWS 1
|
||||
#else
|
||||
#define wxUSE_TWO_WINDOWS 0
|
||||
#endif
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxWindow
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -34,6 +34,10 @@ extern void wxDeleteWindowFromTable(Window w);
|
||||
extern wxWindow *wxGetWindowFromTable(Window w);
|
||||
extern bool wxAddWindowToTable(Window w, wxWindow *win);
|
||||
|
||||
extern void wxDeleteClientWindowFromTable(Window w);
|
||||
extern wxWindow *wxGetClientWindowFromTable(Window w);
|
||||
extern bool wxAddClientWindowToTable(Window w, wxWindow *win);
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// TranslateXXXEvent() functions - translate X event to wxWindow one
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -63,8 +63,8 @@ class wxAdoptedWindow: public wxWindow
|
||||
wxAdoptedWindow(WXWindow window);
|
||||
~wxAdoptedWindow();
|
||||
|
||||
void SetHandle(WXWindow window) { m_mainWidget = window; }
|
||||
WXWindow GetHandle() const { return GetXWindow(); }
|
||||
void SetHandle(WXWindow window) { m_mainWindow = window; }
|
||||
WXWindow GetHandle() const { return GetMainWindow(); }
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -103,12 +103,11 @@ public:
|
||||
// accessors
|
||||
// ---------
|
||||
|
||||
// Get main widget for this window, e.g. a text widget
|
||||
// Get main X11 window
|
||||
virtual WXWindow GetMainWindow() const;
|
||||
|
||||
// Get the underlying X window and display
|
||||
WXWindow GetXWindow() const;
|
||||
WXDisplay *GetXDisplay() const;
|
||||
// Get X11 window representing the client area
|
||||
virtual WXWindow GetClientWindow() const;
|
||||
|
||||
void SetLastClick(int button, long timestamp)
|
||||
{ m_lastButton = button; m_lastTS = timestamp; }
|
||||
@@ -123,6 +122,9 @@ public:
|
||||
// Generates paint events from m_updateRegion
|
||||
void SendPaintEvents();
|
||||
|
||||
// Generates paint events from flag
|
||||
void SendNcPaintEvents();
|
||||
|
||||
// Generates erase events from m_clearRegion
|
||||
void SendEraseEvents();
|
||||
|
||||
@@ -132,6 +134,14 @@ public:
|
||||
// Return clear region
|
||||
wxRegion &GetClearRegion() { return m_clearRegion; }
|
||||
|
||||
void NeedUpdateNcAreaInIdle( bool update = TRUE ) { m_updateNcArea = update; }
|
||||
|
||||
// Inserting into main window instead of client
|
||||
// window. This is mostly for a wxWindow's own
|
||||
// scrollbars.
|
||||
void SetInsertIntoMain( bool insert = TRUE ) { m_insertIntoMain = insert; }
|
||||
bool GetInsertIntoMain() { return m_insertIntoMain; }
|
||||
|
||||
// sets the fore/background colour for the given widget
|
||||
static void DoChangeForegroundColour(WXWindow widget, wxColour& foregroundColour);
|
||||
static void DoChangeBackgroundColour(WXWindow widget, wxColour& backgroundColour, bool changeArmColour = FALSE);
|
||||
@@ -148,10 +158,6 @@ public:
|
||||
// For compatibility across platforms (not in event table)
|
||||
void OnIdle(wxIdleEvent& WXUNUSED(event)) {}
|
||||
|
||||
// Go up to a toplevel window and query which window has the focus.
|
||||
// May return NULL.
|
||||
wxWindow *GetFocusWidget();
|
||||
|
||||
protected:
|
||||
// Responds to colour changes: passes event on to children.
|
||||
void OnSysColourChanged(wxSysColourChangedEvent& event);
|
||||
@@ -161,10 +167,14 @@ protected:
|
||||
int m_lastButton; // last pressed button
|
||||
|
||||
protected:
|
||||
WXWindow m_mainWidget;
|
||||
WXWindow m_mainWindow;
|
||||
WXWindow m_clientWindow;
|
||||
bool m_insertIntoMain;
|
||||
|
||||
bool m_winCaptured;
|
||||
wxRegion m_clearRegion;
|
||||
bool m_clipPaintRegion;
|
||||
bool m_winCaptured; // ????
|
||||
bool m_updateNcArea;
|
||||
bool m_needsInputFocus; // Input focus set in OnIdle
|
||||
|
||||
// implement the base class pure virtuals
|
||||
|
Reference in New Issue
Block a user