Drakirus/Sudoku

View on GitHub
vue/apply_css.rb

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/env ruby

# encoding: UTF-8

##
# Author:: Waibin Wang, Riviere Marius, Pierre CHAMPION
# License:: MIT Licence
#
# https://github.com/Drakirus/Sudoku

def apply_css(widget,provider)
  widget.style_context.add_provider provider, Gtk::StyleProvider::PRIORITY_USER
  if(widget.is_a?(Gtk::Container))
    widget.each_all do |child|
      apply_css(child,provider)
    end
  end
end

def apply_style(widget, css)
  css_provider = Gtk::CssProvider.new
  css_provider.load :data=>css
  apply_css(widget, css_provider)
end

def apply_css_color_button(object, cssTarget, color)
    css=<<-EOT
    button{
      #{apply_css_convert_color(cssTarget, color)}
    }
    EOT
    css_provider = Gtk::CssProvider.new
    css_provider.load :data=>css
    apply_css(object,css_provider)
end

def apply_css_convert_color(cssTarget, color)
    red = (color.red / 65535.0) * 255.0
    green = (color.green / 65535.0) * 255.0
    blue = (color.blue / 65535.0) * 255.0
    css=<<-EOT
      #{cssTarget}: rgb(#{red},#{green},#{blue});
    EOT
    return css
end