]> git.saurik.com Git - wxWidgets.git/blame_incremental - src/osx/toplevel_osx.cpp
remove run-time check for now-required GTK 2.4
[wxWidgets.git] / src / osx / toplevel_osx.cpp
... / ...
CommitLineData
1///////////////////////////////////////////////////////////////////////////////
2// Name: src/osx/toplevel_osx.cpp
3// Purpose: implements wxTopLevelWindow for Mac
4// Author: Stefan Csomor
5// Modified by:
6// Created: 24.09.01
7// RCS-ID: $Id$
8// Copyright: (c) 2001-2004 Stefan Csomor
9// Licence: wxWindows licence
10///////////////////////////////////////////////////////////////////////////////
11
12// ============================================================================
13// declarations
14// ============================================================================
15
16// ----------------------------------------------------------------------------
17// headers
18// ----------------------------------------------------------------------------
19
20// For compilers that support precompilation, includes "wx.h".
21#include "wx/wxprec.h"
22
23#ifdef __BORLANDC__
24 #pragma hdrstop
25#endif
26
27#include "wx/toplevel.h"
28
29#ifndef WX_PRECOMP
30 #include "wx/app.h"
31 #include "wx/frame.h"
32 #include "wx/string.h"
33 #include "wx/log.h"
34 #include "wx/intl.h"
35 #include "wx/settings.h"
36 #include "wx/strconv.h"
37 #include "wx/control.h"
38#endif //WX_PRECOMP
39
40#include "wx/tooltip.h"
41#include "wx/dnd.h"
42
43#if wxUSE_SYSTEM_OPTIONS
44 #include "wx/sysopt.h"
45#endif
46
47// for targeting OSX
48#include "wx/osx/private.h"
49
50// ============================================================================
51// wxTopLevelWindowMac implementation
52// ============================================================================
53
54BEGIN_EVENT_TABLE(wxTopLevelWindowMac, wxTopLevelWindowBase)
55END_EVENT_TABLE()
56
57// ----------------------------------------------------------------------------
58// wxTopLevelWindowMac creation
59// ----------------------------------------------------------------------------
60
61
62void wxTopLevelWindowMac::Init()
63{
64 m_iconized =
65 m_maximizeOnShow = false;
66}
67
68bool wxTopLevelWindowMac::Create(wxWindow *parent,
69 wxWindowID id,
70 const wxString& title,
71 const wxPoint& pos,
72 const wxSize& size,
73 long style,
74 const wxString& name)
75{
76 if ( !wxNonOwnedWindow::Create(parent, id, pos, size, style, name) )
77 return false;
78
79 wxWindow::SetLabel( title ) ;
80 m_nowpeer->SetTitle(title, GetFont().GetEncoding() );
81 wxTopLevelWindows.Append(this);
82
83 return true;
84}
85
86bool wxTopLevelWindowMac::Create(wxWindow *parent,
87 WXWindow nativeWindow)
88{
89 if ( !wxNonOwnedWindow::Create(parent, nativeWindow ) )
90 return false;
91
92 wxTopLevelWindows.Append(this);
93
94 return true;
95}
96
97wxTopLevelWindowMac::~wxTopLevelWindowMac()
98{
99}
100
101bool wxTopLevelWindowMac::Destroy()
102{
103 // NB: this will get called during destruction if we don't do it now,
104 // and may fire a kill focus event on a control being destroyed
105#if wxOSX_USE_CARBON
106 if (m_nowpeer && m_nowpeer->GetWXWindow())
107 ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() );
108#endif
109 return wxTopLevelWindowBase::Destroy();
110}
111
112
113// ----------------------------------------------------------------------------
114// wxTopLevelWindowMac maximize/minimize
115// ----------------------------------------------------------------------------
116
117void wxTopLevelWindowMac::Maximize(bool maximize)
118{
119 if ( IsMaximized() != maximize )
120 m_nowpeer->Maximize(maximize);
121}
122
123bool wxTopLevelWindowMac::IsMaximized() const
124{
125 if ( m_nowpeer == NULL )
126 return false;
127
128 return m_nowpeer->IsMaximized();
129}
130
131void wxTopLevelWindowMac::Iconize(bool iconize)
132{
133 if ( IsIconized() != iconize )
134 m_nowpeer->Iconize(iconize);
135}
136
137bool wxTopLevelWindowMac::IsIconized() const
138{
139 if ( m_nowpeer == NULL )
140 return false;
141
142 return m_nowpeer->IsIconized();
143}
144
145void wxTopLevelWindowMac::Restore()
146{
147 if ( IsMaximized() )
148 Maximize(false);
149 else if ( IsIconized() )
150 Iconize(false);
151}
152
153// ----------------------------------------------------------------------------
154// wxTopLevelWindowMac misc
155// ----------------------------------------------------------------------------
156
157wxPoint wxTopLevelWindowMac::GetClientAreaOrigin() const
158{
159 return wxPoint(0, 0) ;
160}
161
162void wxTopLevelWindowMac::SetTitle(const wxString& title)
163{
164 m_label = title ;
165
166 if ( m_nowpeer )
167 m_nowpeer->SetTitle(title, GetFont().GetEncoding() );
168}
169
170wxString wxTopLevelWindowMac::GetTitle() const
171{
172 return wxWindow::GetLabel();
173}
174
175void wxTopLevelWindowMac::ShowWithoutActivating()
176{
177 // wxTopLevelWindowBase is derived from wxNonOwnedWindow, so don't
178 // call it here.
179 if ( !wxWindow::Show(true) )
180 return;
181
182 m_nowpeer->ShowWithoutActivating();
183
184 // TODO: Should we call EVT_SIZE here?
185}
186
187bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
188{
189 return m_nowpeer->ShowFullScreen(show, style);
190}
191
192bool wxTopLevelWindowMac::IsFullScreen() const
193{
194 return m_nowpeer->IsFullScreen();
195}
196
197void wxTopLevelWindowMac::RequestUserAttention(int flags)
198{
199 return m_nowpeer->RequestUserAttention(flags);
200}
201
202bool wxTopLevelWindowMac::IsActive()
203{
204 return m_nowpeer->IsActive();
205}
206
207void wxTopLevelWindowMac::OSXSetModified(bool modified)
208{
209 m_nowpeer->SetModified(modified);
210}
211
212bool wxTopLevelWindowMac::OSXIsModified() const
213{
214 return m_nowpeer->IsModified();
215}
216
217void wxTopLevelWindowMac::SetRepresentedFilename(const wxString& filename)
218{
219 m_nowpeer->SetRepresentedFilename(filename);
220}