summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2007-08-12 09:35:38 +0000
committernicholasbishop <nicholasbishop@users.sourceforge.net>2007-08-12 09:35:38 +0000
commite85ccdf642c13d03eb1ea758bfcb534e5023f63b (patch)
tree8092bdbe87ae7ab7de6d59fa1e213fac06dd1b46 /src
parentFilter effects dialog: (diff)
downloadinkscape-e85ccdf642c13d03eb1ea758bfcb534e5023f63b.tar.gz
inkscape-e85ccdf642c13d03eb1ea758bfcb534e5023f63b.zip
Filter effects dialog:
* Changed SPFeTurbulence/FilterTurbulence to use an enum for the type field * Added type setting to the filter dialog (bzr r3454)
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-filter-turbulence.cpp2
-rw-r--r--src/display/nr-filter-turbulence.h10
-rw-r--r--src/filter-enums.cpp7
-rw-r--r--src/filter-enums.h4
-rw-r--r--src/sp-feturbulence.cpp17
-rw-r--r--src/sp-feturbulence.h3
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp1
7 files changed, 32 insertions, 12 deletions
diff --git a/src/display/nr-filter-turbulence.cpp b/src/display/nr-filter-turbulence.cpp
index 2dbb33e65..7a5fc1dcd 100644
--- a/src/display/nr-filter-turbulence.cpp
+++ b/src/display/nr-filter-turbulence.cpp
@@ -46,7 +46,7 @@ void FilterTurbulence::set_stitchTiles(bool st){
stitchTiles=st;
}
-void FilterTurbulence::set_type(int t){
+void FilterTurbulence::set_type(FilterTurbulenceType t){
type=t;
}
diff --git a/src/display/nr-filter-turbulence.h b/src/display/nr-filter-turbulence.h
index bdb52e7b7..8f7849f88 100644
--- a/src/display/nr-filter-turbulence.h
+++ b/src/display/nr-filter-turbulence.h
@@ -18,6 +18,12 @@
namespace NR {
+enum FilterTurbulenceType {
+ TURBULENCE_FRACTALNOISE,
+ TURBULENCE_TURBULENCE,
+ TURBULENCE_ENDTYPE
+};
+
class FilterTurbulence : public FilterPrimitive {
public:
FilterTurbulence();
@@ -29,13 +35,13 @@ public:
virtual void set_numOctaves(int num);
virtual void set_seed(double s);
virtual void set_stitchTiles(bool st);
- virtual void set_type(int t);
+ virtual void set_type(FilterTurbulenceType t);
private:
double XbaseFrequency, YbaseFrequency;
int numOctaves;
double seed;
bool stitchTiles;
- int type;
+ FilterTurbulenceType type;
};
} /* namespace NR */
diff --git a/src/filter-enums.cpp b/src/filter-enums.cpp
index d9f0a3986..111cd62f9 100644
--- a/src/filter-enums.cpp
+++ b/src/filter-enums.cpp
@@ -101,6 +101,13 @@ const EnumData<NR::FilterMorphologyOperator> MorphologyOperatorData[NR::MORPHOLO
};
const EnumDataConverter<NR::FilterMorphologyOperator> MorphologyOperatorConverter(MorphologyOperatorData, NR::MORPHOLOGY_OPERATOR_END);
+// feTurbulence
+const EnumData<NR::FilterTurbulenceType> TurbulenceTypeData[NR::TURBULENCE_ENDTYPE] = {
+ {NR::TURBULENCE_FRACTALNOISE, _("Fractal Noise"), "fractalNoise"},
+ {NR::TURBULENCE_TURBULENCE, _("Turbulence"), "turbulence"}
+};
+const EnumDataConverter<NR::FilterTurbulenceType> TurbulenceTypeConverter(TurbulenceTypeData, NR::TURBULENCE_ENDTYPE);
+
// Light source
const EnumData<LightSource> LightSourceData[LIGHT_ENDSOURCE] = {
{LIGHT_DISTANT, _("Distance Light"), "svg:feDistanceLight"},
diff --git a/src/filter-enums.h b/src/filter-enums.h
index 37c7e6f0d..c1e3fcdcc 100644
--- a/src/filter-enums.h
+++ b/src/filter-enums.h
@@ -17,6 +17,7 @@
#include "display/nr-filter-composite.h"
#include "display/nr-filter-convolve-matrix.h"
#include "display/nr-filter-morphology.h"
+#include "display/nr-filter-turbulence.h"
#include "display/nr-filter-types.h"
#include "util/enums.h"
@@ -55,6 +56,9 @@ extern const Inkscape::Util::EnumDataConverter<int> DisplacementMapChannelConver
// Morphology operator
extern const Inkscape::Util::EnumData<NR::FilterMorphologyOperator> MorphologyOperatorData[NR::MORPHOLOGY_OPERATOR_END];
extern const Inkscape::Util::EnumDataConverter<NR::FilterMorphologyOperator> MorphologyOperatorConverter;
+// Turbulence type
+extern const Inkscape::Util::EnumData<NR::FilterTurbulenceType> TurbulenceTypeData[NR::TURBULENCE_ENDTYPE];
+extern const Inkscape::Util::EnumDataConverter<NR::FilterTurbulenceType> TurbulenceTypeConverter;
// Lighting
enum LightSource {
LIGHT_DISTANT,
diff --git a/src/sp-feturbulence.cpp b/src/sp-feturbulence.cpp
index effdd777e..dfff840e0 100644
--- a/src/sp-feturbulence.cpp
+++ b/src/sp-feturbulence.cpp
@@ -129,17 +129,17 @@ static bool sp_feTurbulence_read_stitchTiles(gchar const *value){
return false; // 'noStitch' is default
}
-static int sp_feTurbulence_read_type(gchar const *value){
- if (!value) return 1; // 'turbulence' is default
+static NR::FilterTurbulenceType sp_feTurbulence_read_type(gchar const *value){
+ if (!value) return NR::TURBULENCE_TURBULENCE; // 'turbulence' is default
switch(value[0]){
case 'f':
- if (strncmp(value, "fractalNoise", 12) == 0) return 0;
+ if (strncmp(value, "fractalNoise", 12) == 0) return NR::TURBULENCE_FRACTALNOISE;
break;
case 't':
- if (strncmp(value, "turbulence", 10) == 0) return 1;
+ if (strncmp(value, "turbulence", 10) == 0) return NR::TURBULENCE_TURBULENCE;
break;
}
- return 1; // 'turbulence' is default
+ return NR::TURBULENCE_TURBULENCE; // 'turbulence' is default
}
/**
@@ -154,6 +154,7 @@ sp_feTurbulence_set(SPObject *object, unsigned int key, gchar const *value)
int read_int;
double read_num;
bool read_bool;
+ NR::FilterTurbulenceType read_type;
switch(key) {
/*DEAL WITH SETTING ATTRIBUTES HERE*/
@@ -187,9 +188,9 @@ sp_feTurbulence_set(SPObject *object, unsigned int key, gchar const *value)
}
break;
case SP_ATTR_TYPE:
- read_int = sp_feTurbulence_read_type(value);
- if (read_int != feTurbulence->type){
- feTurbulence->type = read_int;
+ read_type = sp_feTurbulence_read_type(value);
+ if (read_type != feTurbulence->type){
+ feTurbulence->type = read_type;
object->parent->requestModified(SP_OBJECT_MODIFIED_FLAG);
}
break;
diff --git a/src/sp-feturbulence.h b/src/sp-feturbulence.h
index 7f9adae13..40e1c0a42 100644
--- a/src/sp-feturbulence.h
+++ b/src/sp-feturbulence.h
@@ -17,6 +17,7 @@
#include "sp-filter.h"
#include "sp-feturbulence-fns.h"
#include "number-opt-number.h"
+#include "display/nr-filter-turbulence.h"
/* FeTurbulence base class */
class SPFeTurbulenceClass;
@@ -27,7 +28,7 @@ struct SPFeTurbulence : public SPFilterPrimitive {
int numOctaves;
double seed;
bool stitchTiles;
- int type;
+ NR::FilterTurbulenceType type;
};
struct SPFeTurbulenceClass {
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index c871d447e..24ba5cfc8 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1820,6 +1820,7 @@ void FilterEffectsDialog::init_settings_widgets()
_settings->type(NR_FILTER_TURBULENCE);
_settings->add_checkbutton(SP_ATTR_STITCHTILES, _("Stitch Tiles"), "stitch", "noStitch");
+ _settings->add_combo(SP_ATTR_TYPE, _("Type"), TurbulenceTypeConverter);
_settings->add_dualspinslider(SP_ATTR_BASEFREQUENCY, _("Base Frequency"), 0, 100, 1, 0.01, 1);
_settings->add_spinslider(SP_ATTR_NUMOCTAVES, _("Octaves"), 1, 10, 1, 1, 0);
_settings->add_spinslider(SP_ATTR_SEED, _("Seed"), 0, 1000, 1, 1, 0);