Class: Glimmer::SWT::ColorProxy
- Inherits:
-
Object
- Object
- Glimmer::SWT::ColorProxy
- Defined in:
- lib/glimmer/swt/color_proxy.rb
Overview
Proxy for org.eclipse.swt.graphics.Color
Invoking ‘#swt_color` returns the SWT color object wrapped by this proxy
Follows the Proxy Design Pattern
Instance Method Summary collapse
-
#initialize(*args) ⇒ ColorProxy
constructor
Initializes a proxy for an SWT Color object.
- #swt_color ⇒ Object
Constructor Details
#initialize(*args) ⇒ ColorProxy
Initializes a proxy for an SWT Color object
Takes a standard color single argument, rgba 3 args, or rgba 4 args
A standard color is a string/symbol representing one of the SWT.COLOR_*** constants like SWT.COLOR_RED, but in underscored string format (e.g :color_red). Glimmer can also accept standard color names without the color_ prefix, and it will automatically figure out the SWT.COLOR_*** constant (e.g. :red)
rgb is 3 arguments representing Red, Green, Blue numeric values
rgba is 4 arguments representing Red, Green, Blue, and Alpha numeric values
29 30 31 |
# File 'lib/glimmer/swt/color_proxy.rb', line 29 def initialize(*args) @args = args end |
Instance Method Details
#swt_color ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/glimmer/swt/color_proxy.rb', line 33 def swt_color unless @swt_color case @args.size when 1 if @args.first.is_a?(String) || @args.first.is_a?(Symbol) standard_color = @args.first standard_color = "color_#{standard_color}".to_sym unless standard_color.to_s.downcase.include?('color_') @swt_color = DisplayProxy.instance.swt_display.getSystemColor(SWTProxy[standard_color]) else @swt_color = @args.first end when 3..4 red, green, blue, alpha = @args @swt_color = Color.new(DisplayProxy.instance.swt_display, *[red, green, blue, alpha].compact) end end @swt_color end |