Method: Fidgit::Element#initialize
- Defined in:
- lib/fidgit/elements/element.rb
#initialize(options = {}) { ... } ⇒ Element
Returns a new instance of Element.
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 |
# File 'lib/fidgit/elements/element.rb', line 145 def initialize( = {}, &block) = { x: 0, y: 0, z: 0, tip: '', font_name: default(:font_name), font_height: default(:font_height), background_color: default(:background_color), border_color: default(:border_color), border_thickness: default(:border_thickness), enabled: true, }.merge! @enabled = [:enabled] @mouse_over = false # Alignment and min/max dimensions. @align_h = [:align_h] || Array([:align]).last || default(:align_h) raise ArgumentError, "Invalid align_h: #{@align_h}" unless VALID_ALIGN_H.include? @align_h min_width = ([:min_width] || [:width] || 0) max_width = ([:max_width] || [:width] || Float::INFINITY) @width_range = min_width..max_width @align_v = [:align_v] || Array([:align]).first || default(:align_v) raise ArgumentError, "Invalid align_v: #{@align_v}" unless VALID_ALIGN_V.include? @align_v min_height = ([:min_height] || [:height] || 0) max_height = ([:max_height] || [:height] || Float::INFINITY) @height_range = min_height..max_height @background_color = [:background_color].dup @border_color = [:border_color].dup @border_thickness = [:border_thickness] @padding_top = [:padding_top] || [:padding_v] || [:padding] || default(:padding_top) @padding_right = [:padding_right] || [:padding_h] || [:padding] || default(:padding_right) @padding_bottom = [:padding_bottom] || [:padding_v] || [:padding] || default(:padding_bottom) @padding_left = [:padding_left] || [:padding_h] || [:padding] || default(:padding_left) self.parent = [:parent] @z = [:z] @tip = [:tip].dup font_name = if [:font_name].nil? or [:font_name] == :default Gosu::default_font_name else [:font_name].dup end @font = [:font] || Gosu::Font[font_name, [:font_height]] @rect = Chingu::Rect.new([:x], [:y], [:width] || 0, [:height] || 0) end |