now very simple to get expanding objects
This commit is contained in:
parent
7885ae93c4
commit
83e0c8a925
@ -2,15 +2,15 @@ require_relative "ref_view"
|
|||||||
|
|
||||||
class ObjectView < ListView
|
class ObjectView < ListView
|
||||||
|
|
||||||
def initialize interpreter , object_id
|
def initialize object_id , interpreter = nil
|
||||||
@object_id = object_id
|
@object_id = object_id
|
||||||
@interpreter = interpreter
|
@interpreter = interpreter
|
||||||
@interpreter.register_event(:object_changed, self)
|
@interpreter.register_event(:object_changed, self) if interpreter
|
||||||
super( content_elements )
|
super( content_elements )
|
||||||
end
|
end
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
@element = super("ul.nav!")
|
@element = super(@interpreter ? "ul.nav!" : "ul")
|
||||||
prepend_element div("li" , "-------------------------")
|
prepend_element div("li" , "-------------------------")
|
||||||
prepend_element div( "li" ) << div("span" , class_header(@object_id) )
|
prepend_element div( "li" ) << div("span" , class_header(@object_id) )
|
||||||
return @element
|
return @element
|
||||||
|
@ -1,16 +1,38 @@
|
|||||||
class RefView < ElementView
|
class RefView < ListView
|
||||||
|
|
||||||
def initialize name , value
|
def initialize name , value
|
||||||
@name = name
|
@name = name
|
||||||
@value = value
|
@value = value
|
||||||
|
super []
|
||||||
|
end
|
||||||
|
|
||||||
|
attr_reader :value
|
||||||
|
|
||||||
|
def value= val
|
||||||
|
@value = val
|
||||||
|
add_hover
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_accessor :value
|
|
||||||
|
|
||||||
def draw
|
def draw
|
||||||
@element = div("li") << div("a" , "#{@name} : #{marker(@value)}" )
|
@element = div("li") << div("a" , "#{@name} : #{marker(@value)}" )
|
||||||
|
add_hover
|
||||||
|
@element
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_hover
|
||||||
|
@element.on("hover"){ hover } if is_object?(@value)
|
||||||
|
end
|
||||||
|
|
||||||
|
def is_object?( id )
|
||||||
|
Virtual.machine.objects[id] != nil
|
||||||
|
end
|
||||||
|
|
||||||
|
def hover
|
||||||
|
puts "hovering #{@name}"
|
||||||
|
append ObjectView.new(@value)
|
||||||
|
@element.off("hover")
|
||||||
|
end
|
||||||
|
|
||||||
def marker id
|
def marker id
|
||||||
var = Virtual.machine.objects[id]
|
var = Virtual.machine.objects[id]
|
||||||
if var.is_a? String
|
if var.is_a? String
|
||||||
|
@ -26,7 +26,7 @@ class RegistersView < ListView
|
|||||||
reg = reg.symbol unless reg.is_a? Symbol
|
reg = reg.symbol unless reg.is_a? Symbol
|
||||||
index = reg.to_s[1 .. -1 ].to_i
|
index = reg.to_s[1 .. -1 ].to_i
|
||||||
if( is_object? value )
|
if( is_object? value )
|
||||||
swap = ObjectView.new( @interpreter, value )
|
swap = ObjectView.new( value , @interpreter )
|
||||||
else
|
else
|
||||||
swap = ValueView.new value
|
swap = ValueView.new value
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user