X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=docs%2Fcontent%2Fshared-javascript-and-cpp-documentation%2Ffont-selection.md;h=f7855fef3f48b0161c4b27605056667c9bb5d9f7;hb=a553fa0d7b974732895ef7d4f0c629f9894d115b;hp=c8f46da65201130ec9f6932578a84886e851cfe8;hpb=f3da11c2818c6d17706fbb2417f21b602b3190f5;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/docs/content/shared-javascript-and-cpp-documentation/font-selection.md b/docs/content/shared-javascript-and-cpp-documentation/font-selection.md index c8f46da..f7855fe 100644 --- a/docs/content/shared-javascript-and-cpp-documentation/font-selection.md +++ b/docs/content/shared-javascript-and-cpp-documentation/font-selection.md @@ -54,7 +54,9 @@ Alternatively a font may be requested using either or all of FONT_FAMILY, FONT_S // C++ label.SetProperty( TextLabel::Property::FONT_FAMILY, "FreeSerif" ); -label.SetProperty( TextLabel::Property::FONT_STYLE, "{\"weight\":\"bold\",\"slant\":\"italic\"}" ); +label.SetProperty( TextLabel::Property::FONT_STYLE, + Property::Map().Add( "weight", "bold" ) + .Add( "slant", "italic" ) ); label.SetProperty( TextLabel::Property::POINT_SIZE, 12.0f ); ~~~ @@ -62,7 +64,10 @@ label.SetProperty( TextLabel::Property::POINT_SIZE, 12.0f ); // JavaScript label.fontFamily = "FreeSerif"; -label.fontStyle = "{\"weight\":\"bold\",\"slant\":\"italic\"}"; +label.fontStyle = { + "weight" : "bold", + "slant" : "italic" + }; label.pointSize = 12; ~~~ @@ -70,7 +75,11 @@ However the text control will fall-back to using the default font, if the reques ### Font Styles -Setting a font size programmatically is not ideal for applications which support multiple screen resolutions etc. +Setting a font size programmatically is not ideal for applications which support multiple +screen resolutions and platforms which support multiple logical font sizes. Also, any +changes to the platform font settings will override any sizes that have been programmatically +set. + A more flexible approach is to prepare various JSON stylesheets, and request a different style for each platform: ~~~{.cpp} @@ -88,7 +97,11 @@ To change the font for standard text controls, this JSON syntax can be used: "textlabel": { "fontFamily":"FreeSerif", - "fontStyle":"{\"weight\":\"bold\",\"slant\":\"italic\"}", + "fontStyle": + { + "weight":"bold", + "slant":"italic" + }, "pointSize":8 } } @@ -96,7 +109,13 @@ To change the font for standard text controls, this JSON syntax can be used: ~~~ However the same pointSize is unlikely to be suitable for all text controls in an application. -To set custom sizes simply set a "style name" for each case, and then provide a style override in JSON: +To define custom styles for existing controls, simply set a style name for each case, and +then provide a style override in JSON. + +To provide flexibility for the end user, the platform offers a mechanism to alter the logical +font size between 0 and 4 inclusive. This logical size is mapped to a physical size using the +stylesheets, by appending FontSizeN to the style name. These sections ("textlabelFontSizeN") +in the style sheet are applied after the base section ("textlabel"), so take precedence. ~~~{.cpp} // C++ @@ -106,7 +125,7 @@ To set custom sizes simply set a "style name" for each case, and then provide a ~~~{.js} // JavaScript - label.styleName = "custom"'; + label.styleName = "customLabel"'; ~~~ ~~~{.json} @@ -116,18 +135,68 @@ To set custom sizes simply set a "style name" for each case, and then provide a "textlabel": { "fontFamily":"FreeSerif", - "fontStyle":"{\"weight\":\"bold\",\"slant\":\"italic\"}", + "fontStyle": + { + "weight":"bold", + "slant":"italic" + }, + }, + + "textlabelFontSize0": + { "pointSize":8 }, + "textlabelFontSize1": + { + "pointSize":10 + }, + "textlabelFontSize2": + { + "pointSize":15 + }, + "textlabelFontSize3": + { + "pointSize":19 + }, + "textlabelFontSize4": + { + "pointSize":25 + }, - "custom": + "customLabel": + { + "fontFamily":"TimesNewRoman", + "fontStyle": + { + "weight":"regular", + "slant":"regular" + }, + }, + "customLabelFontSize0": { "pointSize":10 + }, + "customLabelFontSize1": + { + "pointSize":12 + }, + "customLabelFontSize2": + { + "pointSize":15 + }, + "customLabelFontSize3": + { + "pointSize":20 + }, + "customLabelFontSize4": + { + "pointSize":28 } } } ~~~ -In the example above, standard text labels will have pointSize 8, and "custom" labels will have pointSize 10. +In the example above, at platform logical text size 0, standard text labels will have pointSize 8, and custom labels will have pointSize 10. + */