00001
00002 #ifndef QGSSTYLEV2_H
00003 #define QGSSTYLEV2_H
00004
00005 #include <QMap>
00006 #include <QString>
00007
00008 #include "qgssymbollayerv2utils.h"
00009
00010 class QgsSymbolV2;
00011 class QgsSymbolLayerV2;
00012 class QgsVectorColorRampV2;
00013
00014 class QDomDocument;
00015 class QDomElement;
00016
00017 typedef QMap<QString, QgsVectorColorRampV2* > QgsVectorColorRampV2Map;
00018
00019 class CORE_EXPORT QgsStyleV2
00020 {
00021 public:
00022
00023 QgsStyleV2();
00024 ~QgsStyleV2();
00025
00027 static QgsStyleV2* defaultStyle();
00028
00030 void clear();
00031
00033 bool addSymbol( QString name, QgsSymbolV2* symbol );
00034
00036 bool removeSymbol( QString name );
00037
00039 QgsSymbolV2* symbol( QString name );
00040
00042 const QgsSymbolV2* symbolRef( QString name ) const;
00043
00045 int symbolCount();
00046
00048 QStringList symbolNames();
00049
00050
00052 bool addColorRamp( QString name, QgsVectorColorRampV2* colorRamp );
00053
00055 bool removeColorRamp( QString name );
00056
00058 QgsVectorColorRampV2* colorRamp( QString name );
00059
00061 const QgsVectorColorRampV2* colorRampRef( QString name ) const;
00062
00064 int colorRampCount();
00065
00067 QStringList colorRampNames();
00068
00069
00071 bool load( QString filename );
00072
00074 bool save( QString filename = QString() );
00075
00077 QString errorString() { return mErrorString; }
00078
00080 QString fileName() { return mFileName; }
00081
00082 protected:
00083
00084 QgsSymbolV2Map mSymbols;
00085 QgsVectorColorRampV2Map mColorRamps;
00086
00087 QString mErrorString;
00088 QString mFileName;
00089
00090 static QgsStyleV2* mDefaultStyle;
00091 };
00092
00093
00094 #endif