123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- module Zori
-
- module State
- def initialize(params={}, &block)
- super(params, &block)
- @state = :active
- @mark = false
- @hover = false
- end
-
-
- def hide
- @components.each do |comp|
- comp.hide_component
- end
- @state = :hidden
- unmark
- unhover
- hide_graph
- end
-
-
- def hide_component
- @components.each do |comp|
- comp.hide_component
- end
- hide_graph
- end
-
- def show
- @components.each do |comp|
- comp.show_component
- end
- @state = :active
- show_graph
- end
-
- def show_component
- if hidden?
- return
- end
- @components.each do |comp|
- comp.show_component
- end
- show_graph
- end
-
-
- def move_to(x, y)
- @x = x
- @y = y
- @components.each do |comp|
- comp.move_to(x, y)
- end
- move_graph(x, y)
- end
-
- def enable
- @state = :active
- end
-
-
- def disable
- @state = :disabled
- end
-
-
-
- def mark
- return false if disabled?
- @mark = true
- return true
- end
-
-
- def unmark
- return false unless mark?
- @mark = false
- return true
- end
-
-
- def hover
- return false if disabled?
- @hover = true
- return true
- end
-
-
- def unhover
- return false unless hover?
- @hover = false
- return true
- end
-
-
- def select
- return false if disabled?
- @select = true
- @select_mark = Zori.root.create_select_mark
- @select_mark.position = self.left - 20, self.y
- graph_add(@select_mark)
- return true
- end
-
-
- def unselect
- return false unless selected?
- @select = false
- graph_delete(@select_mark)
- @select_mark.close
- @select_mark = nil
- return true
- end
-
-
- def focus
- return false if disabled?
- @state = :focus
- return true
- end
-
-
- def unfocus
- return false unless focus?
- @state = :active
- return true
- end
-
-
- def drag
- return false if disabled?
- @state = :drag
- return true
- end
-
-
- def drop
- return false unless drag?
- @state = :active
- return true
- end
-
-
- def is?(qstate)
- @state == qstate
- end
- def hidden?
- return is?(:hidden)
- end
-
- def disabled?
- return is?(:disabled) || is?(:hidden)
- end
-
-
- def drag?
- return is?(:drag)
- end
-
-
- def focus?
- return is?(:focus)
- end
-
-
- def active?
- return is?(:active)
- end
-
-
- def trigger?
- return is?(:trigger)
- end
-
-
- def mark?
- return @mark
- end
-
- def hover?
- return @hover
- end
-
- def selected?
- return @select
- end
- end
- end
|