Skip to content

Commit dd94916

Browse files
committed
window size change doesn't work in web mode (why?)
1 parent d9e5ea0 commit dd94916

File tree

2 files changed

+44
-9
lines changed

2 files changed

+44
-9
lines changed

maindisplay.py

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,23 @@ def handle_resize(self, e: ft.canvas.CanvasResizeEvent):
3838
t.value = f"{e.width} x {e.height}"
3939
self.mfgdocsapp.page.update()
4040

41+
def wrapper_resize_event(self, e: ft.canvas.CanvasResizeEvent):
42+
"""
43+
The handle_resize function is a callback function that will be called when
44+
the control that triggered this event is resized (ex: through window resize).
45+
The CanvasResizeEvent object has several useful attributes:
46+
- control: The control that triggered the event (SizeAwareControl)
47+
- width: The new width of the control in pixels (after resize)
48+
- height: The new height of the control in pixels (after resize)
49+
"""
50+
# grab the content of the SizeAwareControl
51+
c = e.control.content
52+
# grab the text in its content
53+
t = c.content
54+
# instead of e.width for example, you can use the e.control.size namedtuple (e.control.size.width or e.control.size[0])
55+
t.value = f"{e.width} x {e.height}"
56+
self.mfgdocsapp.page.update()
57+
4158
def build(self):
4259
self.ctrl['maincontrol'] = self.maincontrol
4360
self.ctrl['step_topbar'] = ft.Container(visible=False)
@@ -76,14 +93,25 @@ def build(self):
7693
# self.ctrl['map_canvas'] = SizeAwareControl(ft.Container(ft.Text('map canvas'),bgcolor='yellow'), width=1000,height=1000, on_resize=self.map_size_change,expand=True)
7794
s1 = SizeAwareControl(
7895
ft.Container(content=ft.Text('W x H'), bgcolor=ft.colors.RED, alignment=ft.alignment.center),
79-
height=300,on_resize=self.handle_resize, expand=2
80-
)
96+
on_resize=self.handle_resize, expand=1
97+
)
8198
s2 = SizeAwareControl(
8299
ft.Container(content=ft.Text('W x H'), bgcolor=ft.colors.BLUE, alignment=ft.alignment.center),
83-
height=300,on_resize=self.handle_resize, expand=3
84-
)
85-
self.ctrl['map_canvas'] = ft.Row([s1,s2])
86-
#self.ctrl['map_canvas'] = ft.Container(ft.Text('map canvas'), bgcolor='yellow', width=100, height=100)
100+
on_resize=self.handle_resize, expand=1
101+
)
102+
mapwrapper = SizeAwareControl(
103+
ft.Container(
104+
content=ft.Text('Map'),
105+
bgcolor=ft.colors.YELLOW,
106+
alignment=ft.alignment.center
107+
),
108+
on_resize=self.wrapper_resize_event,
109+
expand=True
110+
)
111+
self.mfgdocsapp.page.on_resize = self.page_resize_event
112+
#self.ctrl['map_canvas'] = ft.Row([s1,s2],expand=True)
113+
self.ctrl['map_canvas'] = ft.Column([ft.Row([mapwrapper],expand=False)])
114+
# self.ctrl['map_canvas'] = ft.Container(ft.Text('map canvas'), bgcolor='yellow', width=100, height=100)
87115
# self.ctrl['map_canvas'] = ft.Row([ft.Container(ft.Text('map canvas'), bgcolor='yellow', expand=True)],expand=True)
88116

89117
self.ctrl['map_display'] = ft.Column(
@@ -94,15 +122,17 @@ def build(self):
94122

95123
self.ctrl['step_display'] = ft.Column(
96124
scroll=ft.ScrollMode.ALWAYS,
125+
expand=True,
97126
controls=[
98127
self.ctrl['step_topbar'],
99128
self.ctrl['step_markdown'],
100129
self.ctrl['step_bottombar']
101130
]
102131
)
103132

104-
#self.ctrl['maincontrol'].content = ft.Stack(controls=[self.ctrl['map_display'], self.ctrl['step_display']])
133+
# self.ctrl['maincontrol'].content = ft.Stack(controls=[self.ctrl['map_display'], self.ctrl['step_display']])
105134
self.ctrl['maincontrol'].content = self.ctrl['map_display']
135+
self.ctrl['maincontrol'].expand = True
106136
return self.maincontrol
107137

108138
def show_map_display(self):
@@ -111,6 +141,12 @@ def show_map_display(self):
111141
def show_step_display(self):
112142
self.ctrl['maincontrol'].content = self.ctrl['step_display']
113143

144+
def page_resize_event(self, event:ft.ControlEvent):
145+
print(f'page_size_change: {event.page.window_width} {event.page.window_height}')
146+
# if self.object_on_display is None:
147+
# #self.ctrl['map_canvas'].content = self.map.display_map(width=event.data[0], height=event.data[1])
148+
# self.maincontrol.update()
149+
114150
def map_size_change(self, event):
115151
print(f'map_size_change: {event.width} {event.height}')
116152
# if self.object_on_display is None:

panzoom.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,9 @@ def build(self):
9696
height=self.height,
9797
expand=self.expand
9898
)
99-
self.main_control = SizeAwareControl(
99+
self.main_control = ft.Container(
100100
content=ft.Stack(controls=[self.innerstack]),
101101
expand=self.expand,
102-
on_resize=self.content_resize,
103102
width=self.width,
104103
height=self.height
105104
)

0 commit comments

Comments
 (0)