diff --git a/examples/widgets/unicode_textinput.py b/examples/widgets/unicode_textinput.py new file mode 100644 index 000000000..4ea6b930d --- /dev/null +++ b/examples/widgets/unicode_textinput.py @@ -0,0 +1,191 @@ +# -*- coding: utf-8 -*- + +from kivy.app import App +from kivy.lang import Builder +from kivy.properties import StringProperty, ObjectProperty +from kivy.uix.boxlayout import BoxLayout +from kivy.uix.floatlayout import FloatLayout +from kivy.uix.popup import Popup + + +Builder.load_string( +''' +#: import resource_find kivy.resources +#: import utils kivy +#: import os os + + orientation: 'vertical' + txt_input: unicode_txt + ScrollView: + size_hint: 1, .9 + TextInput: + id: unicode_txt + text: root.unicode_string + size_hint: 1, None + height: 1364 + on_touch_down: + print (self.line_height-1+self.padding_y)*(len(self._lines)-1) + BoxLayout: + size_hint: 1, .05 + Label: + text: 'current font: ' + unicode_txt.font_name + Button: + size_hint: .15, 1 + text: 'change Font ...' + valign: 'middle' + halign: 'center' + text_size: self.size + on_release: root.show_load() + +: + BoxLayout: + size: root.size + pos: root.pos + BoxLayout: + orientation: "vertical" + size_hint: .2, 1 + Button: + size_hint: 1, .2 + text: 'User font directory\\n' + valign: 'middle' + halign: 'center' + text_size: self.size + on_release: + _platform = utils.platform() + filechooser.path = os.path.expanduser('~/.fonts')\ +if _platform == 'linux' else '/system/fonts' if _platform == 'android' else os.path.expanduser('~/Library/Fonts')\ +if _platform == 'macosx' else os.environ['WINDIR'] + '\Fonts\' + Button: + size_hint: 1, .2 + text: 'System Font directory' + valign: 'middle' + halign: 'center' + text_size: self.size + on_release: + _platform = utils.platform() + filechooser.path = '/usr/share/fonts' \ +if _platform == 'linux' else '/system/fonts' if _platform == 'android' else os.path.expanduser\ +('/System/Library/Fonts') if _platform == 'macosx' else os.environ['WINDIR']\ ++ "\Fonts\" + Label: + text: 'BookMarks' + BoxLayout: + orientation: "vertical" + FileChooserListView: + id: filechooser + filters: ['*.ttf'] + BoxLayout: + size_hint_y: None + height: 30 + Button: + text: "cancel" + on_release: root.cancel() + Button: + text: "load" + on_release: filechooser.selection != [] and root.load\ +(filechooser.path, filechooser.selection) +''') + + +class LoadDialog(FloatLayout): + load = ObjectProperty(None) + cancel = ObjectProperty(None) + + +class Unicode_TextInput(BoxLayout): + + txt_input = ObjectProperty(None) + unicode_string = StringProperty(u'''Latin-1 suppliment: éé çç ßß + +List of major languages taken from Google Translate +____________________________________________________ +Try changing the font to see if the font can render the glyphs you need in your application. +Scroll to see all languages in list + +Basic Latin: The quick brown fox jumps over the lazy old dog. +Albanian: Kafe të shpejtë dhelpra hedhje mbi qen lazy vjetër. +الثعلب البني السريع يقفز فوق الكلب القديمة البطيئة. :Arabic +Africans: Die vinnige bruin jakkals spring oor die lui hond. +Armenian: Արագ Brown Fox jumps ավելի ծույլ հին շունը. +Azerbaijani: Tez qonur tülkü də tənbəl yaşlı it üzərində atlamalar. +Basque: Azkar marroia fox alferrak txakur zaharra baino gehiago jauzi. +Belarusian: Хуткі карычневы ліс пераскоквае праз гультаяваты стары сабака. +Bengali: দ্রুত বাদামী শিয়াল অলস পুরানো কুকুর বেশি +Bulgarian: Бързата кафява лисица скача над мързелив куче. +Chinese Simpl: 敏捷的棕色狐狸跳过懒惰的老狗。 +Catalan: La cigonya tocava el saxofon en el vell gos mandrós. +Croation: Brzo smeđa lisica skoči preko lijen stari pas. +Czech: Rychlá hnědá liška skáče přes líného starého psa. +Danish: Den hurtige brune ræv hopper over den dovne gamle hund. +Dutch: De snelle bruine vos springt over de luie oude hond. +Estonian: Kiire pruun rebane hüppab üle laisa vana koer. +Filipino: Ang mabilis na brown soro jumps sa ang tamad lumang aso. +Finnish: Nopea ruskea kettu hyppää yli laiska vanha koira. +French: Le renard brun rapide saute par dessus le chien paresseux vieux. +Galician: A lixeira raposo marrón ataca o can preguiceiro de idade. +Gregorian: სწრაფი ყავისფერი მელა jumps გამო ზარმაცი წლის ძაღლი. +German: Der schnelle braune Fuchs springt über den faulen alten Hund. +Greek: Η γρήγορη καφέ αλεπού πηδάει πάνω από το τεμπέλικο γέρικο σκυλί. +Gujrati: આ ઝડપી ભુરો શિયાળ તે બેકાર જૂના કૂતરા પર કૂદકા. +Hiation Creole: Rapid mawon Rena a so sou chen an parese fin vye granmoun. +Hebrew: השועל החום הזריז קופץ על הכלב הישן עצלן. +Hindi: तेज भूरे रंग की लोमड़ी आलसी बूढ़े कुत्ते के उपर से कूदती है ॥ +Hungarian: A gyors barna róka átugorja a lusta vén kutya. +Icelandic: The fljótur Brown refur stökk yfir latur gamall hundur. +Indonesian Cepat rubah cokelat melompat atas anjing tua malas. +Irish: An sionnach donn tapaidh jumps thar an madra leisciúil d\'aois. +Italian: The quick brown fox salta sul cane pigro vecchio. +Japanese: 速い茶色のキツネは、のろまな古いイヌに飛びかかった。 +Kannada: ತ್ವರಿತ ಕಂದು ನರಿ ಆಲೂಗಡ್ಡೆ ಹಳೆಯ ಶ್ವಾನ ಮೇಲೆ ಜಿಗಿತಗಳು. +Korean: 무궁화 게으른 옛 피었습니다. +Latin: Vivamus adipiscing orci et rutrum tincidunt super vetus canis. +Latvian: Ātra brūna lapsa lec pāri slinkam vecs suns. +Lithuanian: Greita ruda lapė šokinėja per tingus senas šuo. +Macedonian: Брзата кафена лисица скокови над мрзливи стариот пес. +Malay: Fox coklat cepat melompat atas anjing lama malas. +Maltese: Il-volpi kannella malajr jumps fuq il-kelb qodma għażżien. +Norweigian: Den raske brune reven hopper over den late gamle hunden. +Persian: روباه قهوه ای سریع روی سگ تنبل قدیمی میپرد. +Polish: Szybki brązowy lis przeskoczył nad leniwym psem życia. +Portugese: A ligeira raposa marrom ataca o cão preguiçoso de idade. +Romanian: Rapidă maro vulpea sare peste cainele lenes vechi. +Russioan: Быстрый коричневый лис перепрыгивает через ленивый старый пес. +Serniam: Брза смеђа лисица прескаче лењог пса старог. +Slovak: Rýchla hnedá líška skáče cez lenivého starého psa. +Slovenian: Kožuščku hudobnega nad leni starega psa. +Spanish: La cigüeña tocaba el saxofón en el viejo perro perezoso. +Swahili: Haraka brown fox anaruka juu ya mbwa wavivu zamani. +Swedish: Den snabba bruna räven hoppar över den lata gammal hund. +Tamil: விரைவான பிரவுன் ஃபாக்ஸ் சோம்பேறி பழைய நாய் மீது தொடரப்படுகிறது +Telugu: శీఘ్ర బ్రౌన్ ఫాక్స్ సోమరితనం పాత కుక్క కంటే హెచ్చుతగ్గుల. +Thai: สีน้ำตาลอย่างรวดเร็วจิ้งจอกกระโดดมากกว่าสุนัขเก่าที่ขี้เกียจ +Turkish: Hızlı kahverengi tilki tembel köpeğin üstünden atlar. +Ukranian: Швидкий коричневий лис перестрибує через лінивий старий пес. +Urdu: فوری بھوری لومڑی سست بوڑھے کتے پر کودتا. +Vietnamese: Các con cáo nâu nhanh chóng nhảy qua con chó lười biếng cũ. +Welsh: Mae\'r cyflym frown llwynog neidio dros y ci hen ddiog. +Yiddish: דער גיך ברוין פוקס דזשאַמפּס איבער די פויל אַלט הונט.''') + + def dismiss_popup(self): + self._popup.dismiss() + + def load(self, _path, _fname): + self.txt_input.font_name = _fname[0] + self._popup.dismiss() + + def show_load(self): + content = LoadDialog(load=self.load, cancel=self.dismiss_popup) + self._popup = Popup(title="load file", content=content, \ + size_hint=(0.9, 0.9)) + self._popup.open() + + +class unicode_app(App): + + def build(self): + return Unicode_TextInput() + + +if __name__ == '__main__': + + unicode_app().run()