Files
wxWidgets/src/osx/toplevel_osx.cpp
Kevin Ollivier c9f9deab81 Forward port event handler fixes to trunk.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56886 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-22 04:10:31 +00:00

170 lines
4.4 KiB
C++

///////////////////////////////////////////////////////////////////////////////
// Name: src/osx/toplevel.cpp
// Purpose: implements wxTopLevelWindow for Mac
// Author: Stefan Csomor
// Modified by:
// Created: 24.09.01
// RCS-ID: $Id$
// Copyright: (c) 2001-2004 Stefan Csomor
// License: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// ============================================================================
// declarations
// ============================================================================
// ----------------------------------------------------------------------------
// headers
// ----------------------------------------------------------------------------
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#include "wx/toplevel.h"
#ifndef WX_PRECOMP
#include "wx/app.h"
#include "wx/frame.h"
#include "wx/string.h"
#include "wx/log.h"
#include "wx/intl.h"
#include "wx/settings.h"
#include "wx/strconv.h"
#include "wx/control.h"
#endif //WX_PRECOMP
#include "wx/tooltip.h"
#include "wx/dnd.h"
#if wxUSE_SYSTEM_OPTIONS
#include "wx/sysopt.h"
#endif
// for targeting OSX
#include "wx/osx/private.h"
// ============================================================================
// wxTopLevelWindowMac implementation
// ============================================================================
BEGIN_EVENT_TABLE(wxTopLevelWindowMac, wxTopLevelWindowBase)
END_EVENT_TABLE()
// ----------------------------------------------------------------------------
// wxTopLevelWindowMac creation
// ----------------------------------------------------------------------------
void wxTopLevelWindowMac::Init()
{
m_iconized =
m_maximizeOnShow = false;
}
bool wxTopLevelWindowMac::Create(wxWindow *parent,
wxWindowID id,
const wxString& title,
const wxPoint& pos,
const wxSize& size,
long style,
const wxString& name)
{
if ( !wxNonOwnedWindow::Create(parent, id, pos, size, style, name) )
return false;
wxWindow::SetLabel( title ) ;
m_nowpeer->SetTitle(title, GetFont().GetEncoding() );
wxTopLevelWindows.Append(this);
return true;
}
wxTopLevelWindowMac::~wxTopLevelWindowMac()
{
}
bool wxTopLevelWindowMac::Destroy()
{
// NB: this will get called during destruction if we don't do it now,
// and may fire a kill focus event on a control being destroyed
#if wxOSX_USE_CARBON
if (m_nowpeer->GetWXWindow())
ClearKeyboardFocus( (WindowRef)m_nowpeer->GetWXWindow() );
#endif
return wxTopLevelWindowBase::Destroy();
}
// ----------------------------------------------------------------------------
// wxTopLevelWindowMac maximize/minimize
// ----------------------------------------------------------------------------
void wxTopLevelWindowMac::Maximize(bool maximize)
{
if ( IsMaximized() != maximize )
m_nowpeer->Maximize(maximize);
}
bool wxTopLevelWindowMac::IsMaximized() const
{
return m_nowpeer->IsMaximized();
}
void wxTopLevelWindowMac::Iconize(bool iconize)
{
if ( IsIconized() != iconize )
m_nowpeer->Iconize(iconize);
}
bool wxTopLevelWindowMac::IsIconized() const
{
return m_nowpeer->IsIconized();
}
void wxTopLevelWindowMac::Restore()
{
if ( IsMaximized() )
Maximize(false);
else if ( IsIconized() )
Iconize(false);
}
// ----------------------------------------------------------------------------
// wxTopLevelWindowMac misc
// ----------------------------------------------------------------------------
wxPoint wxTopLevelWindowMac::GetClientAreaOrigin() const
{
return wxPoint(0, 0) ;
}
void wxTopLevelWindowMac::SetTitle(const wxString& title)
{
wxWindow::SetLabel( title ) ;
m_nowpeer->SetTitle(title, GetFont().GetEncoding() );
}
wxString wxTopLevelWindowMac::GetTitle() const
{
return wxWindow::GetLabel();
}
bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
{
return m_nowpeer->ShowFullScreen(show, style);
}
bool wxTopLevelWindowMac::IsFullScreen() const
{
return m_nowpeer->IsFullScreen();
}
void wxTopLevelWindowMac::RequestUserAttention(int flags)
{
return m_nowpeer->RequestUserAttention(flags);
}