Code

Fix self-snapping when dragging the transformation center of a selection containing...
[inkscape.git] / src / sp-filter.h
index 06b46ecc6d087a804a3f3e6cb993805ea6262f6f..5ad3863e5abd5b17272882b2be4d570ac9f7931b 100644 (file)
  * Released under GNU GPL, read the file 'COPYING' for more information
  */
 
+#include <map>
+
+#include <gtkmm.h>
+
 #include "number-opt-number.h"
 #include "sp-object.h"
 #include "sp-filter-units.h"
@@ -30,6 +34,10 @@ struct SPFilterReference;
 class SPFilter;
 class SPFilterClass;
 
+struct ltstr {
+    bool operator()(const char* s1, const char* s2) const;
+};
+
 struct SPFilter : public SPObject {
 
     /** filterUnits attribute */
@@ -50,11 +58,12 @@ struct SPFilter : public SPObject {
     NumberOptNumber filterRes;
     /** HREF attribute */
     SPFilterReference *href;
+    sigc::connection modified_connection;
+
+    Inkscape::Filters::Filter *_renderer;
 
-    int _primitive_count;
-    int _primitive_table_size;
-    SPFilterPrimitive ** _primitives;
-    NR::Filter *_renderer;
+    std::map<gchar *, int, ltstr>* _image_name;
+    int _image_number_next;
 };
 
 struct SPFilterClass {
@@ -62,16 +71,35 @@ struct SPFilterClass {
 };
 
 /*
- * Initializes the given NR::Filter object as a renderer for this
+ * Initializes the given Inkscape::Filters::Filter object as a renderer for this
  * SPFilter object.
  */
-void sp_filter_build_renderer(SPFilter *sp_filter, NR::Filter *nr_filter);
+void sp_filter_build_renderer(SPFilter *sp_filter, Inkscape::Filters::Filter *nr_filter);
 
 /*
  * Returns the number of filter primitives in this SPFilter object.
  */
 int sp_filter_primitive_count(SPFilter *filter);
 
+/**
+ * Returns a slot number for given image name, or -1 for unknown name.
+ */
+int sp_filter_get_image_name(SPFilter *filter, gchar const *name);
+/**
+ * Returns slot number for given image name, even if it's unknown.
+ */
+int sp_filter_set_image_name(SPFilter *filter, gchar const *name);
+/**
+ * Finds image name based on it's slot number. Returns 0 for unknown slot
+ * numbers.
+ */
+gchar const *sp_filter_name_for_image(SPFilter const *filter, int const image);
+
+/*
+ * Returns a result image name that is not in use inside this filter.
+ */
+Glib::ustring sp_filter_get_new_result_name(SPFilter *filter);
+
 #endif /* !SP_FILTER_H_SEEN */
 
 /*