]> gitweb.michael.orlitzky.com - libsvgtiny.git/blobdiff - src/svgtiny_css.c
src/svgtiny_css.c: implement node_is_disabled() select handler
[libsvgtiny.git] / src / svgtiny_css.c
index fec0ed4a4596006148585662913b64bbf7a0a965..cbb9a93194c4d8955537b7c22362da15a11a8700 100644 (file)
@@ -47,6 +47,11 @@ static css_error node_count_siblings(void *pw, void *node,
                bool same_name, bool after, int32_t *count);
 static css_error node_is_empty(void *pw, void *node, bool *is_empty);
 static css_error node_is_link(void *pw, void *node, bool *is_link);
+static css_error node_is_hover(void *pw, void *node, bool *is_hover);
+static css_error node_is_active(void *pw, void *node, bool *is_active);
+static css_error node_is_focus(void *pw, void *node, bool *is_focus);
+static css_error node_is_enabled(void *pw, void *node, bool *is_enabled);
+static css_error node_is_disabled(void *pw, void *node, bool *is_disabled);
 
 
 /**
@@ -1482,3 +1487,109 @@ css_error node_is_link(void *pw, void *node, bool *is_link)
        dom_string_unref(dnode_name);
        return CSS_OK;
 }
+
+
+/**
+ * Check if the given node is being "hovered" over
+ *
+ * This check always fails because the SVG DOM does not have the
+ * necessary information (it's a UI property).
+ *
+ * \param pw          Pointer to the current SVG parser state; unused
+ * \param node        Libdom SVG node to check; unused
+ * \param is_hover    Pointer to the boolean return value
+ *
+ * \return Always returns CSS_OK
+ */
+css_error node_is_hover(void *pw, void *node, bool *is_hover)
+{
+       UNUSED(pw);
+       UNUSED(node);
+       *is_hover = false;
+       return CSS_OK;
+}
+
+
+/**
+ * Check if the given node is "active"
+ *
+ * This check always fails because the SVG DOM does not have the
+ * necessary information (it's a UI property).
+ *
+ * \param pw          Pointer to the current SVG parser state; unused
+ * \param node        Libdom SVG node to check; unused
+ * \param is_active   Pointer to the boolean return value
+ *
+ * \return Always returns CSS_OK
+ */
+css_error node_is_active(void *pw, void *node, bool *is_active)
+{
+       UNUSED(pw);
+       UNUSED(node);
+       *is_active = false;
+       return CSS_OK;
+}
+
+
+/**
+ * Check if the given node has the focus
+ *
+ * This check always fails because the SVG DOM does not have the
+ * necessary information (it's a UI property).
+ *
+ * \param pw          Pointer to the current SVG parser state; unused
+ * \param node        Libdom SVG node to check; unused
+ * \param is_focus    Pointer to the boolean return value
+ *
+ * \return Always returns CSS_OK
+ */
+css_error node_is_focus(void *pw, void *node, bool *is_focus)
+{
+       UNUSED(pw);
+       UNUSED(node);
+       *is_focus = false;
+       return CSS_OK;
+}
+
+
+/**
+ * Check if the given node is enabled
+ *
+ * This check always fails because the SVG DOM does not have the
+ * necessary information (it's a UI property).
+ *
+ * \param pw            Pointer to the current SVG parser state; unused
+ * \param node          Libdom SVG node to check; unused
+ * \param is_enabled    Pointer to the boolean return value
+ *
+ * \return Always returns CSS_OK
+ */
+css_error node_is_enabled(void *pw, void *node, bool *is_enabled)
+{
+       UNUSED(pw);
+       UNUSED(node);
+       *is_enabled = false;
+       return CSS_OK;
+}
+
+
+/**
+ * Check if the given node is disabled
+ *
+ * This check always fails because the SVG DOM does not have the
+ * necessary information (it's a UI property). Beware, until they are
+ * implemented, this is NOT the logical negation of node_is_enabled!
+ *
+ * \param pw            Pointer to the current SVG parser state; unused
+ * \param node          Libdom SVG node to check; unused
+ * \param is_disabled   Pointer to the boolean return value
+ *
+ * \return Always returns CSS_OK
+ */
+css_error node_is_disabled(void *pw, void *node, bool *is_disabled)
+{
+       UNUSED(pw);
+       UNUSED(node);
+       *is_disabled = false;
+       return CSS_OK;
+}