Index: css_injector.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/css_injector/Attic/css_injector.admin.inc,v
retrieving revision 1.1.2.10
diff -u -p -r1.1.2.10 css_injector.admin.inc
--- css_injector.admin.inc	8 Mar 2010 00:02:22 -0000	1.1.2.10
+++ css_injector.admin.inc	25 Jun 2010 20:00:06 -0000
@@ -59,7 +59,7 @@ function theme_css_injector_admin_form($
       $row = array();
       $rule = $form['rules'][$crid]['#rule'];
       $row[] = check_plain($rule['title']);
-      $row[] = check_plain(_css_injector_rule_path($rule['crid']));
+      $row[] = check_plain(_css_injector_rule_filename($rule['crid']));
       $row[] = drupal_render($form['rules'][$crid]);
       $rows[] = $row;
     }
@@ -97,7 +97,7 @@ function css_injector_edit($form_state, 
       '#value' => $crid,
     );
 
-    $path = file_create_path(_css_injector_rule_path($rule['crid']));
+    $path = file_create_path(_css_injector_rule_filename($rule['crid']));
     if (file_exists($path)) {
       $rule['css_text'] = file_get_contents($path);
     }
@@ -212,10 +212,7 @@ function css_injector_edit_validate($for
  */
 function css_injector_edit_save($form, &$form_state) {
   $rule = $form_state['rule'];
-  drupal_write_record('css_injector_rule', $rule, empty($rule['crid']) ? NULL : 'crid');
-
-  file_save_data($rule['css_text'], file_create_path(_css_injector_rule_path($rule['crid'])), FILE_EXISTS_REPLACE);
-  _css_injector_load_rule(NULL, TRUE);
+  css_injector_save($rule);
 
   drupal_set_message('Your CSS injection rule was saved.');
   $form_state['redirect'] = 'admin/settings/css_injector';
Index: css_injector.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/css_injector/Attic/css_injector.info,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 css_injector.info
--- css_injector.info	10 Aug 2008 01:56:58 -0000	1.1.2.2
+++ css_injector.info	25 Jun 2010 20:00:06 -0000
@@ -1,4 +1,5 @@
 ;$Id: css_injector.info,v 1.1.2.2 2008/08/10 01:56:58 add1sun Exp $
 name = CSS Injector
 description = Adds CSS to the page output based on configurable rules.
+dependencies[] = "ctools"
 core = 6.x
Index: css_injector.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/css_injector/Attic/css_injector.module,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 css_injector.module
--- css_injector.module	7 Mar 2010 23:59:47 -0000	1.1.2.5
+++ css_injector.module	25 Jun 2010 20:00:06 -0000
@@ -34,7 +34,8 @@ function css_injector_init() {
   $css_rules = _css_injector_load_rule();
   foreach ($css_rules as $css_rule) {
     if (_css_injector_evaluate_rule($css_rule)) {
-      drupal_add_css(file_create_path(_css_injector_rule_path($css_rule['crid'])), 'module', $css_rule['media'], $css_rule['preprocess']);
+      ctools_include('css');
+      ctools_css_add_css(_css_injector_rule_filename($css_rule['crid']), 'module', $css_rule['media'], $css_rule['preprocess']);
     }
   }
 }
@@ -131,7 +132,9 @@ function _css_injector_load_rule($crid =
  */
 function _css_injector_delete_rule($crid) {
   if ($rule = _css_injector_load_rule($crid)) {
-    file_delete(file_create_path(_css_injector_rule_path($crid)));
+    $css_id = _css_injector_get_css_id($crid);
+    ctools_include('css');
+    ctools_css_clear($css_id);
     db_query("DELETE FROM {css_injector_rule} WHERE crid = %d", $crid);
   }
 }
@@ -169,9 +172,38 @@ function _css_injector_evaluate_rule($cs
  * Helper function to get file path for a rule
  */
 function _css_injector_rule_path($crid) {
-  if (!empty($crid)) {
-    $directory = file_directory_path();
-    return $directory . '/css_injector_'. $crid .'.css';
-  }
-  return NULL;
+  // Keep this function for backward compatibility
+  return _css_injector_rule_filename($crid);
+}
+
+/**
+ * Helper function to retreive the filename for a rule.
+ */
+function _css_injector_rule_filename($crid) {
+  ctools_include('css');
+  return ctools_css_retrieve(_css_injector_get_css_id($crid));
+}
+
+/**
+ * Helper function to build the ctools css id
+ */
+function _css_injector_get_css_id($crid) {
+  return 'css_injector_'. $crid;
+}
+
+/**
+ * Save the css injector
+ *
+ * This function handles the saving and validaion of the css
+ */
+function css_injector_save(&$rule) {
+  // Save the record
+  drupal_write_record('css_injector_rule', $rule, empty($rule['crid']) ? NULL : 'crid');
+
+  // Filter the css and cache it.
+  $css_id = _css_injector_get_css_id($rule['crid']);
+  ctools_include('css');
+  ctools_css_store($css_id, $rule['css_text'], TRUE);
+  // Refresh the rule cache
+  _css_injector_load_rule(NULL, TRUE);
 }
