From 1f43ca02213e9b69c1e0f7300f7f9d68e40710eb Mon Sep 17 00:00:00 2001 From: Danail Vasilev Date: Thu, 14 Apr 2016 17:24:23 +0300 Subject: [PATCH 1/5] added content to configure rotator with buttons article --- ...-configure-size-of-rotator-with-buttons.md | 231 ++++++++++++++++++ .../images/rotator-size-buttons.png | Bin 0 -> 72952 bytes 2 files changed, 231 insertions(+) create mode 100644 controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md create mode 100644 controls/rotator/getting-started/images/rotator-size-buttons.png diff --git a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md new file mode 100644 index 0000000000..d10587a873 --- /dev/null +++ b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md @@ -0,0 +1,231 @@ +--- +title: How To Configure Size of Rotator with Buttons +page_title: How To Configure Size of Rotator with Buttons | RadRotator for ASP.NET AJAX Documentation +description: How To Configure Size of Rotator with Buttons +slug: rotator/getting-started/how-to-configure-size-of-rotator-with-buttons +tags: how,to,configure,size,of,rotator,with,buttons +published: True +position: 1 +--- + +# How To Configure Size of Rotator with Buttons + +This help article illustrates how to properly configure the size of a rotator with buttons, so that the items are not cut/misaligned on shown/during animiation playing. + + * [Configure Rotator without Buttons]({%slug rotator/getting-started/overview%}) + + * [Configure Rotator with Buttons](#configure-rotator-with-buttons) + +## Configure Rotator with Buttons + +To configure a rotator with buttons you should do the following: + * Define the proper dimensions for the rotator, its items and item template as per the [Configure Rotator without Buttons]({%slug rotator/getting-started/overview%}) article. + * Determine the size of the buttons and just add it to the rotator's width. + +>caption **Figure 1**: A snapshot of a rotator with buttons that has 4 items. The code that creates it is available in **Example 1** and **Example 2**. + +![rotator-size-buttons](images/rotator-size-buttons.png) + +>caption **Example 1**: Configure rotator with buttons that has 4 items (100px x 100px) per view. The method that calculates the actual width is shown in **Example 2**. + +````CSS + +```` + +````ASPX + + + + + + + +```` + +````C# +protected void Page_Load(object sender, EventArgs e) +{ + RadRotatorSizeConfigurator.ConfigureSize(RadRotator1, 4); +} +```` +````VB +Protected Sub Page_Load(sender As Object, e As EventArgs) + RadRotatorSizeConfigurator.ConfigureSize(RadRotator1, 4) +End Sub +```` + +>caption **Example 2**: The implementation of the RadRotatorSizeConfigurator class that determines and sets the actual size of the rotator for the particular skin. + +````C# +public static class RadRotatorSizeConfigurator +{ + const int classicButtonStandardSize = 20; + const int liteButtonStandardSize = 30; + + static Dictionary largeButtonsSkins = new Dictionary() + { + { "Glow", 28 }, + { "Silk", 28 }, + { "MetroTouch", 28 }, + { "BlackMetroTouch", 28 }, + { "Bootstrap", 34 }, + { "LiteBootstrap", 34 }, + { "LiteMaterial", 38 } + }; + static RotatorType[] buttonModes = { RotatorType.Buttons, RotatorType.ButtonsOver, RotatorType.SlideShowButtons, RotatorType.CarouselButtons }; + static RotatorType[] animationModes = { RotatorType.Carousel, RotatorType.CarouselButtons, RotatorType.CoverFlow, RotatorType.CoverFlowButtons }; + + public static void ConfigureSize(RadRotator rotator, int itemsPerView) + { + ConfigureSize(rotator, itemsPerView, GetCurrentSkin()); + } + + public static void ConfigureSize(RadRotator rotator, int itemsPerView, string selectedSkin) + { + if (Array.IndexOf(animationModes, rotator.RotatorType) != -1) return; + + int buttonsSize = GetButtonsSize(rotator, selectedSkin); + + bool isHorizontal = (rotator.ScrollDirection == (RotatorScrollDirection.Left | RotatorScrollDirection.Right) || + rotator.ScrollDirection == RotatorScrollDirection.Right || + rotator.ScrollDirection == RotatorScrollDirection.Left); + + if (isHorizontal) + { + rotator.Width = Unit.Pixel(Convert.ToInt32(rotator.ItemWidth.Value) * itemsPerView + buttonsSize); + rotator.Height = rotator.ItemHeight; + } + else + { + rotator.Height = Unit.Pixel(Convert.ToInt32(rotator.ItemHeight.Value) * itemsPerView + buttonsSize); + rotator.Width = rotator.ItemWidth; + } + } + + public static int GetButtonsSize(RadRotator rotator) + { + return GetButtonsSize(rotator, GetCurrentSkin()); + } + + public static int GetButtonsSize(RadRotator rotator, string selectedSkin) + { + int buttonStandardSize; + if (rotator.ResolvedRenderMode == RenderMode.Lightweight) + { + selectedSkin = "Lite" + selectedSkin; + buttonStandardSize = liteButtonStandardSize; + } + else + { + buttonStandardSize = classicButtonStandardSize; + } + + int buttonSize = (!largeButtonsSkins.ContainsKey(selectedSkin)) ? buttonStandardSize : largeButtonsSkins[selectedSkin]; + int buttonsCount = 1; + if (Array.IndexOf(buttonModes, rotator.RotatorType) == -1) + { + buttonsCount = 0; + } + else if (rotator.ScrollDirection == (RotatorScrollDirection.Left | RotatorScrollDirection.Right) || + rotator.ScrollDirection == (RotatorScrollDirection.Down | RotatorScrollDirection.Up)) + { + buttonsCount = 2; + } + + return buttonSize * buttonsCount; + } + + private static string GetCurrentSkin() + { + return (string)((((Page)HttpContext.Current.Handler).FindControl("RadRotator1") as RadRotator).Skin ?? ConfigurationManager.AppSettings["Telerik.Skin"]); + } +} +```` +````VB +Public NotInheritable Class RadRotatorSizeConfigurator + Private Sub New() + End Sub + Const classicButtonStandardSize As Integer = 20 + Const liteButtonStandardSize As Integer = 30 + + Shared largeButtonsSkins As New Dictionary(Of String, Integer)() From { _ + {"Glow", 28}, _ + {"Silk", 28}, _ + {"MetroTouch", 28}, _ + {"BlackMetroTouch", 28}, _ + {"Bootstrap", 34}, _ + {"LiteBootstrap", 34}, _ + {"LiteMaterial", 38} _ + } + Shared buttonModes As RotatorType() = {RotatorType.Buttons, RotatorType.ButtonsOver, RotatorType.SlideShowButtons, RotatorType.CarouselButtons} + Shared animationModes As RotatorType() = {RotatorType.Carousel, RotatorType.CarouselButtons, RotatorType.CoverFlow, RotatorType.CoverFlowButtons} + + Public Shared Sub ConfigureSize(rotator As RadRotator, itemsPerView As Integer) + ConfigureSize(rotator, itemsPerView, GetCurrentSkin()) + End Sub + + Public Shared Sub ConfigureSize(rotator As RadRotator, itemsPerView As Integer, selectedSkin As String) + If Array.IndexOf(animationModes, rotator.RotatorType) <> -1 Then + Return + End If + + Dim buttonsSize As Integer = GetButtonsSize(rotator, selectedSkin) + + Dim isHorizontal As Boolean = (rotator.ScrollDirection = (RotatorScrollDirection.Left Or RotatorScrollDirection.Right) OrElse rotator.ScrollDirection = RotatorScrollDirection.Right OrElse rotator.ScrollDirection = RotatorScrollDirection.Left) + + If isHorizontal Then + rotator.Width = Unit.Pixel(Convert.ToInt32(rotator.ItemWidth.Value) * itemsPerView + buttonsSize) + rotator.Height = rotator.ItemHeight + Else + rotator.Height = Unit.Pixel(Convert.ToInt32(rotator.ItemHeight.Value) * itemsPerView + buttonsSize) + rotator.Width = rotator.ItemWidth + End If + End Sub + + Public Shared Function GetButtonsSize(rotator As RadRotator) As Integer + Return GetButtonsSize(rotator, GetCurrentSkin()) + End Function + + Public Shared Function GetButtonsSize(rotator As RadRotator, selectedSkin As String) As Integer + Dim buttonStandardSize As Integer + If rotator.ResolvedRenderMode = RenderMode.Lightweight Then + selectedSkin = "Lite" & selectedSkin + buttonStandardSize = liteButtonStandardSize + Else + buttonStandardSize = classicButtonStandardSize + End If + + Dim buttonSize As Integer = If((Not largeButtonsSkins.ContainsKey(selectedSkin)), buttonStandardSize, largeButtonsSkins(selectedSkin)) + Dim buttonsCount As Integer = 1 + If Array.IndexOf(buttonModes, rotator.RotatorType) = -1 Then + buttonsCount = 0 + ElseIf rotator.ScrollDirection = (RotatorScrollDirection.Left Or RotatorScrollDirection.Right) OrElse rotator.ScrollDirection = (RotatorScrollDirection.Down Or RotatorScrollDirection.Up) Then + buttonsCount = 2 + End If + + Return buttonSize * buttonsCount + End Function + + Private Shared Function GetCurrentSkin() As String + Return DirectCast(If(TryCast(DirectCast(HttpContext.Current.Handler, Page).FindControl("RadRotator1"), RadRotator).Skin, ConfigurationManager.AppSettings("Telerik.Skin")), String) + End Function +End Class +```` + +# See Also + + * [CoverFlow Mode Online Demo](http://demos.telerik.com/aspnet-ajax/rotator/examples/coverflowmode/defaultcs.aspx) + + * [RadRotator Types Online Demo](http://demos.telerik.com/aspnet-ajax/rotator/examples/rotatortypes/defaultcs.aspx) diff --git a/controls/rotator/getting-started/images/rotator-size-buttons.png b/controls/rotator/getting-started/images/rotator-size-buttons.png new file mode 100644 index 0000000000000000000000000000000000000000..4ae271e6a5995ff3d7f2c0c5251d69dbde8181ce GIT binary patch literal 72952 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≀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
(c90dI*7XMj;WO`A&8&Sk%(G#(N;f0r>7f z0Q>JCXeb|T?MjNu;wL;wND>PxnB5O@QgZfogi}&7lWlr0A={z;NXB**I-=Zkb|ifo zV7XAXg;fb{;c1)N8NZ5sMjMnq*5;=AjPrfn3Ri!j5ItPJ2vIp;nuvF?PKR|1^#kJj zhttr5>dhg<{0JeP&|dU4`E{qIWL2O4MS`O(d_|~T-R<_|Q>P>Zg!C&@5)62;Hd?=| zkTYjbyK~OigS&S1&C8ZqTJ-rg=A(RPqml%Pm_nBXB%ZHqC5L6kI@@(w5X@KUr}JR0 z+v>nZ3B;xrS)UBs=7I+`yCHGJV5wXZ^AHhZr`!Za>1HAnr*LL)*riZ z$%<{=*tMo2I~`&5Du`(Jg)BIYvCsr(Am*{#J6i0q$IjaS@b~_X{iC1!d$JIF>}$_H zYtMY`TPmNdhFvio=AlMLtVPUVUG-u^xt7*0AtSqPaTFcHpN+Poa<+GM*zn0AU0eP5 zussQ=I_7hQ=j=;g{ylee zTb4zEmBPFy?OHFQWl2`Lt95; zvPOg_5Hb!y;ED$^c}6}69jT=C_I10Z&X7C;w^!C~TGnnyXSW1*!Z&=uvPJOvT%B9J zRm+8z5VM7O;TQrQh{jNV9|Xp@Bf8C~s$LM>m2v`FBfiS922=M;iv=5bcNr~@AIqOV$SsBK} z>1bVavL(f%GudHjUkfZc?Cn**_sMF+Q`vk?yO@lvEMn4bH(=17p zAZ9;vw)>==)}++sWEgNXA%`xIUY&4#MfK0h`md zrGi3H2-+c}gP6BP7#lWnf<@>o3U3mjZp)fWTdFr{1rd0vcT^V6s4@_uuddkS<;zxC zn)8i0c3Z`)(|y*ey!Rw@_Hif?@v|Q@yXN32UDk7mbyEVgo?)SZw6*s1$rSFg@yU$6 z{^nINh`hB*h@U%u(gp^4?EJYAJ9BDKf^x|jb#nttVY)4u?ze4O{|nRi-HK)7{`v+H zp)~x~sz)g2)*`BDlSG&5Awkj5)Na|;RomZOmI5;*zQGY{?fOpEdlPGhQB)+jrI)dx zJ-EI+w_vZo@w)w&|MlOh_D%p875W>m~i38JLH)}nR6=o1_gq7A@@kF5*&=7 zp$_XM3`4n7P7^{;X^Y`O)qaee@(f>i^y`!_f}8omL+7gCMB^XL@g?T@xl~Igl(P1W=^}U)ivXJs@W}))3RI5|UBYq66vi6r(!jNsR@Qjfm9MgI^ z?oxfkX*3lnq#cPiSF-Yjl7t6oH2T~=N*qJ5v>!v%FxkyY#jQ~Ft}Je*N~8oR4c1Jv zRV#Z#vyPhGmk_*clgMyd}+}}Qhm*kcB2FlR{75QmJOzRt-Gh! zR@Mr>4%hdN)_1H!?o)l(9EG7?EIV)jWfI`GJ6SQ3qU-)Yx5Lg4 zik1}}eB4kPtA(Ph^`Z@Sr-Vy;HkmEisst_T`s;V447D%{C%RTTTT(m*)FvA$M};yd ze;{1w6%;TOr%lNe0@4!B90yP@xAH3JYhrdCo;~v^0?=9u^ z<3ILe_RGKcOYW-?+lV;FOO5`Nfbf0gEB{mk2U8bAt7~*;jh>#Ab#}J-g8DHr_f=U? zy*=F$lAXR8I~$E-fuM=AMt694G<4Dygjw++)YaUo3*LG$>wXDrm~lQ=5CL}Rn^xt{ zP-?S;`l^KHo;~*DSy`Z4vN}2xXV};IHA;xizI9#J@2u^qEWQ>``g*IBg4T|N)yX1< zaqUZ3Vp|~q5ojzq*==oeX2IqSckfNw3$I_dcXaLVm8CY+Z|BaQu})dA8yoAEOtjb& zkDXQ>NFitqpo65-GfpvB&1c&V9AMmWnnKZE!(M+k2rEiLePx} zciVDe()1TZck$xu?wrHC{KUkBWi!i)$Pf`_!7DRZIw(=3gYR!w!=61c(rMp+p~p`2 zGY1I4GOrjcRL@UXiWS9rK?s@QO_%@{h0hfUm_v2v6fs^G!s58dKIXxckk8o@-`7hj zFb9SciZesScP8Lz1`Bou&0_3oCoH+RBn72~wnG5$EP&D$ zvt*u`zM&1)q`)nyeY(`%C;&TB4iP5IQKEQs_{K5&zM1_y6SMZhjahr^!HQ)!>fA?R zP3`_?1t))%<((Us>@&alDZ6+3j+D-#wac=@yBkG}VOCD~nO$VMXTwqwMhsmtlE4r; zM|aLFEV7@0ch4Uw-A+oc^$i zDFfibMe(@00ib-K69hC6wtB4!o2uXdB8_?f=(#INyyrKxq4etYEz20$1(0E9mP8`p z>vuP-M;872&W_q+L*3p7`K?`FQ_Va!{WiJE@Hvid8&;C#URU34d*EFCmT^#tJE)4! zY>TJ)p5o-|K)IySiXJEr&*MAl$g`;Q@H+}$=$0x`uNe5wuli$y6Zj-#5`lJMxSJef z9;8ir2w(aD0nIw?U;M-;?XUj$f1;}LB;<1}eE*aHGk^Vy|EGGe&5ETRU)nKzqF2H) z?fV@sEiU+B3Czhsge6IitZ(wrVkub>2)=ZBK!o3EC28lZ4aKt-3ym{)u_9R~jMa;~ zI{TXT_ICO(EzEsO0trX2g@qOS$PYecqa%IJh&z&LYmty{+}O6Ix9{3^CU13m?w-^_ zFh3zgNL(kz(kvleulQI&tRF@I!(15hUY=dFv0JxnW+`jqrA;eHz?~c(ku^G?+Do`d zc_>Iz#RK~zAAZVy?8iT3+2t8$4ykmPm3E4C23vV-9kDxi5G)F z(Cx6zo|FTn*`DGE!hRujgXNbeeb=Rg+A1&Rj^oLCnM2>}#6V;Li#ahDiDxRye;6`L zrXO|Ua-`Qar+jbUePD|V3$ozG?e3jBHa_;i*3>Ty!MRnSc)sC*G<+D1{!?IK)4sLU zZQ9wsR{NnxhU|kMP2H!%wT?u>k{20wTu>bmpKo!Yi7gcnF?R6s}%25kEtJoOZ;fDot2c zRe^x8Vh1nZ$x7e5gB5vFPzhZ&huQVv|9xlJjD{rB!V!iL5%MbAa%RcvgA-Sy7$?>{ zYcQF+ygfN%-@ZC+SI2X9W&Ci7#h(Nyii+lWP`1gjyY_3p^e^n*-CI@=E&?1v;A=*8 zkK&58HM^MAx9n2YA_0}OCgB(xiWFr%&MjwrUX|@Siz+9yFxb;2I@@*2m;Ibm`i4;# zwV)VgmjogE9W%wTFTtErH|?A6Iwpq6&?rh3&XR22fzuE^5}akta~vmGnuXA0?L7jC z=_ow;TbbXK(4apNBJ|ftf1eGDHuiVwY*vcGp8EUg^XH|&Hj9UJ+dbj$wglOQGiQC& z=8hEmZQ&csl28J|0rPb(Yyl2Uhe!DVAt-gq;~)IOFS&)BlJIs9cRd5Im`_Ft^XUfR zY%CKv>Qf)|gVLrQpex=1{N_3MdmwxP;`;L)H8TXTFW$B;KGWg~Wj#CFN!jgFeShH5 zGuG9{{?{v($yY2>-jEVQpNVH?3Vwh^URE?tej;@{E#n4WS{B_kh?n8<9hV7(vWcFA z13TgY0M8t^1(cQNkw#+uxz^QJ>56h!vcg{-_JzBfY)k-~Dg?bDN&YN~jj>%-IvN$eL|O+HG;QAV#<; zE453^dC!(t)@)`zE5fU@u5_>U^!JN-v|A$Cg03Wz6=M`5oX=M5`4_I*;{1vw#cVh;mP4!APEdTv_DU72EGxY&Apmm}2wM>& zf{K${5)9#R;)ksDM&;26qKJX-uV-Mc?7;$C*f zQxY@0b^D&uZnqPsPTK0)s?STaEQe)Fi;B;_*6H3s+Y&JrrD(9_9{L|k5U|=n%81cI|nYdb=t-qUJqOj;&ew3*py%VjfSy6b8a3Hd@^Ok>khy=MYrP<@|$ z_Idk-U-(7)!hif-d*R#Pwj0;4yYmXxda!cEXvB1!kg9ze=E5Q^@xPe2v~`YkOo(A2 zz}l#r7&=x9!-DROECTi|1Etj9Y=XsvS1eYJKhxDW;E>?MDTYlgxW^*#HJ%cZad#== zvQv>e?WhQdV@iebf!8$xJ2(Tu1R`^hb)xsY!>WeivPReiu=3yFf7Wln>OJvo8B`diw7}6Z&=Fb`_J`@sgBr% zANiY}`gadhi2ub%5v%HtjdIC8_uIc=FTL`D|7NLJyKoKsK^UTR)Yml$S2iurGBVW> zizFcdC;93Y`-+rAhCI7dT|TV5R$2Ex#CZyU0fPtiYMWKzJlm8qwCg8uDI`>X`iQlu zctv}^Dr`tF<5kQ&GJQ$=s*w6e4OCW@iH$v27mV-#-&j+Q4@A52YEzmSS?>&S56U`9 zG_^TyWQ%LYf&A%IO4l%a`Cw|o*YJ0Dst)R)xrKS(2N_2zrYlyZG+>d_HVFS^DH}Lu zp)`bLcy;#trAz8_^(5Z$)AdX*L5c19y z5cQXSx@F#6zh@QkI97ZlWIV8;PELxQ9ECS#l6*m=Hi^0dcEPTW0PNyk0&8ZuPkbrz?G3{rzrGdetP! zrZz9)#@}4w*9cqgU4cfa(REWw*kAiAf5lH`0{HHzZ!Z~m!x4p>52o$T__&?9aN7F% zyKPfQvnAoTw^wl@Dwg)`#yhk2@@uzjF}r3%qo*Z!hotq1sWr*^5b>=`_^_`jCn1S* z`fwnp8Kt_?ink}`*J8bW{q9VKkZx*C+Wd0SUU=<>-Ml|8oDS?^x;XFjZ=Eja? zB+N6*ISCL657mzi`ALK2QqMg5EiuT;!qH}%oz2MdUz5UcLiHUL7L;I%}!A;uGXe@S7>^NI)xQ`Ha0$C zZ(VuEUU}(?z542#_WbiNRW)F<7hinI1@HB1*OWF^uB-wlpk1FMg+Q=MiR{E%r7Va9 zh8_ueYp=n^Gwb%nSMS@$Klh6L%x7M(pa0So`<;uj?4}F0vZZzv(@nKE`CMAF%1K%M zV0*ND%I(isnxddKL!p8}(st}A+}0I-4cfKJM5vZEXza=x ztr}sgz9aC=1uH^W_dKKCFaiA++JJj0TEVMX=}Dk)`qB2*hPN+sy;v<+^9`y8YtWk+ zx<*kGzH+)&TO#G7H(1Y1R@Ui?2Y<70)2BYV`|R;EBi^QeQV2Z}fW5o#+`Mj=-gwom z{Bi~*L9We`YEwUiL7}Hj3a#3u zP~Ns#DH(O@E3&MYHHsb@iho$Xc+ZtG0^ZluwF>->?;_OxcnnRj)mwfw zV~KQ+P2@K08y9cen^*2D&ppdmHvPD=O}wKez_tnuTT7Tp3uYM75kdq2kq`i$!8}3; zf<`D)W$Mfq1`R%HulmB@LBJpqLnVAWFfd?e&Ybjc;rs<#TFBX}uUxT(`8B(Hf6?xb zElSw-*$;m7hwbE<(>8$+zI4Ohx_Z~fCzdUn+qCjVgRSp~G1RwON1{s#%(@k`S+!4- zgnz%s}+3i&OYR5}-5z3QP@DBB zMf>$M#rD^iS*`82Lf0W`~cboI9iG z$}lkk903jE$0DOJSZ$P(GJE+H=oc(+EF`QiEN-rN*&|Sx%R*Su^7mTp zYFKZqI4BDX3yaPd7%oO8u(hh=0eB+dH}9zvQ&s@O(FeGr;54A;5&s=PC;`t%i*`XV zIi!bh^=}nwA+{ssAX<1Itxj`CvY~XR?QV#diJvilJ2Kd9LxVk5kq(!UV$&gm{`CSX~H*sQ! z5bqDuj&%h0-u)d@FN_xWz3>Gf9`}Rdl{n~Clluz+aQ-6;=g&WGPdxFs5VRsRW1i6@ z0QPNivS?rY(u?-?%?UgA$XWZy553Q=hP(If`4ArK*CwXtL_9()5utygc@Ql_L5H2F{%jGDQwvMk80@|JsIvS|g0(D^=> zQ$@Up7zE~AAz(CNEFKt@@9(O2JOdzL(s7|IX23mjUU-;Zy?V{Y#vZtmzy=j3M$cGb ztzuKt%XaPBeY^Pjb$k7dtCkZZy71_u_R$~tus!zVd1vT1-k!A2f9{+1??3aLeeRi8 z?B%!a+pWorE$6pwd~Veqj8D79%(ATP%9@|F)Fy$}-YUYZYm~r0Z6{6+TBn#=E?csh zsb%|(-}tnB>|_7Z%Y^e(T(?MoiMSVYl~4#ybk#PBfjUB5vA%w<=OChQn&7{~aOar% z;A`(J*(aX4X+QgWSM9SGCu}^+h=W?*}`hNs;zM{VbVOZW7n z4@pbtf+xhsL53kt6(lfAg##u^x%3<%a}ZQ!hQvA25upq7V(u7AM$z>>cn|_YmwkAB zgoHM6sVAJ2)l0ch3b1}9W!<7<6sA!YZc_^iL%ZX2lLRh88s%}nUJP6HsMj;z{Yil; zc@0C=Y<+NB4HFrGprV5WVKT9aQ&P zAyRtn_E+;5yq-QG7~Z3$L6gdu+% zu6(Xo?YSZ)C?~v^8w#Zf6ZkhO&o4!?Ab|BZo@&H_8Ie~bsjT73yZv}^S z0b=}+Zq0Xk%q!BS-QlM^hu83od#?Qczz05HJ-xx(SvghHJKAuhh3^O6|2{EIhMmKa1@!1)hnk$NFi6M)j(ZzI7 zLWqYI14DG?AdPub46?Dk)v_Cn_SJ7*v1@PLv-JXJu%@g}+SDT#&WfqjPuTq8lC0EKTV7rkW0B^%l(&hAMOo>$?Tt5Y+rrYC z%G7QH!z1?e_djKiKYiYko$a=gE7^^A#_jbt@7Wtyr|j!5+_2}Lf5l#V^}4;t1j(6}=dXfGv2y%nws zqz7?D0gckaXn=kS@Qzdz^&9j~bQm>G9SA5Mut7e%l|7ix+wZ(|*M8;;uiK}df6K0n zE!g^AorF}YwI@5Qg|mGVDKTCNR0*&aF(PmWfyw+{v#cR38w7A1zDD>lD#H234V<@( zm8rZ#`IWs2hc)NSPUT{V8cT`Oi~@6@@TxZsR32YJ*Pw6-QS>gXzMzd2Ym)NA z5rUjth4*<=bp(aow6d~t-LqKtj8ZWwrS5QH#xN&%!H~NusJ;$34-WYFysnNX0`P!) zHYfqF!4(9ZV!UgF0Eky0K9A2_i0RLhhi>!-<=xMe?ZIN+R?ESfO}95#ZY67D6O(rB z(p9^8{ie-M&)C;5-LfyeanB}JiY%9~vigaY8II$WSHJfdy@^7X%2f0Bys4XW)WdQ{ zB>{+K4RJkkxI)~H&0qk9Ka6t_^xWe{&^$fiK}ZrK>hkLhnxJ zhytx~WTB%|ObBfZrXz;1xR|qh_r`_vWqbO4kJ*p@*hekZk+#d1-uC0{-v7Q2*~Iv~ zz5e=J#zEa^$_zm=B#O1d&=M93yX_Q86)Ua76xt=s)@4b5-R|C*w4R=R`@Scia0jox zfnMQAi(S|A+mj2%u0kBVuv?NQE~dcJ5VvM!A+X+zb;MCa<4jFLnBP=Bii2g~LC?|r z(X3f?&px*ZY>n|^1i>Kn-X*D zmoMA>`&0Jd!IaI;EeaPKZE#@7e&9nNveD5|>+S6mbII8f^U7_#Ha4EKFMRPEvYzkQ z^WV5+U;p}RcJYmOB;@fPZL^N99_t$%_6Eor^o|HA5kU(wkaG~nUfU0>C7-q&9FL)<|A7a#QF-vI6;%q`FD!vOl^7T5Y zuDSw|;nWg0_dW-uI_O3+H}o;zi#v-+B6tzp%Cjnbxktbue0k}YHa)wE=KRSvBPH!m8uotZ0$SlDNEMWLB^nwxw9zdV0e+N(4 zj~GWO1SHctEDK7d*aNx6cdN?_-`VX;HIOCSXekLwhLhQaD03x^;zRLw#Ft=eU*CqUuugbmIIm0vMWOxR-v6x!0D1yNAn2`D@F| zm2}<>)xs)Nt8oAaY1P~lz>h8Ap0|y@Azc(%k6XrL3&VItid2o0(g)&;RaoZuvd_*wc3I>;>P+=#fXyh#{2h@>@6U z=0wKE7m5;+BKnFfYH9Edn^?ONI6@E@v|GCh5%C;}bx&}_6Ht#RqzHTy5tq#)nA3kk;J7vQ19Uxs#f73e}-bLbqU7uTI!kpLy9{k|1Yj8tbK-4NPPW zyJ8_ih-Hq*e~9Q|C@l(F7#_fT>H@?zi6IDC7+XL^(j*VQIfzGF3RSVLnoY!}cjeNS zy?AZHe(rOx+W-COXYDI5UbUGOS=F+58WOTnjsSb&ka9F$Xu2B90~cQGSa*Nr8OAoa9d;39Zi^qlDs z6c9bvJ-d~K(5RGPGFTJ}3<*eyk_~4!XN&gn-}#39vrqqlJ%3})^Z%0qJr#NjAzJ7A z9Mk4ZA#gZcy2G$h3RD3pEiLM^aOzU<1E}{k`QERJ z2TrJUTp3}B5EdIl+kESeN3L{k`8+CgfG|f;&S#cng*HoRPIwzOnw&N8}xG z{yRZ@$9ECHI==T|@45}uwO;+%W@pb1+UUt)OC`GOWUAL5OZVCNj!rv~NLep5v0Epe zvE_RnI36gCTKtYsTb@Y2itw&DURU1LJOln{T@HWqF20ZX@|z_14Ui`7N*e<_4|xUN z6Z3`7@b1c6Z`pItJ?CjXT#us)p{7R_r0v_DkP;*oG39cc(6ebhy}dSaV#sFZr|kOM zH)X-@*ayD<`~9f8g@ufrJ$=rGC44#RZD&_R-I0){y=Av<-?p3xxHCN#j{s%}MBHZEbDCy|dTVCY8#L6-z8T5_0Q%hP2y~9o9cMB*sz{ zBdoJiXHMATPd+LuHz~oynZvubyu7CP&9b`J?Z%B;vXqx3d=c6K;bVxvJp@4TEdrg; zLWqPCiH+;SA$Wf>cN&)JKseN$cb=|(H*;0VyWe(tj`*gyHD z&)Bd1-Z$-?=~dg+`>@+ruyXw*ASYDj=%qNte8q$tB@BHiTEZ8nytYJ#6ti|cYxTCr zlEZ=v^SfhCsvVGBGK^8C8EgsNK_4_uEPWdJtI9PSGN#WXW z2wuHSc=EQnkXH1j!vErXAXwfZP1=FOIuO46jyy3; zSJ9q)gV%N|NvV7BO=$F;_5Rf-KVf(7-PP+@lA{YpTKGbYPN~kk*`kr<4m&m|D;C*z z|G|_y8?pZN#Fzqxfmva-u&e~JO;r%!epH##WMmG#uB^&bBz@T$4kUsY;!Zm503nNr{cy`0 zC0pMvSw~M&0(8)ZMuzQ)?|WPVwMC)XkFpd06GKV+urn3{<-T(5hE2}Q$>Pu0!m zXWqDD(`!4n-JG-r_bOIfs&BC9BzkRI{Sv&6gJ5oCxs2MN#RYImf*VULY@mUa%$#7b zl!N1zdreoL$02Qot=+nna0T}mx^T#ag*8{e>SZbKV>$mRL9ML+_e5V!){SK-TuvrieVGnR(<(wt zCp-NI!$WCfxY*03ZxOzYs-HVo$s$BJvrjsfE$8IYQA|&;?=taG9N9brrl}}WAh-QD z44XZLQH=fUXxd0kQCKVbvcI0rE^B}hmn&8%Z%NoQM_gwYP7hgsXVN;=r+B(El|j3< zw5zX_BeR2SrO2oaXSstZ>)t z4-h;*;Sk0Qf>%F1H~yH5fBn)W`}u$Mar?QCeM|<#5-*Q59QN!H1PF?bAi$Jh$m#B+ zUAS=8<|IHXl|4Va`{}12vs7n`1WL-@|A8l^y(VmCc1+f5#nxo8=Ge)lykk=n^Y*$d z-8;AM+r4{ZHaEB68hK@1mgg1+1h8Aqie0;QP1fGB@?&@sWT}%zxn*x$AGdj?LuEBL ziTNftTstYvvdXZroEYkaIR^$DhF&8QgFr4wxQb{U>Cocz4`zk79<@CHjW}xF0N*im z%%R^6^{sa9>?8K%lTX-(|I+sh8O1<5+C)%wvS_gI^ns9^tv4B3B&}R7=V^e@<71OH z_Fz(NanB~kr|iDkV}5?YH_Gs37S*y+l1hb*7T!$+0M{5I)ZRzJ0(j21@i!3fgEkw9 z>o9%FNxAtAV>-ycCQby7nUe^00-jkd*jHY;ZvXqQ{73r-KmVKd%b)wYUA#SG`Asny z^$S)oL!*sVCIAycFcMs#Vu3LSj0Mc_HBMPlP8!v>-oL(v9P5dIaAv4FoZ%eS3m%-9`}*zZ{Fg4ek_7j4SYWEdT9?nbQL zFigy7&%S=s2Uv|232Y9_XQwBW4Svg(b)|$2UesMaLJ_S&=ozJokpp3wwd$Kr2{<+& zDJj3@T-G;RVYnF!d_&I*MF~pf`N-)}7qH|7ZG<83U9T5H5TzEShau}0DUys*G)TG1 zuCDl~MXTz{rW}j8jD81;6KA)n`57P0U~?1Zv&*HDw*y-jB9jWMdEbT-tCyulam_Dr z=?mxCL#Oej6V`jzg=5s|U>S_xq zhpkB|iisB6SKW(E^_JaJd+rJ6=u5Q;X_I73w>EDemeHTZtAIXyS6r^u-v`eGe*e(3 zm?jXPgCDdbA@I#Zz8C4AHlm-or_I1g-f@qIK0Nf5*Iu=kUwzfTJ<4#Tg)c0)iHcYTpJ2hGp4}s-r=AY3gD?SfA`mjD>~ey1&0I#1@m3_B^w^ZeM@-y3H=- z#C&0*LIi2Q?wu;8?Mzq1tCwzNWAOqY8RbWqfhgOm7hBosjn|R)AXKVD)|RX<;(<&E zL4F4-khQd8PHGQ^#XD2IQW`k_wrqWU-S&|m{Gjy@^eC>7Rm@dB{u(2(a( zTd~F&N0h9rT816ZpL@jHVNKS?;^LC;)&qhgeS0P5tGTsq*nTSoJOa*(B=<md>M(_%S}K3~nesPSajVX*O)lBL{pxG>zkc#R*w20H zi}vb`2`jR*qw3lyA;p|`oPUn(^~XZBsc9P8hpyPJld44dHnD*8g{Oo@i-9e;K$&r&B{ySr2RZqql&;kSC)PM;W(wcBi4>zqZcwnnh3 zEdxC%UD8lYmg*IRyX?`-HluQ46XAR{JwIp5QnDG6Zcns(`kDNy_4W6;PIOgLK3crw6Zs)L5@kFJ{UD&j zoH^<6oc?8`^UGiPvZs5L;YbVL^-|u-YaB8!t8lYm=~Rb3^2no>%jc}Qy~WZJI-Nb8 z?v#P%y^>$E+)7ErXSTFdvitXEY+`D`J%Cs8MOc>&j*QAe93h|kn z6A1_jATkh!0OP4BZ1~XDwiwV3b&*EOk_67PZEV={qtjYN7$6oz4Pr$N56vzdrA3R> zSuUHmOPAiV-}};+?X@>9JELD(UhyI2D7f*!2Jmq1?oR9XmYutBR;80>ye{Fba-BMT zvYPge>e}wZZH>~3`v-b`==}EWJJRmEB;>o5Z5RdyKz7O(0fY~XB`6mU6IJbf?RNmb zLm*91Fu2ftyqK1{_6#bcOoThYbRWvSp{OKUM~uXnNen3aS0#8eYbBosX;RwT z!i$6iaXVJ0>Wk2%jisKDt1mC3f9L~FzCrlW#`Fc&A(rO4;;^fns_Irf`X_>VgA<}u zXT6p{Mwp{e1z(AJ<+q_UDiUz3qG68kV`w030cxpi*t5w;(^a4ceW>m`$@Y$Hs(ybyQ@cn zx7CN3Y4HBuKF1#{U6fYtQO;3J5WErR0dO-yZ0`uf10t?R;5Tu3AN$Fzcj_nJ!@lBS zs3OqGcLH9aWVAHx+J*jvJ&|s+M><-qdvDWHl~vo%%v*sozZbH$x{_Dl39t4V6<=)+ zE>)Q3SIAKU>RPk9q!-I?Nm_L;(={*j;1 zw(vvZ!f&|pjQ8|C(~&4%?uX%19d&l`jW?<}9bGumdprN_|Kcx+0f;dOueWxJwzgWa zk<%9}vzoVzgdlq!PfkwS*>ju%Bu!aJyRfkA`y#K2so;LUva;q3grU=L($17{r%uFE zaV-l?mIDHcvi#UdN;D`7@tm~WE}NN|cO-zZI3rPqv*s_OxJ`O~eyCqKB_SXzbmBwf zcf2Xb!vEnqSZ2Y<-NST1Owz$4 zm3k3iAgikdW6M8Z1FRxYj-{m~#bp`Cx@-CD0JFLxt6fYzDF%nPGz=c?pN-;iDuF4n zzi)3(pYLb8ycE{;!fcjSSG;dR9RqMrs3pG0Y~BlaA0d7lpq4PhHKto@^#Zj-3o&w~ z9`4Kn#3cD%7lNmyIE+S=B^>56tM>N2ar^ew2llONWA^6lNt;?;b4znu__2!@vhwvI zX<7bQ|1OLfW|lBz*xKiF5zb=pjClC^T_4tFxVhPty~<9VtyT6cSK9Pr_r~V3_QvgL z`^t-N*=N4`ihcf>SMBRk=I+kqthAwmhr)VYgT5855&z-!j&1mpKlzXR`kf$rBOtoc zyZqWq_S?VxY0IsxNbqk;;IUWvmLJszUNJOGols<%|6SkQu(h(@iOtqE1Z$^V!l6q- z3;}^>G9yMD5r|@d632o6;9QUJ$hW7Ye^lOlsp9R=k}&WWOS`M9!`ejLY){EtI_r6{ zVuuF@d zIQx2fU2x9H8a#F4gdY{yl}K5kRI)L6$muiI+tuwtcvZrd9jl-hjsT?1`OStJD7Xj$ z=m9|q_&(vPvQwfeu_XGWN+xt&^fjA;O|{HOG#0ipp5%(MTyafQ~N#O z&vqr4#82vUEfmxz>pP1e+l8)HJJZ*0eF>FqYfVZ`$^A@PR2MI6O&K1BItkpM z5C^5v`I7oHf(zQ(@2kH(=w~gy0`XmZPP&fk;$4jBg}Mb=hwf_w_{TMtgWv9KrS@kR zG@kqSq^D~|eRq`ic0SUl8a?}4|4@Y5XdS603DUeR%x+l!i6`xaiXdRpbV@dZ(tQEiZxL8xe>|-<}xrw17xB1j-j7);$tg3_vZa#czT59te*h z!Z3tQoR~&!{P>$d{{BvZHi}UDEkXYs+><__U;aI>8QsA0OC?&ZhyAxx?S3>{x|4OM zZ9Zg&H!coGP1Pd9d?;0Ur(S|AY%IY#a<*zLNOxc$TDh_zA))@2 zrr%gswU|^M-`-N`xl#oK@p6TXs8_5{toQ8Pg1`Gt5aaR9+RBps>L)*D*KS<#?FX4l zElU8Su(J6GLX7F17Fq8bn-%NhNI?l34*Y0l?phUQ^ZMS-l#TXwOE6cgUCg^6g?2uh zH{WSYG`l9HkbSLBj11VO>d97h+-eVFozM<4V44TtU*oj2fcRuG?HeivFq zS;v1O?rKG#k63Pm760G=%s&s-S9Pk0K$!>!zw5yk`o+7*`v+=`BQsyD?byo? zvUY!UPkbw(eigkaje~SlhQqwL^8T=#IGefEtGuauEyOsH2LN6#(G_NLZ5{v$Gmn^V zaKl8#5(Wm!40Y#Q+C3@={N_3N!Wa3?fg=cC-t+9R>}L7ptWOCXRXEbZ_YZ&bf3$LO z%R0pTcG)FrJ7M`sn|=O^&)D`Rh}|fp>aoB6H~v#gBw3$Wv2T9kMJpC6cJ|D9n_tY> z_{5~rYWKB#5Qrc5rH)#YcFS-X#Kq8TvMniwSx{J$@I58LKJQ2DVX3}(<%-W6v0?na z@TS3}@z!nG4?jL+fB&!juywUbqsQC1HOv=*Jc{5*#SSb8->pp?y2O~p94cG8x?fiv zHf(u)-=2AE$|lyN!HFTkG(aMd38Z5<1!PBAfGJZ4tY}JsCJ$j^fh3hbn+{x%)qdve zS!a|8VjM@hQk{OxA4AJ9rjmhh~EM6dHfwAq(>XXI4~vdd3z{){8u#%uCDP? z4u03X^SFGkKWA-}PXZw%h_Hi+s4gCO6a--PYsVM=M!)=f^?|b;PghSVkIGA0Sa}Fl zzEffR8OzN`j}%FRxbUN(V5mKLMxML6BTaw8ZMaeo@{je#8HzGYPR;oH?*xb6n?1OF z-G1rk|CwbnOMVg%^U>uES-n!gPzG39hm{%T!1ryqtJ4;xq%G!)vR2z{w{Fj;O@^&q z_ct8Sm)Cn4ql?}}kKW7ZMDN`YqD6}!j5_M52_lFtBszm=qmABsl&C>SVvOFizPo$Q z{sa5Y{pH^G>pkz>^C|bWcX)~X;A33(?M)xi@#C+BA!b!9N7!A4s@V9V850xJk^K>G z**t52B}{+wUE$tLwE}N!tjq=UJOpC>s>ooceTzEUy5y<@l;vyNXAQYY6$1 z@P@c6%6igP5__F!J1s{)eU-aPRXq$C16Hny?Gt;m(=Cst&+t%*?qwg8{yVCOSgg^8 z3ZHHrsaNmgI3#h%7YWZp9!L^Sd(f>zwBAEumK7vl2NB8Q)DhUJlsBujtF4mF-mT9Z z6L)iQysdIc!_kSRuup$c@cD-pyTUQ+H+g(QWUpk9RhD?HYp1prxZxZGKW?fMX^UIr zDLRFqUyo}b=6Nioy!ivk!l?%PmEG)0n3Vx^xCB@<(x$GNpJ&tDPwYCC4*ObHI5jB` zr|p8I%4h<(y^qQ4s7}9UW%ce+cwR?S5@$1>;=X3ojU6o8vPYbKPH%NgQ+(5_Uns+- z((z~w9gpv_Rr$l^aLF?!z09rB0p=nsY^=^~Xb8zGuxqioM6Euz8tlVku`g5ewcFE{ z%G$7@9J^RS=KFkUB|QB;9pHe{VuT7OH;?q!!j0%e3bOQ}cTw-zs}(5J0>rFseHjxN z7%k#ve6KuoxowY~nHms{hLfzk>2G1`B!My=t`@Zj=Z)~KN0r5GR2Ss5U|l;h zskhm`(LmNaHlh^Cw-Rs8cvgloxF9K6;)j7g#APd=v zj3mr2gcKeq%y7*K@xhd+eT)OZBM|*6n0&{0M>=UXyOaE2X%KhYCrA&Np<30LV?e^UeWWUdhbW_yadpCoLsS2v6< zs_PzYJ(XXhc_zl$(blw!Rb@2Fv07tn-u!Nfy3E&ZJ*6=Wv^d)-aut!R%Tb@-&jmCF)?Ne+j_aTB;7=nE4eE;zl>0Sog&5%k@uFi z#jd>jSBmWKbmc$khCbQvM5ei3pnoPPgkQi(n<(=#3FFcXF48Q68pmob8ou!Hk9jD_ zyzK){)Cd_qDP#RPz!Had%T*L=`iiisxn3wo=7yS&S~@@!K0a*d^3b+GjgBs&YU-!< z)_yW4+>Aj6=&`3YKZ}XJ#0#ic=;5Cw?OC1PfQyCHR@tfQ#G}E5i+w_=ad6>T0tP^M zr9=%A2$Rrh2l6P0zk_)rZC0J&GE!?LeDN;0R?WK0dv=sk`)i6@p_@EVeTRZqtU-h z2z-A8h4%5&ZV{G<;E0Qf?R3kS6A@?p$fvW{(KZ>Bqx*~h=y08yUO&>VWdB8{3jQst z-|sZihp%*{vQ%Q_-!JK3Zfuo(+|CihQT|YJFH`-S51H8&c0&XYh zV2z|ddSvf>KXIWFEr{1OZ(3OzLurH8C#Cx#)l%2*-h5|eg8b{jwC&FMZblMcPif;8N_agc!rjmQ5DUfXJ zohuU$C|_@)(h>1dBkyH-69?Z`ZvC5)_N^nh9UXnM*ga^me$~-rPE2xs)h$iu_{}z? z_E{s6w>!7hq%qpB{v@C%%bfdtAWu_ql!|bKIhN!shlzw`uilIZ82SjgQV4W`;fYt( zI7N_>Moop6Qa6cj@dSvJZ$mM7<`pT(gK0S8q{CQ_Fg5=5VDEh(_meyZvJM6upT$Zg zH5Dt?S}6D`_kT1Imaiq2$8}h>ANWEbT9acSczlFmaV~_|54jU6i@0LC6rE;8+jS25 z^lHwQdpWJQ9;(*_XL8MAqc$-!<*tH)%Yt?dY}bc;=N|zphgDCbD#_dF06%XNq%{wB z23(T`GCw)&@BAHB%o>-;c3~^&2>~`%oReWDD|2HsH8s6r4Sj)jNC#3}ptr z4hU#kcLyl=(YL1zD-Sh_V*SQgu4K`Gb#KI6=XX6^Uw1PB6ie zX0O2r!%S4pO|TRSK9ASrO2XOQ9W{FKlQgR7o*Cn`tU!LJ;Msc*wP^sB)9*ogWHR0C zn6Lv}%06N)2*a5eG)Wq_T6~b{O8e4 z-~#G#iX1Y5T%AB20OcKz2%|0>^R zMB7(u_$hJrUvFK${$2udFqEhQBkI$9wkOs5zq$dEK?5t9QucGy*|_DhTmnyQkDpcbWdhwm{7#-Tr-;`p z?Xt374pZN8@EDE&!dl`jx1)dGO=U?7hD>78i-# zh{}rmj8}GCo<)pDsftY(l8f?_g|b!5+BFJX_N_#m6W*&b5NJle)lf8ARYEIXv>7P) z)?73x)eRE%)PWd|pN-HdU(FUM>%rdOlg-Wg5Sr;26$_Y!sbH!Q%w-?bIM9^u&qQ+x zvVO*wE-*XA1T)JkB?l5T@5*%6C2B8!rQYqT;OR^V!Ffxpfggw`U*{ncOydi*CL~0U z&wcrfnX0~m9sK6M`%xd_?qRU%YBx(`@y3g5YAy15nksb0f1YmmeDmQOYNgMX;#5_- z!%L^>GG<|bu0DJQOfifKz2PHVgUh-t1qE2YFSiu{L9&Mum{N;VEPogxz{!HZUW zxH3MTbSWqcVq-aPCZG+@3J;LnVkM<i*J&&zu@?r8ua>X{nlQK!5^u#=PDZ zTjw`Sjmf~fj|*nA#JWV^5{R;}4wm1C>_H7G2NTiT3LyjSl+1A}ci-?!dboU1=S6?1 zhKF$Tx7n$_A!w0z&MWN{rK@mHi}m`0kMx900VwbW6)0M>W_!}%4|o8`c1%4e&^BHH zwDgc|=CpafJ;o|wkQle+PX_8?xZq%I?FY#B&scU!7hc!Ps)W1~qM-vJrUfP~E#*9o zEf1DVpRw7l)%U%%3ao1tvdXsyS9{qk7bVw87yacw{)5@-XBqd+Q{Sm998+U$5?rMYNk~um zEDnm{&Km_HqJ`)oUte6{2h*+=8bX2q;BE`l{a4?snsu>O>UxXaO=!96KBlO>9xSw{ z@ZbwbUf%1#jKW~&{; zV++cUKV_W`$3aw;zYjKGz**s1*F0{VcQKIB<|jBUB4K)QRcgCMfO-1$R*-PjgUSgW zv>I0HcuGtkdaT^n(xpDkB5CWBzPYW15cJD#i{)DQ+B?WoVN1XP|NQy0m!IEEtcV-> z;t^}$>ZpFr43*hgkSL^uh$!sa=x3|HM$~X#TTmb=3`6|7+w3w1?Tvgmihg^8o4tg) zAsgm8j5=LM2Mv`Qxb<`^gBst3Qk-PPr5emUfhMYnIW`lkjpD`)9zz0qP#g8D=j_sc zDobz?e1qpkv;z7OG-GHP-b+&Gt8*t_2;(DJ)t~wy`cjk zR|Np5>2Ui+i1%8KE3_Zg7yn?-mMJGfvqJTmAy%||CnzJq-3{v!np4-E78Shktr_La zVCyW4(LKVlWzFwJn8}tMQ}pkSVa|w4p0w`$&Ak)rWN+);p8b-oYj3UARijrWE9MZ8 z{j;)aK}uhS!m2UyU4eyURUTL?2kcT`WeOnR?K0-h6eOW{8khG9^=$I}aJ?pSKeGar zdV0DE{3a4M!>I_sI6Y+IV|+3;D4La5vRv{qX0EdSD@AojsEy?8#tvxoxem|rqVkSpD3o)fsL}`avg0;)4+|CD+Lch-^o>`XzB3J2u zf7pBx;r7efBYe{Og`FzQ2~;RZ`*mLGeQ#C!kFMS&wTk4o8Dtzho1}jy5-=l0K0DkK zC`P?fAiZJV=K0sr!v!#48$XX%wyoWITvd$b{IvN77-MJi+uE&`M+p z<`LOERml{LBO)86O8dDNYaMy#Ifut995BM`GM^$0PE{5#5YRkc*wnGMbtXV*cSy2~ zn!+yS_n8R_4Ta1!0%a|AcoSYEhYX!zt{WAWl0C|a?7Kw;iCfGT|De;3y40@=XPkAyV!s1pv2M68_`b?h=r!Q{t6 zs+MQQrb){W}k?yB=;QEDy^gkW+JEYUMKWu06rZ)sc-5B^(h^{1(E3dwOZmV zUUKbtw=KQr*wD1sYNnd8LkW$x|oA(g%psJ~_( zxPBNfTS}Rbu0;7u?yQeWn~F}24O5CMUl)t*OJK69>EeB;bB*Z8;2a`2V zVa}G>!eN)pSs|5V=!Y#gHjkJ1vnd-P3~bqM%podXd2~t-WW|y!-O|W!yg&-@4f^eW z27`@;hHATRMJMMSn53d8zvm+v_KXfInNbbL={p0u*g(aZ0>E%eUsjU4e;^OmnjGOCpB4TV3KXwrHU82{5IOb~b2xJZVo7fH>vQ3URKGUz zds>`>e!vd$su|F&0GNDq^^))-V2~akgx{WFzaH3HG`Q14cTk!fUm!Dw*6{YID+=C# zl=SlOUqf6sZ?taw>vQw=?0R`XMo6+Zsio`Z%i2eDPJxN@WvOOnOf97IZZuEva_a@I z4rb_O_&f_}X053KPls(oq&wk6M|QIFoH@R(paAY$^K;Cm-V$b}$*%F%_W_(4KOs)X z?O^e}XFG#^d1dWs`>Pf~K63AN9)~?q8D*BJk6K&;T*UM46 z^ZlhMZt>xmzp!JRJ$Gxr+`ogNJhxTHewqnTDMa*?T7Wvy`G9sE-m~cF4Ewe zp-`+jo}apQn4>IXgp8SO3|RB)*ztk;le+%LpTesU8AIrNY0-_9v#85<9w?lAHTzK_ zL!BynXC(9*T4cBa&wDgEo_n_b?d_ruz0Yd(@{D0qX2@ZiO?s}cFLx4v_p5Kavu4eW-g6cHoq(by*-vVwJny-3+5tzFr$I@1>d=yH7eLlGB%y>G#=i9%$)f$H40H z$3m#wE?%3Tz}DUTXY)4>KxgV5XB#!M*^4X-9g^#_<+;Vf`03W=IRhnkY)~T&!*6e$ z>^|_Df&Br@rRrkLhf_}pf??X@8?z`kd&MjX9C-myrxq_-G2DT;GYxYK(5aG$pK($k zp6_+vn!CFxbE(sIqlhG2N@v;JrR4C>HpBnT&Gdu+TMqixu+}in@yjozE_Gk9)zjd7 z&=&peFAS~qTMCu&AmHb4(vaYgSe61f0(Jm6E5v7csN%M`MM&}zLb{!ugVtL%?xeaM zS#A#^yt=PO(w4{SI=RF8+>{{(@uE}$Rg{{XZZ`xvTiEzJhF+u7-y?&>q=`@0Pu&6S z340qxZM_E?#S~aUZmpBj-pS9!4QX9Xo%%2;OR9tQ*YSbc$6Pj)#`gRz#^bBLK6T~RSb~{q z*mI{%i>M*el7y$v7u@|_2Z4Qo7OAEhpYsgGq~V2R)_gy^I%`IW$GX@DdK7vB)5Oa7 zxjfnf(P<(+KZ+z>Y{oXTCdA(Z6PTzN-u(sv{L&sy$he3~dz17l|Ng_CmOB1Oh87p8 zwN3BCA+LT2VL;AwiRADgT#_M#IeBi{^!kBkq;hrY@;tDdDW?K6TjN`NS%Te^-Ebd* z4T?jk8Zvg@5khInd=NaDc1YbxRLVt?WwBL6qCAW`4*JG}lsu_Atenr}IUhvDzEzkH z*Q6plgi!US5m7cbZFoeWB1tdO2o7SJ#{2q8d=iJl#{&XR6+b{*((oqhsj@x4GuQs4 z`EebvpZ`lkGp;M9v90)mNdx z4vjkSnxsim9~-%upfV3*<}c`dGJ;EnCn}ZD7Glj>J{wmAL3nxU_Pzcgh0$xQxx>YR z^OPX|lH*iKw4@voL)%168Kf+TvjTV45J@RS2GfL6+(jPfxHcf$+Y9AV6k z`DP!%r@a>6^7GTsnfNxO(&kFY-V;0a=Z$YDWrzOacFLIWs&K@e+n-0G-30~{1A>E@ z<{q4;Z0-pTg6*BO7~2U>qj`gLY_7JW7Si)uf)L)wVzr50Q1hz5Jaf z8EkUz^j6l@bVlFwahH3EkuC^gj)n=0MeWg?>A7E2%qj}6m7Q^OCNDv6NqkHqBFi5? zvRi>}S!Gi{gQvtEz5e{R#L}_1NfoPnb=59vfqI)PRkN)3HH~f-xR6CzqAs58g2h{R z$j=}=)eRm&ou)MvbF!V(h)i@HACapw?pCucS5i=FoTuK6oh$nOF|DhC0x9i0yP-z> zZF2w($6n8H19WD_ST67uGfJ>25^sJaqU{MNH<=@0?jF@tP*6`fAEJ}dGMEZx2IMbAk5f43;n|Cfv}=f1lXM^SFoRGJs#@o1~-tJSJHM*kN@f1$wu literal 0 HcmV?d00001 From 57a7051586f487f8b5dab568574ed7594c21f918 Mon Sep 17 00:00:00 2001 From: Danail Vasilev Date: Fri, 15 Apr 2016 18:12:35 +0300 Subject: [PATCH 2/5] completed rotator with buttons article;updated overview article --- .../how-to-configure-animations.md | 2 +- ...-configure-size-of-rotator-with-buttons.md | 76 +++++++++++++++--- .../images/inspect-button-size.png | Bin 0 -> 11711 bytes controls/rotator/getting-started/overview.md | 46 +++++++---- 4 files changed, 96 insertions(+), 28 deletions(-) create mode 100644 controls/rotator/getting-started/images/inspect-button-size.png diff --git a/controls/rotator/getting-started/how-to-configure-animations.md b/controls/rotator/getting-started/how-to-configure-animations.md index 29226c56ca..5a1a1450e2 100644 --- a/controls/rotator/getting-started/how-to-configure-animations.md +++ b/controls/rotator/getting-started/how-to-configure-animations.md @@ -5,7 +5,7 @@ description: How To Configure Animations slug: rotator/getting-started/how-to-configure-animations tags: how,to,configure,animations published: True -position: 1 +position: 2 --- # How To Configure Animations diff --git a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md index d10587a873..25bf0219c4 100644 --- a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md +++ b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md @@ -10,21 +10,78 @@ position: 1 # How To Configure Size of Rotator with Buttons -This help article illustrates how to properly configure the size of a rotator with buttons, so that the items are not cut/misaligned on shown/during animiation playing. +This help article illustrates how to properly configure the size of a rotator with buttons, so that the items are not cut or misaligned on initial showing or during animiation playing. - * [Configure Rotator without Buttons]({%slug rotator/getting-started/overview%}) + * [RadRotator Dimensions Configuration]({%slug rotator/getting-started/overview%}#radrotator-dimensions-configuration) * [Configure Rotator with Buttons](#configure-rotator-with-buttons) + + * [Example (RadRotatorSizeConfigurator Class Implementation)](#example-radrotatorsizeconfigurator-class-implementation) ## Configure Rotator with Buttons To configure a rotator with buttons you should do the following: - * Define the proper dimensions for the rotator, its items and item template as per the [Configure Rotator without Buttons]({%slug rotator/getting-started/overview%}) article. - * Determine the size of the buttons and just add it to the rotator's width. + * Define the proper dimensions for the rotator, its items and item template as per the [RadRotator Dimensions Configuration]({%slug rotator/getting-started/overview%}#radrotator-dimensions-configuration) article. + * Determine the size of the buttons and just add it to the rotator's width/height. ->caption **Figure 1**: A snapshot of a rotator with buttons that has 4 items. The code that creates it is available in **Example 1** and **Example 2**. +For example if we want to show four items(100x100 pixels) in a horizontal rotator with buttons for the black skin with Lightweight render mode we can follow the steps below: +* Set the single item's dimensions - `ItemWidth`="100" `ItemHeight`="100". +* Set the item template dimensions - .itemTemplate {width: 100px; height: 100px;}. +* Inspect the size of a single button - 30x30. + + ![rotator-size-buttons](images/inspect-button-size.png) + +* Calculate and set the rotator's width - (4 items * 100) + 2 buttons * 30 = 400 + 60 = 460px. + +>tip All of the explained logic stays the same if the `ScrollDirection`="Up, Down" is set, but it should be applied to the `Height` and `ItemHeight` properties, respectively. + +>caption **Figure 1**: A snapshot of a rotator with buttons that has 4 items. The code that creates it is available in **Example 1**. ![rotator-size-buttons](images/rotator-size-buttons.png) + +>caption **Example 1**: Configure rotator with button that will have 4 items. + +````CSS + +```` + +````ASPX + + + + + + + +```` + +You can find the list of the button sizes for the different skins in **Classic** and **Lightweight** render mode in **List 1** and **List 2**. The base is 14px font-size. + +>caption **List 1**: RadRotator button sizes for all the skins with "Lightweight" render mode. +* **Bootstrap** - 34px +* **Material** - 38px +* The rest skins - 30px + +>caption **List 2**: RadRotator button sizes for all the skins with "Classic" render mode. +* **Glow**, **Silk**, **MetroTouch**, **BlackMetroTouch** - 28px +* **Bootstrap** - 34px +* The rest skins - 20px + +## Example (RadRotatorSizeConfigurator Class Implementation) + +You can find below an example of a helper class (i.e., RadRotatorSizeConfigurator) that automatically calculates and set the rotator's width based on the desired number of items, the set skin and render mode. The class accepts three parameters - the instance of the rotator, the number of the visible items in the view port and the skin (optional). >caption **Example 1**: Configure rotator with buttons that has 4 items (100px x 100px) per view. The method that calculates the actual width is shown in **Example 2**. @@ -42,14 +99,14 @@ To configure a rotator with buttons you should do the following: ```` ````ASPX - - + ```` @@ -226,6 +283,5 @@ End Class # See Also - * [CoverFlow Mode Online Demo](http://demos.telerik.com/aspnet-ajax/rotator/examples/coverflowmode/defaultcs.aspx) - - * [RadRotator Types Online Demo](http://demos.telerik.com/aspnet-ajax/rotator/examples/rotatortypes/defaultcs.aspx) + * [RadRotator Dimensions Configuration]({%slug rotator/getting-started/overview%}#radrotator-dimensions-configuration) + diff --git a/controls/rotator/getting-started/images/inspect-button-size.png b/controls/rotator/getting-started/images/inspect-button-size.png new file mode 100644 index 0000000000000000000000000000000000000000..37c276b5e6d11b8ef308cd8353b7c5686e05e168 GIT binary patch literal 11711 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 z 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 literal 0 HcmV?d00001 diff --git a/controls/rotator/getting-started/overview.md b/controls/rotator/getting-started/overview.md index dafa4d6382..9578508d66 100644 --- a/controls/rotator/getting-started/overview.md +++ b/controls/rotator/getting-started/overview.md @@ -10,19 +10,15 @@ position: 0 # Getting Started Overview -**These steps should be followed in order to configure RadRotator control:** +This help article illustrates how to configure a RadRotator control. -**RadRotator** is a dynamic control that moves its content. To do that the control should be "aware" of its items size. The *ItemWidth* and *ItemHeight* properties are intended to provide this information to the control. If these properties are not set accordingly to the ItemTemplate's *size*, then the **RadRotator** may behave inconsistently in different browsers. +* [RadRotator Basic Configuration](#radrotator-basic-configuration) -* The items are not shown when the control is first loaded. After clicking the "Refresh" button the items become visible. - -* Rotator shows only a part of a loaded item (the items are not synchronized) - -* A gap occurs between the item like an empty item. +* [RadRotator Dimensions Configuration](#radrotator-dimensions-configuration) -* Rotator does not rotate its content +## RadRotator Basic Configuration -This example demonstrates the purpose of the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties: +To configure a rotator control you can follow the steps below: * Add the control on the page. You can simply drag and drop it from the Visual Studio's Toolbox. Please note that it requires an asp:ScriptManager to be declared on the page as well @@ -30,9 +26,24 @@ This example demonstrates the purpose of the [Width, ItemWidth, Height and ItemH * Declare the ItemTemplate's content -* It is recommended, if multiple elements are declared inside the rotator's ItemTemplate, to add a div that wraps the content in the ItemTemplate and set a class to that div. The *width* and *height* CSS properties applied through this class should be synchronized with the values set to the RadRotator's *ItemWidth* and *ItemHeight* properties. The margin and padding of the elements declared inside the ItemTemplate should be taken into account as well. +* It is recommended, if multiple elements are declared inside the rotator's ItemTemplate, to add a div that wraps the content in the ItemTemplate and set a class to that div. The *width* and *height* CSS properties applied through this class should be synchronized with the values set to the RadRotator's `ItemWidth` and `ItemHeight` properties. The margin and padding of the elements declared inside the `ItemTemplate` should be taken into account as well. + +* Set the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties. You can refer to the next section ([RadRotator Dimensions Configuration](#radrotator-dimensions-configuration)) for details on the matter. + + +## RadRotator Dimensions Configuration + +**RadRotator** is a dynamic control that moves its content. To do that the control should be "aware" of its items size. The `ItemWidth` and `ItemHeight` properties are intended to provide this information to the control. If these properties are not set accordingly to the ItemTemplate's *size*, then the **RadRotator** may behave inconsistently in different browsers. + +* The items are not shown when the control is first loaded. After clicking the "Refresh" button the items become visible. + +* Rotator shows only a part of a loaded item (the items are not synchronized). + +* A gap occurs between the item like an empty item. + +* Rotator does not rotate its content. -* Set the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties: +This example below demonstrates the purpose of the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties: ````XML important The built-in skin **MetroTouch** (introduced with the Q2 2012 release) requires some additional modifications of the values that should be set in the properties **Width** and **Height** of **RadRotator** : -* You should always add 14px to the **Width** and the **Height** of **RadRotator** . -* If the **RadRotator** is configured in a mode that uses control buttons (for example **Buttons** , **ButtonsOver** ) you should add 28px for every button (the buttons have dimensions: 28x28 pixels). In case the **RadRotator** has horizontal orientation the pixels are added to the **Width** property and in case the rotator control is oriented vertically, you should increase the **Height** property. +# See Also + * [How To Configure Size of Rotator with Buttons]({%slug rotator/getting-started/how-to-configure-size-of-rotator-with-buttons%}) + + * [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) From 55bcc7c13c3942970b093c28c46af3c11e5e2a8a Mon Sep 17 00:00:00 2001 From: Erik Ruthruff Date: Thu, 21 Apr 2016 18:07:54 -0500 Subject: [PATCH 3/5] Update how-to-configure-size-of-rotator-with-buttons.md Three comments for you to address, minor copy editing. I switched a bullet list to a numbered list because it reads like step-by-step directions. --- ...-configure-size-of-rotator-with-buttons.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md index 25bf0219c4..e44e3c4efc 100644 --- a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md +++ b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md @@ -8,9 +8,9 @@ published: True position: 1 --- -# How To Configure Size of Rotator with Buttons +# How to Configure Size of Rotator with Buttons -This help article illustrates how to properly configure the size of a rotator with buttons, so that the items are not cut or misaligned on initial showing or during animiation playing. +This help article illustrates how to properly configure the size of a rotator with buttons so that the items are not cut or misaligned on initial showing or during animiation playing. * [RadRotator Dimensions Configuration]({%slug rotator/getting-started/overview%}#radrotator-dimensions-configuration) @@ -20,18 +20,18 @@ This help article illustrates how to properly configure the size of a rotator wi ## Configure Rotator with Buttons -To configure a rotator with buttons you should do the following: +To configure a rotator with buttons, you should do the following: * Define the proper dimensions for the rotator, its items and item template as per the [RadRotator Dimensions Configuration]({%slug rotator/getting-started/overview%}#radrotator-dimensions-configuration) article. * Determine the size of the buttons and just add it to the rotator's width/height. -For example if we want to show four items(100x100 pixels) in a horizontal rotator with buttons for the black skin with Lightweight render mode we can follow the steps below: -* Set the single item's dimensions - `ItemWidth`="100" `ItemHeight`="100". -* Set the item template dimensions - .itemTemplate {width: 100px; height: 100px;}. -* Inspect the size of a single button - 30x30. +For example, if we want to show four items (100x100 pixels) in a horizontal rotator with buttons for the black skin with Lightweight render mode, we can follow the steps below: +1. Set the single item's dimensions - `ItemWidth`="100" `ItemHeight`="100". +1. Set the item template dimensions - .itemTemplate {width: 100px; height: 100px;}. +1. Inspect the size of a single button - 30x30. ![rotator-size-buttons](images/inspect-button-size.png) -* Calculate and set the rotator's width - (4 items * 100) + 2 buttons * 30 = 400 + 60 = 460px. +1. Calculate and set the rotator's width - (4 items * 100) + 2 buttons * 30 = 400 + 60 = 460px. >tip All of the explained logic stays the same if the `ScrollDirection`="Up, Down" is set, but it should be applied to the `Height` and `ItemHeight` properties, respectively. @@ -73,16 +73,16 @@ You can find the list of the button sizes for the different skins in **Classic** * **Bootstrap** - 34px * **Material** - 38px * The rest skins - 30px - + >caption **List 2**: RadRotator button sizes for all the skins with "Classic" render mode. * **Glow**, **Silk**, **MetroTouch**, **BlackMetroTouch** - 28px * **Bootstrap** - 34px * The rest skins - 20px - + ## Example (RadRotatorSizeConfigurator Class Implementation) -You can find below an example of a helper class (i.e., RadRotatorSizeConfigurator) that automatically calculates and set the rotator's width based on the desired number of items, the set skin and render mode. The class accepts three parameters - the instance of the rotator, the number of the visible items in the view port and the skin (optional). - +In the example below you can see a helper class (i.e., RadRotatorSizeConfigurator) that automatically calculates and sets the rotator's width based on the desired number of items, the set skin and render mode. The class accepts three parameters: the instance of the rotator, the number of the visible items in the view port and the skin (optional). + >caption **Example 1**: Configure rotator with buttons that has 4 items (100px x 100px) per view. The method that calculates the actual width is shown in **Example 2**. ````CSS From 6c3508e0c669901a03ea1a3d483b7ce80eeb9b6e Mon Sep 17 00:00:00 2001 From: Danail Vasilev Date: Thu, 28 Apr 2016 19:00:00 +0300 Subject: [PATCH 4/5] Update overview.md (#142) Copy edits only. No comments to address. --- controls/rotator/getting-started/overview.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/controls/rotator/getting-started/overview.md b/controls/rotator/getting-started/overview.md index 9578508d66..f62ae0fc7b 100644 --- a/controls/rotator/getting-started/overview.md +++ b/controls/rotator/getting-started/overview.md @@ -20,20 +20,20 @@ This help article illustrates how to configure a RadRotator control. To configure a rotator control you can follow the steps below: -* Add the control on the page. You can simply drag and drop it from the Visual Studio's Toolbox. Please note that it requires an asp:ScriptManager to be declared on the page as well +* Add the control on the page. You can simply drag and drop it from the Visual Studio Toolbox. Please note that it requires an asp:ScriptManager to be declared on the page as well. -* Add a data source control and set the RadRotator's DataSourceID property to its ID +* Add a data source control and set the RadRotator's DataSourceID property to its ID. -* Declare the ItemTemplate's content +* Declare the ItemTemplate's content. -* It is recommended, if multiple elements are declared inside the rotator's ItemTemplate, to add a div that wraps the content in the ItemTemplate and set a class to that div. The *width* and *height* CSS properties applied through this class should be synchronized with the values set to the RadRotator's `ItemWidth` and `ItemHeight` properties. The margin and padding of the elements declared inside the `ItemTemplate` should be taken into account as well. +* It is recommended that if you want to declare multiple elements inside the rotator's ItemTemplate, you should add a div that wraps the content in the ItemTemplate and set a class to that div. The *width* and *height* CSS properties applied through this class should be synchronized with the values set to the RadRotator's `ItemWidth` and `ItemHeight` properties. The margin and padding of the elements declared inside the `ItemTemplate` should be taken into account as well. -* Set the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties. You can refer to the next section ([RadRotator Dimensions Configuration](#radrotator-dimensions-configuration)) for details on the matter. +* Set the [Width, ItemWidth, Height and ItemHeight]({%slug rotator/server-side-programming/overview%}) properties. You can refer to the next section, ([RadRotator Dimensions Configuration](#radrotator-dimensions-configuration)), for details on the matter. ## RadRotator Dimensions Configuration -**RadRotator** is a dynamic control that moves its content. To do that the control should be "aware" of its items size. The `ItemWidth` and `ItemHeight` properties are intended to provide this information to the control. If these properties are not set accordingly to the ItemTemplate's *size*, then the **RadRotator** may behave inconsistently in different browsers. +**RadRotator** is a dynamic control that moves its content. To do that the control should be "aware" of its item's size. The `ItemWidth` and `ItemHeight` properties are intended to provide this information to the control. If these properties are not set accordingly in the ItemTemplate's *size*, then the **RadRotator** may behave inconsistently in different browsers. * The items are not shown when the control is first loaded. After clicking the "Refresh" button the items become visible. @@ -65,11 +65,11 @@ This example below demonstrates the purpose of the [Width, ItemWidth, Height and } ```` -After implementing the above steps two items will be shown in the **RadRotator**'s viewport, because of the `Width="200"` and `ItemWidth="100"` properties. +After implementing the above steps, two items will be shown in the **RadRotator**'s viewport, because of the `Width="200"` and `ItemWidth="100"` properties. ![](images/rotator-rotatorconfig.jpg) -In case that the requirement is to show 3 items in the viewport, then the `Width` property should be changed to "300". Also, if one of the **RadRotator**'s buttons' type is used, then the buttons' size should be added to the rotator's `Width` property. For example if the button is 30x30 then the width should be 360. More information on the matter is available in the [How To Configure Size of Rotator with Buttons]({%slug rotator/getting-started/how-to-configure-size-of-rotator-with-buttons%}) article. +In the case that the requirement is to show 3 items in the viewport, then the `Width` property should be changed to "300". Also, if one of the **RadRotator**'s buttons' type is used, then the buttons' size should be added to the rotator's `Width` property. For example if the button is 30x30 then the width should be 360. You can find more information in the article, [How To Configure Size of Rotator with Buttons]({%slug rotator/getting-started/how-to-configure-size-of-rotator-with-buttons%}). All of the explained logic stays the same if the `ScrollDirection="Up, Down"` is set, but it should be applied to the `Height` and `ItemHeight` properties, respectively. From 3eda5ed9cfb6ea59b0b7fe621212c6615b2ec808 Mon Sep 17 00:00:00 2001 From: Danail Vasilev Date: Thu, 28 Apr 2016 19:12:11 +0300 Subject: [PATCH 5/5] Applied editor corrections --- ...ow-to-configure-size-of-rotator-with-buttons.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md index e44e3c4efc..872c104901 100644 --- a/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md +++ b/controls/rotator/getting-started/how-to-configure-size-of-rotator-with-buttons.md @@ -72,18 +72,18 @@ You can find the list of the button sizes for the different skins in **Classic** >caption **List 1**: RadRotator button sizes for all the skins with "Lightweight" render mode. * **Bootstrap** - 34px * **Material** - 38px -* The rest skins - 30px - +* The rest of the skins - 30px + >caption **List 2**: RadRotator button sizes for all the skins with "Classic" render mode. * **Glow**, **Silk**, **MetroTouch**, **BlackMetroTouch** - 28px * **Bootstrap** - 34px -* The rest skins - 20px - +* The rest of the skins - 20px + ## Example (RadRotatorSizeConfigurator Class Implementation) In the example below you can see a helper class (i.e., RadRotatorSizeConfigurator) that automatically calculates and sets the rotator's width based on the desired number of items, the set skin and render mode. The class accepts three parameters: the instance of the rotator, the number of the visible items in the view port and the skin (optional). - ->caption **Example 1**: Configure rotator with buttons that has 4 items (100px x 100px) per view. The method that calculates the actual width is shown in **Example 2**. + +>caption **Example 2**: Configure rotator with buttons that has 4 items (100px x 100px) per view. The method that calculates the actual width is shown in **Example 3**. ````CSS