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