diff --git a/lib/cyberarm_engine/ui/container.rb b/lib/cyberarm_engine/ui/container.rb index f065966..bf1f5cd 100644 --- a/lib/cyberarm_engine/ui/container.rb +++ b/lib/cyberarm_engine/ui/container.rb @@ -66,7 +66,7 @@ module CyberarmEngine @children.each do |child| child.x += @x child.y += @y - + child.stylize child.recalculate child.reposition # TODO: Implement top,bottom,left,center, and right positioning diff --git a/lib/cyberarm_engine/ui/dsl.rb b/lib/cyberarm_engine/ui/dsl.rb index ece9558..d6492ec 100644 --- a/lib/cyberarm_engine/ui/dsl.rb +++ b/lib/cyberarm_engine/ui/dsl.rb @@ -6,7 +6,7 @@ module CyberarmEngine _container = Flow.new(options, block) @containers << _container _container.build - options[:parent].add(_container) + _container.parent.add(_container) @containers.pop return _container @@ -18,7 +18,7 @@ module CyberarmEngine _container = Stack.new(options, block) @containers << _container _container.build - options[:parent].add(_container) + _container.parent.add(_container) @containers.pop return _container diff --git a/lib/cyberarm_engine/ui/edit_line.rb b/lib/cyberarm_engine/ui/edit_line.rb index f6f08f9..d82d6e2 100644 --- a/lib/cyberarm_engine/ui/edit_line.rb +++ b/lib/cyberarm_engine/ui/edit_line.rb @@ -5,7 +5,6 @@ module CyberarmEngine @type = default(:type) - @caret_width = default(:caret_width) @caret_height= @text.height @caret_color = default(:caret_color) diff --git a/lib/cyberarm_engine/ui/element.rb b/lib/cyberarm_engine/ui/element.rb index dbd8bd6..32448f2 100644 --- a/lib/cyberarm_engine/ui/element.rb +++ b/lib/cyberarm_engine/ui/element.rb @@ -8,7 +8,7 @@ module CyberarmEngine attr_reader :parent, :options, :style, :event_handler, :background_canvas, :border_canvas def initialize(options = {}, block = nil) - @parent = options[:parent] # parent Container (i.e. flow/stack) + @parent = options.delete(:parent) # parent Container (i.e. flow/stack) options = theme_defaults(options) @options = options @block = block @@ -26,15 +26,15 @@ module CyberarmEngine @fixed_x = @x if @x != 0 @fixed_y = @y if @y != 0 + @style.width = default(:width) || $window.width + @style.height = default(:height) || $window.height + stylize default_events end def stylize - @style.width = @style.width || $window.width - @style.height = @style.height || $window.height - set_border_thickness(@style.border_thickness) set_padding(@style.padding) diff --git a/lib/cyberarm_engine/ui/style.rb b/lib/cyberarm_engine/ui/style.rb index 4b63078..d815450 100644 --- a/lib/cyberarm_engine/ui/style.rb +++ b/lib/cyberarm_engine/ui/style.rb @@ -1,7 +1,24 @@ +module Gosu + class Color + def _dump(level) + [ + "%02X" % self.alpha, + "%02X" % self.red, + "%02X" % self.green, + "%02X" % self.blue + ].join + end + + def self._load(hex) + argb(hex.to_i(16)) + end + end +end + module CyberarmEngine class Style def initialize(hash = {}) - @hash = hash + @hash = Marshal.load(Marshal.dump(hash)) end def method_missing(method, *args, &block)