Class: CyberarmEngine::Element::Button

Inherits:
Label show all
Defined in:
lib/cyberarm_engine/ui/elements/button.rb

Direct Known Subclasses

EditLine, ToggleButton

Constant Summary

Constants included from Theme

Theme::THEME

Instance Attribute Summary

Attributes inherited from CyberarmEngine::Element

#background_canvas, #border_canvas, #enabled, #event_handler, #options, #parent, #style, #x, #y, #z

Instance Method Summary collapse

Methods inherited from Label

#recalculate, #value, #value=

Methods inherited from CyberarmEngine::Element

#background=, #button_down, #button_up, #content_height, #content_width, #default_events, #draw, #enabled?, #height, #hide, #hit?, #inner_height, #inner_width, #is_root?, #noncontent_height, #noncontent_width, #outer_height, #outer_width, #recalculate, #reposition, #root, #set_background, #set_border_color, #set_border_thickness, #set_margin, #set_padding, #show, #stylize, #toggle, #update, #update_background, #value, #value=, #visible?, #width

Methods included from Common

#current_state, #darken, #draw_rect, #fill, #get_asset, #get_image, #get_sample, #get_song, #lighten, #opacity, #pop_state, #previous_state, #push_state, #show_cursor, #show_cursor=, #window

Methods included from CyberarmEngine::Event

#event, #publish, #subscribe, #unsubscribe

Methods included from Theme

#deep_merge, #default, #theme_defaults

Constructor Details

#initialize(text, options = {}, block = nil) ⇒ Button

Returns a new instance of Button.



4
5
6
7
8
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 4

def initialize(text, options = {}, block = nil)
  super(text, options, block)

  @style.background_canvas.background = default(:background)
end

Instance Method Details

#blur(sender) ⇒ Object



60
61
62
63
64
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 60

def blur(sender)
  @focus = false

  return :handled
end

#clicked_left_mouse_button(sender, x, y) ⇒ Object



47
48
49
50
51
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 47

def clicked_left_mouse_button(sender, x, y)
  @block.call(self) if @block

  return :handled
end

#draw_textObject



14
15
16
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 14

def draw_text
  @text.draw
end

#enter(sender) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 18

def enter(sender)
  @focus = false unless window.button_down?(Gosu::MsLeft)

  if @focus
    @style.background_canvas.background = default(:active, :background)
    @text.color = default(:active, :color)
  else
    @style.background_canvas.background = default(:hover, :background)
    @text.color = default(:hover, :color)
  end

  return :handled
end

#leave(sender) ⇒ Object



53
54
55
56
57
58
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 53

def leave(sender)
  @style.background_canvas.background = default(:background)
  @text.color = default(:color)

  return :handled
end

#left_mouse_button(sender, x, y) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 32

def left_mouse_button(sender, x, y)
  @focus = true
  @style.background_canvas.background = default(:active, :background)
  window.current_state.focus = self
  @text.color = default(:active, :color)

  return :handled
end

#released_left_mouse_button(sender, x, y) ⇒ Object



41
42
43
44
45
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 41

def released_left_mouse_button(sender,x, y)
  enter(sender)

  return :handled
end

#renderObject



10
11
12
# File 'lib/cyberarm_engine/ui/elements/button.rb', line 10

def render
  draw_text
end