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
>> 
> 

Reply via email to