X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f2f6030e9c82dde25c816c266b73b4d252830dd2..7b7fd3e614c83315d77dc9df266784677f9dbca6:/src/osx/window_osx.cpp diff --git a/src/osx/window_osx.cpp b/src/osx/window_osx.cpp index 7c4866e1a6..da9e32a5e1 100644 --- a/src/osx/window_osx.cpp +++ b/src/osx/window_osx.cpp @@ -195,13 +195,11 @@ wxWindowMac::~wxWindowMac() WXWidget wxWindowMac::GetHandle() const { - return (WXWidget) m_peer->GetWXWidget() ; + if ( m_peer ) + return (WXWidget) m_peer->GetWXWidget() ; + return NULL; } -// -// TODO END move to window_osx.cpp -// - // --------------------------------------------------------------------------- // Utility Routines to move between different coordinate systems // --------------------------------------------------------------------------- @@ -335,33 +333,26 @@ void wxWindowMac::DoSetWindowVariant( wxWindowVariant variant ) m_peer->SetData(kControlEntireControl, kControlSizeTag, &size ) ; #endif -#if wxOSX_USE_COCOA_OR_CARBON wxFont font ; -#if wxOSX_USE_ATSU_TEXT - ThemeFontID themeFont = kThemeSystemFont ; - - // we will get that from the settings later - // and make this NORMAL later, but first - // we have a few calculations that we must fix + wxOSXSystemFont systemFont = wxOSX_SYSTEM_FONT_NORMAL ; switch ( variant ) { case wxWINDOW_VARIANT_NORMAL : - themeFont = kThemeSystemFont ; + systemFont = wxOSX_SYSTEM_FONT_NORMAL ; break ; case wxWINDOW_VARIANT_SMALL : - themeFont = kThemeSmallSystemFont ; + systemFont = wxOSX_SYSTEM_FONT_SMALL ; break ; case wxWINDOW_VARIANT_MINI : - // not always defined in the headers - themeFont = 109 ; + systemFont = wxOSX_SYSTEM_FONT_MINI ; break ; case wxWINDOW_VARIANT_LARGE : - themeFont = kThemeSystemFont ; + systemFont = wxOSX_SYSTEM_FONT_NORMAL ; break ; default: @@ -369,36 +360,9 @@ void wxWindowMac::DoSetWindowVariant( wxWindowVariant variant ) break ; } - font.MacCreateFromThemeFont( themeFont ) ; -#else - CTFontUIFontType themeFont = kCTFontSystemFontType ; - switch ( variant ) - { - case wxWINDOW_VARIANT_NORMAL : - themeFont = kCTFontSystemFontType; - break ; - - case wxWINDOW_VARIANT_SMALL : - themeFont = kCTFontSmallSystemFontType; - break ; - - case wxWINDOW_VARIANT_MINI : - themeFont = kCTFontMiniSystemFontType; - break ; - - case wxWINDOW_VARIANT_LARGE : - themeFont = kCTFontSystemFontType; - break ; - - default: - wxFAIL_MSG(_T("unexpected window variant")); - break ; - } - font.MacCreateFromUIFont( themeFont ) ; -#endif + font.CreateSystemFont( systemFont ) ; SetFont( font ) ; -#endif } void wxWindowMac::MacUpdateControlFont() @@ -782,16 +746,14 @@ void wxWindowMac::MacInvalidateBorders() return ; int outerBorder = MacGetLeftBorderSize() ; -#if wxOSX_USE_CARBON - if ( m_peer->NeedsFocusRect() /* && m_peer->HasFocus() */ ) + + if ( m_peer->NeedsFocusRect() ) outerBorder += 4 ; -#endif if ( outerBorder == 0 ) return ; // now we know that we have something to do at all - int tx,ty,tw,th; @@ -1044,7 +1006,7 @@ void wxWindowMac::SetLabel(const wxString& title) { m_label = title ; - if ( m_peer && m_peer->IsOk() ) + if ( m_peer && m_peer->IsOk() && !(IsKindOf( CLASSINFO(wxButton) ) && GetId() == wxID_HELP) ) m_peer->SetLabel( wxStripMenuCodes(m_label, wxStrip_Mnemonics), GetFont().GetEncoding() ) ; // do not trigger refreshes upon invisible and possible partly created objects @@ -1549,16 +1511,9 @@ void wxWindowMac::MacOnScroll( wxScrollEvent &event ) } } -// Get the window with the focus wxWindow *wxWindowBase::DoFindFocus() { -#if wxOSX_USE_CARBON - ControlRef control ; - GetKeyboardFocus( GetUserFocusWindow() , &control ) ; - return wxFindWindowFromWXWidget( (WXWidget) control ) ; -#else - return NULL; -#endif + return wxFindWindowFromWXWidget(wxWidgetImpl::FindFocus()); } void wxWindowMac::OnInternalIdle() @@ -2040,7 +1995,10 @@ void wxWindowMac::MacRepositionScrollBars() bool wxWindowMac::AcceptsFocus() const { - return m_peer->CanFocus() && wxWindowBase::AcceptsFocus(); + if ( MacIsUserPane() ) + return wxWindowBase::AcceptsFocus(); + else + return m_peer->CanFocus(); } void wxWindowMac::MacSuperChangedPosition() @@ -2082,7 +2040,7 @@ long wxWindowMac::MacGetLeftBorderSize() const SInt32 border = 0 ; - if ( m_peer->NeedsFrame() ) + if ( m_peer && m_peer->NeedsFrame() ) { if (HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER)) { @@ -2192,7 +2150,7 @@ Rect wxMacGetBoundsForControl( wxWindowMac* window , const wxPoint& pos , const return bounds ; } -bool wxWindowMac::OSXHandleClicked( double timestampsec ) +bool wxWindowMac::OSXHandleClicked( double WXUNUSED(timestampsec) ) { return false; }