Class: DYI::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/dyi/event.rb

Overview

Class representing a event. The event becomes effective only when it is output by SVG format.

Since:

  • 1.0.0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(event_name, target) ⇒ Event

Returns a new instance of Event.

Parameters:

  • event_name (Symbol)

    event name, one of followings: focusin, focusout, click, mousedown, mouseup, mouseover, mousemove, mouseout, load

  • target (GraphicalElement)

    a element to which the event applied

Raises:

  • (ArgumentError)

    unknown event name is given

Since:

  • 1.0.0



54
55
56
57
58
# File 'lib/dyi/event.rb', line 54

def initialize(event_name, target)
  event_name = event_name.to_sym
  @event_name = event_name
  (@target = target).set_event(self)
end

Instance Attribute Details

#event_nameSymbol (readonly)

Returns event name.

Returns:

  • (Symbol)

    event name

Since:

  • 1.0.0



44
45
46
# File 'lib/dyi/event.rb', line 44

def event_name
  @event_name
end

#targetGraphicalElement (readonly)

Returns an element to which the event applied.

Returns:

Since:

  • 1.0.0



47
48
49
# File 'lib/dyi/event.rb', line 47

def target
  @target
end

Class Method Details

.click(target) ⇒ Event

Creates a new click event.

Parameters:

Returns:

  • (Event)

    a new click event

Since:

  • 1.0.0



110
111
112
# File 'lib/dyi/event.rb', line 110

def click(target)
  new(:click, target)
end

.focusin(target) ⇒ Event

Creates a new focus-in event.

Parameters:

Returns:

  • (Event)

    a new focus-in event

Since:

  • 1.0.0



96
97
98
# File 'lib/dyi/event.rb', line 96

def focusin(target)
  new(:focusin, target)
end

.focusout(target) ⇒ Event

Creates a new focus-out event.

Parameters:

Returns:

  • (Event)

    a new focus-out event

Since:

  • 1.0.0



103
104
105
# File 'lib/dyi/event.rb', line 103

def focusout(target)
  new(:focusout, target)
end

.load(target) ⇒ Event

Creates a new load event.

Parameters:

Returns:

  • (Event)

    a new load event

Since:

  • 1.0.0



152
153
154
# File 'lib/dyi/event.rb', line 152

def load(target)
  new(:load, target)
end

.mousedown(target) ⇒ Event

Creates a new mouse-down event.

Parameters:

Returns:

  • (Event)

    a new mouse-down event

Since:

  • 1.0.0



117
118
119
# File 'lib/dyi/event.rb', line 117

def mousedown(target)
  new(:mousedown, target)
end

.mousemove(target) ⇒ Event

Creates a new mouse-move event.

Parameters:

Returns:

  • (Event)

    a new mouse-move event

Since:

  • 1.0.0



138
139
140
# File 'lib/dyi/event.rb', line 138

def mousemove(target)
  new(:mousemove, target)
end

.mouseout(target) ⇒ Event

Creates a new mouse-out event.

Parameters:

Returns:

  • (Event)

    a new mouse-out event

Since:

  • 1.0.0



145
146
147
# File 'lib/dyi/event.rb', line 145

def mouseout(target)
  new(:mouseout, target)
end

.mouseover(target) ⇒ Event

Creates a new mouse-over event.

Parameters:

Returns:

  • (Event)

    a new mouse-over event

Since:

  • 1.0.0



131
132
133
# File 'lib/dyi/event.rb', line 131

def mouseover(target)
  new(:mouseover, target)
end

.mouseup(target) ⇒ Event

Creates a new mouse-up event.

Parameters:

Returns:

  • (Event)

    a new mouse-up event

Since:

  • 1.0.0



124
125
126
# File 'lib/dyi/event.rb', line 124

def mouseup(target)
  new(:mouseup, target)
end

Instance Method Details

#==(other) ⇒ Object

Since:

  • 1.0.1



77
78
79
# File 'lib/dyi/event.rb', line 77

def ==(other)
  event_name == other.event_name && target == other.target
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)

Since:

  • 1.0.1



82
83
84
# File 'lib/dyi/event.rb', line 82

def eql?(other)
  self == other
end

#hashObject

Since:

  • 1.0.1



87
88
89
# File 'lib/dyi/event.rb', line 87

def hash
  event_name.hash ^ target.hash
end

#remove_listener(event_listener) ⇒ Object

Removes a event listener.

Parameters:

Since:

  • 1.0.0



71
72
73
74
# File 'lib/dyi/event.rb', line 71

def remove_listener(event_listener)
  target.remove_event_listener(event_name, event_listener)
  event_listener.unrelated_to(self)
end

#set_listener(event_listener) ⇒ Object

Sets a event listener.

Parameters:

Since:

  • 1.0.0



63
64
65
66
# File 'lib/dyi/event.rb', line 63

def set_listener(event_listener)
  target.add_event_listener(event_name, event_listener)
  event_listener.related_to(self)
end