summaryrefslogtreecommitdiffstats
path: root/src/attribute-rel-css.h
diff options
context:
space:
mode:
authorTavmjong Bah <tavmjong@free.fr>2011-11-29 11:27:10 +0000
committertavmjong-free <tavmjong@free.fr>2011-11-29 11:27:10 +0000
commit771029025214cffd0bc9783656c29e08ad208743 (patch)
treef8571540680f4aa0138798f87222263df20c278a /src/attribute-rel-css.h
parentpreferences read out: when no unit is specified, assume it is in the requeste... (diff)
downloadinkscape-771029025214cffd0bc9783656c29e08ad208743.tar.gz
inkscape-771029025214cffd0bc9783656c29e08ad208743.zip
Add possibility to check validity of attributes and usefulness of properties.
This code adds the ability to check for every elment in an SVG document if its attributes are valid and the styling properties are useful. Options under the SVG Output section of the Inkscape Preferences dialog control what should be checked when, and what actions should be taken if invalid attributes or non-useful properties are found. (bzr r10753)
Diffstat (limited to 'src/attribute-rel-css.h')
-rw-r--r--src/attribute-rel-css.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/attribute-rel-css.h b/src/attribute-rel-css.h
new file mode 100644
index 000000000..b5077f8a0
--- /dev/null
+++ b/src/attribute-rel-css.h
@@ -0,0 +1,66 @@
+#ifndef __SP_ATTRIBUTE_REL_CSS_H__
+#define __SP_ATTRIBUTE_REL_CSS_H__
+
+/*
+ * attribute-rel-css.h
+ *
+ * Created on: Jul 25, 2011
+ * Author: abhishek
+ */
+
+#include <string>
+#include <map>
+#include <set>
+#include <glibmm/ustring.h>
+
+// This data structure stores the valid (element -> set of CSS properties) pair
+typedef std::map<Glib::ustring, std::set<Glib::ustring> > hashList;
+
+/*
+ * Utility class that helps check whether a given element -> CSS property is
+ * valid or not and whether the value assumed by a CSS property has a default
+ * value.
+ */
+class SPAttributeRelCSS {
+public:
+ static bool findIfValid(Glib::ustring property, Glib::ustring element);
+ static bool findIfDefault(Glib::ustring property, Glib::ustring value);
+ static bool findIfInherit(Glib::ustring property);
+ static bool findIfProperty(Glib::ustring property);
+
+private:
+ SPAttributeRelCSS();
+ SPAttributeRelCSS(const SPAttributeRelCSS&);
+ SPAttributeRelCSS& operator= (const SPAttributeRelCSS&);
+
+private:
+ /*
+ * Allows checking whether data loading is to be done for element -> CSS properties
+ * or CSS property -> default value.
+ */
+ enum storageType {
+ prop_element_pair,
+ prop_defValue_pair
+ };
+ static SPAttributeRelCSS *instance;
+ hashList propertiesOfElements;
+
+ // Data structure to store CSS property and default value pair
+ std::map<Glib::ustring, Glib::ustring> defaultValuesOfProps;
+ std::map<Glib::ustring, gboolean> inheritProps;
+ bool readDataFromFileIn(Glib::ustring fileName, storageType type);
+};
+
+
+#endif /* __SP_ATTRIBUTE_REL_CSS_H__ */
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :