Skip to content

Commit 57a8607

Browse files
authored
Auto resize behavior and adds brightness and media change events to FletXPage
Fix.fletxpage auto resize auto resize behavior and adds brightness and media change events to FletXPage
2 parents 4f85e86 + 86ce573 commit 57a8607

5 files changed

Lines changed: 34 additions & 26 deletions

File tree

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.12
1+
==3.12.*

fletx/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from fletx.core.di import DI
66

77

8-
__version__ = "0.1.4.b1"
8+
__version__ = "0.1.4.b3"
99

1010
####
1111
## FLETX - DEPENDENCY INJECTION INTERFACE

fletx/core/page.py

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -186,14 +186,6 @@ def build_floating_action_button(self) -> Optional[ft.FloatingActionButton]:
186186

187187
return None
188188

189-
def build_floating_action_button(self) -> Optional[ft.FloatingActionButton]:
190-
"""
191-
Override this method to build a custom floating action button.
192-
Return None if no floating action button is needed.
193-
"""
194-
195-
return None
196-
197189
def build_floating_action_button_location(self) -> Optional[ft.FloatingActionButtonLocation]:
198190
"""
199191
Override this method to build a custom floating action button Location.
@@ -464,29 +456,35 @@ def watch_multiple(
464456

465457
# Event handling
466458
def on_resize(self, callback: Callable[[ft.ControlEvent], None]):
467-
"""Listen to page resize events"""
459+
"""
460+
Listen to page resize events.
461+
Event handler argument is of type `WindowResizeEvent`.
462+
"""
468463

469-
self._add_event_handler("resize", callback)
464+
self._add_event_handler("resized", callback)
470465

471466
def on_keyboard(self, callback: Callable[[ft.KeyboardEvent], None]):
472467
"""Listen to keyboard events"""
473468

474-
self._add_event_handler("keyboard", callback)
469+
self._add_event_handler("keyboard_event", callback)
475470

476471
def on_error(self, callback: Callable[[Exception], None]):
477472
"""Listen to error events"""
478473

479474
self._add_event_handler("error", callback)
480475

481-
def on_focus(self, callback: Callable[[ft.ControlEvent], None]):
482-
"""Listen to focus events"""
476+
def on_media_change(self, callback: Callable[[ft.ControlEvent], None]):
477+
"""
478+
Listen to Page media change events.
479+
Event handler argument is of type `PageMediaData`
480+
"""
483481

484-
self._add_event_handler("focus", callback)
482+
self._add_event_handler("media_change", callback)
485483

486-
def on_blur(self, callback: Callable[[ft.ControlEvent], None]):
487-
"""Listen to blur events"""
484+
def on_brigthness_change(self, callback: Callable[[ft.ControlEvent], None]):
485+
"""Listen to platform brigthness change events."""
488486

489-
self._add_event_handler("blur", callback)
487+
self._add_event_handler("platform_brigthness_change", callback)
490488

491489
def on_scroll(self, callback: Callable[[ft.ControlEvent], None]):
492490
"""Listen to scroll events"""
@@ -713,6 +711,16 @@ def _setup_built_in_handlers(self):
713711

714712
if self._enable_keyboard_shortcuts:
715713
self.on_keyboard(self._handle_keyboard_shortcuts)
714+
715+
# AUTO Page resize
716+
def resize(e: ft.WindowResizeEvent):
717+
"""resizee page and refresh"""
718+
719+
self.width = e.width
720+
self.height = e.height
721+
self.refresh()
722+
723+
self.on_resize(resize)
716724

717725
def _handle_keyboard_shortcuts(self, e: ft.KeyboardEvent):
718726
"""Handle keyboard shortcuts"""
@@ -808,7 +816,7 @@ def _connect_event_handler(
808816
"""Connect an event handler to Flet events"""
809817

810818
page = self.page_instance
811-
if page and hasattr(page, f'on_{event_name}_event'):
819+
if page and hasattr(page, f'on_{event_name}'):
812820
def safe_handler(*args, **kwargs):
813821
if self.is_mounted:
814822
try:
@@ -817,8 +825,8 @@ def safe_handler(*args, **kwargs):
817825
self.logger.error(f"Error in {event_name} handler: {e}")
818826
self._trigger_error_handlers(e)
819827

820-
setattr(page, f'on_{event_name}_event', safe_handler)
821-
return lambda: setattr(page, f'on_{event_name}_event', None)
828+
setattr(page, f'on_{event_name}', safe_handler)
829+
return lambda: setattr(page, f'on_{event_name}', None)
822830
return None
823831

824832
def _trigger_error_handlers(self, error: Exception):
@@ -869,4 +877,4 @@ def dispose(self):
869877
self._keyboard_shortcuts.clear()
870878
self._gesture_handlers.clear()
871879

872-
super().dispose() if hasattr(super(), 'dispose') else None
880+
super().dispose() if hasattr(super(), 'dispose') else None

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
[project]
22
name = "FletXr"
3-
version = "0.1.4.b230"
3+
version = "0.1.4.b3"
44
description = "The GetX-inspired Python Framework for Building Reactive, Cross-Platform Apps with Flet"
55
readme = "PYPI.md"
66
license = {file = "LICENSE"}
77
authors = [{ name = "AllDotPy", email = "hello@alldotpy.com" }]
88
maintainers = [{ name = "#Einswilli", email = "einswilligoeh@email.com" }]
9-
requires-python = "==3.12"
9+
requires-python = "==3.12.*"
1010
keywords = [
1111
"fletx", "fletxr", "flet", "reactive state",
1212
"routing", "di", "dependency injection"
1313
]
1414
dependencies = [
1515
"aiohttp>=3.9.5",
16-
"flet[all]>=0.28.3",
1716
"pydantic>=2.11.5",
1817
"pytest>=8.4.0",
1918
"packaging>=21.0",
19+
"flet[all]==0.28.3",
2020
]
2121

2222
[project.scripts]

screeshots/videos/fake-store.mp4

6.41 MB
Binary file not shown.

0 commit comments

Comments
 (0)