class Screenshot
def initialize( index, view )
@index = index
@small_file = "screenshot.small.#{@index}.png"
@large_file = "screenshot.large.#{@index}.png"
view.save_image( @small_file, 80, 60 )
view.save_image( @large_file, 800, 600 )
@box = view.box
end
def box
return @box
end
def html_snippet
s = ""
l = sprintf( "%.3f", @box.left.to_s )
r = sprintf( "%.3f", @box.right.to_s )
b = sprintf( "%.3f", @box.bottom.to_s )
t = sprintf( "%.3f", @box.top.to_s )
s += "#{l},#{b}
"
s += "#{r},#{t}
"
s += ""
return s
end
end
class Browser < RBA::BrowserDialog
def initialize
@browser_source = Server.new
self.set_source( @browser_source )
self.set_home( "int:index" )
self.show
end
def add
@browser_source.add
self.show
self.load( "int:index" )
self.reload
end
end
class Server < RBA::BrowserSource
def initialize
@screenshots = []
end
def add
view = RBA::Application::instance.main_window.current_view
if view != nil
@screenshots.push( Screenshot.new( @screenshots.size, view ) )
end
end
def get( url )
url = url.sub( /^int:/, "" )
if url == "index"
return self.index
elsif url =~ /^enlarged\?(.*)/
return enlarged( $1 )
elsif url =~ /^navigate\?(.*)/
navigate( $1.to_i )
end
return ""
end
def navigate( index )
view = RBA::Application::instance.main_window.current_view
if view != nil
view.zoom_box( @screenshots[index].box )
end
end
def enlarged( img )
return "Index Page
"
end
def index
r = []
r.push( "
" ) r.push( "
" ) r.push( s.html_snippet ) r.push( " | " ) n += 1 if n % 5 == 0 r.push( "