10 #INCLUDE ONCE "Gir/OsmGpsMap-1.0.bi"
27 BYVAL Cell
AS GtkCellRendererToggle
PTR _
28 ,
BYVAL Path
AS gchar
PTR _
29 ,
BYVAL UDat
AS gpointer)
EXPORT
31 DIM AS GtkTreeIter iter
32 gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(UDat), @iter, Path)
34 VAR x =
IIF(gtk_cell_renderer_toggle_get_active(Cell), FALSE, TRUE)
35 gtk_tree_store_set(GTK_TREE_STORE(UDat), @iter, COL__ENABLE, x, -1)
49 BYVAL Cell
AS GtkCellRendererToggle
PTR _
50 ,
BYVAL Path
AS gchar
PTR _
51 ,
BYVAL UDat
AS gpointer)
EXPORT
67 BYVAL Butt
AS GtkButton
PTR _
68 ,
BYVAL UDat
AS gpointer)
EXPORT
70 IF GTK_RESPONSE_OK = gtk_dialog_run(GTK_DIALOG(.DTL))
THEN
71 DIM AS TrackLoader
PTR last
72 VAR list = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(.DTL))
74 WITH TYPE<TS_add>(list->
data)
75 IF .Got
THEN ?" old entry: ",.Nam,.Fol,.Loa
84 gtk_widget_hide(GTK_WIDGET(.DTL))
100 BYVAL Tree
AS GtkTreeView
PTR _
101 ,
BYVAL Path
AS GtkTreePath
PTR _
102 ,
BYVAL Clmn
AS GtkTreeViewColumn
PTR _
103 ,
BYVAL UDat
AS gpointer)
EXPORT
105 osm_gps_map_download_cancel_all(OSM_GPS_MAP(.MAP))
107 VAR model = gtk_tree_view_get_model(Tree)
108 DIM AS GtkTreeIter iter
109 DIM AS gchar
PTR nam, id
110 gtk_tree_model_get_iter(model, @iter, Path)
111 gtk_tree_model_get(model, @iter, 0, @nam, 1, @id, -1)
113 g_object_set(.MAP,
"map-source",
VALINT(*id), NULL)
114 gtk_window_set_title(GTK_WINDOW(.WIN), nam)
115 g_free(nam) : g_free(id)
116 gtk_popover_popdown(GTK_POPOVER(UDat))
130 BYVAL Cont
AS GtkContainer
PTR _
131 ,
BYVAL UDat
AS gpointer)
EXPORT
133 VAR adj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(UDat))
134 VAR upp = gtk_adjustment_get_upper(adj)
136 VAR w = gtk_widget_get_allocated_width(GTK_WIDGET(.MAP))
137 VAR h = gtk_widget_get_allocated_height(GTK_WIDGET(.MAP))
138 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(UDat) _
139 ,
IIF(upp < w, GTK_POLICY_NEVER, GTK_POLICY_ALWAYS), GTK_POLICY_AUTOMATIC)
140 g_object_set(G_OBJECT(UDat) _
141 ,
"max_content_height", (h - 25) _
142 ,
"max_content_width", (w - 25), NULL)
143 gtk_widget_queue_draw(GTK_WIDGET(UDat))
159 BYVAL Butt
AS GtkToggleButton
PTR _
160 ,
BYVAL UDat
AS gpointer)
EXPORT
162 IF gtk_toggle_button_get_active(Butt)
THEN
164 osm_gps_map_layer_add(OSM_GPS_MAP(.MAP), OSM_GPS_MAP_LAYER(.OSD))
167 osm_gps_map_layer_remove(OSM_GPS_MAP(.MAP), OSM_GPS_MAP_LAYER(.OSD))
169 gtk_widget_queue_draw(GTK_WIDGET(.MAP))
186 BYVAL Wid
AS GtkWidget
PTR _
187 ,
BYVAL Event
AS GdkEventWindowState
PTR _
188 ,
BYVAL Ud
AS gpointer)
AS gboolean
EXPORT
189 GUI->WIN_state = Event->new_window_state
195 #MACRO GENERAL_KEYS()
198 SELECT CASE Event->keyval
199 CASE GDK_KEY_Plus, GDK_KEY_asterisk, GDK_KEY_KP_Add
200 osm_gps_map_zoom_in(OSM_GPS_MAP(GUI->MAP)) :
RETURN TRUE
201 CASE GDK_KEY_minus, GDK_KEY_underscore, GDK_KEY_KP_Subtract
202 osm_gps_map_zoom_out(OSM_GPS_MAP(GUI->MAP)) :
RETURN TRUE
203 CASE GDK_KEY_l, GDK_KEY_L_
204 VAR tb = GTK_TOGGLE_BUTTON(.TBL)
205 gtk_toggle_button_set_active(tb, _
206 IIF(gtk_toggle_button_get_active(tb), FALSE, TRUE)) :
RETURN TRUE
213 VAR osm = OSM_GPS_MAP(GUI->MAP)
214 SELECT CASE Event->keyval
215 CASE GDK_KEY_0 : PAR->Map_restore(0) :
RETURN TRUE
216 CASE GDK_KEY_1 : PAR->Map_restore(1) :
RETURN TRUE
217 CASE GDK_KEY_2 : PAR->Map_restore(2) :
RETURN TRUE
218 CASE GDK_KEY_3 : PAR->Map_restore(3) :
RETURN TRUE
219 CASE GDK_KEY_4 : PAR->Map_restore(4) :
RETURN TRUE
220 CASE GDK_KEY_5 : PAR->Map_restore(5) :
RETURN TRUE
221 CASE GDK_KEY_6 : PAR->Map_restore(6) :
RETURN TRUE
222 CASE GDK_KEY_7 : PAR->Map_restore(7) :
RETURN TRUE
223 CASE GDK_KEY_8 : PAR->Map_restore(8) :
RETURN TRUE
224 CASE GDK_KEY_9 : PAR->Map_restore(9) :
RETURN TRUE
225 CASE GDK_KEY_space :
DIM AS TS_bbox x = (FALSE) :
RETURN TRUE
226 CASE GDK_KEY_KP_6, GDK_KEY_Right : osm_gps_map_scroll(osm, .MapW \ 4, 0)
227 CASE GDK_KEY_KP_4, GDK_KEY_Left : osm_gps_map_scroll(osm,-.MapW \ 4, 0)
228 CASE GDK_KEY_KP_8, GDK_KEY_Up : osm_gps_map_scroll(osm, 0,-.MapH \ 4)
229 CASE GDK_KEY_KP_2, GDK_KEY_Down : osm_gps_map_scroll(osm, 0, .MapH \ 4)
230 CASE GDK_KEY_KP_9 : osm_gps_map_scroll(osm, .MapW \ 4,-.MapH \ 4)
231 CASE GDK_KEY_KP_3 : osm_gps_map_scroll(osm, .MapW \ 4, .MapH \ 4)
232 CASE GDK_KEY_KP_1 : osm_gps_map_scroll(osm,-.MapW \ 4, .MapH \ 4)
233 CASE GDK_KEY_KP_7 : osm_gps_map_scroll(osm,-.MapW \ 4,-.MapH \ 4)
235 IF GDK_WINDOW_STATE_FULLSCREEN
AND GUI->WIN_state _
236 THEN gtk_window_unfullscreen(GTK_WINDOW(GUI->WIN)) _
237 ELSE gtk_window_fullscreen(GTK_WINDOW(GUI->WIN))
238 CASE ELSE :
RETURN FALSE
239 END SELECT :
RETURN TRUE
242 #MACRO SHIFT_CONTROL_KEYS()
244 VAR trl = TRACK_LAYER(GUI->TRL)
245 IF GDK_CONTROL_MASK
AND state
THEN
246 SELECT CASE AS CONST Event->keyval
247 CASE GDK_KEY_Right : track_layer_point_move(trl, @
">")
248 CASE GDK_KEY_Left : track_layer_point_move(trl, @
"<")
249 CASE GDK_KEY_Up : track_layer_point_move(trl, @
"}")
250 CASE GDK_KEY_Down : track_layer_point_move(trl, @
"{")
251 CASE ELSE :
RETURN FALSE
252 END SELECT :
RETURN TRUE
255 SELECT CASE Event->keyval
256 CASE GDK_KEY_I_ : TS_preference(track_layer_get_loader(trl))
257 CASE GDK_KEY_space : track_layer_center_track(trl)
258 CASE GDK_KEY_Right : track_layer_point_move(trl, @
"+")
259 CASE GDK_KEY_Left : track_layer_point_move(trl, @
"-")
260 CASE GDK_KEY_Up : track_layer_point_move(trl, @
"f")
261 CASE GDK_KEY_Down : track_layer_point_move(trl, @
"b")
262 CASE GDK_KEY_Page_Up : track_layer_point_move(trl, @
"F")
263 CASE GDK_KEY_Page_Down : track_layer_point_move(trl, @
"B")
264 CASE GDK_KEY_Home : track_layer_point_move(trl, @
"H")
265 CASE GDK_KEY_End : track_layer_point_move(trl, @
"E")
266 CASE GDK_KEY_M_ : track_layer_point_move(trl, @
"M")
267 CASE GDK_KEY_KP_1, GDK_KEY_KP_End : track_layer_point_move(trl, @
"1")
268 CASE GDK_KEY_KP_2, GDK_KEY_KP_Down : track_layer_point_move(trl, @
"2")
269 CASE GDK_KEY_KP_3, GDK_KEY_KP_Next : track_layer_point_move(trl, @
"3")
270 CASE GDK_KEY_KP_4, GDK_KEY_KP_Left : track_layer_point_move(trl, @
"4")
271 CASE GDK_KEY_KP_5, GDK_KEY_KP_Begin : track_layer_point_move(trl, @
"5")
272 CASE GDK_KEY_KP_6, GDK_KEY_KP_Right : track_layer_point_move(trl, @
"6")
273 CASE GDK_KEY_KP_7, GDK_KEY_KP_Home : track_layer_point_move(trl, @
"7")
274 CASE GDK_KEY_KP_8, GDK_KEY_KP_Up : track_layer_point_move(trl, @
"8")
275 CASE GDK_KEY_KP_9, GDK_KEY_KP_Prior : track_layer_point_move(trl, @
"9")
276 CASE ELSE :
RETURN FALSE
277 END SELECT :
RETURN TRUE
279 #MACRO CONTROL_KEYS()
282 SELECT CASE AS CONST Event->keyval
283 CASE GDK_KEY_0 : PAR->Map_store(0) :
RETURN TRUE
284 CASE GDK_KEY_1 : PAR->Map_store(1) :
RETURN TRUE
285 CASE GDK_KEY_2 : PAR->Map_store(2) :
RETURN TRUE
286 CASE GDK_KEY_3 : PAR->Map_store(3) :
RETURN TRUE
287 CASE GDK_KEY_4 : PAR->Map_store(4) :
RETURN TRUE
288 CASE GDK_KEY_5 : PAR->Map_store(5) :
RETURN TRUE
289 CASE GDK_KEY_6 : PAR->Map_store(6) :
RETURN TRUE
290 CASE GDK_KEY_7 : PAR->Map_store(7) :
RETURN TRUE
291 CASE GDK_KEY_8 : PAR->Map_store(8) :
RETURN TRUE
292 CASE GDK_KEY_9 : PAR->Map_store(9) :
RETURN TRUE
296 CASE GDK_KEY_q : g_application_quit(G_APPLICATION(.APP))
297 CASE GDK_KEY_space :
DIM AS TS_bbox x = (TRUE) :
RETURN TRUE
304 SELECT CASE AS CONST Event->keyval
306 CASE GDK_KEY_q : g_application_quit(G_APPLICATION(.APP))
312 BYVAL Wid
AS GtkWidget
PTR _
313 ,
BYVAL Event
AS GdkEventKey
PTR _
314 ,
BYVAL UDat
AS gpointer)
AS gboolean
EXPORT
316 VAR state = Event->state
XOR GDK_MOD2_MASK
318 SELECT CASE AS CONST state
321 CASE GDK_CONTROL_MASK
326 IF NOT(GDK_CONTROL_MASK + GDK_SHIFT_MASK + GDK_LOCK_MASK)
AND state
THEN RETURN FALSE
328 END SELECT :
RETURN FALSE