@@ -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:
0 commit comments