Basic command prompt functionality

This commit is contained in:
Ian Jauslin 2021-10-02 17:38:26 -04:00
parent 7269e6e361
commit 8d483d055b
4 changed files with 38 additions and 15 deletions

View File

@ -1,11 +0,0 @@
from kivy.uix.label import Label
class Command_box(Label):
def __init__(self,app,**kwargs):
# app is used to share information between widgets
self.app=app
# init Label
super(Command_box,self).__init__(**kwargs)

30
command_prompt.py Normal file
View File

@ -0,0 +1,30 @@
from kivy.uix.label import Label
from kivy.core.window import Window
class Command_prompt(Label):
def __init__(self,app,**kwargs):
# app is used to share information between widgets
self.app=app
# insert mode
self.insert=False
# init Label
super(Command_prompt,self).__init__(**kwargs)
self.keyboard = Window.request_keyboard(None,self,"text")
self.keyboard.bind(on_textinput=self.on_textinput,on_key_down=self.on_key_down)
def on_key_down(self, keyboard, keycode, text, modifiers):
if self.insert:
if keycode[1]=="enter":
self.insert=False
self.text=""
def on_textinput(self,window,text):
if self.insert:
self.text+=text
elif text==':':
self.text+=text
self.insert=True

4
jam.kv
View File

@ -12,9 +12,10 @@
text_size: self.size
markup: True
color: (0,0,0,1)
font_name: "RobotoMono-Regular"
<Command_box>:
<Command_prompt>:
canvas.before:
Color:
rgb: 0,0,0
@ -24,4 +25,5 @@
size_hint_y: None
height: 20
text_size: self.size
font_name: "RobotoMono-Regular"

View File

@ -5,7 +5,7 @@ from kivy.config import Config
from cross import Cross,Cross_painter
from status_bar import Status_bar
from command_box import Command_box
from command_prompt import Command_prompt
# App class
class Jam_app(App):
@ -14,12 +14,14 @@ class Jam_app(App):
def build(self):
layout=BoxLayout(orientation="vertical")
self.painter=Cross_painter(self)
self.status_bar=Status_bar(self)
self.command_box=Command_box(self)
self.command_prompt=Command_prompt(self)
layout.add_widget(self.painter)
layout.add_widget(self.status_bar)
layout.add_widget(self.command_box)
layout.add_widget(self.command_prompt)
return layout