mirror of
https://github.com/liberatedsystems/openCom-Companion.git
synced 2024-11-24 06:10:36 +01:00
48 lines
1.3 KiB
Plaintext
48 lines
1.3 KiB
Plaintext
from kivy.properties import ObjectProperty
|
|
|
|
from kivymd.app import MDApp
|
|
from kivymd.theming import ThemableBehavior
|
|
from kivymd.uix.screen import MDScreen
|
|
|
|
from Utility.observer import Observer
|
|
|
|
|
|
class BaseScreenView(ThemableBehavior, MDScreen, Observer):
|
|
"""
|
|
A base class that implements a visual representation of the model data
|
|
:class:`~Model.%s.%s`.
|
|
The view class must be inherited from this class.
|
|
"""
|
|
|
|
controller = ObjectProperty()
|
|
"""
|
|
Controller object - :class:`~Controller.%s.%s`.
|
|
|
|
:attr:`controller` is an :class:`~kivy.properties.ObjectProperty`
|
|
and defaults to `None`.
|
|
"""
|
|
|
|
model = ObjectProperty()
|
|
"""
|
|
Model object - :class:`~Model.%s.%s`.
|
|
|
|
:attr:`model` is an :class:`~kivy.properties.ObjectProperty`
|
|
and defaults to `None`.
|
|
"""
|
|
|
|
manager_screens = ObjectProperty()
|
|
"""
|
|
Screen manager object - :class:`~kivy.uix.screenmanager.ScreenManager`.
|
|
|
|
:attr:`manager_screens` is an :class:`~kivy.properties.ObjectProperty`
|
|
and defaults to `None`.
|
|
"""
|
|
|
|
def __init__(self, **kw):
|
|
super().__init__(**kw)
|
|
# Often you need to get access to the application object from the view
|
|
# class. You can do this using this attribute.
|
|
self.app = MDApp.get_running_app()
|
|
# Adding a view class as observer.
|
|
self.model.add_observer(self)
|