@@ -170,6 +170,11 @@ def get_input(self) -> dict:
170170
171171class DownloadDynmapTileFrame (View ):
172172 controller : DownloadDynmapTileController
173+ from_x_txt : ttk .Entry
174+ from_y_txt : ttk .Entry
175+ to_x_txt : ttk .Entry
176+ to_y_txt : ttk .Entry
177+ zoom_txt : ttk .Entry
173178
174179 def __init__ (self ):
175180 super ().__init__ ()
@@ -178,12 +183,73 @@ def __init__(self):
178183 def build_view (self , parent , controller : DownloadDynmapTileController ):
179184 self .controller = controller
180185
186+ # Create the view if it's being shown for the first time
187+ if self .frame is None :
188+ self .frame = ttk .Frame (parent )
189+
190+ self .frame .columnconfigure (index = 0 , weight = 1 )
191+ self .frame .columnconfigure (index = 1 , weight = 1 )
192+
193+ from_lbl = ttk .Label (self .frame , text = 'From: ' )
194+ from_lbl .grid (row = 0 , column = 0 , padx = 7 , pady = 7 , columnspan = 2 )
195+
196+ self .from_x_txt = ttk .Entry (self .frame )
197+ self .from_x_txt .grid (row = 1 , column = 0 , padx = 7 , pady = 7 , sticky = 'we' )
198+
199+ self .from_y_txt = ttk .Entry (self .frame )
200+ self .from_y_txt .grid (row = 1 , column = 1 , padx = 7 , pady = 7 , sticky = 'we' )
201+
202+ to_lbl = ttk .Label (self .frame , text = 'To: ' )
203+ to_lbl .grid (row = 2 , column = 0 , padx = 7 , pady = 7 , columnspan = 2 )
204+
205+ self .to_x_txt = ttk .Entry (self .frame )
206+ self .to_x_txt .grid (row = 3 , column = 0 , padx = 7 , pady = 7 , sticky = 'we' )
207+
208+ self .to_y_txt = ttk .Entry (self .frame )
209+ self .to_y_txt .grid (row = 3 , column = 1 , padx = 7 , pady = 7 , sticky = 'we' )
210+
211+ zoom_lbl = ttk .Label (self .frame , text = 'Zoom:' )
212+ zoom_lbl .grid (row = 4 , column = 0 , padx = 7 , pady = 7 )
213+
214+ self .zoom_txt = ttk .Entry (self .frame )
215+ self .zoom_txt .grid (row = 4 , column = 1 , padx = 7 , pady = 7 , sticky = 'we' )
216+ self .zoom_txt .insert (0 , '0' )
217+
218+ self .frame .grid (row = 2 , column = 0 , columnspan = 3 , padx = 0 , pady = 0 , sticky = 'nsew' )
219+
181220 def hide_view (self ):
182221 if self .frame is not None :
183222 self .frame .grid_forget ()
184223
185224 def get_input (self ) -> dict :
186- return {}
225+ coords_input = {}
226+
227+ try :
228+ coords_input ['from_x' ] = int (self .from_x_txt .get ())
229+ except ValueError :
230+ raise ValueError ('From X Coordinate must be an integer' )
231+
232+ try :
233+ coords_input ['from_y' ] = int (self .from_y_txt .get ())
234+ except ValueError :
235+ raise ValueError ('From Y Coordinate must be an integer' )
236+
237+ try :
238+ coords_input ['to_x' ] = int (self .to_x_txt .get ())
239+ except ValueError :
240+ raise ValueError ('To X Coordinate must be an integer' )
241+
242+ try :
243+ coords_input ['to_y' ] = int (self .to_y_txt .get ())
244+ except ValueError :
245+ raise ValueError ('To Y Coordinate must be an integer' )
246+
247+ try :
248+ coords_input ['zoom' ] = int (self .zoom_txt .get ())
249+ except ValueError :
250+ raise ValueError ('Zoom must be an integer' )
251+
252+ return coords_input
187253
188254
189255class DownloadFrame (View ):
0 commit comments