SUMO - Simulation of Urban MObility
|
00001 /****************************************************************************/ 00010 // 00011 /****************************************************************************/ 00012 // SUMO, Simulation of Urban MObility; see http://sumo.sourceforge.net/ 00013 // Copyright (C) 2001-2012 DLR (http://www.dlr.de/) and contributors 00014 /****************************************************************************/ 00015 // 00016 // This file is part of SUMO. 00017 // SUMO is free software: you can redistribute it and/or modify 00018 // it under the terms of the GNU General Public License as published by 00019 // the Free Software Foundation, either version 3 of the License, or 00020 // (at your option) any later version. 00021 // 00022 /****************************************************************************/ 00023 #ifndef GUIColorer_h 00024 #define GUIColorer_h 00025 00026 00027 // =========================================================================== 00028 // included modules 00029 // =========================================================================== 00030 #ifdef _MSC_VER 00031 #include <windows_config.h> 00032 #else 00033 #include <config.h> 00034 #endif 00035 00036 #ifdef _WIN32 00037 #include <windows.h> 00038 #endif 00039 00040 #include <GL/gl.h> 00041 00042 #include <vector> 00043 #include <fx.h> 00044 #include <utils/iodevices/OutputDevice.h> 00045 #include "GUIColorScheme.h" 00046 00047 00048 // =========================================================================== 00049 // class definitions 00050 // =========================================================================== 00056 class GUIColorer { 00057 public: 00059 GUIColorer() : myActiveScheme(0) { } 00060 00062 virtual ~GUIColorer() { } 00063 00065 void fill(FXComboBox& cb) { 00066 for (std::vector<GUIColorScheme>::iterator i = mySchemes.begin(); i != mySchemes.end(); ++i) { 00067 cb.appendItem((*i).getName().c_str()); 00068 } 00069 cb.setCurrentItem((FXint)myActiveScheme); 00070 } 00071 00072 void setActive(size_t scheme) { 00073 if (scheme < mySchemes.size()) { 00074 myActiveScheme = scheme; 00075 } 00076 } 00077 00078 size_t getActive() const { 00079 return myActiveScheme; 00080 } 00081 00082 GUIColorScheme& getScheme() { 00083 return mySchemes[myActiveScheme]; 00084 } 00085 00086 const GUIColorScheme& getScheme() const { 00087 return mySchemes[myActiveScheme]; 00088 } 00089 00090 GUIColorScheme* getSchemeByName(std::string name) { 00091 for (std::vector<GUIColorScheme>::iterator i = mySchemes.begin(); i != mySchemes.end(); ++i) { 00092 if ((*i).getName() == name) { 00093 return &(*i); 00094 } 00095 } 00096 return 0; 00097 } 00098 00099 void save(OutputDevice& dev) const { 00100 for (std::vector<GUIColorScheme>::const_iterator i = mySchemes.begin(); i != mySchemes.end(); ++i) { 00101 i->save(dev); 00102 } 00103 } 00104 00105 bool operator==(const GUIColorer& c) const { 00106 return myActiveScheme == c.myActiveScheme && mySchemes == c.mySchemes; 00107 } 00108 00109 00110 void addScheme(GUIColorScheme scheme) { 00111 mySchemes.push_back(scheme); 00112 } 00113 00114 00115 protected: 00116 size_t myActiveScheme; 00117 std::vector<GUIColorScheme> mySchemes; 00118 00119 }; 00120 00121 00122 #endif 00123 00124 /****************************************************************************/