start on insertion events and handling

This commit is contained in:
Torsten Ruger
2018-06-06 10:00:07 +03:00
parent 4789b63fcb
commit c22aff4c4f
7 changed files with 93 additions and 26 deletions

View File

@ -43,6 +43,11 @@ module Risc
register_event(:position_changed , listener)
end
# When instruction get inserted, we have to move listeners around, remove given
def remove_position_listener(list)
unregister_event(:position_changed, list)
end
# utility to get all registered listeners to the :position_changed event
# returns an array
def position_listeners
@ -68,6 +73,10 @@ module Risc
int
end
def trigger_inserted
event_table[:position_changed].each { |handler| handler.position_inserted( self) }
end
def +(offset)
offset = offset.at if offset.is_a?(Position)
@at + offset