X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/0494b8d9b9bb03ab6c22b34dae81261e3cd7e3e6..7a654f8d43fdb43d78b63d90528bed6e86b608cc:/resources/themes/lib/utils.rb diff --git a/resources/themes/lib/utils.rb b/resources/themes/lib/utils.rb new file mode 100644 index 00000000..ee4205b5 --- /dev/null +++ b/resources/themes/lib/utils.rb @@ -0,0 +1,81 @@ +module ExtJS4 + module SassExtensions + module Functions + module Utils + def parsebox(list, n) + assert_type n, :Number + if !n.int? + raise ArgumentError.new("List index #{n} must be an integer") + elsif n.to_i < 1 + raise ArgumentError.new("List index #{n} must be greater than or equal to 1") + elsif n.to_i > 4 + raise ArgumentError.new("A box string can't contain more then 4") + end + + new_list = list.clone.to_a + size = new_list.size + + if n.to_i >= size + if size == 1 + new_list[1] = new_list[0] + new_list[2] = new_list[0] + new_list[3] = new_list[0] + elsif size == 2 + new_list[2] = new_list[0] + new_list[3] = new_list[1] + elsif size == 3 + new_list[3] = new_list[1] + end + end + + new_list.to_a[n.to_i - 1] + end + + def parseint(value) + Sass::Script::Number.new(value.to_i) + end + + # Returns a background-image property for a specified images for the theme + def theme_image(theme, path, without_url = false, relative = false) + path = path.value + theme = theme.value + without_url = (without_url.class == FalseClass) ? without_url : without_url.value + + relative_path = "../images/" + + if relative + if relative.class == Sass::Script::String + relative_path = relative.value + relative = true + elsif relative.class == FalseClass || relative.class == TrueClass + relative = relative + else + relative = relative.value + end + else + relative = false + end + + if relative + image_path = File.join(relative_path, theme, path) + else + images_path = File.join($ext_path, 'resources', 'themes', 'images', theme) + image_path = File.join(images_path, path) + end + + if !without_url + url = "url('#{image_path}')" + else + url = "#{image_path}" + end + + Sass::Script::String.new(url) + end + end + end + end +end + +module Sass::Script::Functions + include ExtJS4::SassExtensions::Functions::Utils +end \ No newline at end of file