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