]> git.saurik.com Git - wxWidgets.git/blame - include/wx/mac/carbon/nonownedwnd.h
implement wxLIST_AUTOSIZE support in wxMac's wxListCtrl
[wxWidgets.git] / include / wx / mac / carbon / nonownedwnd.h
CommitLineData
a6947664
SC
1///////////////////////////////////////////////////////////////////////////////
2// Name: wx/mac/nonownedwnd.h
3// Purpose: declares wxNonOwnedWindow class
4// Author: Stefan Csomor
5// Modified by:
6// Created: 2008-03-24
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///////////////////////////////////////////////////////////////////////////////
11
12#ifndef _WX_MAC_NONOWNEDWND_H_
13#define _WX_MAC_NONOWNEDWND_H_
14
15#include "wx/window.h"
16
17#if wxUSE_SYSTEM_OPTIONS
18 #define wxMAC_WINDOW_PLAIN_TRANSITION _T("mac.window-plain-transition")
19#endif
20
21//-----------------------------------------------------------------------------
22// wxNonOwnedWindow
23//-----------------------------------------------------------------------------
24
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.
30
31class WXDLLIMPEXP_CORE wxNonOwnedWindow : public wxWindow
32{
33public:
34 // constructors and such
35 wxNonOwnedWindow() { Init(); }
36
37 wxNonOwnedWindow(wxWindow *parent,
38 wxWindowID id,
39 const wxPoint& pos = wxDefaultPosition,
40 const wxSize& size = wxDefaultSize,
41 long style = 0,
42 const wxString& name = wxPanelNameStr)
43 {
44 Init();
45
46 (void)Create(parent, id, pos, size, style, name);
47 }
48
49 bool Create(wxWindow *parent,
50 wxWindowID id,
51 const wxPoint& pos = wxDefaultPosition,
52 const wxSize& size = wxDefaultSize,
53 long style = 0,
54 const wxString& name = wxPanelNameStr);
55
56 virtual ~wxNonOwnedWindow();
57
58 virtual wxPoint GetClientAreaOrigin() const;
59
60 // implement base class pure virtuals
61
62 virtual bool SetShape(const wxRegion& region);
63
64 virtual bool SetTransparent(wxByte alpha);
65 virtual bool CanSetTransparent();
66
67 virtual bool SetBackgroundStyle(wxBackgroundStyle style);
68
69 // implementation from now on
70 // --------------------------
71
72 static void MacDelayedDeactivation(long timestamp);
73 virtual void MacCreateRealWindow( const wxPoint& pos,
74 const wxSize& size,
75 long style,
76 const wxString& name ) ;
77
78 WXWindow MacGetWindowRef() { return m_macWindow ; }
79 virtual void MacActivate( long timestamp , bool inIsActivating ) ;
80 virtual void MacPerformUpdates() ;
81
82 virtual void Raise();
83 virtual void Lower();
84 virtual bool Show( bool show = true );
85
86 virtual bool ShowWithEffect(wxShowEffect effect,
87 unsigned timeout = 0,
88 wxDirection dir = wxBOTTOM);
89
90 virtual bool HideWithEffect(wxShowEffect effect,
91 unsigned timeout = 0,
92 wxDirection dir = wxBOTTOM);
93
94 virtual void SetExtraStyle(long exStyle) ;
95
96 virtual bool SetBackgroundColour( const wxColour &colour );
97
98 virtual void MacInstallTopLevelWindowEventHandler() ;
99
100 bool MacGetMetalAppearance() const ;
101 bool MacGetUnifiedAppearance() const ;
102
103 void MacChangeWindowAttributes( wxUint32 attributesToSet , wxUint32 attributesToClear ) ;
104 wxUint32 MacGetWindowAttributes() const ;
105
106 WXEVENTHANDLERREF MacGetEventHandler() { return m_macEventHandler ; }
107
108 virtual void MacGetContentAreaInset( int &left , int &top , int &right , int &bottom ) ;
109
110protected:
111 // common part of all ctors
112 void Init();
113
114 virtual void DoGetPosition( int *x, int *y ) const;
115 virtual void DoGetSize( int *width, int *height ) const;
116 virtual void DoMoveWindow(int x, int y, int width, int height);
117 virtual void DoGetClientSize(int *width, int *height) const;
118
119 WXWindow m_macWindow ;
120
121 wxWindowMac* m_macFocus ;
122
123 static wxNonOwnedWindow *s_macDeactivateWindow;
124private :
125 // KH: We cannot let this be called directly since the metal appearance is now managed by an
126 // extra style. Calling this function directly can result in blank white window backgrounds.
127 // This is because the ExtraStyle flags get out of sync with the metal appearance and the metal
128 // logic & checks cease to work as expected. To set the metal appearance, use SetExtraStyle.
129 void MacSetMetalAppearance( bool on ) ;
130 void MacSetUnifiedAppearance( bool on ) ;
131 // binary compatible workaround TODO REPLACE
132 void DoMacCreateRealWindow( wxWindow *parent,
133 const wxPoint& pos,
134 const wxSize& size,
135 long style,
136 const wxString& name );
137
138 WXEVENTHANDLERREF m_macEventHandler ;
139};
140
141// list of all frames and modeless dialogs
53a2db12 142extern WXDLLIMPEXP_DATA_CORE(wxWindowList) wxModelessWindows;
a6947664
SC
143
144
145#endif // _WX_MAC_NONOWNEDWND_H_