org-editor/main.py

61 lines
1.9 KiB
Python
Raw Normal View History

2021-03-20 18:44:01 +00:00
from kivy.app import App
from kivy.core.window import Window
from kivy.modules import inspector
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.gridlayout import GridLayout
from kivy.uix.scrollview import ScrollView
from kivy.uix.textinput import TextInput
class TestApp(App):
def __init__(self):
App.__init__(self)
self.results = []
def on_omnibox_change(self, _instance, value):
print("", value)
while self.results:
btn = self.results.pop()
self.layout.remove_widget(btn)
for i in range(100):
btn = Button(text=value + str(i), height=40, size_hint_y=None)
self.layout.add_widget(btn)
self.results.append(btn)
def build(self):
self.root = BoxLayout(orientation="vertical", spacing=5)
# Make sure the height is such that there is something to scroll.
self.root.bind(minimum_height=self.root.setter("height"))
self.omnibox = TextInput(
text="",
hint_text="Search here files and headlines",
multiline=False,
write_tab=False,
size_hint_y=None,
height=40,
focus=False,
)
self.omnibox.bind(text=self.on_omnibox_change)
self.root.add_widget(self.omnibox)
self.viewer = ScrollView(
size_hint=(1, 1), size=(Window.width / 2, Window.height / 2)
)
self.layout = BoxLayout(orientation="vertical", spacing=2, size_hint_y=None)
self.layout.bind(minimum_height=self.layout.setter("height"))
for i in range(100):
btn = Button(text=str(i), height=40, size_hint_y=None)
self.layout.add_widget(btn)
self.results.append(btn)
self.viewer.add_widget(self.layout)
self.root.add_widget(self.viewer)
inspector.create_inspector(Window, self.root)
return self.root
TestApp().run()