diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/display/nr-filter-morphology.h | 3 | ||||
| -rw-r--r-- | src/filter-enums.cpp | 7 | ||||
| -rw-r--r-- | src/filter-enums.h | 4 | ||||
| -rw-r--r-- | src/ui/dialog/filter-effects-dialog.cpp | 4 |
4 files changed, 17 insertions, 1 deletions
diff --git a/src/display/nr-filter-morphology.h b/src/display/nr-filter-morphology.h index be9ad2031..be182203c 100644 --- a/src/display/nr-filter-morphology.h +++ b/src/display/nr-filter-morphology.h @@ -19,7 +19,8 @@ namespace NR { enum FilterMorphologyOperator { MORPHOLOGY_OPERATOR_ERODE, - MORPHOLOGY_OPERATOR_DILATE + MORPHOLOGY_OPERATOR_DILATE, + MORPHOLOGY_OPERATOR_END }; class FilterMorphology : public FilterPrimitive { diff --git a/src/filter-enums.cpp b/src/filter-enums.cpp index bd855d102..d9f0a3986 100644 --- a/src/filter-enums.cpp +++ b/src/filter-enums.cpp @@ -94,6 +94,13 @@ const EnumData<int> DisplacementMapChannelData[4] = { }; const EnumDataConverter<int> DisplacementMapChannelConverter(DisplacementMapChannelData, 4); +// feMorphology +const EnumData<NR::FilterMorphologyOperator> MorphologyOperatorData[NR::MORPHOLOGY_OPERATOR_END] = { + {NR::MORPHOLOGY_OPERATOR_ERODE, _("Erode"), "erode"}, + {NR::MORPHOLOGY_OPERATOR_DILATE, _("Dilate"), "dilate"} +}; +const EnumDataConverter<NR::FilterMorphologyOperator> MorphologyOperatorConverter(MorphologyOperatorData, NR::MORPHOLOGY_OPERATOR_END); + // 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 7e5a641c8..37c7e6f0d 100644 --- a/src/filter-enums.h +++ b/src/filter-enums.h @@ -16,6 +16,7 @@ #include "display/nr-filter-colormatrix.h" #include "display/nr-filter-composite.h" #include "display/nr-filter-convolve-matrix.h" +#include "display/nr-filter-morphology.h" #include "display/nr-filter-types.h" #include "util/enums.h" @@ -51,6 +52,9 @@ extern const Inkscape::Util::EnumDataConverter<NR::FilterConvolveMatrixEdgeMode> // DisplacementMap channel extern const Inkscape::Util::EnumData<int> DisplacementMapChannelData[4]; extern const Inkscape::Util::EnumDataConverter<int> DisplacementMapChannelConverter; +// Morphology operator +extern const Inkscape::Util::EnumData<NR::FilterMorphologyOperator> MorphologyOperatorData[NR::MORPHOLOGY_OPERATOR_END]; +extern const Inkscape::Util::EnumDataConverter<NR::FilterMorphologyOperator> MorphologyOperatorConverter; // Lighting enum LightSource { LIGHT_DISTANT, diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp index af413bc0e..3c5a351e6 100644 --- a/src/ui/dialog/filter-effects-dialog.cpp +++ b/src/ui/dialog/filter-effects-dialog.cpp @@ -1791,6 +1791,10 @@ void FilterEffectsDialog::init_settings_widgets() _settings->type(NR_FILTER_GAUSSIANBLUR); _settings->add_dualspinslider(SP_ATTR_STDDEVIATION, _("Standard Deviation"), 0.01, 100, 1, 0.01, 1); + _settings->type(NR_FILTER_MORPHOLOGY); + _settings->add_combo(SP_ATTR_OPERATOR, _("Operator"), MorphologyOperatorConverter); + _settings->add_dualspinslider(SP_ATTR_RADIUS, _("Radius"), 0, 100, 1, 0.01, 1); + _settings->type(NR_FILTER_OFFSET); _settings->add_spinslider(SP_ATTR_DX, _("Delta X"), -100, 100, 1, 0.01, 1); _settings->add_spinslider(SP_ATTR_DY, _("Delta Y"), -100, 100, 1, 0.01, 1); |
