Class: EideticRML::LayoutManagers::LayoutManager
- Inherits:
-
Object
- Object
- EideticRML::LayoutManagers::LayoutManager
show all
- Defined in:
- lib/erml_layout_managers.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of LayoutManager.
11
12
13
|
# File 'lib/erml_layout_managers.rb', line 11
def initialize(style)
@style = style
end
|
Class Method Details
.for_name(name) ⇒ Object
71
72
73
|
# File 'lib/erml_layout_managers.rb', line 71
def self.for_name(name)
@@klasses[name] unless @@klasses.nil?
end
|
.register(name, klass) ⇒ Object
67
68
69
|
# File 'lib/erml_layout_managers.rb', line 67
def self.register(name, klass)
(@@klasses ||= {})[name] = klass
end
|
Instance Method Details
#after_layout(container) ⇒ Object
64
65
|
# File 'lib/erml_layout_managers.rb', line 64
def after_layout(container)
end
|
#col_grid(container) ⇒ Object
23
24
25
26
27
28
29
|
# File 'lib/erml_layout_managers.rb', line 23
def col_grid(container)
grid = Support::Grid.new(1, container.children.size)
container.children.each_with_index do |widget, index|
grid[0, index] = widget
end
grid
end
|
#layout(container, writer) ⇒ Object
31
32
33
34
35
36
37
38
|
# File 'lib/erml_layout_managers.rb', line 31
def layout(container, writer)
absolute_widgets = container.children.select { |widget| widget.position == :absolute }
layout_absolute(container, writer, absolute_widgets)
relative_widgets = container.children.select { |widget| widget.position == :relative }
layout_relative(container, writer, relative_widgets)
container.children.each { |widget| container.root_page.positioned_widgets[widget.position] += 1 if widget.visible and widget.leaf? }
end
|
#layout_absolute(container, writer, widgets) ⇒ Object
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/erml_layout_managers.rb', line 40
def layout_absolute(container, writer, widgets)
widgets.each do |widget|
widget.before_layout
widget.position(:absolute)
widget.left(0, :pt) if widget.left.nil? and widget.right.nil?
widget.top(0, :pt) if widget.top.nil? and widget.bottom.nil?
widget.width(widget.preferred_width(writer), :pt) if widget.width.nil?
widget.height(widget.preferred_height(writer), :pt) if widget.height.nil?
widget.layout_widget(writer)
end
end
|
#layout_relative(container, writer, widgets) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/erml_layout_managers.rb', line 52
def layout_relative(container, writer, widgets)
widgets.each do |widget|
widget.before_layout
widget.position(:relative) if widget.position == :static
widget.left(0, :pt) if widget.left.nil? and widget.right.nil?
widget.top(0, :pt) if widget.top.nil? and widget.bottom.nil?
widget.width(widget.preferred_width(writer), :pt) if widget.width.nil?
widget.layout_widget(writer)
widget.height(widget.preferred_height(writer), :pt) if widget.height.nil?
end
end
|
#row_grid(container) ⇒ Object
15
16
17
18
19
20
21
|
# File 'lib/erml_layout_managers.rb', line 15
def row_grid(container)
grid = Support::Grid.new(container.children.size, 1)
container.children.each_with_index do |widget, index|
grid[index, 0] = widget
end
grid
end
|