1 /////////////////////////////////////////////////////////////////////////////// 
   2 // Name:        wx/osx/nonownedwnd.h 
   3 // Purpose:     declares wxNonOwnedWindow class 
   4 // Author:      Stefan Csomor 
   7 // RCS-ID:      $Id: nonownedwnd.h 46993 2007-06-28 08:46:04Z VS $ 
   8 // Copyright:   (c) 2008 Stefan Csomor 
   9 // Licence:     wxWindows licence 
  10 /////////////////////////////////////////////////////////////////////////////// 
  12 #ifndef _WX_MAC_NONOWNEDWND_H_ 
  13 #define _WX_MAC_NONOWNEDWND_H_ 
  15 #include "wx/window.h" 
  17 #if wxUSE_SYSTEM_OPTIONS 
  18     #define wxMAC_WINDOW_PLAIN_TRANSITION wxT("mac.window-plain-transition") 
  21 //----------------------------------------------------------------------------- 
  23 //----------------------------------------------------------------------------- 
  25 // This class represents "non-owned" window. A window is owned by another 
  26 // window if it has a parent and is positioned within the parent. For example, 
  27 // wxFrame is non-owned, because even though it can have a parent, it's 
  28 // location is independent of it.  This class is for internal use only, it's 
  29 // the base class for wxTopLevelWindow and wxPopupWindow. 
  31 class wxNonOwnedWindowImpl
; 
  33 class WXDLLIMPEXP_CORE wxNonOwnedWindow 
: public wxWindow
 
  36     // constructors and such 
  37     wxNonOwnedWindow() { Init(); } 
  39     wxNonOwnedWindow(wxWindow 
*parent
, 
  41                         const wxPoint
& pos 
= wxDefaultPosition
, 
  42                         const wxSize
& size 
= wxDefaultSize
, 
  44                         const wxString
& name 
= wxPanelNameStr
) 
  48         (void)Create(parent
, id
, pos
, size
, style
, name
); 
  51     bool Create(wxWindow 
*parent
, 
  53                 const wxPoint
& pos 
= wxDefaultPosition
, 
  54                 const wxSize
& size 
= wxDefaultSize
, 
  56                 const wxString
& name 
= wxPanelNameStr
); 
  58     bool Create(wxWindow 
*parent
, WXWindow nativeWindow
); 
  60     virtual ~wxNonOwnedWindow(); 
  62     virtual void SubclassWin(WXWindow nativeWindow
); 
  63     virtual void UnsubclassWin(); 
  65     virtual wxPoint 
GetClientAreaOrigin() const; 
  67     // implement base class pure virtuals 
  69     virtual bool SetTransparent(wxByte alpha
); 
  70     virtual bool CanSetTransparent(); 
  72     virtual bool SetBackgroundStyle(wxBackgroundStyle style
); 
  74     virtual void Update(); 
  76     WXWindow 
GetWXWindow() const ; 
  77     static wxNonOwnedWindow
* GetFromWXWindow( WXWindow win 
); 
  79     // implementation from now on 
  80     // -------------------------- 
  82     virtual bool DoSetShape(const wxRegion
& region
); 
  83     const wxRegion
& GetShape() const { return m_shape
; } 
  85     // activation hooks only necessary for MDI Implementation 
  86     static void MacDelayedDeactivation(long timestamp
); 
  87     virtual void MacActivate( long timestamp 
, bool inIsActivating 
) ; 
  89     virtual void SetWindowStyleFlag(long flags
); 
  93     virtual bool Show( bool show 
= true ); 
  95     virtual void SetExtraStyle(long exStyle
) ; 
  97     virtual bool SetBackgroundColour( const wxColour 
&colour 
); 
  99     wxNonOwnedWindowImpl
* GetNonOwnedPeer() const { return m_nowpeer
; } 
 101 #if wxOSX_USE_COCOA_OR_IPHONE 
 102     // override the base class method to return an NSWindow instead of NSView 
 103     virtual void *OSXGetViewOrWindow() const { return GetWXWindow(); } 
 106     // osx specific event handling common for all osx-ports 
 108     virtual void HandleActivated( double timestampsec
, bool didActivate 
); 
 109     virtual void HandleResized( double timestampsec 
); 
 110     virtual void HandleMoved( double timestampsec 
); 
 111     virtual void HandleResizing( double timestampsec
, wxRect
* rect 
); 
 113     virtual bool Destroy(); 
 116     // common part of all ctors 
 119     virtual void DoGetPosition( int *x
, int *y 
) const; 
 120     virtual void DoGetSize( int *width
, int *height 
) const; 
 121     virtual void DoMoveWindow(int x
, int y
, int width
, int height
); 
 122     virtual void DoGetClientSize(int *width
, int *height
) const; 
 124     virtual bool OSXShowWithEffect(bool show
, 
 128     virtual void WillBeDestroyed(); 
 130     wxNonOwnedWindowImpl
* m_nowpeer 
; 
 132 //    wxWindowMac* m_macFocus ; 
 134     static wxNonOwnedWindow 
*s_macDeactivateWindow
; 
 140 // list of all frames and modeless dialogs 
 141 extern WXDLLIMPEXP_DATA_CORE(wxWindowList
) wxModelessWindows
; 
 144 #endif // _WX_MAC_NONOWNEDWND_H_