|
SUMO - Simulation of Urban MObility
|
00001 /****************************************************************************/ 00007 // Helper for icons loading and usage 00008 /****************************************************************************/ 00009 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00010 // Copyright (C) 2001-2011 DLR (http://www.dlr.de/) and contributors 00011 /****************************************************************************/ 00012 // 00013 // This program is free software; you can redistribute it and/or modify 00014 // it under the terms of the GNU General Public License as published by 00015 // the Free Software Foundation; either version 2 of the License, or 00016 // (at your option) any later version. 00017 // 00018 /****************************************************************************/ 00019 00020 00021 // =========================================================================== 00022 // included modules 00023 // =========================================================================== 00024 #ifdef _MSC_VER 00025 #include <windows_config.h> 00026 #else 00027 #include <config.h> 00028 #endif 00029 00030 #include <fx.h> 00031 #include <cassert> 00032 #include "GUIIcons.h" 00033 #include "GUIIconSubSys.h" 00034 00035 #include "filesave.xpm" 00036 #include "fileopen.xpm" 00037 #include "netopen.xpm" 00038 #include "play.xpm" 00039 #include "stop.xpm" 00040 #include "step.xpm" 00041 #include "new_window.xpm" 00042 #include "document.xpm" 00043 00044 #include "app_tracker.xpm" 00045 #include "app_finder.xpm" 00046 #include "app_breakpoints.xpm" 00047 #include "app_tlstracker.xpm" 00048 #include "app_table.xpm" 00049 #include "app_selector.xpm" 00050 00051 #include "locate.xpm" 00052 #include "locate_junction.xpm" 00053 #include "locate_edge.xpm" 00054 #include "locate_vehicle.xpm" 00055 #include "locate_tls.xpm" 00056 #include "locate_add.xpm" 00057 #include "locate_shape.xpm" 00058 00059 #include "colorwheel.xpm" 00060 #include "savedb.xpm" 00061 #include "removedb.xpm" 00062 #include "recenter_view.xpm" 00063 #include "allow_rotation.xpm" 00064 #include "show_tooltips.xpm" 00065 #include "magnify.xpm" 00066 #include "zoomstyle.xpm" 00067 #include "yes.xpm" 00068 #include "no.xpm" 00069 00070 #include "extract_streets.xpm" 00071 #include "dilate.xpm" 00072 #include "erode.xpm" 00073 #include "opening.xpm" 00074 #include "closing.xpm" 00075 #include "erase_stains.xpm" 00076 #include "close_gaps.xpm" 00077 #include "skeletonize.xpm" 00078 #include "rarify.xpm" 00079 #include "create_graph.xpm" 00080 #include "open_bmp_dialog.xpm" 00081 #include "eyedrop.xpm" 00082 #include "rubber1x.xpm" 00083 #include "rubber2x.xpm" 00084 #include "rubber3x.xpm" 00085 #include "rubber4x.xpm" 00086 #include "rubber5x.xpm" 00087 #include "paintbrush1x.xpm" 00088 #include "paintbrush2x.xpm" 00089 #include "paintbrush3x.xpm" 00090 #include "paintbrush4x.xpm" 00091 #include "paintbrush5x.xpm" 00092 #include "edit_graph.xpm" 00093 00094 00095 #include "flag.cpp" 00096 #include "flag_plus.cpp" 00097 #include "flag_minus.cpp" 00098 #include "windows_cascade.xpm" 00099 #include "windows_tile_vertically.xpm" 00100 #include "windows_tile_horizontally.xpm" 00101 #include "reload.xpm" 00102 #include "manip.cpp" 00103 #include "camera.xpm" 00104 00105 #include "undo.xpm" 00106 #include "redo.xpm" 00107 #include "netedit.xpm" 00108 00109 #include "cut.xpm" 00110 #include "ext.xpm" 00111 00112 00113 static const char* empty_xpm[] = { 00114 " 1 1 1 1", 00115 ". c None", 00116 "." 00117 }; 00118 00119 00120 #ifdef CHECK_MEMORY_LEAKS 00121 #include <foreign/nvwa/debug_new.h> 00122 #endif // CHECK_MEMORY_LEAKS 00123 00124 00125 // =========================================================================== 00126 // static member variable definitions 00127 // =========================================================================== 00128 GUIIconSubSys* GUIIconSubSys::myInstance = 0; 00129 00130 00131 // =========================================================================== 00132 // member definitions 00133 // =========================================================================== 00134 GUIIconSubSys::GUIIconSubSys(FXApp* a) { 00135 // build icons 00136 myIcons[ICON_APP] = new FXXPMIcon(a, document_xpm); 00137 myIcons[ICON_EMPTY] = new FXXPMIcon(a, empty_xpm); 00138 myIcons[ICON_OPEN_CONFIG] = new FXXPMIcon(a, fileopen_xpm); 00139 myIcons[ICON_OPEN_NET] = new FXXPMIcon(a, netopen_xpm); 00140 myIcons[ICON_RELOAD] = new FXXPMIcon(a, reload_xpm); 00141 myIcons[ICON_SAVE] = new FXXPMIcon(a, filesave_xpm); 00142 myIcons[ICON_CLOSE] = 0;//new FXXPMIcon(a, close); 00143 myIcons[ICON_START] = new FXXPMIcon(a, play_xpm); 00144 myIcons[ICON_STOP] = new FXXPMIcon(a, stop_xpm); 00145 myIcons[ICON_STEP] = new FXXPMIcon(a, step_xpm); 00146 myIcons[ICON_MICROVIEW] = new FXXPMIcon(a, new_window_xpm); 00147 myIcons[ICON_LAGGRVIEW] = new FXXPMIcon(a, new_window_xpm); 00148 myIcons[ICON_RECENTERVIEW] = new FXXPMIcon(a, recenter_view_xpm); 00149 myIcons[ICON_ALLOWROTATION] = new FXXPMIcon(a, allow_rotation_xpm); 00150 myIcons[ICON_EDITVIEWPORT] = new FXXPMIcon(a, magnify_xpm); 00151 myIcons[ICON_ZOOMSTYLE] = new FXXPMIcon(a, zoomstyle_xpm); 00152 00153 myIcons[ICON_APP_TRACKER] = new FXXPMIcon(a, app_tracker_xpm); 00154 myIcons[ICON_APP_FINDER] = new FXXPMIcon(a, app_finder_xpm); 00155 myIcons[ICON_APP_BREAKPOINTS] = new FXXPMIcon(a, app_breakpoints_xpm); 00156 myIcons[ICON_APP_TLSTRACKER] = new FXXPMIcon(a, app_tlstracker_xpm); 00157 myIcons[ICON_APP_TABLE] = new FXXPMIcon(a, app_table_xpm); 00158 myIcons[ICON_APP_SELECTOR] = new FXXPMIcon(a, app_selector_xpm); 00159 00160 myIcons[ICON_LOCATE] = new FXXPMIcon(a, locate_xpm); 00161 myIcons[ICON_LOCATEJUNCTION] = new FXXPMIcon(a, locate_junction_xpm); 00162 myIcons[ICON_LOCATEEDGE] = new FXXPMIcon(a, locate_edge_xpm); 00163 myIcons[ICON_LOCATEVEHICLE] = new FXXPMIcon(a, locate_vehicle_xpm); 00164 myIcons[ICON_LOCATETLS] = new FXXPMIcon(a, locate_tls_xpm); 00165 myIcons[ICON_LOCATEADD] = new FXXPMIcon(a, locate_add_xpm); 00166 myIcons[ICON_LOCATESHAPE] = new FXXPMIcon(a, locate_shape_xpm); 00167 00168 myIcons[ICON_COLORWHEEL] = new FXXPMIcon(a, colorwheel_xpm); 00169 myIcons[ICON_SAVEDB] = new FXXPMIcon(a, savedb_xpm); 00170 myIcons[ICON_REMOVEDB] = new FXXPMIcon(a, removedb_xpm); 00171 myIcons[ICON_SHOWTOOLTIPS] = new FXXPMIcon(a, show_tooltips_xpm); 00172 myIcons[ICON_YES] = new FXXPMIcon(a, yes_xpm); 00173 myIcons[ICON_NO] = new FXXPMIcon(a, no_xpm); 00174 myIcons[ICON_FLAG] = new FXGIFIcon(a, flag); 00175 myIcons[ICON_FLAG_PLUS] = new FXGIFIcon(a, flag_plus); 00176 myIcons[ICON_FLAG_MINUS] = new FXGIFIcon(a, flag_minus); 00177 // window arrangements 00178 myIcons[ICON_WINDOWS_CASCADE] = new FXXPMIcon(a, windows_cascade_xpm); 00179 myIcons[ICON_WINDOWS_TILE_VERT] = new FXXPMIcon(a, windows_tile_vertically_xpm); 00180 myIcons[ICON_WINDOWS_TILE_HORI] = new FXXPMIcon(a, windows_tile_horizontally_xpm); 00181 // manipulate 00182 myIcons[ICON_MANIP] = new FXGIFIcon(a, manip); 00183 myIcons[ICON_CAMERA] = new FXXPMIcon(a, camera_xpm); 00184 myIcons[ICON_EXTRACT] = new FXXPMIcon(a, extract_streets_xpm); 00185 myIcons[ICON_DILATE] = new FXXPMIcon(a, dilate_xpm); 00186 myIcons[ICON_ERODE] = new FXXPMIcon(a, erode_xpm); 00187 myIcons[ICON_OPENING] = new FXXPMIcon(a, opening_xpm); 00188 myIcons[ICON_CLOSING] = new FXXPMIcon(a, closing_xpm); 00189 myIcons[ICON_ERASE_STAINS] = new FXXPMIcon(a, erase_stains_xpm); 00190 myIcons[ICON_CLOSE_GAPS] = new FXXPMIcon(a, close_gaps_xpm); 00191 myIcons[ICON_SKELETONIZE] = new FXXPMIcon(a, skeletonize_xpm); 00192 myIcons[ICON_RARIFY] = new FXXPMIcon(a, rarify_xpm); 00193 myIcons[ICON_CREATE_GRAPH] = new FXXPMIcon(a, create_graph_xpm); 00194 myIcons[ICON_OPEN_BMP_DIALOG] = new FXXPMIcon(a, open_bmp_dialog_xpm); 00195 myIcons[ICON_EYEDROP] = new FXXPMIcon(a, eyedrop_xpm); 00196 myIcons[ICON_PAINTBRUSH1X] = new FXXPMIcon(a, paintbrush1x_xpm); 00197 myIcons[ICON_PAINTBRUSH2X] = new FXXPMIcon(a, paintbrush2x_xpm); 00198 myIcons[ICON_PAINTBRUSH3X] = new FXXPMIcon(a, paintbrush3x_xpm); 00199 myIcons[ICON_PAINTBRUSH4X] = new FXXPMIcon(a, paintbrush4x_xpm); 00200 myIcons[ICON_PAINTBRUSH5X] = new FXXPMIcon(a, paintbrush5x_xpm); 00201 myIcons[ICON_RUBBER1X] = new FXXPMIcon(a, rubber1x_xpm); 00202 myIcons[ICON_RUBBER2X] = new FXXPMIcon(a, rubber2x_xpm); 00203 myIcons[ICON_RUBBER3X] = new FXXPMIcon(a, rubber3x_xpm); 00204 myIcons[ICON_RUBBER4X] = new FXXPMIcon(a, rubber4x_xpm); 00205 myIcons[ICON_RUBBER5X] = new FXXPMIcon(a, rubber5x_xpm); 00206 myIcons[ICON_EDITGRAPH] = new FXXPMIcon(a, edit_graph_xpm); 00207 00208 myIcons[ICON_UNDO] = new FXXPMIcon(a, undo_xpm); 00209 myIcons[ICON_REDO] = new FXXPMIcon(a, redo_xpm); 00210 myIcons[ICON_NETEDIT] = new FXXPMIcon(a, netedit_xpm); 00211 00212 myIcons[ICON_EXT] = new FXXPMIcon(a, ext_xpm); 00213 myIcons[ICON_CUT_SWELL] = new FXXPMIcon(a, cut_xpm); 00214 00215 // ... and create them 00216 for (int i=0; i<ICON_MAX; i++) { 00217 if (myIcons[i]!=0) { 00218 myIcons[i]->create(); 00219 } 00220 } 00221 } 00222 00223 00224 GUIIconSubSys::~GUIIconSubSys() { 00225 for (int i=0; i<ICON_MAX; i++) { 00226 delete myIcons[i]; 00227 } 00228 } 00229 00230 00231 void 00232 GUIIconSubSys::init(FXApp* a) { 00233 assert(myInstance==0); 00234 myInstance = new GUIIconSubSys(a); 00235 } 00236 00237 00238 FXIcon* 00239 GUIIconSubSys::getIcon(GUIIcon which) { 00240 return myInstance->myIcons[which]; 00241 } 00242 00243 00244 void 00245 GUIIconSubSys::close() { 00246 delete myInstance; 00247 myInstance = 0; 00248 } 00249 00250 00251 00252 /****************************************************************************/ 00253