The only problem is that the CSS requires a UI control, so just putting a Text node up gets the wrong size. Also the API we have to say get the default font will be wrong. We could just hard-code in a hack for iOS maybe?
Richard On Oct 30, 2013, at 12:41 PM, Felipe Heidrich <felipe.heidr...@oracle.com> wrote: > Could we call UIFont using Objective-C Runtime > > Something like: > id class_UIFont = objc_getClass("UIFont"); > SEL sel_labelFontSize = sel_registerName("labelFontSize"); > float size = objc_msgSend_fpret(class_UIFont, sel_labelFontSize); > > ? > Anyway, we are back to the original question: What font to use. > Reading Richard's original request we are still not getting the recommend > font which is bold. > > I start to think the answer to get this right in the CSS… > > Felipe > > > On Oct 30, 2013, at 10:14 AM, Oldrich Maticka <oldrich.mati...@oracle.com> > wrote: > >> Hi, >> >> CTFontCreateUIFontForLanguage() returns fonts with same sizes for both iOS >> and Mac OS X. See table below. >> >> Unfortunately I made a mistake when I wrote 15.0 for >> CTFontCreateUIFontForLanguage(kCTFontPushButtonFontType) font size, >> unfortunately it is 13.0. Other sizes reported were correct (I have verified >> it yet once). >> >> >> iPad3 (iOS7.0) MacOSX 10.8 >> kCTFontUserFontType 12 12 >> kCTFontUserFixedPitchFontType 10 10 >> kCTFontSystemFontType 13 13 >> kCTFontEmphasizedSystemFontType 13 13 >> kCTFontSmallSystemFontType 11 11 >> kCTFontSmallEmphasizedSystemFontType 11 11 >> kCTFontMiniSystemFontType 9 9 >> kCTFontMiniEmphasizedSystemFontType 9 9 >> kCTFontViewsFontType 12 12 >> kCTFontApplicationFontType 13 13 >> kCTFontLabelFontType 10 10 >> kCTFontMenuTitleFontType 14 14 >> kCTFontMenuItemFontType 14 14 >> kCTFontMenuItemMarkFontType 14 14 >> kCTFontMenuItemCmdKeyFontType 14 14 >> kCTFontWindowTitleFontType 13 13 >> kCTFontPushButtonFontType 13 13 >> kCTFontUtilityWindowTitleFontType 11 11 >> kCTFontAlertHeaderFontType 13 13 >> kCTFontSystemDetailFontType 9 9 >> kCTFontEmphasizedSystemDetailFontType 9 9 >> kCTFontToolbarFontType 11 11 >> kCTFontSmallToolbarFontType 10 10 >> kCTFontMessageFontType 13 13 >> kCTFontPaletteFontType 11 11 >> kCTFontToolTipFontType 11 11 >> kCTFontControlContentFontType 12 12 >> >> Oldrich >> >> On 10/30/13 4:38 PM, Felipe Heidrich wrote: >>> Hi, >>> >>> Correct me if I'm wrong, to use UIWhatever or NSWhatever we will need >>> Objective-C (or use the ugly objc_msgSend). >>> That is more work as we don't have Objective-C in native font code. >>> Besides, creating a Button requires, usually, a lot more boilerplate code. >>> We will also have to link to UIKit frameworks, etc. >>> >>> Now, creating a CTFont using >>> CTFontCreateUIFontForLanguage(kCTFontPushButtonFontType) would be a very >>> easy change. >>> >>> Oldrich, could you please prepare a table with the fontSize for all values >>> on CTFontUIFontType for MacOSX and iOS ? >>> >>> Thanks >>> >>> >>> On Oct 30, 2013, at 6:38 AM, Stephen F Northover >>> <steve.x.northo...@oracle.com> wrote: >>> >>>> Let's use UIButton as this seems to match the stack overflow discussion. >>>> >>>> Steve >>>> >>>> On 2013-10-30 7:51 AM, Oldrich Maticka wrote: >>>>> I have tried simple app with several controls. Fonts in Interface Builder >>>>> - >>>>> >>>>> UIButton - System 15.0 >>>>> UILabel - System 17.0 >>>>> UITextField - System 14.0 >>>>> UITextView - System 14.0 >>>>> >>>>> Same fontsize - 15.0 has UIButton's label created at runtime. >>>>> >>>>> UIFont class methods for getting system font information return: >>>>> + labelFontSize 17.0 >>>>> + buttonFontSize 18.0 >>>>> + smallSystemFontSize 12.0 >>>>> + systemFontSize 14.0 >>>>> >>>>> >>>>> In fx Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize returns >>>>> 13.0 >>>>> >>>>> We can use different CTFontUIFontType in this method to return something >>>>> "better" than 13.0 - >>>>> e.g. with kCTFontPushButtonFontType as an argument to >>>>> CTFontCreateUIFontForLanguage() it returns 15.0, but we need to decide, >>>>> what we want to use as default. Should be our system default the size >>>>> same as for UIButton, UILabel or other control? >>>>> >>>>> >>>>> I was using iPad3 (iOS 7.0, Xcode 5.0). >>>>> >>>>> Olda >>>>> >>>>> On 10/29/13 7:32 PM, Stephen F Northover wrote: >>>>>> I was going to create a dummy control (say a Button) and ask for the >>>>>> font. Just an idea. >>>>>> >>>>>> Steve >>>>>> >>>>>> On 2013-10-29 2:18 PM, Felipe Heidrich wrote: >>>>>>> The code Richard sent is creating a dummy font and asking for its size. >>>>>>> >>>>>>> The problem is that there are about 3 thousand different fonts on the >>>>>>> Mac ;-) >>>>>>> >>>>>>> Here we are creating a CTFont. For Mac OS X most native apps probably >>>>>>> would be using a NSFont (cause that is what cocoa controls take). >>>>>>> Likewise on iOS I think the "common" font is UIFont (cause I think that >>>>>>> is what UIKIt controls take). >>>>>>> >>>>>>> Could anyone fire up Xcode, create a dummy iOS app, create a UIFont and >>>>>>> see what is the size ? >>>>>>> >>>>>>> Felipe >>>>>>> >>>>>>> >>>>>>> On Oct 29, 2013, at 8:40 AM, Stephen F Northover >>>>>>> <steve.x.northo...@oracle.com> wrote: >>>>>>> >>>>>>>> If the OS is reporting the wrong value for the default a classic trick >>>>>>>> is to create a dummy control that normally has the font we want and >>>>>>>> query that. >>>>>>>> >>>>>>>> Steve >>>>>>>> >>>>>>>> On 2013-10-29 11:21 AM, Richard Bair wrote: >>>>>>>>> Hi guys, >>>>>>>>> >>>>>>>>> The default font for iOS is supposed to be System Bold 15 (according >>>>>>>>> to >>>>>>>>> http://stackoverflow.com/questions/17325152/what-size-font-is-the-title-in-a-default-uibutton >>>>>>>>> anyway), and it does look more correct to me. Our code is getting to >>>>>>>>> this native method in MacFontFinder.c >>>>>>>>> >>>>>>>>> JNIEXPORT jfloat JNICALL >>>>>>>>> Java_com_sun_javafx_font_MacFontFinder_getSystemFontSize >>>>>>>>> (JNIEnv *env, jclass obj) >>>>>>>>> { >>>>>>>>> CTFontRef font = CTFontCreateUIFontForLanguage( >>>>>>>>> kCTFontSystemFontType, >>>>>>>>> 0.0, //get system font with default size >>>>>>>>> NULL); >>>>>>>>> jfloat systemFontDefaultSize = (jfloat) CTFontGetSize (font); >>>>>>>>> CFRelease(font); >>>>>>>>> return systemFontDefaultSize; >>>>>>>>> } >>>>>>>>> >>>>>>>>> >>>>>>>>> However it appears the return value is 13 instead of 15 (and I don't >>>>>>>>> know what the actual default font family / weight is that we're >>>>>>>>> returning). It is possible the answer coming from this native API >>>>>>>>> call is "wrong". Any ideas? >>>>>>>>> >>>>>>>>> Richard >> >