first commit
This commit is contained in:
commit
417e54da96
5696 changed files with 900003 additions and 0 deletions
|
@ -0,0 +1,11 @@
|
|||
"""
|
||||
Controllers
|
||||
===========
|
||||
|
||||
.. versionadded:: 1.0.0
|
||||
|
||||
Modules and classes that implement useful methods for getting information
|
||||
about the state of the current application window.
|
||||
"""
|
||||
|
||||
from .windowcontroller import WindowController
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,80 @@
|
|||
"""
|
||||
Controllers/WindowController
|
||||
============================
|
||||
|
||||
.. versionadded:: 1.0.0
|
||||
|
||||
Modules and classes that implement useful methods for getting information
|
||||
about the state of the current application window.
|
||||
|
||||
Controlling the resizing direction of the application window
|
||||
------------------------------------------------------------
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
# When resizing the application window, the direction of change will be
|
||||
# printed - 'left' or 'right'.
|
||||
|
||||
from kivymd.app import MDApp
|
||||
from kivymd.uix.controllers import WindowController
|
||||
from kivymd.uix.screen import MDScreen
|
||||
|
||||
|
||||
class MyScreen(MDScreen, WindowController):
|
||||
def on_width(self, *args):
|
||||
print(self.get_window_width_resizing_direction())
|
||||
|
||||
|
||||
class Test(MDApp):
|
||||
def build(self):
|
||||
return MyScreen()
|
||||
|
||||
|
||||
Test().run()
|
||||
"""
|
||||
|
||||
from kivy.core.window import Window
|
||||
from kivy.core.window.window_sdl2 import WindowSDL
|
||||
from kivy.metrics import dp
|
||||
|
||||
|
||||
class WindowController:
|
||||
def __init__(self):
|
||||
self.window_resizing_direction = "unknown"
|
||||
self.real_device_type = "unknown"
|
||||
self.__width = Window.width
|
||||
Window.bind(on_resize=self._on_resize)
|
||||
|
||||
def on_size(self, instance, size: list) -> None:
|
||||
"""Called when the application screen size changes."""
|
||||
|
||||
window_width = size[0]
|
||||
|
||||
if window_width < dp(500):
|
||||
self.real_device_type = "mobile"
|
||||
elif window_width < dp(1100):
|
||||
self.real_device_type = "tablet"
|
||||
else:
|
||||
self.real_device_type = "desktop"
|
||||
|
||||
def get_real_device_type(self) -> str:
|
||||
"""Returns the device type - 'mobile', 'tablet' or 'desktop'."""
|
||||
|
||||
return self.real_device_type
|
||||
|
||||
def get_window_width_resizing_direction(self) -> str:
|
||||
"""Return window width resizing direction - 'left' or 'right'."""
|
||||
|
||||
return self.window_resizing_direction
|
||||
|
||||
def _set_window_width_resizing_direction(self, width: int) -> None:
|
||||
if self.__width > width:
|
||||
self.window_resizing_direction = "left"
|
||||
elif self.__width < width:
|
||||
self.window_resizing_direction = "right"
|
||||
|
||||
def _on_resize(
|
||||
self, window_sdl2: WindowSDL, width: int, height: int
|
||||
) -> None:
|
||||
self._set_window_width_resizing_direction(width)
|
||||
self.__width = width
|
Loading…
Add table
Add a link
Reference in a new issue