From dd7b28e6b42693f28115ed299c79b194961f2df9 Mon Sep 17 00:00:00 2001 From: "kamil.kalisz" Date: Tue, 14 Jul 2020 21:24:46 +0200 Subject: [PATCH] custom fonts support draft --- sample/mpp-library/src/commonMain/kotlin/App.kt | 6 ++++-- .../MR/fonts/GrenzeGotisch-Regular.ttf | Bin 0 -> 91596 bytes .../moko/widgets/flat/FlatInputViewFactory.kt | 10 +++------- .../moko/widgets/core/style/TextViewExt.kt | 1 + .../moko/widgets/core/style/view/TextStyle.kt | 5 ++++- .../moko/widgets/core/utils/TextStyleExt.kt | 6 +++++- 6 files changed, 17 insertions(+), 11 deletions(-) create mode 100644 sample/mpp-library/src/commonMain/resources/MR/fonts/GrenzeGotisch-Regular.ttf diff --git a/sample/mpp-library/src/commonMain/kotlin/App.kt b/sample/mpp-library/src/commonMain/kotlin/App.kt index cd1cf0e1..a914a2c6 100644 --- a/sample/mpp-library/src/commonMain/kotlin/App.kt +++ b/sample/mpp-library/src/commonMain/kotlin/App.kt @@ -283,7 +283,8 @@ class App() : BaseApplication() { factory[LoginScreen.Id.EmailInputId] = FlatInputViewFactory( textStyle = TextStyle( size = 16, - color = Color(0x16171AFF) + color = Color(0x16171AFF), + font = MR.fonts.GrenzeGotisch.regular ), backgroundColor = Color(0xF5F5F5FF) ) @@ -310,7 +311,8 @@ class App() : BaseApplication() { factory[InputWidget.DefaultCategory] = SystemInputViewFactory( textStyle = TextStyle( size = 16, - color = Color(0x16171AFF) + color = Color(0x16171AFF), + font = MR.fonts.GrenzeGotisch.regular ) ) factory[TabsWidget.DefaultCategory] = SystemTabsViewFactory( diff --git a/sample/mpp-library/src/commonMain/resources/MR/fonts/GrenzeGotisch-Regular.ttf b/sample/mpp-library/src/commonMain/resources/MR/fonts/GrenzeGotisch-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..3552e82f956b79a794db5d8d30ed3552b688f11e GIT binary patch literal 91596 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�cW7>L3{6fcbl zo8VZi+gNji(gDy6<64@MF6RkWF*bB#1gmC@t_8OuoPL@I=y63TT^~@I20tWJZ#m#(RK4f<1<9)VaJ7|a5$qZ$e`J9;^O|uY18pV*> zvOIp2_S;$TqReU(D=IkAC`#0V5w!tAG>;ASk)eE@qRtMmhciD2(4h7hnN2DV6clKH z|2$DppHa-GkNE5u?`g-_u_3~f`CWkRw0UIb3_B}Cb1Igz10-i2#cAh+=uK=B?J06| zVHCHS$My-bFN*8SBl>(ipCI|%9|gsi!|=`aQG9~o16jFQ8i{%!lkS>}|FS>eK81 zr+G3+!Beq!vI~6X8Rm0$IoQc8=(~exu6?{d)`Gn|%sTLP_0|JXH;C^R4)KQABsjTI zwpex^Y>J(S$88npttae0%x_<|wP3YY+x@^y#cUrCQ%QR$c&U`_pX&oyjbl~hIKHSd zn>qdU!s=F0#J$TEVU?j`Dy*OV9F7sXY8HmYpuRG_j zfYN-=?E*iEtt!q}f!W;TJ_k)%=~Z*S8U*KN5SPUuDSL4Ks(Z_A!MarnTxAXCYe06k zcoy7cXKx?A_4PE;ZAIR{gY|US!ulul8TStKS@$mVIcy6%kfocTFSyOn7u^=0-u zJCu8~g9BO=x-AA^nz2iEvE*w$%%`vta3Nt+u_fSvTfB*p?-pDfOylj$SXSVY;J+U* z#oYfT)__YXn<_A}+f0A3sfUsMU<6GC~wFN>(v4_QY!9L#!-YvHtY1 z{Idpokb2hY9)<37i;=OCD=e)vKe|}%FDY5tY(7lnj)8o=L;4;B?e>faM>QDH zRc1A-!Zl_sYtyT=ubM-yEiwC$(`n>zg zBX%f*7|EG%h)p^v!?X3+U*T4P^32N`$WQqMVa2}(=`45KixK=B^DAsky=dO2h4-U% zH`Ai$gQ9=KZl~S$23y_)7W@)=@OkvUOOPN_d|t=SEkMQvq|5XjZ^3_OiU)S=h!d`K zaaBjoox|1VNJ6=k2AXuTwIhe+DB&qdzS!Pjcgo^}RIp}Ml3dW<5iV(@lC#@7yMib0 z?~!Sa?EP?E*wzs$*B2*;6*?>)SbTW@negy=TIExQC z`V;yd_An&g#@7(rGxu+3S3wOoadvlU7v5o7&!t`H^NY{dauq(obo(<%KZe~bWXDR)* zlyPn33d>r=7By(e8nEf~@{GwPJg!>!Qc=#L?p!VJg8Y6=b`~w8cjw%-eqV+~QN70~ zy)x(>V{Z^znd97#W4IU@s1vcL+r>XLPt`pdg$XSo*D6E}53C7M)zNIRk)XW$oTrKb4F7aCp>q1%UiR1_8LaMl~ zTEmS#Lm5BQ@)VeNiltkNU4*-^Vkb83?q^2&AU5qDR@-)geF1q|_EPo2@29Qx$Fd`* zA$>$TIPNFk*yG?oEIqN)`kBjo#aVuPs{)1d{9-J-@Xm)>dYU}R8$BoUYLk|Ewdu;d zdbQ~$GitM+%&1LonNd?ZQhHKLt8?Xa8xl+XG1x>RztTF)wYl8MH|}HlhS2C6!V=ac zS(Cw%L3!>PsfW&tHV6HWa+%Pa8O>QrbJkgN)Q|LH+Zi@ z-|=39zU93E-KxBA21m@0y$u@Hk_$^}eUm!24(k(}ye$!lui&_p{ge^drV8#9OK|0V zJUe8>HlXt!;|V(N(Fg})5F9b(C{hmkBRCkZNv|qa%Grik8T2ilnd6@Mm=cYlMG%wG z7|H)%XayU27o4xf()SIEoQYLn>bu`x1mTX7uA%q9h77Bgz^^caXUjxKiK(^p1V8t=#7?vj8W2SQlDL%!*%AX?}=^yzuOg4>uABgnA%1A zhWEy%i^a2c`(qv2I{Sup$nGw*Z5CR<+QVHkwREL>WRV>*YDW>ZVJ%hS0d}C)>fX~Q c`tI>l-Fw=hwZ)(5h>ddp=YEV1zf`3E05C!m&Hw-a literal 0 HcmV?d00001 diff --git a/widgets-flat/src/iosMain/kotlin/dev/icerock/moko/widgets/flat/FlatInputViewFactory.kt b/widgets-flat/src/iosMain/kotlin/dev/icerock/moko/widgets/flat/FlatInputViewFactory.kt index ddc60d0f..15d0a572 100644 --- a/widgets-flat/src/iosMain/kotlin/dev/icerock/moko/widgets/flat/FlatInputViewFactory.kt +++ b/widgets-flat/src/iosMain/kotlin/dev/icerock/moko/widgets/flat/FlatInputViewFactory.kt @@ -14,6 +14,7 @@ import dev.icerock.moko.widgets.core.ViewFactoryContext import dev.icerock.moko.widgets.core.style.view.MarginValues import dev.icerock.moko.widgets.core.style.view.TextStyle import dev.icerock.moko.widgets.core.style.view.WidgetSize +import dev.icerock.moko.widgets.core.utils.applyTextStyleIfNeeded import dev.icerock.moko.widgets.core.utils.bind import dev.icerock.moko.widgets.core.utils.setEventHandler import kotlinx.cinterop.readValue @@ -36,13 +37,8 @@ actual class FlatInputViewFactory actual constructor( val flatInputField = FlatInputField(frame = CGRectZero.readValue()) val textField = flatInputField.textField()!! - textStyle?.color?.also { - textField.textColor = it.toUIColor() - } - textStyle?.size?.also { - textField.font = UIFont.systemFontOfSize(it.toDouble()) - } - + textField.applyTextStyleIfNeeded(textStyle) + widget.field.data.bind { if (textField.text == it) return@bind textField.text = it diff --git a/widgets/src/androidMain/kotlin/dev/icerock/moko/widgets/core/style/TextViewExt.kt b/widgets/src/androidMain/kotlin/dev/icerock/moko/widgets/core/style/TextViewExt.kt index 2878c85d..02398867 100644 --- a/widgets/src/androidMain/kotlin/dev/icerock/moko/widgets/core/style/TextViewExt.kt +++ b/widgets/src/androidMain/kotlin/dev/icerock/moko/widgets/core/style/TextViewExt.kt @@ -30,5 +30,6 @@ fun TextView.applyCommonTextStyleIfNeeded(textStyle: TextStyle<*>?) { if (textStyle == null) return textStyle.size?.also { textSize = it.toFloat() } + textStyle.font?.also { this.setTypeface( it.getTypeface(context)) } textStyle.fontStyle?.also { applyFontStyle(it) } } diff --git a/widgets/src/commonMain/kotlin/dev/icerock/moko/widgets/core/style/view/TextStyle.kt b/widgets/src/commonMain/kotlin/dev/icerock/moko/widgets/core/style/view/TextStyle.kt index 4e0e1c5e..f3797570 100644 --- a/widgets/src/commonMain/kotlin/dev/icerock/moko/widgets/core/style/view/TextStyle.kt +++ b/widgets/src/commonMain/kotlin/dev/icerock/moko/widgets/core/style/view/TextStyle.kt @@ -4,8 +4,11 @@ package dev.icerock.moko.widgets.core.style.view +import dev.icerock.moko.resources.FontResource + data class TextStyle( val size: Int? = null, val color: C? = null, - val fontStyle: FontStyle? = null + val fontStyle: FontStyle? = null, + val font: FontResource? = null ) diff --git a/widgets/src/iosMain/kotlin/dev/icerock/moko/widgets/core/utils/TextStyleExt.kt b/widgets/src/iosMain/kotlin/dev/icerock/moko/widgets/core/utils/TextStyleExt.kt index 0ee5b0fa..2ffb3c3b 100644 --- a/widgets/src/iosMain/kotlin/dev/icerock/moko/widgets/core/utils/TextStyleExt.kt +++ b/widgets/src/iosMain/kotlin/dev/icerock/moko/widgets/core/utils/TextStyleExt.kt @@ -27,7 +27,11 @@ import platform.UIKit.UITextView fun TextStyle<*>.toUIFont(defaultFontSize: Double = 17.0): UIFont? { val styleSize = size?.toDouble() val fontStyle = fontStyle - if (fontStyle != null || styleSize != null) { + if(font != null){ + val fontSize = styleSize ?: defaultFontSize + return font.uiFont(fontSize) + } + else if (fontStyle != null || styleSize != null) { val fontSize = styleSize ?: defaultFontSize return when (fontStyle) { FontStyle.BOLD -> UIFont.boldSystemFontOfSize(fontSize = fontSize)