Module: UnderOs::UI::Styles
- Included in:
- View
- Defined in:
- lib/under_os/ui/utils/styles.rb
Overview
The styles handling API for UIView
Instance Method Summary collapse
- #addClass(name) ⇒ Object
- #className ⇒ Object
- #className=(names) ⇒ Object
- #classNames ⇒ Object
- #classNames=(list) ⇒ Object
- #hasClass(name) ⇒ Object
- #radioClass(name) ⇒ Object
- #removeClass(name) ⇒ Object
- #repaint(stylesheet = nil, &block) ⇒ Object
- #style(hash = nil) ⇒ Object
- #style=(hash) ⇒ Object
- #toggleClass(name) ⇒ Object
Instance Method Details
#addClass(name) ⇒ Object
40 41 42 43 44 |
# File 'lib/under_os/ui/utils/styles.rb', line 40 def addClass(name) repaint_if_classes_change do self.classNames += [name] end end |
#className ⇒ Object
18 19 20 |
# File 'lib/under_os/ui/utils/styles.rb', line 18 def className classNames.join(' ') end |
#className=(names) ⇒ Object
22 23 24 |
# 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 ⇒ Object
26 27 28 |
# File 'lib/under_os/ui/utils/styles.rb', line 26 def classNames @_class_names ||= [] end |
#classNames=(list) ⇒ Object
30 31 32 33 34 |
# 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) ⇒ Object
36 37 38 |
# File 'lib/under_os/ui/utils/styles.rb', line 36 def hasClass(name) classNames.include?(name) end |
#radioClass(name) ⇒ Object
60 61 62 63 64 65 66 |
# 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) ⇒ Object
46 47 48 49 50 |
# 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) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 |
# 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) ⇒ Object
5 6 7 8 9 10 11 12 |
# 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) ⇒ Object
14 15 16 |
# File 'lib/under_os/ui/utils/styles.rb', line 14 def style=(hash) hash.each{ |key, value| style.__send__("#{key}=", value)} end |
#toggleClass(name) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/under_os/ui/utils/styles.rb', line 52 def toggleClass(name) if hasClass(name) removeClass name else addClass name end end |