module Apotomo::EventMethods::ClassMethods

Public Instance Methods

responds_to_event(*options) click to toggle source

Instructs the widget to look out for type events. If an appropriate event starts from or passes the widget, the defined trigger state is executed.

class MouseWidget < Apotomo::Widget
  responds_to_event :squeak

  def squeak(evt)
    update
  end

Calls squeak when a :squeak event is encountered.

Options

Any option except the event type is optional.

:with => state

executes state, defaults to type.

responds_to_event :squeak, :with => :chirp

will invoke the #chirp state method.

:on => id

execute the trigger state on another widget.

responds_to_event :squeak, :on => :cat

will invoke the #squeak state on the :cat widget.

:from => id

executes the state only if the event origins from id.

responds_to_event :squeak, :from => :kid

will invoke the #squeak state if :kid triggered and if :kid is a decendent of the current widget.

:passing => id

attaches the observer to another widget. Useful if you want to catch bubbling events in root.

responds_to_event :squeak, :passing => :root

will invoke the state on the current widget if the event passes :root (which is highly probable).

Inheritance

Note that the observers are inherited. This allows deriving a widget class without having to redefine the responds_to_event blocks.

# File lib/apotomo/widget/event_methods.rb, line 71
def responds_to_event(*options)
  responds_to_event_options << options
end