module UnderOs::UI::Styles
The styles handling API for UIView
Public Instance Methods
addClass(name)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 40 def addClass(name) repaint_if_classes_change do self.classNames += [name] end end
className()
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 18 def className classNames.join(' ') end
className=(names)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 22 def className=(names) self.classNames = names.scan(/([a-z0-9\-_]+)/).map{|e| e[0]} end
classNames()
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 26 def classNames @_class_names ||= [] end
classNames=(list)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 30 def classNames=(list) repaint_if_classes_change do @_class_names = list.uniq.map(&:to_s) end end
hasClass(name)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 36 def hasClass(name) classNames.include?(name) end
radioClass(name)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 60 def radioClass(name) parent.children.each do |view| view.removeClass(name) if view != self end addClass name end
removeClass(name)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 46 def removeClass(name) repaint_if_classes_change do self.classNames -= [name] end end
repaint(stylesheet=nil, &block)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 68 def repaint(stylesheet=nil, &block) stylesheet ||= page && page.stylesheet if stylesheet styles = stylesheet.styles_for(self) styles = block.call(styles) if block_given? self.style = styles children.each{ |view| view.repaint(stylesheet) } end self end
style(hash=nil)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 5 def style(hash=nil) if hash self.style = hash self else @_style ||= UnderOs::UI::Style.new(_, tagName.downcase.to_sym) end end
style=(hash)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 14 def style=(hash) hash.each{ |key, value| style.__send__("#{key}=", value)} end
toggleClass(name)
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 52 def toggleClass(name) if hasClass(name) removeClass name else addClass name end end
Private Instance Methods
repaint_if_classes_change() { || ... }
click to toggle source
# File lib/under_os/ui/utils/styles.rb, line 83 def repaint_if_classes_change prev_list = @_class_names.to_s yield if block_given? repaint if prev_list != @_class_names.to_s self end