ultimatepp/uppsrc/CtrlCore/srcdoc.tpp/Resolution$en-us.tpp
cxl e1e1cd6046 CtrlLib: ArrayCtrl::ShowLine
git-svn-id: svn://ultimatepp.org/upp/trunk@9227 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2015-11-24 14:28:25 +00:00

79 lines
No EOL
8.5 KiB
C++

topic "Reacting to resolution";
[2 $$0,0#00000000000000000000000000000000:Default]
[l288;i1120;a17;O9;~~~.1408;2 $$1,0#10431211400427159095818037425705:param]
[a83;*R6 $$2,5#31310162474203024125188417583966:caption]
[H4;b83;*4 $$3,5#07864147445237544204411237157677:title]
[i288;O9;C2 $$4,6#40027414424643823182269349404212:item]
[b42;a42;2 $$5,5#45413000475342174754091244180557:text]
[l288;b17;a17;2 $$6,6#27521748481378242620020725143825:desc]
[l321;C@5;1 $$7,7#20902679421464641399138805415013:code]
[b2503;2 $$8,0#65142375456100023862071332075487:separator]
[*@(0.0.255)2 $$9,0#83433469410354161042741608181528:base]
[C2 $$10,0#37138531426314131251341829483380:class]
[l288;a17;*1 $$11,11#70004532496200323422659154056402:requirement]
[i417;b42;a42;O9;~~~.416;2 $$12,12#10566046415157235020018451313112:tparam]
[b167;C2 $$13,13#92430459443460461911108080531343:item1]
[i288;a42;O9;C2 $$14,14#77422149456609303542238260500223:item2]
[*@2$(0.128.128)2 $$15,15#34511555403152284025741354420178:NewsDate]
[l321;*C$7;2 $$16,16#03451589433145915344929335295360:result]
[l321;b83;a83;*C$7;2 $$17,17#07531550463529505371228428965313:result`-line]
[l160;*C+117 $$18,5#88603949442205825958800053222425:package`-title]
[2 $$19,0#53580023442335529039900623488521:gap]
[C2 $$20,20#70211524482531209251820423858195:class`-nested]
[b50;2 $$21,21#03324558446220344731010354752573:Par]
[{_}%EN-US
[s2; Reacting to actual resolution, UHD support&]
[s0; While all widgets coordinates are always in pixels, applications
need to react actual settings of target GUI to scale things accordingly.&]
[s0; &]
[s0; In U`+`+, the basic scaling factor is always determined by standard
font size, which is read from host platform (scaling factor can
also be adjusted by application, but that is less relevant here).&]
[s0; &]
[s0; All layouts are designed in some artificial defined, relatively
small, `'basic font`' font size, then scaled based on ratios
of standard system font to this basic font. Also, it is possible
to scale individual dimensions by Ctrl`::`[Horz`|Vert`]LayoutZoom
or [^topic`:`/`/CtrlCore`/src`/Zooming`$en`-us^ Zx/Zy/Zsz] functions.&]
[s0; &]
[s0; This, when used appropriately, works well for host GUI font
size between 12`-22. When GUI font gets bigger, there starts
to be a problem with Images (e.g. button icons) being too small.
This is typical for UHD display.&]
[s0; &]
[s0; To resolve this problem, upscaled Images need to provided in
this case. This is not a problem for Images that are created
by code (because they can easily incorporate scaling factor into
the algorithm), but would be a problem for images from .iml resources.&]
[s0; &]
[s0; To this means, Image has Resolution info. This can have 3 values
`- Standard, UHD, None. This info can be adjusted in Icon designed
(right click Image name and choose Image..., or double`-click
Image name)&]
[s0; &]
[s0;=
@@image:565&775
(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)
&]
[s0; &]
[s0; U`+`+ can be switched to [^topic`:`/`/Draw`/src`/UHD`$en`-us`#Upp`:`:SetUHDMode`(bool`)^ `"
UHD`" mode]. In this mode, if icon is retrieved from .iml and
it is in Standard resolution, it is upscaled 2x (relatively smart
algorithm is used so that it looks quite fine on UHD display).
Correspondingly, in standard mode, UHD resolution icons are downscaled.
Icons with `"None`" resolution are left intact.&]
[s0; &]
[s0; UHD is normally activated when standard icon height is greater
than 22.&]
[s0; &]
[s0; In addition to Zx/Zy/Zsz functions, U`+`+ also provides set
of [^topic`:`/`/Draw`/src`/UHD`$en`-us^ DPI functions] which simply
double arguments when UHD mode is active `- this is sometimes
better approach for scaling things that are related to icons.&]
[s0; &]
[s0; Last but not least, some host platforms (Windows) need to be
specifically informed that the application is able to handle
UHD, otherwise they enter into mode when application is rendered
in standard resolution and upscaled by windows (which looks quite
terrible). Normally, U`+`+ is in this `"HiDPI`" mode by default.
You can revert to ugly upscaling mode by calling Ctrl`::SetUHDEnabled(false).]]