Class: AdventureRL::Button
- Defined in:
- lib/AdventureRL/Button.rb
Constant Summary collapse
- DEFAULT_SETTINGS =
Settings.new( active_color: 0xff_cc8822, hover_colow: 0xff_888888, pressable: false, click_on_mouse_up: false )
Constants included from Helpers::Error
Helpers::Error::PADDING, Helpers::Error::STACK_TRACE_PADDING, Helpers::Error::STACK_TRACE_SIZE
Constants inherited from Mask
Constants inherited from Point
Instance Method Summary collapse
- #get_menu ⇒ Object
-
#initialize(settings = {}) ⇒ Button
constructor
A new instance of Button.
- #on_mouse_down ⇒ Object
- #on_mouse_press ⇒ Object
- #on_mouse_up ⇒ Object
Methods inherited from Textbox
#draw, #get_text, #preload_font_sizes, #set_font_size, #set_text
Methods inherited from Rectangle
#draw, #get_color, #reset_color, #set_color, #set_temporary_color
Methods included from Helpers::Error
directory_exists?, error, error_no_directory, error_no_file, file_exists?
Methods inherited from Mask
#assign_to, #assigned_to?, #collides_with?, #collides_with_hash?, #collides_with_mask?, #collides_with_point?, #get_assigned, #get_center, #get_corner, #get_layer, #get_mask, #get_origin, #get_real_center, #get_real_corner, #get_real_side, #get_real_sides, #get_side, #get_sides, #get_size, #has_layer?, #has_mask?, #set_layer, #set_size
Methods inherited from Point
#assign_to, #assigned_to?, #collides_with?, #collides_with_hash?, #collides_with_mask?, #collides_with_point?, #get_assigned, #get_layer, #get_point, #get_position, #get_real_point, #get_real_position, #has_layer?, #has_point?, #keys, #move_by, #set_layer, #set_position, #values, #x, #y
Constructor Details
#initialize(settings = {}) ⇒ Button
Returns a new instance of Button.
10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/AdventureRL/Button.rb', line 10 def initialize settings = {} @settings = DEFAULT_SETTINGS.merge settings super @settings @colors = { active: @settings.get(:active_color), hover: @settings.get(:hover_colow), } @pressable ||= @settings.get :pressable @click_on_mouse_up ||= @settings.get :click_on_mouse_up @click_on_mouse_up ||= false if (@pressable) end |
Instance Method Details
#get_menu ⇒ Object
22 23 24 25 26 |
# File 'lib/AdventureRL/Button.rb', line 22 def layer = get_layer return layer if (layer.is_a? Menu) return nil end |
#on_mouse_down ⇒ Object
28 29 30 31 32 |
# File 'lib/AdventureRL/Button.rb', line 28 def on_mouse_down return if (is_pressable?) set_color @colors[:active] click if (!@click_on_mouse_up && methods.include?(:click)) end |
#on_mouse_press ⇒ Object
40 41 42 43 |
# File 'lib/AdventureRL/Button.rb', line 40 def on_mouse_press return unless (is_pressable?) set_temporary_color @colors[:active] end |
#on_mouse_up ⇒ Object
34 35 36 37 38 |
# File 'lib/AdventureRL/Button.rb', line 34 def on_mouse_up return if (is_pressable?) reset_color click if (@click_on_mouse_up && methods.include?(:click)) end |