function __construct($plugin)
 {
     $this->plugin =& $plugin;
     add_action('customize_register', array($this, 'add_sections'), 10);
     add_action('customize_controls_enqueue_scripts', array($this, 'customize_controls_enqueue'));
     add_action('customize_preview_init', array($this, 'customize_preview_init'));
     // Load settings from various sources with filters
     add_filter('styles_json_files', array($this, 'load_settings_from_child_plugin'), 50);
     add_filter('styles_json_files', array($this, 'load_settings_from_theme'), 70);
     // Set storm-styles option to not autoload; does nothing if setting already exists
     add_option(Styles_Helpers::get_option_key(), '', '', 'no');
 }
 /**
  * Rebuild CSS
  *
  * Cache check called in Styles_Plugin::get_css to avoid initializing this class
  */
 public function get_css()
 {
     global $wp_customize;
     $css = '';
     $this->plugin->customize_register($wp_customize);
     foreach ($this->plugin->customize->get_settings() as $group => $elements) {
         foreach ($elements as $element) {
             if ($class = Styles_Helpers::get_element_class($element)) {
                 $element = apply_filters('styles_pre_get_css', $element);
                 $control = new $class($group, $element);
                 $css .= $control->get_css();
             }
         }
     }
     $css = apply_filters('styles_css_output', $css);
     $css = implode('', $this->google_fonts) . $css;
     $css = $this->minify($css);
     update_option(Styles_Helpers::get_option_key('css'), $css);
     return $css;
 }
 public function get_css()
 {
     global $wp_customize;
     $css = false;
     if (empty($wp_customize)) {
         $css = get_option(Styles_Helpers::get_option_key('css'));
     }
     if (!empty($wp_customize) || empty($css) || apply_filters('styles_force_rebuild', false)) {
         // Rebuild
         $this->init_css();
         return $this->css->get_css();
     } else {
         return $css;
     }
 }
 public function get_element_setting_value()
 {
     $settings = get_option(Styles_Helpers::get_option_key());
     $group_id = Styles_Helpers::get_group_id($this->group);
     $value = false;
     if (isset($settings[$group_id][$this->id])) {
         $value = $settings[$group_id][$this->id];
     }
     if (!empty($value)) {
         return $value;
     } else {
         return false;
     }
 }