| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/nativewin.h
 
- // Purpose:     classes allowing to wrap a native window handle
 
- // Author:      Vadim Zeitlin
 
- // Created:     2008-03-05
 
- // Copyright:   (c) 2008 Vadim Zeitlin <vadim@wxwindows.org>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_NATIVEWIN_H_
 
- #define _WX_NATIVEWIN_H_
 
- #include "wx/toplevel.h"
 
- // this symbol can be tested in the user code to see if the current wx port has
 
- // support for creating wxNativeContainerWindow from native windows
 
- //
 
- // be optimistic by default, we undefine it below if we don't have it finally
 
- #define wxHAS_NATIVE_CONTAINER_WINDOW
 
- // we define the following typedefs for each of the platform supporting native
 
- // windows wrapping:
 
- //
 
- //  - wxNativeContainerWindowHandle is the toolkit-level handle of the native
 
- //    window, i.e. HWND/GdkWindow*/NSWindow
 
- //
 
- //  - wxNativeContainerWindowId is the lowest level identifier of the native
 
- //    window, i.e. HWND/GdkNativeWindow/NSWindow (so it's the same as above for
 
- //    all platforms except GTK where we also can work with Window/XID)
 
- //
 
- // later we'll also have
 
- //
 
- //  - wxNativeWindowHandle for child windows (which will be wrapped by
 
- //    wxNativeWindow<T> class), it is HWND/GtkWidget*/ControlRef
 
- #if defined(__WXMSW__)
 
-     #include "wx/msw/wrapwin.h"
 
-     typedef HWND wxNativeContainerWindowId;
 
-     typedef HWND wxNativeContainerWindowHandle;
 
- #elif defined(__WXGTK__)
 
-     // GdkNativeWindow is guint32 under GDK/X11 and gpointer under GDK/WIN32
 
-     #ifdef __UNIX__
 
-         typedef unsigned long wxNativeContainerWindowId;
 
-     #else
 
-         typedef void *wxNativeContainerWindowId;
 
-     #endif
 
-     typedef GdkWindow *wxNativeContainerWindowHandle;
 
- #else
 
-     // no support for using native windows under this platform yet
 
-     #undef wxHAS_NATIVE_CONTAINER_WINDOW
 
- #endif
 
- #ifdef wxHAS_NATIVE_CONTAINER_WINDOW
 
- // ----------------------------------------------------------------------------
 
- // wxNativeContainerWindow: can be used for creating other wxWindows inside it
 
- // ----------------------------------------------------------------------------
 
- class WXDLLIMPEXP_CORE wxNativeContainerWindow : public wxTopLevelWindow
 
- {
 
- public:
 
-     // default ctor, call Create() later
 
-     wxNativeContainerWindow() { }
 
-     // create a window from an existing native window handle
 
-     //
 
-     // use GetHandle() to check if the creation was successful, it will return
 
-     // 0 if the handle was invalid
 
-     wxNativeContainerWindow(wxNativeContainerWindowHandle handle)
 
-     {
 
-         Create(handle);
 
-     }
 
-     // same as ctor above but with a return code
 
-     bool Create(wxNativeContainerWindowHandle handle);
 
- #if defined(__WXGTK__)
 
-     // this is a convenient ctor for wxGTK applications which can also create
 
-     // the objects of this class from the really native window handles and not
 
-     // only the GdkWindow objects
 
-     //
 
-     // wxNativeContainerWindowId is Window (i.e. an XID, i.e. an int) under X11
 
-     // (when GDK_WINDOWING_X11 is defined) or HWND under Win32
 
-     wxNativeContainerWindow(wxNativeContainerWindowId winid) { Create(winid); }
 
-     bool Create(wxNativeContainerWindowId winid);
 
- #endif // wxGTK
 
-     // unlike for the normal windows, dtor will not destroy the native window
 
-     // as it normally doesn't belong to us
 
-     virtual ~wxNativeContainerWindow();
 
-     // provide (trivial) implementation of the base class pure virtuals
 
-     virtual void SetTitle(const wxString& WXUNUSED(title))
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-     }
 
-     virtual wxString GetTitle() const
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-         return wxString();
 
-     }
 
-     virtual void Maximize(bool WXUNUSED(maximize) = true)
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-     }
 
-     virtual bool IsMaximized() const
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-         return false;
 
-     }
 
-     virtual void Iconize(bool WXUNUSED(iconize) = true)
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-     }
 
-     virtual bool IsIconized() const
 
-     {
 
-         // this is called by wxGTK implementation so don't assert
 
-         return false;
 
-     }
 
-     virtual void Restore()
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-     }
 
-     virtual bool ShowFullScreen(bool WXUNUSED(show),
 
-                                 long WXUNUSED(style) = wxFULLSCREEN_ALL)
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-         return false;
 
-     }
 
-     virtual bool IsFullScreen() const
 
-     {
 
-         wxFAIL_MSG( "not implemented for native windows" );
 
-         return false;
 
-     }
 
- #ifdef __WXMSW__
 
-     virtual bool IsShown() const;
 
- #endif // __WXMSW__
 
-     // this is an implementation detail: called when the native window is
 
-     // destroyed by an outside agency; deletes the C++ object too but can in
 
-     // principle be overridden to something else (knowing that the window
 
-     // handle of this object and all of its children is invalid any more)
 
-     virtual void OnNativeDestroyed();
 
- protected:
 
- #ifdef __WXMSW__
 
-     virtual WXLRESULT
 
-     MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
 
- #endif // __WXMSW__
 
- private:
 
-     wxDECLARE_NO_COPY_CLASS(wxNativeContainerWindow);
 
- };
 
- #endif // wxHAS_NATIVE_CONTAINER_WINDOW
 
- #endif // _WX_NATIVEWIN_H_
 
 
  |