Skip to content

Instantly share code, notes, and snippets.

@geojeff
Last active December 17, 2015 20:28
Show Gist options
  • Save geojeff/5667391 to your computer and use it in GitHub Desktop.
Save geojeff/5667391 to your computer and use it in GitHub Desktop.
from kivy.app import App
from kivy.properties import ObjectProperty
from kivy.properties import DictProperty
from kivy_statecharts.system.state import State
from kivy_statecharts.system.statechart import StatechartManager
from kivy.uix.screenmanager import ScreenManager
from kivy.uix.floatlayout import FloatLayout
from kivy.uix.togglebutton import ToggleButton
from states.showing_main import ShowingMainScreen
from states.showing_processes import ShowingProcessesScreen
class AppStatechart(StatechartManager):
app = ObjectProperty(None)
def __init__(self, **kwargs):
kwargs['trace'] = True
kwargs['root_state_class'] = self.RootState
super(AppStatechart, self).__init__(**kwargs)
class RootState(State):
def __init__(self, **kwargs):
kwargs['initial_substate_key'] = 'ShowingMainScreen'
kwargs['ShowingMainScreen'] = ShowingMainScreen
kwargs['ShowingProcessesScreen'] = ShowingProcessesScreen
super(AppStatechart.RootState, self).__init__(**kwargs)
class MainScreen(FloatLayout):
app = ObjectProperty(None)
def __init__(self, **kwargs):
super(MainScreen, self).__init__(**kwargs)
class DigrammerApp(App):
'''Write me.
'''
statechart = ObjectProperty(None)
sm = ObjectProperty(None)
main_screen = ObjectProperty(None)
def build(self):
self.sm = ScreenManager()
return self.sm
self.root = MainScreen(app=self)
self.main_screen = self.root
def on_start(self):
self.statechart = AppStatechart(app=self)
self.statechart.init_statechart()
if __name__ in ('__main__'):
DiagrammerApp().run()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment