Re: iOS Default font is wrong

2013-10-30 Thread Oldrich Maticka

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






Re: iOS Default font is wrong

2013-10-30 Thread Richard Bair
And then eventually some iOS style sheet needs to be created that will give the 
right defaults for the other controls. I'm hoping to convince Hendrick and 
Claudette to take on that task :-)

 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
 


Re: iOS Default font is wrong

2013-10-30 Thread Felipe Heidrich
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
 
 
 



Re: iOS Default font is wrong

2013-10-30 Thread Oldrich Maticka

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
kCTFontSmallEmphasizedSystemFontType11  11
kCTFontMiniSystemFontType   9   9
kCTFontMiniEmphasizedSystemFontType 9   9
kCTFontViewsFontType12  12
kCTFontApplicationFontType  13  13
kCTFontLabelFontType10  10
kCTFontMenuTitleFontType14  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 

Re: iOS Default font is wrong

2013-10-30 Thread Felipe Heidrich
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
 kCTFontSmallSystemFontType11  11
 kCTFontSmallEmphasizedSystemFontType  11  11
 kCTFontMiniSystemFontType 9   9
 kCTFontMiniEmphasizedSystemFontType   9   9
 kCTFontViewsFontType  12  12
 kCTFontApplicationFontType13  13
 kCTFontLabelFontType  10  10
 kCTFontMenuTitleFontType  14  14
 kCTFontMenuItemFontType   14  14
 kCTFontMenuItemMarkFontType   14  14
 kCTFontMenuItemCmdKeyFontType 14  14
 kCTFontWindowTitleFontType13  13
 kCTFontPushButtonFontType 13  13
 kCTFontUtilityWindowTitleFontType 11  11
 kCTFontAlertHeaderFontType13  13
 kCTFontSystemDetailFontType   9   9
 kCTFontEmphasizedSystemDetailFontType 9   9
 kCTFontToolbarFontType11  11
 kCTFontSmallToolbarFontType   10  10
 kCTFontMessageFontType13  13
 kCTFontPaletteFontType11  11
 kCTFontToolTipFontType11  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 
 

Re: iOS Default font is wrong

2013-10-30 Thread Oldrich Maticka
At least on iOS 7.0 - recommended (default) font for UIButton is not 
bold.  It is System 15.0 (family: Helvetica Neue, style: Regular, size: 
15.0) in Interface Builder.


Oldrich

On 10/30/13 8:41 PM, Felipe Heidrich 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
kCTFontSmallEmphasizedSystemFontType11  11
kCTFontMiniSystemFontType   9   9
kCTFontMiniEmphasizedSystemFontType 9   9
kCTFontViewsFontType12  12
kCTFontApplicationFontType  13  13
kCTFontLabelFontType10  10
kCTFontMenuTitleFontType14  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 

Re: iOS Default font is wrong

2013-10-30 Thread Stephen F Northover
Eh?  Just create a bogus native control, query the font and throw the 
control away.  No text node necessary.


Stege

On 2013-10-30 4:27 PM, Richard Bair wrote:

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
kCTFontSmallEmphasizedSystemFontType11  11
kCTFontMiniSystemFontType   9   9
kCTFontMiniEmphasizedSystemFontType 9   9
kCTFontViewsFontType12  12
kCTFontApplicationFontType  13  13
kCTFontLabelFontType10  10
kCTFontMenuTitleFontType14  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 

Re: iOS Default font is wrong

2013-10-29 Thread Stephen F Northover
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




Re: iOS Default font is wrong

2013-10-29 Thread Felipe Heidrich

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