r5306 jmb - in /trunk/libcss/src: Makefile stylesheet.c stylesheet.h

netsurf at semichrome.net netsurf at semichrome.net
Sat Sep 13 01:13:50 BST 2008


Author: jmb
Date: Fri Sep 12 19:13:49 2008
New Revision: 5306

URL: http://source.netsurf-browser.org?rev=5306&view=rev
Log:
More API munging. Also stub out implementations of new APIs.

Added:
    trunk/libcss/src/stylesheet.c
Modified:
    trunk/libcss/src/Makefile
    trunk/libcss/src/stylesheet.h

Modified: trunk/libcss/src/Makefile
URL: http://source.netsurf-browser.org/trunk/libcss/src/Makefile?rev=5306&r1=5305&r2=5306&view=diff
==============================================================================
--- trunk/libcss/src/Makefile (original)
+++ trunk/libcss/src/Makefile Fri Sep 12 19:13:49 2008
@@ -35,7 +35,7 @@
 CFLAGS := $(CFLAGS) -I$(d)
 
 # Sources
-SRCS_$(d) := libcss.c
+SRCS_$(d) := libcss.c stylesheet.c
 
 # Append to sources for component
 SOURCES += $(addprefix $(d), $(SRCS_$(d)))

Added: trunk/libcss/src/stylesheet.c
URL: http://source.netsurf-browser.org/trunk/libcss/src/stylesheet.c?rev=5306&view=auto
==============================================================================
--- trunk/libcss/src/stylesheet.c (added)
+++ trunk/libcss/src/stylesheet.c Fri Sep 12 19:13:49 2008
@@ -1,0 +1,186 @@
+/*
+ * This file is part of LibCSS.
+ * Licensed under the MIT License,
+ *                http://www.opensource.org/licenses/mit-license.php
+ * Copyright 2008 John-Mark Bell <jmb at netsurf-browser.org>
+ */
+
+#include "stylesheet.h"
+#include "utils/utils.h"
+
+/**
+ * Create a selector
+ *
+ * \param sheet  The stylesheet context
+ * \param type   The type of selector to create
+ * \param name   Name of selector
+ * \param value  Value of selector, or NULL
+ * \return Pointer to selector object, or NULL on failure
+ */
+css_selector *css_stylesheet_selector_create(css_stylesheet *sheet,
+		css_selector_type type, css_string *name, css_string *value)
+{
+	UNUSED(sheet);
+	UNUSED(type);
+	UNUSED(name);
+	UNUSED(value);
+
+	return NULL;
+}
+
+/**
+ * Destroy a selector object
+ *
+ * \param sheet     The stylesheet context
+ * \param selector  The selector to destroy
+ */
+void css_stylesheet_selector_destroy(css_stylesheet *sheet,
+		css_selector *selector)
+{
+	UNUSED(sheet);
+	UNUSED(selector);
+
+	/** \todo Need to ensure that selector is removed from whatever it's 
+	 * attached to (be that the parent selector, parent rule, or the 
+	 * hashtable of selectors (or any combination of these) */
+}
+
+/**
+ * Append a selector to the specifics chain of another selector
+ *
+ * \param sheet     The stylesheet context
+ * \param parent    The parent selector
+ * \param specific  The selector to append
+ * \return CSS_OK on success, appropriate error otherwise.
+ */
+css_error css_stylesheet_selector_append_specific(css_stylesheet *sheet,
+		css_selector *parent, css_selector *specific)
+{
+	UNUSED(sheet);
+	UNUSED(parent);
+	UNUSED(specific);
+
+	return CSS_OK;
+}
+
+/**
+ * Combine a pair of selectors
+ *
+ * \param sheet  The stylesheet context
+ * \param type   The combinator type
+ * \param a      The first operand
+ * \param b      The second operand
+ * \return CSS_OK on success, appropriate error otherwise.
+ *
+ * For example, given A + B, the combinator field of B would point at A, 
+ * with a combinator type of CSS_COMBINATOR_SIBLING. Thus, given B, we can
+ * find its combinator. It is not possible to find B given A.
+ *
+ * \todo Check that this (backwards) representation plays well with CSSOM.
+ */
+css_error css_stylesheet_selector_combine(css_stylesheet *sheet,
+		css_combinator type, css_selector *a, css_selector *b)
+{
+	UNUSED(sheet);
+	UNUSED(type);
+	UNUSED(a);
+	UNUSED(b);
+
+	/** \todo Need to ensure that there is no existing combinator on B */
+
+	return CSS_OK;
+}
+
+/**
+ * Create a CSS rule
+ *
+ * \param sheet  The stylesheet context
+ * \param type   The rule type
+ * \return Pointer to rule object, or NULL on failure.
+ */
+css_rule *css_stylesheet_rule_create(css_stylesheet *sheet, css_rule_type type)
+{
+	UNUSED(sheet);
+	UNUSED(type);
+
+	return NULL;
+}
+
+/**
+ * Destroy a CSS rule
+ *
+ * \param sheet  The stylesheet context
+ * \param rule   The rule to destroy
+ */
+void css_stylesheet_rule_destroy(css_stylesheet *sheet, css_rule *rule)
+{
+	UNUSED(sheet);
+	UNUSED(rule);
+
+	/** \todo should this be recursive? */
+	/** \todo what happens to non-rule objects owned by this rule? */
+}
+
+/**
+ * Add a selector to a CSS rule
+ *
+ * \param sheet     The stylesheet context
+ * \param rule      The rule to add to (must be of type CSS_RULE_SELECTOR)
+ * \param selector  The selector to add
+ * \return CSS_OK on success, appropriate error otherwise
+ */
+css_error css_stylesheet_rule_add_selector(css_stylesheet *sheet, 
+		css_rule *rule, css_selector *selector)
+{
+	UNUSED(sheet);
+	UNUSED(rule);
+	UNUSED(selector);
+
+	/** \todo Ensure rule is a CSS_RULE_SELECTOR */
+	/** \todo Set selector's rule field */
+	
+	return CSS_OK;
+}
+
+/**
+ * Add a rule to a stylesheet
+ *
+ * \param sheet  The stylesheet to add to
+ * \param rule   The rule to add
+ * \return CSS_OK on success, appropriate error otherwise
+ */
+css_error css_stylesheet_add_rule(css_stylesheet *sheet, css_rule *rule)
+{
+	UNUSED(sheet);
+	UNUSED(rule);
+
+	/** \todo Fill in rule's index and owner fields */
+	/** \todo If there are selectors in the rule, add them to the hash 
+	 * (this needs to recurse over child rules, too) */
+
+	return CSS_OK;
+}
+
+/**
+ * Remove a rule from a stylesheet
+ *
+ * \param sheet  The sheet to remove from
+ * \param rule   The rule to remove
+ * \return CSS_OK on success, appropriate error otherwise
+ */
+css_error css_stylesheet_remove_rule(css_stylesheet *sheet, css_rule *rule)
+{
+	UNUSED(sheet);
+	UNUSED(rule);
+
+	/** \todo If there are selectors (recurse over child rules, too),
+	 * then they must be removed from the hash */
+	/**\ todo renumber subsequent rules? may not be necessary, as there's 
+	 * only an expectation that rules which occur later in the stylesheet 
+	 * have a higher index than those that appear earlier. There's no 
+	 * guarantee that the number space is continuous. */
+
+	return CSS_OK;
+}
+
+

Modified: trunk/libcss/src/stylesheet.h
URL: http://source.netsurf-browser.org/trunk/libcss/src/stylesheet.h?rev=5306&r1=5305&r2=5306&view=diff
==============================================================================
--- trunk/libcss/src/stylesheet.h (original)
+++ trunk/libcss/src/stylesheet.h Fri Sep 12 19:13:49 2008
@@ -154,5 +154,8 @@
 
 /** \todo registering other rule-type data with css_rules */
 
+css_error css_stylesheet_add_rule(css_stylesheet *sheet, css_rule *rule);
+css_error css_stylesheet_remove_rule(css_stylesheet *sheet, css_rule *rule);
+
 #endif
 




More information about the netsurf-commits mailing list