class Fidgit::ColorPicker
Constants
- CHANNELS
- DEFAULT_CHANNEL_NAMES
- INDICATOR_HEIGHT
Public Class Methods
new(options = {}, &block)
click to toggle source
@param (see Composite#initialize) @option (see Composite#initialize)
Calls superclass method
# File lib/fidgit/elements/color_picker.rb, line 27 def initialize(options = {}, &block) options = { padding: 0, spacing: 0, channel_names: DEFAULT_CHANNEL_NAMES, color: default(:color), indicator_height: default(:indicator_height), }.merge! options @color = options[:color].dup @indicator_height = options[:indicator_height] super(options) slider_width = width vertical do @sliders = {} CHANNELS.each_with_index do |channel, i| @sliders[channel] = slider(value: @color.send(channel), range: 0..255, width: slider_width, tip: options[:channel_names][i]) do |sender, value| @color.send "#{channel}=", value @indicator.background_color = @color publish :changed, @color.dup end end @indicator = label '', background_color: @color, width: slider_width, height: @indicator_height end end
Public Instance Methods
color()
click to toggle source
# File lib/fidgit/elements/color_picker.rb, line 12 def color; @color.dup; end
color=(value)
click to toggle source
# File lib/fidgit/elements/color_picker.rb, line 14 def color=(value) @color = value.dup CHANNELS.each do |channel| @sliders[channel].value = @color.send channel end publish :changed, @color.dup value end
Protected Instance Methods
post_init_block(&block)
click to toggle source
Use block as an event handler.
# File lib/fidgit/elements/color_picker.rb, line 59 def post_init_block(&block) subscribe :changed, &block end