m_nsFont = (NSFont*) wxMacCocoaRetain(data.m_nsFont);
#endif
#if wxOSX_USE_IPHONE
- m_uiFont = wxMacCocoaRetain(data.m_uiFont);
+ m_uiFont = (UIFont*) wxMacCocoaRetain(data.m_uiFont);
#endif
}
#endif
#if wxOSX_USE_COCOA
m_nsFontDescriptor = NULL;
-#endif
-#if wxOSX_USE_IPHONE
- m_uiFontDescriptor = NULL;
#endif
m_pointSize = 0;
m_family = wxFONTFAMILY_DEFAULT;
#endif
#if wxOSX_USE_COCOA
m_nsFontDescriptor = (NSFontDescriptor*) wxMacCocoaRetain(info.m_nsFontDescriptor);
-#endif
-#if wxOSX_USE_IPHONE
- m_uiFontDescriptor = wxMacCocoaRetain(info.m_uiFontDescriptor);;
#endif
m_pointSize = info.m_pointSize;
m_family = info.m_family;
#if wxOSX_USE_COCOA
wxMacCocoaRelease(m_nsFontDescriptor);
m_nsFontDescriptor = NULL;
-#endif
-#if wxOSX_USE_IPHONE
- wxMacCocoaRelease(m_uiFontDescriptor);
- m_uiFontDescriptor = NULL
#endif
m_descriptorValid = false;
}
#endif
#if wxOSX_USE_COCOA_OR_IPHONE
-extern CGContextRef wxOSXGetContextFromCurrentNSContext() ;
+extern CGContextRef wxOSXGetContextFromCurrentContext() ;
+#if wxOSX_USE_COCOA
extern bool wxOSXLockFocus( WXWidget view) ;
extern void wxOSXUnlockFocus( WXWidget view) ;
#endif
+#endif
#if 1 // MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5
#if wxOSX_USE_COCOA_OR_IPHONE
m_view = window->GetHandle();
- if ( !((wxWidgetCocoaImpl*) window->GetPeer())->IsFlipped() )
+#if wxOSX_USE_COCOA
+ if ( ! window->GetPeer()->IsFlipped() )
{
m_windowTransform = CGAffineTransformMakeTranslation( 0 , m_height );
m_windowTransform = CGAffineTransformScale( m_windowTransform , 1 , -1 );
}
else
+#endif
{
m_windowTransform = CGAffineTransformIdentity;
}
if (m_invisible)
return false;
-#if wxOSX_USE_COCOA_OR_IPHONE
+#if wxOSX_USE_COCOA
if ( wxOSXLockFocus(m_view) )
{
- m_cgContext = wxOSXGetContextFromCurrentNSContext();
+ m_cgContext = wxOSXGetContextFromCurrentContext();
wxASSERT_MSG( m_cgContext != NULL, _T("Unable to retrieve drawing context from View"));
}
else
m_invisible = true;
}
#endif
+#if wxOSX_USE_IPHONE
+ m_cgContext = wxOSXGetContextFromCurrentContext();
+ if ( m_cgContext == NULL )
+ {
+ m_invisible = true;
+ }
+#endif
#if wxOSX_USE_CARBON
OSStatus status = QDBeginCGContext( GetWindowPort( m_windowRef ) , &m_cgContext );
if ( status != noErr )
CGContextConcatCTM( m_cgContext, m_windowTransform );
CGContextSaveGState( m_cgContext );
m_contextSynthesized = true;
+#if wxOSX_USE_COCOA_OR_CARBON
if ( m_clipRgn.get() )
{
// the clip region is in device coordinates, so we convert this again to user coordinates
CGContextClip( m_cgContext );
}
}
+#endif
CGContextSaveGState( m_cgContext );
#if 0 // turn on for debugging of clientdc
#if wxOSX_USE_CARBON
QDEndCGContext( GetWindowPort( m_windowRef ) , &m_cgContext);
#endif
-#if wxOSX_USE_COCOA_OR_IPHONE
+#if wxOSX_USE_COCOA
wxOSXUnlockFocus(m_view);
#endif
}
#endif
-#if wxOSX_USE_COCOA_OR_IPHONE
+#if wxOSX_USE_COCOA
-CGContextRef wxOSXGetContextFromCurrentNSContext()
+CGContextRef wxOSXGetContextFromCurrentContext()
{
CGContextRef context = (CGContextRef)[[NSGraphicsContext currentContext]
graphicsPort];
#endif
+#if wxOSX_USE_IPHONE
+
+CGContextRef wxOSXGetContextFromCurrentContext()
+{
+ CGContextRef context = UIGraphicsGetCurrentContext();
+ return context;
+}
+
+#endif
+
// ----------------------------------------------------------------------------
// NSObject Utils
// ----------------------------------------------------------------------------
nsfont = [NSFont boldSystemFontOfSize:[NSFont smallSystemFontSize]];
break;
case wxOSX_SYSTEM_FONT_MINI:
- nsfont = [NSFont systemFontOfSize:[NSFont systemFontSize]];
+ nsfont = [NSFont systemFontOfSize:
+ [NSFont systemFontSizeForControlSize:NSMiniControlSize]];
break;
case wxOSX_SYSTEM_FONT_MINI_BOLD:
nsfont = [NSFont boldSystemFontOfSize:
[NSFont systemFontSizeForControlSize:NSMiniControlSize]];
break;
case wxOSX_SYSTEM_FONT_LABELS:
- nsfont = [NSFont labelFontOfSize:
- [NSFont systemFontSizeForControlSize:NSMiniControlSize]];
+ nsfont = [NSFont labelFontOfSize:[NSFont labelFontSize]];
break;
case wxOSX_SYSTEM_FONT_VIEWS:
nsfont = [NSFont controlContentFontOfSize:0];
#endif
+#if wxOSX_USE_IPHONE
+
+WX_UIFont wxFont::OSXCreateUIFont(wxOSXSystemFont font, wxNativeFontInfo* info)
+{
+ UIFont* uifont;
+ switch( font )
+ {
+ case wxOSX_SYSTEM_FONT_NORMAL:
+ uifont = [UIFont systemFontOfSize:[UIFont systemFontSize]];
+ break;
+ case wxOSX_SYSTEM_FONT_BOLD:
+ uifont = [UIFont boldSystemFontOfSize:[UIFont systemFontSize]];
+ break;
+ case wxOSX_SYSTEM_FONT_MINI:
+ case wxOSX_SYSTEM_FONT_SMALL:
+ uifont = [UIFont systemFontOfSize:[UIFont smallSystemFontSize]];
+ break;
+ case wxOSX_SYSTEM_FONT_MINI_BOLD:
+ case wxOSX_SYSTEM_FONT_SMALL_BOLD:
+ uifont = [UIFont boldSystemFontOfSize:[UIFont smallSystemFontSize]];
+ break;
+ case wxOSX_SYSTEM_FONT_VIEWS:
+ case wxOSX_SYSTEM_FONT_LABELS:
+ uifont = [UIFont systemFontOfSize:[UIFont labelFontSize]];
+ break;
+ default:
+ break;
+ }
+ [uifont retain];
+ if ( info->m_faceName.empty())
+ {
+ wxFontStyle fontstyle = wxFONTSTYLE_NORMAL;
+ wxFontWeight fontweight = wxFONTWEIGHT_NORMAL;
+ bool underlined = false;
+
+ int size = (int) ([uifont pointSize]+0.5);
+ /*
+ NSFontSymbolicTraits traits = [desc symbolicTraits];
+
+ if ( traits & NSFontBoldTrait )
+ fontweight = wxFONTWEIGHT_BOLD ;
+ else
+ fontweight = wxFONTWEIGHT_NORMAL ;
+ if ( traits & NSFontItalicTrait )
+ fontstyle = wxFONTSTYLE_ITALIC ;
+ */
+ wxCFStringRef fontname( [uifont familyName] );
+ info->Init(size,wxFONTFAMILY_DEFAULT,fontstyle,fontweight,underlined,
+ fontname.AsString(), wxFONTENCODING_DEFAULT);
+
+ }
+ return uifont;
+}
+
+WX_UIFont wxFont::OSXCreateUIFont(const wxNativeFontInfo* info)
+{
+ UIFont* uiFont;
+ uiFont = [UIFont fontWithName:wxCFStringRef(info->m_faceName).AsNSString() size:info->m_pointSize];
+ wxMacCocoaRetain(uiFont);
+ return uiFont;
+}
+
+#endif
// ----------------------------------------------------------------------------
// NSImage Utils
// ----------------------------------------------------------------------------