summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2007-08-06 00:24:31 +0000
committernicholasbishop <nicholasbishop@users.sourceforge.net>2007-08-06 00:24:31 +0000
commit621686d40b44de8d5d852d74da02b40a71ee509a (patch)
tree2c57e8d8c98c2161c97cd8a02cc364f6b74db551 /src
parentStore a global list of existing perspectives; for each perspective hold a lis... (diff)
downloadinkscape-621686d40b44de8d5d852d74da02b40a71ee509a.tar.gz
inkscape-621686d40b44de8d5d852d74da02b40a71ee509a.zip
Filter effects:
* Added edge mode setting to the filter dialog * Changed type of edgeMode in SPFeConvolveMatrix to use the enum type (bzr r3381)
Diffstat (limited to 'src')
-rw-r--r--src/filter-enums.cpp8
-rw-r--r--src/filter-enums.h4
-rw-r--r--src/sp-feconvolvematrix.h5
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp1
4 files changed, 15 insertions, 3 deletions
diff --git a/src/filter-enums.cpp b/src/filter-enums.cpp
index 2d26095a4..a688ecc19 100644
--- a/src/filter-enums.cpp
+++ b/src/filter-enums.cpp
@@ -77,6 +77,14 @@ const EnumData<FeCompositeOperator> CompositeOperatorData[COMPOSITE_ENDOPERATOR]
};
const EnumDataConverter<FeCompositeOperator> CompositeOperatorConverter(CompositeOperatorData, COMPOSITE_ENDOPERATOR);
+// feConvolveMatrix
+const EnumData<NR::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeData[NR::CONVOLVEMATRIX_EDGEMODE_ENDTYPE] = {
+ {NR::CONVOLVEMATRIX_EDGEMODE_DUPLICATE, _("Duplicate"), "duplicate"},
+ {NR::CONVOLVEMATRIX_EDGEMODE_WRAP, _("Wrap"), "wrap"},
+ {NR::CONVOLVEMATRIX_EDGEMODE_NONE, _("None"), "none"}
+};
+const EnumDataConverter<NR::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeConverter(ConvolveMatrixEdgeModeData, NR::CONVOLVEMATRIX_EDGEMODE_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 cbea5545b..8a6a56841 100644
--- a/src/filter-enums.h
+++ b/src/filter-enums.h
@@ -15,6 +15,7 @@
#include "display/nr-filter-blend.h"
#include "display/nr-filter-colormatrix.h"
#include "display/nr-filter-composite.h"
+#include "display/nr-filter-convolve-matrix.h"
#include "display/nr-filter-types.h"
#include "util/enums.h"
@@ -44,6 +45,9 @@ extern const Inkscape::Util::EnumDataConverter<NR::FilterColorMatrixType> ColorM
// Composite operator
extern const Inkscape::Util::EnumData<FeCompositeOperator> CompositeOperatorData[COMPOSITE_ENDOPERATOR];
extern const Inkscape::Util::EnumDataConverter<FeCompositeOperator> CompositeOperatorConverter;
+// ConvolveMatrix edgeMode
+extern const Inkscape::Util::EnumData<NR::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeData[NR::CONVOLVEMATRIX_EDGEMODE_ENDTYPE];
+extern const Inkscape::Util::EnumDataConverter<NR::FilterConvolveMatrixEdgeMode> ConvolveMatrixEdgeModeConverter;
// Lighting
enum LightSource {
LIGHT_DISTANT,
diff --git a/src/sp-feconvolvematrix.h b/src/sp-feconvolvematrix.h
index 0cb4abc67..d757d7b3d 100644
--- a/src/sp-feconvolvematrix.h
+++ b/src/sp-feconvolvematrix.h
@@ -17,9 +17,8 @@
#include "sp-filter.h"
#include "sp-feconvolvematrix-fns.h"
#include "number-opt-number.h"
+#include "display/nr-filter-convolve-matrix.h"
#include <vector>
-//#include <glib.h>
-
/* FeConvolveMatrix base class */
class SPFeConvolveMatrixClass;
@@ -30,7 +29,7 @@ struct SPFeConvolveMatrix : public SPFilterPrimitive {
std::vector<gdouble> kernelMatrix;
double divisor, bias;
int targetX, targetY;
- int edgeMode;
+ NR::FilterConvolveMatrixEdgeMode edgeMode;
NumberOptNumber kernelUnitLength;
bool preserveAlpha;
};
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index edbae518d..3c306d382 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1670,6 +1670,7 @@ void FilterEffectsDialog::init_settings_widgets()
_convolve_order->signal_attr_changed().connect(sigc::mem_fun(*this, &FilterEffectsDialog::convolve_order_changed));
_settings->add_spinslider(SP_ATTR_DIVISOR, _("Divisor"), 0.01, 10, 1, 0.01, 1);
_settings->add_spinslider(SP_ATTR_BIAS, _("Bias"), -10, 10, 1, 0.01, 1);
+ _settings->add_combo(SP_ATTR_EDGEMODE, _("Edge Mode"), ConvolveMatrixEdgeModeConverter);
_settings->type(NR_FILTER_DIFFUSELIGHTING);
_settings->add_color(SP_PROP_LIGHTING_COLOR, _("Diffuse Color"));