SUMO - Simulation of Urban MObility
GUIIconSubSys.cpp
Go to the documentation of this file.
1 /****************************************************************************/
2 // Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.org/sumo
3 // Copyright (C) 2001-2018 German Aerospace Center (DLR) and others.
4 // This program and the accompanying materials
5 // are made available under the terms of the Eclipse Public License v2.0
6 // which accompanies this distribution, and is available at
7 // http://www.eclipse.org/legal/epl-v20.html
8 // SPDX-License-Identifier: EPL-2.0
9 /****************************************************************************/
17 // Helper for icons loading and usage
18 /****************************************************************************/
19 
20 
21 // ===========================================================================
22 // included modules
23 // ===========================================================================
24 #include <config.h>
25 
26 #include <fx.h>
27 #include <cassert>
28 #include "GUIIcons.h"
29 #include "GUIIconSubSys.h"
30 
31 #include "sumo_icon64.xpm"
32 #include "sumo_icon16.xpm"
33 #include "sumo_logo.xpm"
34 
35 #include "empty.xpm"
36 #include "filesave.xpm"
37 #include "fileopen.xpm"
38 #include "netopen.xpm"
39 #include "shapeopen.xpm"
40 #include "play.xpm"
41 #include "stop.xpm"
42 #include "step.xpm"
43 #include "new_window.xpm"
44 
45 #include "app_tracker.xpm"
46 #include "app_finder.xpm"
47 #include "app_breakpoints.xpm"
48 #include "app_tlstracker.xpm"
49 #include "app_table.xpm"
50 #include "app_selector.xpm"
51 
52 #include "locate.xpm"
53 #include "locate_junction.xpm"
54 #include "locate_edge.xpm"
55 #include "locate_vehicle.xpm"
56 #include "locate_person.xpm"
57 #include "locate_tls.xpm"
58 #include "locate_add.xpm"
59 #include "locate_poi.xpm"
60 #include "locate_poly.xpm"
61 
62 #include "green_edge.xpm"
63 #include "yellow_edge.xpm"
64 #include "green_vehicle.xpm"
65 #include "yellow_vehicle.xpm"
66 #include "green_person.xpm"
67 #include "yellow_person.xpm"
68 
69 #include "colorwheel.xpm"
70 #include "savedb.xpm"
71 #include "removedb.xpm"
72 #include "recenter_view.xpm"
73 #include "allow_rotation.xpm"
74 #include "show_tooltips.xpm"
75 #include "magnify.xpm"
76 #include "zoomstyle.xpm"
77 #include "yes.xpm"
78 #include "no.xpm"
79 
80 #include "extract_streets.xpm"
81 #include "dilate.xpm"
82 #include "erode.xpm"
83 #include "opening.xpm"
84 #include "closing.xpm"
85 #include "erase_stains.xpm"
86 #include "close_gaps.xpm"
87 #include "skeletonize.xpm"
88 #include "rarify.xpm"
89 #include "create_graph.xpm"
90 #include "open_bmp_dialog.xpm"
91 #include "eyedrop.xpm"
92 #include "rubber1x.xpm"
93 #include "rubber2x.xpm"
94 #include "rubber3x.xpm"
95 #include "rubber4x.xpm"
96 #include "rubber5x.xpm"
97 #include "paintbrush1x.xpm"
98 #include "paintbrush2x.xpm"
99 #include "paintbrush3x.xpm"
100 #include "paintbrush4x.xpm"
101 #include "paintbrush5x.xpm"
102 #include "edit_graph.xpm"
103 
104 #include "flag.cpp"
105 #include "flag_plus.cpp"
106 #include "flag_minus.cpp"
107 #include "windows_cascade.xpm"
108 #include "windows_tile_vertically.xpm"
109 #include "windows_tile_horizontally.xpm"
110 #include "reload.xpm"
111 #include "manip.cpp"
112 #include "camera.xpm"
113 
114 #include "undo.xpm"
115 #include "redo.xpm"
116 #include "netedit_icon64.xpm"
117 #include "netedit_icon16.xpm"
118 #include "lock.xpm"
119 #include "add.xpm"
120 #include "remove.xpm"
121 #include "neteditarrowleft.xpm"
122 #include "neteditarrowright.xpm"
123 
124 #include "lanebike.xpm"
125 #include "lanebus.xpm"
126 #include "lanepedestrian.xpm"
127 #include "lanegreenverge.xpm"
128 
129 #include "cut.xpm"
130 #include "ext.xpm"
131 
132 #include "modeadditional.xpm"
133 #include "modeconnection.xpm"
134 #include "modecreateedge.xpm"
135 #include "modecrossing.xpm"
136 #include "modetaz.xpm"
137 #include "modedelete.xpm"
138 #include "modeinspect.xpm"
139 #include "modemove.xpm"
140 #include "modeselect.xpm"
141 #include "modetrafficlight.xpm"
142 #include "modepolygon.xpm"
143 #include "modeprohibition.xpm"
144 
145 #include "computejunctions.xpm"
146 #include "cleanjunctions.xpm"
147 #include "joinjunctions.xpm"
148 #include "options.xpm"
149 
150 #include "junction.xpm"
151 #include "edge.xpm"
152 #include "lane.xpm"
153 #include "connection.xpm"
154 #include "prohibition.xpm"
155 #include "crossing.xpm"
156 
157 #include "busstop.xpm"
158 #include "access.xpm"
159 #include "chargingstation.xpm"
160 #include "containerstop.xpm"
161 #include "parkingarea.xpm"
162 #include "parkingspace.xpm"
163 #include "e1.xpm"
164 #include "e1instant.xpm"
165 #include "e2.xpm"
166 #include "e3.xpm"
167 #include "e3entry.xpm"
168 #include "e3exit.xpm"
169 #include "rerouter.xpm"
170 #include "routeprobe.xpm"
171 #include "vaporizer.xpm"
172 #include "variablespeedsign.xpm"
173 #include "calibrator.xpm"
174 #include "rerouterinterval.xpm"
175 #include "vssstep.xpm"
176 #include "closingreroute.xpm"
177 #include "closinglanereroute.xpm"
178 #include "destprobreroute.xpm"
179 #include "parkingzonereroute.xpm"
180 #include "routeprobreroute.xpm"
181 #include "taz.xpm"
182 #include "tazedge.xpm"
183 
184 #include "flow.xpm"
185 #include "route.xpm"
186 #include "vtype.xpm"
187 
188 #include "vclass_ignoring.xpm"
189 #include "vclass_private.xpm"
190 #include "vclass_emergency.xpm"
191 #include "vclass_authority.xpm"
192 #include "vclass_army.xpm"
193 #include "vclass_vip.xpm"
194 #include "vclass_passenger.xpm"
195 #include "vclass_hov.xpm"
196 #include "vclass_taxi.xpm"
197 #include "vclass_bus.xpm"
198 #include "vclass_coach.xpm"
199 #include "vclass_delivery.xpm"
200 #include "vclass_truck.xpm"
201 #include "vclass_trailer.xpm"
202 #include "vclass_tram.xpm"
203 #include "vclass_rail_urban.xpm"
204 #include "vclass_rail.xpm"
205 #include "vclass_rail_electric.xpm"
206 #include "vclass_motorcycle.xpm"
207 #include "vclass_moped.xpm"
208 #include "vclass_bicycle.xpm"
209 #include "vclass_pedestrian.xpm"
210 #include "vclass_evehicle.xpm"
211 #include "vclass_ship.xpm"
212 #include "vclass_custom1.xpm"
213 #include "vclass_custom2.xpm"
214 
215 #include "accept.xpm"
216 #include "cancel.xpm"
217 #include "correct.xpm"
218 #include "error.xpm"
219 #include "reset.xpm"
220 #include "warning.xpm"
221 
222 #include "grid1.xpm"
223 #include "grid2.xpm"
224 #include "grid3.xpm"
225 
226 
227 // ===========================================================================
228 // static member variable definitions
229 // ===========================================================================
230 
232 
233 // ===========================================================================
234 // member definitions
235 // ===========================================================================
236 
238  // build icons
239  myIcons[ICON_SUMO] = new FXXPMIcon(a, sumo_icon64_xpm);
240  myIcons[ICON_SUMO_MINI] = new FXXPMIcon(a, sumo_icon16_xpm);
241  myIcons[ICON_SUMO_LOGO] = new FXXPMIcon(a, sumo_logo_xpm);
242  myIcons[ICON_EMPTY] = new FXXPMIcon(a, empty_xpm);
243  myIcons[ICON_OPEN_CONFIG] = new FXXPMIcon(a, fileopen_xpm);
244  myIcons[ICON_OPEN_NET] = new FXXPMIcon(a, netopen_xpm);
245  myIcons[ICON_OPEN_SHAPES] = new FXXPMIcon(a, shapeopen_xpm);
246  myIcons[ICON_OPEN_ADDITIONALS] = new FXXPMIcon(a, shapeopen_xpm);
247  myIcons[ICON_OPEN_TLSPROGRAMS] = new FXXPMIcon(a, shapeopen_xpm);
248  myIcons[ICON_RELOAD] = new FXXPMIcon(a, reload_xpm);
249  myIcons[ICON_SAVE] = new FXXPMIcon(a, filesave_xpm);
250  myIcons[ICON_CLOSE] = new FXXPMIcon(a, empty_xpm);
251  myIcons[ICON_HELP] = new FXXPMIcon(a, empty_xpm);
252  myIcons[ICON_START] = new FXXPMIcon(a, play_xpm);
253  myIcons[ICON_STOP] = new FXXPMIcon(a, stop_xpm);
254  myIcons[ICON_STEP] = new FXXPMIcon(a, step_xpm);
255  myIcons[ICON_MICROVIEW] = new FXXPMIcon(a, new_window_xpm);
256  myIcons[ICON_LAGGRVIEW] = new FXXPMIcon(a, new_window_xpm);
257  myIcons[ICON_RECENTERVIEW] = new FXXPMIcon(a, recenter_view_xpm);
258  myIcons[ICON_ALLOWROTATION] = new FXXPMIcon(a, allow_rotation_xpm);
259  myIcons[ICON_EDITVIEWPORT] = new FXXPMIcon(a, magnify_xpm);
260  myIcons[ICON_ZOOMSTYLE] = new FXXPMIcon(a, zoomstyle_xpm);
261 
262  myIcons[ICON_APP_TRACKER] = new FXXPMIcon(a, app_tracker_xpm);
263  myIcons[ICON_APP_FINDER] = new FXXPMIcon(a, app_finder_xpm);
264  myIcons[ICON_APP_BREAKPOINTS] = new FXXPMIcon(a, app_breakpoints_xpm);
265  myIcons[ICON_APP_TLSTRACKER] = new FXXPMIcon(a, app_tlstracker_xpm);
266  myIcons[ICON_APP_TABLE] = new FXXPMIcon(a, app_table_xpm);
267  myIcons[ICON_APP_SELECTOR] = new FXXPMIcon(a, app_selector_xpm);
268 
269  myIcons[ICON_LOCATE] = new FXXPMIcon(a, locate_xpm);
270  myIcons[ICON_LOCATEJUNCTION] = new FXXPMIcon(a, locate_junction_xpm);
271  myIcons[ICON_LOCATEEDGE] = new FXXPMIcon(a, locate_edge_xpm);
272  myIcons[ICON_LOCATEVEHICLE] = new FXXPMIcon(a, locate_vehicle_xpm);
273  myIcons[ICON_LOCATEPERSON] = new FXXPMIcon(a, locate_person_xpm);
274  myIcons[ICON_LOCATETLS] = new FXXPMIcon(a, locate_tls_xpm);
275  myIcons[ICON_LOCATEADD] = new FXXPMIcon(a, locate_add_xpm);
276  myIcons[ICON_LOCATEPOI] = new FXXPMIcon(a, locate_poi_xpm);
277  myIcons[ICON_LOCATEPOLY] = new FXXPMIcon(a, locate_poly_xpm);
278 
279  myIcons[ICON_GREENEDGE] = new FXXPMIcon(a, green_edge_xpm);
280  myIcons[ICON_GREENVEHICLE] = new FXXPMIcon(a, green_vehicle_xpm);
281  myIcons[ICON_GREENPERSON] = new FXXPMIcon(a, green_person_xpm);
282  myIcons[ICON_YELLOWEDGE] = new FXXPMIcon(a, yellow_edge_xpm);
283  myIcons[ICON_YELLOWVEHICLE] = new FXXPMIcon(a, yellow_vehicle_xpm);
284  myIcons[ICON_YELLOWPERSON] = new FXXPMIcon(a, yellow_person_xpm);
285 
286  myIcons[ICON_COLORWHEEL] = new FXXPMIcon(a, colorwheel_xpm);
287  myIcons[ICON_SAVEDB] = new FXXPMIcon(a, savedb_xpm);
288  myIcons[ICON_REMOVEDB] = new FXXPMIcon(a, removedb_xpm);
289  myIcons[ICON_SHOWTOOLTIPS] = new FXXPMIcon(a, show_tooltips_xpm);
290  myIcons[ICON_YES] = new FXXPMIcon(a, yes_xpm);
291  myIcons[ICON_NO] = new FXXPMIcon(a, no_xpm);
292  myIcons[ICON_FLAG] = new FXGIFIcon(a, flag);
293  myIcons[ICON_FLAG_PLUS] = new FXGIFIcon(a, flag_plus);
294  myIcons[ICON_FLAG_MINUS] = new FXGIFIcon(a, flag_minus);
295  // window arrangements
296  myIcons[ICON_WINDOWS_CASCADE] = new FXXPMIcon(a, windows_cascade_xpm);
297  myIcons[ICON_WINDOWS_TILE_VERT] = new FXXPMIcon(a, windows_tile_vertically_xpm);
298  myIcons[ICON_WINDOWS_TILE_HORI] = new FXXPMIcon(a, windows_tile_horizontally_xpm);
299  // manipulate
300  myIcons[ICON_MANIP] = new FXGIFIcon(a, manip);
301  myIcons[ICON_CAMERA] = new FXXPMIcon(a, camera_xpm);
302  myIcons[ICON_EXTRACT] = new FXXPMIcon(a, extract_streets_xpm);
303  myIcons[ICON_DILATE] = new FXXPMIcon(a, dilate_xpm);
304  myIcons[ICON_ERODE] = new FXXPMIcon(a, erode_xpm);
305  myIcons[ICON_OPENING] = new FXXPMIcon(a, opening_xpm);
306  myIcons[ICON_CLOSING] = new FXXPMIcon(a, closing_xpm);
307  myIcons[ICON_ERASE_STAINS] = new FXXPMIcon(a, erase_stains_xpm);
308  myIcons[ICON_CLOSE_GAPS] = new FXXPMIcon(a, close_gaps_xpm);
309  myIcons[ICON_SKELETONIZE] = new FXXPMIcon(a, skeletonize_xpm);
310  myIcons[ICON_RARIFY] = new FXXPMIcon(a, rarify_xpm);
311  myIcons[ICON_CREATE_GRAPH] = new FXXPMIcon(a, create_graph_xpm);
312  myIcons[ICON_OPEN_BMP_DIALOG] = new FXXPMIcon(a, open_bmp_dialog_xpm);
313  myIcons[ICON_EYEDROP] = new FXXPMIcon(a, eyedrop_xpm);
314  myIcons[ICON_PAINTBRUSH1X] = new FXXPMIcon(a, paintbrush1x_xpm);
315  myIcons[ICON_PAINTBRUSH2X] = new FXXPMIcon(a, paintbrush2x_xpm);
316  myIcons[ICON_PAINTBRUSH3X] = new FXXPMIcon(a, paintbrush3x_xpm);
317  myIcons[ICON_PAINTBRUSH4X] = new FXXPMIcon(a, paintbrush4x_xpm);
318  myIcons[ICON_PAINTBRUSH5X] = new FXXPMIcon(a, paintbrush5x_xpm);
319  myIcons[ICON_RUBBER1X] = new FXXPMIcon(a, rubber1x_xpm);
320  myIcons[ICON_RUBBER2X] = new FXXPMIcon(a, rubber2x_xpm);
321  myIcons[ICON_RUBBER3X] = new FXXPMIcon(a, rubber3x_xpm);
322  myIcons[ICON_RUBBER4X] = new FXXPMIcon(a, rubber4x_xpm);
323  myIcons[ICON_RUBBER5X] = new FXXPMIcon(a, rubber5x_xpm);
324  myIcons[ICON_EDITGRAPH] = new FXXPMIcon(a, edit_graph_xpm);
325 
326  myIcons[ICON_UNDO] = new FXXPMIcon(a, undo_xpm);
327  myIcons[ICON_REDO] = new FXXPMIcon(a, redo_xpm);
328  myIcons[ICON_NETEDIT] = new FXXPMIcon(a, netedit_icon64_xpm);
329  myIcons[ICON_NETEDIT_MINI] = new FXXPMIcon(a, netedit_icon16_xpm);
330  myIcons[ICON_LOCK] = new FXXPMIcon(a, lock_xpm);
331  myIcons[ICON_ADD] = new FXXPMIcon(a, add_xpm);
332  myIcons[ICON_REMOVE] = new FXXPMIcon(a, remove_xpm);
333  myIcons[ICON_NETEDITARROWLEFT] = new FXXPMIcon(a, netEditArrowLeft_xmp);
334  myIcons[ICON_NETEDITARROWRIGHT] = new FXXPMIcon(a, netEditArrowRight_xmp);
335 
336  myIcons[ICON_LANEPEDESTRIAN] = new FXXPMIcon(a, lanepedestrian);
337  myIcons[ICON_LANEBUS] = new FXXPMIcon(a, lanebus);
338  myIcons[ICON_LANEBIKE] = new FXXPMIcon(a, lanebike);
339  myIcons[ICON_LANEGREENVERGE] = new FXXPMIcon(a, lanegreenverge);
340 
341  myIcons[ICON_EXT] = new FXXPMIcon(a, ext_xpm);
342  myIcons[ICON_CUT_SWELL] = new FXXPMIcon(a, cut_xpm);
343 
344  myIcons[ICON_MODEADDITIONAL] = new FXXPMIcon(a, modeadditional_xpm);
345  myIcons[ICON_MODECONNECTION] = new FXXPMIcon(a, modeconnection_xpm);
346  myIcons[ICON_MODECREATEEDGE] = new FXXPMIcon(a, modecreateedge_xpm);
347  myIcons[ICON_MODECROSSING] = new FXXPMIcon(a, modecrossing_xpm);
348  myIcons[ICON_MODETAZ] = new FXXPMIcon(a, modetaz_xpm);
349  myIcons[ICON_MODEDELETE] = new FXXPMIcon(a, modedelete_xpm);
350  myIcons[ICON_MODEINSPECT] = new FXXPMIcon(a, modeinspect_xpm);
351  myIcons[ICON_MODEMOVE] = new FXXPMIcon(a, modemove_xpm);
352  myIcons[ICON_MODESELECT] = new FXXPMIcon(a, modeselect_xpm);
353  myIcons[ICON_MODETLS] = new FXXPMIcon(a, modetrafficlight_xpm);
354  myIcons[ICON_MODEPOLYGON] = new FXXPMIcon(a, modepolygon_xpm);
355  myIcons[ICON_MODEPROHIBITION] = new FXXPMIcon(a, modeprohibition_xpm);
356 
357  myIcons[ICON_CLEANJUNCTIONS] = new FXXPMIcon(a, cleanjunctions_xpm);
358  myIcons[ICON_COMPUTEJUNCTIONS] = new FXXPMIcon(a, computejunctions_xpm);
359  myIcons[ICON_JOINJUNCTIONS] = new FXXPMIcon(a, joinjunctions_xpm);
360  myIcons[ICON_OPTIONS] = new FXXPMIcon(a, options_xpm);
361 
362  myIcons[ICON_JUNCTION] = new FXXPMIcon(a, junction_xpm);
363  myIcons[ICON_EDGE] = new FXXPMIcon(a, edge_xpm);
364  myIcons[ICON_LANE] = new FXXPMIcon(a, lane_xpm);
365  myIcons[ICON_CONNECTION] = new FXXPMIcon(a, connection_xpm);
366  myIcons[ICON_PROHIBITION] = new FXXPMIcon(a, prohibition_xpm);
367  myIcons[ICON_CROSSING] = new FXXPMIcon(a, crossing_xpm);
368 
369  myIcons[ICON_BUSSTOP] = new FXXPMIcon(a, busstop_xpm);
370  myIcons[ICON_ACCESS] = new FXXPMIcon(a, access_xpm);
371  myIcons[ICON_CONTAINERSTOP] = new FXXPMIcon(a, containerstop_xpm);
372  myIcons[ICON_CHARGINGSTATION] = new FXXPMIcon(a, chargingstation_xpm);
373  myIcons[ICON_PARKINGAREA] = new FXXPMIcon(a, parkingarea_xpm);
374  myIcons[ICON_PARKINGSPACE] = new FXXPMIcon(a, parkingspace_xpm);
375  myIcons[ICON_E1] = new FXXPMIcon(a, e1_xpm);
376  myIcons[ICON_E2] = new FXXPMIcon(a, e2_xpm);
377  myIcons[ICON_E3] = new FXXPMIcon(a, e3_xpm);
378  myIcons[ICON_E3ENTRY] = new FXXPMIcon(a, e3entry_xpm);
379  myIcons[ICON_E3EXIT] = new FXXPMIcon(a, e3exit_xpm);
380  myIcons[ICON_E1INSTANT] = new FXXPMIcon(a, e1instant_xpm);
381  myIcons[ICON_REROUTER] = new FXXPMIcon(a, rerouter_xpm);
382  myIcons[ICON_ROUTEPROBE] = new FXXPMIcon(a, routeprobe_xpm);
383  myIcons[ICON_VAPORIZER] = new FXXPMIcon(a, vaporizer_xpm);
384  myIcons[ICON_VARIABLESPEEDSIGN] = new FXXPMIcon(a, variablespeedsign_xpm);
385  myIcons[ICON_CALIBRATOR] = new FXXPMIcon(a, calibrator_xpm);
386  myIcons[ICON_REROUTERINTERVAL] = new FXXPMIcon(a, rerouterinterval_xpm);
387  myIcons[ICON_VSSSTEP] = new FXXPMIcon(a, vssstep_xpm);
388  myIcons[ICON_CLOSINGREROUTE] = new FXXPMIcon(a, closingreroute_xpm);
389  myIcons[ICON_CLOSINGLANEREROUTE] = new FXXPMIcon(a, closinglanereroute_xpm);
390  myIcons[ICON_DESTPROBREROUTE] = new FXXPMIcon(a, destprobreroute_xpm);
391  myIcons[ICON_PARKINGZONEREROUTE] = new FXXPMIcon(a, parkingzonereroute_xpm);
392  myIcons[ICON_ROUTEPROBREROUTE] = new FXXPMIcon(a, routeprobreroute_xpm);
393  myIcons[ICON_TAZ] = new FXXPMIcon(a, taz_xpm);
394  myIcons[ICON_TAZEDGE] = new FXXPMIcon(a, tazedge_xpm);
395 
396  myIcons[ICON_FLOW] = new FXXPMIcon(a, flow_xpm);
397  myIcons[ICON_ROUTE] = new FXXPMIcon(a, route_xpm);
398  myIcons[ICON_VTYPE] = new FXXPMIcon(a, vtype_xpm);
399 
400  myIcons[ICON_VCLASS_IGNORING] = new FXXPMIcon(a, vclass_ignoring_xpm);
401  myIcons[ICON_VCLASS_PRIVATE] = new FXXPMIcon(a, vclass_private_xpm);
402  myIcons[ICON_VCLASS_EMERGENCY] = new FXXPMIcon(a, vclass_emergency_xpm);
403  myIcons[ICON_VCLASS_AUTHORITY] = new FXXPMIcon(a, vclass_authority_xpm);
404  myIcons[ICON_VCLASS_ARMY] = new FXXPMIcon(a, vclass_army_xpm);
405  myIcons[ICON_VCLASS_VIP] = new FXXPMIcon(a, vclass_vip_xpm);
406  myIcons[ICON_VCLASS_PASSENGER] = new FXXPMIcon(a, vclass_passenger_xpm);
407  myIcons[ICON_VCLASS_HOV] = new FXXPMIcon(a, vclass_hov_xpm);
408  myIcons[ICON_VCLASS_TAXI] = new FXXPMIcon(a, vclass_taxi_xpm);
409  myIcons[ICON_VCLASS_BUS] = new FXXPMIcon(a, vclass_bus_xpm);
410  myIcons[ICON_VCLASS_COACH] = new FXXPMIcon(a, vclass_coach_xpm);
411  myIcons[ICON_VCLASS_DELIVERY] = new FXXPMIcon(a, vclass_delivery_xpm);
412  myIcons[ICON_VCLASS_TRUCK] = new FXXPMIcon(a, vclass_truck_xpm);
413  myIcons[ICON_VCLASS_TRAILER] = new FXXPMIcon(a, vclass_trailer_xpm);
414  myIcons[ICON_VCLASS_TRAM] = new FXXPMIcon(a, vclass_tram_xpm);
415  myIcons[ICON_VCLASS_RAIL_URBAN] = new FXXPMIcon(a, vclass_rail_urban_xpm);
416  myIcons[ICON_VCLASS_RAIL] = new FXXPMIcon(a, vclass_rail_xpm);
417  myIcons[ICON_VCLASS_RAIL_ELECTRIC] = new FXXPMIcon(a, vclass_rail_electric_xpm);
418  myIcons[ICON_VCLASS_MOTORCYCLE] = new FXXPMIcon(a, vclass_motorcycle_xpm);
419  myIcons[ICON_VCLASS_MOPED] = new FXXPMIcon(a, vclass_moped_xpm);
420  myIcons[ICON_VCLASS_BICYCLE] = new FXXPMIcon(a, vclass_bicycle_xpm);
421  myIcons[ICON_VCLASS_PEDESTRIAN] = new FXXPMIcon(a, vclass_pedestrian_xpm);
422  myIcons[ICON_VCLASS_EVEHICLE] = new FXXPMIcon(a, vclass_evehicle_xpm);
423  myIcons[ICON_VCLASS_SHIP] = new FXXPMIcon(a, vclass_ship_xpm);
424  myIcons[ICON_VCLASS_CUSTOM1] = new FXXPMIcon(a, vclass_custom1_xpm);
425  myIcons[ICON_VCLASS_CUSTOM2] = new FXXPMIcon(a, vclass_custom2_xpm);
426 
427  myIcons[ICON_OK] = new FXXPMIcon(a, accept_xpm); // @todo create ok icon
428  myIcons[ICON_ACCEPT] = new FXXPMIcon(a, accept_xpm);
429  myIcons[ICON_CANCEL] = new FXXPMIcon(a, cancel_xpm);
430  myIcons[ICON_CORRECT] = new FXXPMIcon(a, correct_xpm);
431  myIcons[ICON_ERROR] = new FXXPMIcon(a, error_xpm);
432  myIcons[ICON_RESET] = new FXXPMIcon(a, reset_xpm);
433  myIcons[ICON_WARNING] = new FXXPMIcon(a, warning_xpm);
434 
435  myIcons[ICON_GRID1] = new FXXPMIcon(a, grid1_xpm);
436  myIcons[ICON_GRID2] = new FXXPMIcon(a, grid2_xpm);
437  myIcons[ICON_GRID3] = new FXXPMIcon(a, grid3_xpm);
438 
439  // ... and create them
440  for (int i = 0; i < ICON_MAX; i++) {
441  if (myIcons[i] != nullptr) {
442  myIcons[i]->create();
443  }
444  }
445 }
446 
447 
449  for (int i = 0; i < ICON_MAX; i++) {
450  delete myIcons[i];
451  }
452 }
453 
454 
455 void
457  assert(myInstance == 0);
458  myInstance = new GUIIconSubSys(a);
459 }
460 
461 
462 FXIcon*
464  return myInstance->myIcons[which];
465 }
466 
467 
468 void
470  delete myInstance;
471  myInstance = nullptr;
472 }
473 
474 
475 /****************************************************************************/
476 
GUIIcon
An enumeration of icons used by the gui applications.
Definition: GUIIcons.h:36
static void initIcons(FXApp *a)
Initiate GUIIconSubSys.
const unsigned char flag[]
Definition: flag.cpp:21
max number of icons
Definition: GUIIcons.h:316
const unsigned char flag_plus[]
Definition: flag_plus.cpp:21
const unsigned char manip[]
Definition: manip.cpp:21
static GUIIconSubSys * myInstance
instance of GUIIconSubSys
Definition: GUIIconSubSys.h:56
FXIcon * myIcons[ICON_MAX]
vector with the icons
Definition: GUIIconSubSys.h:59
static void close()
close GUIIconSubSys
~GUIIconSubSys()
destructor
GUIIconSubSys(FXApp *a)
constructor is private because is called by the static function init(FXApp* a)
const unsigned char flag_minus[]
Definition: flag_minus.cpp:20
static FXIcon * getIcon(GUIIcon which)
returns a icon previously defined in the enum GUIIcon