class Fidgit::ScrollWindow
Public Class Methods
new(options = {})
click to toggle source
Calls superclass method
Fidgit::Composite::new
# File lib/fidgit/elements/scroll_window.rb, line 18 def initialize(options = {}) options = { scroll_bar_thickness: default(:scroll_bar_thickness), }.merge! options super(options) @grid = grid num_columns: 2, padding: 0, spacing: 0 do @view = scroll_area(owner: self, width: options[:width], height: options[:height]) @spacer = label '', padding: 0, width: 0, height: 0 end @scroll_bar_v = VerticalScrollBar.new(owner: self, width: options[:scroll_bar_thickness], align_v: :fill) @scroll_bar_h = HorizontalScrollBar.new(owner: self, height: options[:scroll_bar_thickness], align_h: :fill) end
Public Instance Methods
content()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 5 def content; @view.content; end
content_height()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 14 def content_height; @view.content.height; end
content_width()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 13 def content_width; @view.content.width; end
height=(value)
click to toggle source
Calls superclass method
# File lib/fidgit/elements/scroll_window.rb, line 16 def height=(value); super(value); end
offset_x()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 6 def offset_x; @view.offset_x; end
offset_x=(value)
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 7 def offset_x=(value); @view.offset_x = value; end
offset_y()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 8 def offset_y; @view.offset_y; end
offset_y=(value)
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 9 def offset_y=(value); @view.offset_y = value; end
view_height()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 12 def view_height; @view.height; end
view_width()
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 11 def view_width; @view.width; end
width=(value)
click to toggle source
Calls superclass method
# File lib/fidgit/elements/scroll_window.rb, line 15 def width=(value); super(value); end
Protected Instance Methods
layout()
click to toggle source
Calls superclass method
# File lib/fidgit/elements/scroll_window.rb, line 35 def layout # Prevent recursive layouts. return if @in_layout @in_layout = true if @view # Constrain the values of the offsets. @view.offset_x = @view.offset_x @view.offset_y = @view.offset_y if content_height > view_height unless @scroll_bar_v.parent @view.send(:rect).width -= @scroll_bar_v.width @grid.remove @spacer @grid.insert 1, @scroll_bar_v end else if @scroll_bar_v.parent @view.send(:rect).width += @scroll_bar_v.width @grid.remove @scroll_bar_v @grid.insert 1, @spacer end end if content_width > view_width unless @scroll_bar_h.parent @view.send(:rect).height -= @scroll_bar_h.height @grid.add @scroll_bar_h end else if @scroll_bar_h.parent @view.send(:rect).height += @scroll_bar_h.height @grid.remove @scroll_bar_h end end end super @in_layout = false end
post_init_block(&block)
click to toggle source
# File lib/fidgit/elements/scroll_window.rb, line 79 def post_init_block(&block) @view.content.with(&block) end