Sha256: f6b040b528421fd72abe453a66941285530451060d1da6b93b330f23c714ef12
Contents?: true
Size: 1.78 KB
Versions: 31
Compression:
Stored size: 1.78 KB
Contents
require 'glimmer/swt/swt_proxy' require 'glimmer/swt/display_proxy' module Glimmer module SWT # Proxy for org.eclipse.swt.graphics.Color # # Invoking `#swt_color` returns the SWT color object wrapped by this proxy # # Follows the Proxy Design Pattern class ColorProxy include_package 'org.eclipse.swt.graphics' # 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 # def initialize(*args) @args = args end 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 end end end
Version data entries
31 entries across 31 versions & 2 rubygems