mirror of
https://github.com/janishutz/BiogasControllerApp.git
synced 2025-11-25 22:04:24 +00:00
64 lines
2.2 KiB
Python
64 lines
2.2 KiB
Python
from typing import Callable
|
|
from kivy.uix.popup import Popup
|
|
from kivy.lang import Builder
|
|
|
|
from lib.com import ComSuperClass
|
|
|
|
|
|
# Just an empty function
|
|
def empty_func():
|
|
pass
|
|
|
|
# ╭────────────────────────────────────────────────╮
|
|
# │ Popups │
|
|
# ╰────────────────────────────────────────────────╯
|
|
# Below, you can find various popups with various designs that can be used in the app
|
|
class QuitPopup(Popup):
|
|
def __init__(self, com: ComSuperClass, **kw):
|
|
self._com = com;
|
|
super().__init__(**kw)
|
|
|
|
def quit(self):
|
|
self._com.close()
|
|
|
|
class SingleRowPopup(Popup):
|
|
def open(self, message, *_args, **kwargs):
|
|
self.ids.msg.text = message
|
|
return super().open(*_args, **kwargs)
|
|
|
|
class DualRowPopup(Popup):
|
|
def open(self, title: str, message: str, *_args, **kwargs):
|
|
self.ids.msg_title.text = title
|
|
self.ids.msg_body.text = message
|
|
return super().open(*_args, **kwargs)
|
|
|
|
class LargeTrippleRowPopup(Popup):
|
|
def open(self, title: str, message: str, details: str, *_args, **kwargs):
|
|
self.ids.msg_title.text = title
|
|
self.ids.msg_body.text = message
|
|
self.ids.msg_extra.text = details
|
|
return super().open(*_args, **kwargs)
|
|
|
|
class TwoActionPopup(Popup):
|
|
def open(self,
|
|
message: str,
|
|
button_one: str,
|
|
action_one: Callable[[], None],
|
|
button_two: str = 'Ok',
|
|
action_two: Callable[[], None] = empty_func,
|
|
*_args,
|
|
**kwargs
|
|
):
|
|
self.ids.msg.text = message
|
|
self.ids.btn1.text = button_one
|
|
self.ids.btn2.text = button_two
|
|
self.action_one = action_one
|
|
self.action_two = action_two
|
|
return super().open(*_args, **kwargs)
|
|
|
|
|
|
# Load the design file for this screen (.kv files)
|
|
# The path has to be relative to root of the app, i.e. where the biogascontrollerapp.py
|
|
# file is located
|
|
Builder.load_file('./gui/popups/popups.kv')
|