]> git.decadent.org.uk Git - videolink.git/blobdiff - style_sheets.hpp
Changed style-sheet application in Mozila/XULRunner 1.8 to override built-in preferen...
[videolink.git] / style_sheets.hpp
index aa9d942d638351267d0930934e44a415a4a69fda..ef4aef34b7852a49292f2bd9ae70627763e289fe 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2005 Ben Hutchings <ben@decadentplace.org.uk>.
+// Copyright 2005 Ben Hutchings <ben@decadent.org.uk>.
 // See the file "COPYING" for licence details.
 
 #ifndef INC_STYLESHEETS_HPP
@@ -9,12 +9,29 @@
 
 class nsIPresShell;
 
-// Load a CSS from an (absolute) URI.
-// TODO: Support loading from an absolute, or better, relative filename.
-already_AddRefed<nsIStyleSheet> load_css(const char * uri);
+// These functions load and apply a style-sheet as necessary,
+// overriding the built-in "preferences".
+
+// init_agent_style_sheet() must be called once during startup
+// apply_agent_style_sheet() must be called for each page
+
+#if MOZ_VERSION_MAJOR > 1 || (MOZ_VERSION_MAJOR == 1 && MOZ_VERSION_MINOR >= 8)
+
+struct agent_style_sheet_holder {};
+
+// Load agent style sheet from an (absolute) URI, and register it if
+// possible.
+agent_style_sheet_holder init_agent_style_sheet(const char * uri);
+inline void apply_agent_style_sheet(agent_style_sheet_holder, nsIPresShell *)
+{}
+
+#else
+
+typedef nsCOMPtr<nsIStyleSheet> agent_style_sheet_holder;
+already_AddRefed<nsIStyleSheet> init_agent_style_sheet(const char * uri);
+void apply_agent_style_sheet(nsIStyleSheet *, nsIPresShell *);
+
+#endif
 
-// Apply a style-sheet to a given presentation shell as the top-priority
-// agent style-sheet and disable the preferences-derived style rules.
-void apply_style_sheet(nsIStyleSheet *, nsIPresShell *);
 
 #endif // !INC_STYLESHEETS_HPP