from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.textinput import TextInput
from kivy.uix.widget import Widget
from kivy.properties import StringProperty,ObjectProperty
from kivy.core.window import Window, Keyboard
class textInsert(FloatLayout):
text = StringProperty()
def __init__(self, **kwargs):
super(textInsert, self).__init__(**kwargs)
self.custom_insteresting_keys=["s","y","q","w"] ## replace with dic later
self.textin=TextInput(
multiline=True,
focus=True,
cursor=True
)
self.textin.bind(text=self.onText)
self.add_widget(self.textin,0)
########################################
keyboard = Window.request_keyboard(self._keyboard_released, self)
self._keyboard = keyboard
keyboard.bind(on_key_down=self._keyboard_on_key_down)
########################################
def _keyboard_released(self):self.focus = False
def _keyboard_on_key_down(self, window, keycode, text, modifiers):
print "KEYDOWN", window, keycode, text, modifiers
is_shortcut = (modifiers == ['ctrl'])
if keycode[1] in list(self.custom_insteresting_keys) and is_shortcut:
print "CUSTOM SHORT CUT HAS BEEN MET"
return True
def onText(self,instance,value):
print "ON TEXT", value
'''
#print self.textin._key_down(self)
if len(value) == 3:
self.textin.select_text(
(self.textin.cursor_index()-len(value)),
self.textin.cursor
)
self.textin.delete_selection()'''
class ROOT(App):
def build(self):
return textInsert()
if __name__ == '__main__':ROOT().run()