vedeu 0.6.34 → 0.6.35
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/docs/api.md +5 -0
- data/docs/dsl.md +4 -0
- data/docs/geometry.md +3 -0
- data/examples/alignment.rb +183 -0
- data/lib/vedeu/cursors/cursor.rb +1 -1
- data/lib/vedeu/geometry/alignment.rb +87 -0
- data/lib/vedeu/geometry/all.rb +1 -0
- data/lib/vedeu/geometry/area.rb +5 -1
- data/lib/vedeu/geometry/dimension.rb +109 -11
- data/lib/vedeu/geometry/dsl.rb +96 -1
- data/lib/vedeu/geometry/geometry.rb +13 -3
- data/lib/vedeu/input/translator.rb +91 -140
- data/lib/vedeu/models/focus.rb +18 -18
- data/lib/vedeu/output/renderers/options.rb +8 -0
- data/lib/vedeu/runtime/launcher.rb +1 -1
- data/lib/vedeu/runtime/main_loop.rb +1 -2
- data/lib/vedeu/terminal/buffer.rb +6 -6
- data/lib/vedeu/terminal/terminal.rb +1 -1
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/geometry/alignment_test.rb +100 -0
- data/test/lib/vedeu/geometry/area_test.rb +2 -0
- data/test/lib/vedeu/geometry/dimension_test.rb +136 -75
- data/test/lib/vedeu/geometry/dsl_test.rb +96 -0
- data/test/lib/vedeu/geometry/geometry_test.rb +14 -1
- data/test/lib/vedeu/output/renderers/options_test.rb +43 -0
- data/test/support/ttyrec.rb +35 -0
- data/vedeu.gemspec +1 -1
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19a9f0cb2cd4e5abc3c7df887e379390215d4a98
|
4
|
+
data.tar.gz: 42cd6518e55b29886c270ba7f41c7938087faf7a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4aab96b5aca113d6e65b34c58d35a9cd7a277c81e1c12ad80a0cc5734df760e1e8737677464eeb8758d9b110eea806c34f22dc6205f39db0d9aa03ff6a6a3041
|
7
|
+
data.tar.gz: 56be459ebb0bbac1184447c6badc767624743dd7b224b5b86bf5480e41aef4dbae2fa6ad56b50f42987855c6f7e7066c852815c2f37800d8978d878fd2b28d8b
|
data/docs/api.md
CHANGED
data/docs/dsl.md
CHANGED
@@ -109,6 +109,10 @@ end
|
|
109
109
|
|
110
110
|
### Setting the interface dimensions
|
111
111
|
|
112
|
+
{include:Vedeu::Geometry::DSL#alignment}
|
113
|
+
{include:Vedeu::Geometry::DSL#align_left}
|
114
|
+
{include:Vedeu::Geometry::DSL#align_centre}
|
115
|
+
{include:Vedeu::Geometry::DSL#align_right}
|
112
116
|
{include:Vedeu::Geometry::DSL#centred}
|
113
117
|
{include:Vedeu::Geometry::DSL#height}
|
114
118
|
{include:Vedeu::Geometry::DSL#width}
|
data/docs/geometry.md
CHANGED
@@ -24,5 +24,8 @@ of the terminal.
|
|
24
24
|
- Geometry can be maximised- to use all the available terminal space.
|
25
25
|
- It can also be unmaximised- to return to the pre-defined dimensions
|
26
26
|
as mentioned above.
|
27
|
+
- Geometry can be aligned; either left, centre or right. When defined
|
28
|
+
in this way, the 'x', 'xn', 'y' and 'yn' parameters will be
|
29
|
+
calculated automatically.
|
27
30
|
- Geometry like a {file:docs/cursors.md Cursor}, via events can be
|
28
31
|
moved; left, right, up or down.
|
@@ -0,0 +1,183 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'vedeu'
|
5
|
+
|
6
|
+
class AlignmentApp
|
7
|
+
|
8
|
+
def self.geometry_stats(name)
|
9
|
+
Vedeu.geometries.by_name(name)
|
10
|
+
end
|
11
|
+
def self.gl
|
12
|
+
geometry_stats(:left_interface)
|
13
|
+
end
|
14
|
+
def self.gc
|
15
|
+
geometry_stats(:centre_interface)
|
16
|
+
end
|
17
|
+
def self.gr
|
18
|
+
geometry_stats(:right_interface)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.border_stats(name)
|
22
|
+
Vedeu.borders.by_name(name)
|
23
|
+
end
|
24
|
+
def self.bl
|
25
|
+
border_stats(:left_interface)
|
26
|
+
end
|
27
|
+
def self.bc
|
28
|
+
border_stats(:centre_interface)
|
29
|
+
end
|
30
|
+
def self.br
|
31
|
+
border_stats(:right_interface)
|
32
|
+
end
|
33
|
+
|
34
|
+
class CentreAlignmentView
|
35
|
+
def render
|
36
|
+
Vedeu.render do
|
37
|
+
view(:centre_interface) do
|
38
|
+
lines do
|
39
|
+
line "x:#{gc.x}, xn:#{gc.xn} (w:#{gc.width})"
|
40
|
+
line "y:#{gc.y}, yn:#{gc.yn} (h:#{gc.height})"
|
41
|
+
line ""
|
42
|
+
line "bx:#{bc.bx}, bxn:#{bc.bxn} (bw:#{bc.width})"
|
43
|
+
line "by:#{bc.by}, byn:#{bc.byn} (bh:#{bc.height})"
|
44
|
+
line ""
|
45
|
+
line "The 'h', 'j', 'k' and 'l' keys will"
|
46
|
+
line "move this view left, down, up, and"
|
47
|
+
line "right respectively."
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
Vedeu.trigger(:_refresh_view, :centre_interface)
|
53
|
+
end
|
54
|
+
|
55
|
+
def gc
|
56
|
+
Vedeu.geometries.by_name(:centre_interface)
|
57
|
+
end
|
58
|
+
|
59
|
+
def bc
|
60
|
+
Vedeu.borders.by_name(:centre_interface)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
|
65
|
+
|
66
|
+
Vedeu.configure do
|
67
|
+
log './tmp/alignment.log'
|
68
|
+
renderers Vedeu::Renderers::File.new(filename: './tmp/alignment.out')
|
69
|
+
end
|
70
|
+
|
71
|
+
Vedeu.interface :left_interface do
|
72
|
+
border do
|
73
|
+
title 'Align: Left'
|
74
|
+
end
|
75
|
+
geometry do
|
76
|
+
alignment :left, 30
|
77
|
+
|
78
|
+
# or you can use:
|
79
|
+
# align_left 30
|
80
|
+
|
81
|
+
height 10
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
Vedeu.interface :centre_interface do
|
86
|
+
border do
|
87
|
+
title 'Align: Centre'
|
88
|
+
end
|
89
|
+
geometry do
|
90
|
+
alignment :centre, 40
|
91
|
+
|
92
|
+
# or you can use:
|
93
|
+
# align_centre 30
|
94
|
+
|
95
|
+
height 15
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
Vedeu.interface :right_interface do
|
100
|
+
border do
|
101
|
+
title 'Align: Right'
|
102
|
+
end
|
103
|
+
geometry do
|
104
|
+
alignment :right, 30
|
105
|
+
|
106
|
+
# or you can use:
|
107
|
+
# align_right 30
|
108
|
+
|
109
|
+
height 10
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
Vedeu.keymap '_global_' do
|
114
|
+
key('q') { Vedeu.exit }
|
115
|
+
|
116
|
+
key('h') {
|
117
|
+
Vedeu.trigger(:_view_left_, :centre_interface)
|
118
|
+
|
119
|
+
AlignmentApp::CentreAlignmentView.new.render
|
120
|
+
}
|
121
|
+
key('j') {
|
122
|
+
Vedeu.trigger(:_view_down_, :centre_interface)
|
123
|
+
|
124
|
+
AlignmentApp::CentreAlignmentView.new.render
|
125
|
+
}
|
126
|
+
key('k') {
|
127
|
+
Vedeu.trigger(:_view_up_, :centre_interface)
|
128
|
+
|
129
|
+
AlignmentApp::CentreAlignmentView.new.render
|
130
|
+
}
|
131
|
+
key('l') {
|
132
|
+
Vedeu.trigger(:_view_right_, :centre_interface)
|
133
|
+
|
134
|
+
AlignmentApp::CentreAlignmentView.new.render
|
135
|
+
}
|
136
|
+
end
|
137
|
+
|
138
|
+
Vedeu.render do
|
139
|
+
view(:left_interface) do
|
140
|
+
lines do
|
141
|
+
line "x:#{gl.x}, xn:#{gl.xn} (w:#{gl.width})"
|
142
|
+
line "y:#{gl.y}, yn:#{gl.yn} (h:#{gl.height})"
|
143
|
+
line ""
|
144
|
+
line "bx:#{bl.bx}, bxn:#{bl.bxn} (bw:#{bl.width})"
|
145
|
+
line "by:#{bl.by}, byn:#{bl.byn} (bh:#{bl.height})"
|
146
|
+
end
|
147
|
+
end
|
148
|
+
|
149
|
+
view(:centre_interface) do
|
150
|
+
lines do
|
151
|
+
line "x:#{gc.x}, xn:#{gc.xn} (w:#{gc.width})"
|
152
|
+
line "y:#{gc.y}, yn:#{gc.yn} (h:#{gc.height})"
|
153
|
+
line ""
|
154
|
+
line "bx:#{bc.bx}, bxn:#{bc.bxn} (bw:#{bc.width})"
|
155
|
+
line "by:#{bc.by}, byn:#{bc.byn} (bh:#{bc.height})"
|
156
|
+
line ""
|
157
|
+
line "The 'h', 'j', 'k' and 'l' keys will"
|
158
|
+
line "move this view left, down, up, and"
|
159
|
+
line "right respectively. The coordinates"
|
160
|
+
line "will not change in this example"
|
161
|
+
line "because they have not been"
|
162
|
+
line "instructed to do so."
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
view(:right_interface) do
|
167
|
+
lines do
|
168
|
+
line "x:#{gr.x}, xn:#{gr.xn} (w:#{gr.width})"
|
169
|
+
line "y:#{gr.y}, yn:#{gr.yn} (h:#{gr.height})"
|
170
|
+
line ""
|
171
|
+
line "bx:#{br.bx}, bxn:#{br.bxn} (bw:#{br.width})"
|
172
|
+
line "by:#{br.by}, byn:#{br.byn} (bh:#{br.height})"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
end
|
176
|
+
|
177
|
+
def self.start(argv = ARGV)
|
178
|
+
Vedeu::Launcher.execute!(argv)
|
179
|
+
end
|
180
|
+
|
181
|
+
end # AlignmentApp
|
182
|
+
|
183
|
+
AlignmentApp.start
|
data/lib/vedeu/cursors/cursor.rb
CHANGED
@@ -158,7 +158,7 @@ module Vedeu
|
|
158
158
|
#
|
159
159
|
# @return [Array<Vedeu::Models::Escape>]
|
160
160
|
def render
|
161
|
-
Vedeu.log(
|
161
|
+
Vedeu.log(message: "Refreshing cursor: '#{name}'".freeze)
|
162
162
|
|
163
163
|
Vedeu.render_output(escape_sequence)
|
164
164
|
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
module Vedeu
|
2
|
+
|
3
|
+
module Geometry
|
4
|
+
|
5
|
+
# Provides the mechanism to align an interface/view horizontally
|
6
|
+
# to the available terminal space.
|
7
|
+
#
|
8
|
+
class Alignment
|
9
|
+
|
10
|
+
# @param (see #initialize)
|
11
|
+
# @return (see #align)
|
12
|
+
def self.align(value = nil)
|
13
|
+
new(value).align
|
14
|
+
end
|
15
|
+
|
16
|
+
# @param value [NilClass|Symbol]
|
17
|
+
# @return [Vedeu::Geometry::Alignment]
|
18
|
+
def initialize(value = nil)
|
19
|
+
@value = value
|
20
|
+
end
|
21
|
+
|
22
|
+
# @raise [Vedeu::Error::InvalidSyntax] When the value is not one
|
23
|
+
# of :centre, :left, :right
|
24
|
+
# @return [Symbol]
|
25
|
+
def align
|
26
|
+
return value if valid?
|
27
|
+
|
28
|
+
fail Vedeu::Error::InvalidSyntax,
|
29
|
+
'Cannot align as value is invalid or undefined.'.freeze
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
# @return [Boolean]
|
35
|
+
def align_value?
|
36
|
+
@value.to_s.start_with?('align_')
|
37
|
+
end
|
38
|
+
|
39
|
+
# @return [Symbol]
|
40
|
+
def coerced_value
|
41
|
+
coerced = @value.to_s.gsub!('align_', '').to_sym
|
42
|
+
|
43
|
+
coerced == :center ? :centre : coerced
|
44
|
+
end
|
45
|
+
|
46
|
+
# @return [Boolean]
|
47
|
+
def none?
|
48
|
+
@value.nil? || !(@value.is_a?(Symbol)) || @value == :alignment
|
49
|
+
end
|
50
|
+
|
51
|
+
# @return [Boolean]
|
52
|
+
def valid?
|
53
|
+
values.include?(value)
|
54
|
+
end
|
55
|
+
|
56
|
+
# @return [Symbol]
|
57
|
+
def value
|
58
|
+
@_value ||= if none?
|
59
|
+
:none
|
60
|
+
|
61
|
+
elsif @value == :center
|
62
|
+
:centre
|
63
|
+
|
64
|
+
elsif align_value?
|
65
|
+
coerced_value
|
66
|
+
|
67
|
+
else
|
68
|
+
@value.to_sym
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# @return [Array<Symbol>]
|
74
|
+
def values
|
75
|
+
[
|
76
|
+
:centre,
|
77
|
+
:left,
|
78
|
+
:none,
|
79
|
+
:right,
|
80
|
+
]
|
81
|
+
end
|
82
|
+
|
83
|
+
end # Alignment
|
84
|
+
|
85
|
+
end # Geometry
|
86
|
+
|
87
|
+
end # Vedeu
|
data/lib/vedeu/geometry/all.rb
CHANGED
data/lib/vedeu/geometry/area.rb
CHANGED
@@ -39,7 +39,9 @@ module Vedeu
|
|
39
39
|
# @option attributes xn [Fixnum]
|
40
40
|
# @option attributes x_xn [Fixnum]
|
41
41
|
# @option attributes x_default [Fixnum]
|
42
|
-
# @option attributes
|
42
|
+
# @option attributes maximised [Boolean]
|
43
|
+
# @option attributes centred [Boolean]
|
44
|
+
# @option attributes alignment [Symbol]
|
43
45
|
# @return [Vedeu::Geometry::Area]
|
44
46
|
def self.from_attributes(attributes = {})
|
45
47
|
y_attributes = {
|
@@ -49,6 +51,7 @@ module Vedeu
|
|
49
51
|
default: Vedeu.height,
|
50
52
|
maximised: attributes[:maximised],
|
51
53
|
centred: attributes[:centred],
|
54
|
+
# alignment: attributes[:alignment],
|
52
55
|
}
|
53
56
|
x_attributes = {
|
54
57
|
d: attributes[:x],
|
@@ -57,6 +60,7 @@ module Vedeu
|
|
57
60
|
default: Vedeu.width,
|
58
61
|
maximised: attributes[:maximised],
|
59
62
|
centred: attributes[:centred],
|
63
|
+
alignment: attributes[:alignment],
|
60
64
|
}
|
61
65
|
y_yn = Vedeu::Geometry::Dimension.pair(y_attributes)
|
62
66
|
x_xn = Vedeu::Geometry::Dimension.pair(x_attributes)
|
@@ -22,7 +22,9 @@ module Vedeu
|
|
22
22
|
# @option attributes d_dn [Fixnum|NilClass] A width or a height.
|
23
23
|
# @option attributes default [Fixnum|NilClass]
|
24
24
|
# The terminal width or height.
|
25
|
-
# @option attributes
|
25
|
+
# @option attributes maximised [Boolean]
|
26
|
+
# @option attributes centered [Boolean]
|
27
|
+
# @option attributes alignment [Symbol]
|
26
28
|
# @return [Vedeu::Geometry::Dimension]
|
27
29
|
def initialize(attributes = {})
|
28
30
|
defaults.merge!(attributes).each do |key, value|
|
@@ -54,19 +56,19 @@ module Vedeu
|
|
54
56
|
protected
|
55
57
|
|
56
58
|
# @!attribute [r] d
|
57
|
-
# @return [Fixnum|NilClass]
|
59
|
+
# @return [Fixnum|NilClass] The starting value (y or x).
|
58
60
|
attr_reader :d
|
59
61
|
|
60
62
|
# @!attribute [r] dn
|
61
|
-
# @return [Fixnum|NilClass]
|
63
|
+
# @return [Fixnum|NilClass] The ending value (yn or xn).
|
62
64
|
attr_reader :dn
|
63
65
|
|
64
66
|
# @!attribute [r] d_dn
|
65
|
-
# @return [Fixnum|NilClass]
|
67
|
+
# @return [Fixnum|NilClass] A width or a height.
|
66
68
|
attr_reader :d_dn
|
67
69
|
|
68
70
|
# @!attribute [r] default
|
69
|
-
# @return [Fixnum|NilClass]
|
71
|
+
# @return [Fixnum|NilClass] The terminal width or height.
|
70
72
|
attr_reader :default
|
71
73
|
|
72
74
|
# @!attribute [r] maximised
|
@@ -79,13 +81,33 @@ module Vedeu
|
|
79
81
|
attr_reader :centred
|
80
82
|
alias_method :centred?, :centred
|
81
83
|
|
84
|
+
# @!attribute [r] alignment
|
85
|
+
# @return [Symbol]
|
86
|
+
attr_reader :alignment
|
87
|
+
|
82
88
|
private
|
83
89
|
|
90
|
+
# Return the dimension.
|
91
|
+
#
|
92
|
+
# 1) If maximised, it will be from the first row/line or column/
|
93
|
+
# character to the last row/line or column/character of the
|
94
|
+
# terminal.
|
95
|
+
# 2) If centred,
|
96
|
+
#
|
84
97
|
# @return [Array<Fixnum>]
|
85
98
|
def dimension
|
86
99
|
@dimension = if maximised?
|
87
100
|
[1, default]
|
88
101
|
|
102
|
+
elsif centre_aligned?
|
103
|
+
[centred_d, centred_dn]
|
104
|
+
|
105
|
+
elsif left_aligned?
|
106
|
+
[1, left_dn]
|
107
|
+
|
108
|
+
elsif right_aligned?
|
109
|
+
[right_d, default]
|
110
|
+
|
89
111
|
elsif centred? && length?
|
90
112
|
[centred_d, centred_dn]
|
91
113
|
|
@@ -95,11 +117,22 @@ module Vedeu
|
|
95
117
|
end
|
96
118
|
end
|
97
119
|
|
120
|
+
# Return a boolean indicating we know the length if a we know
|
121
|
+
# either the terminal width or height, or we can determine a
|
122
|
+
# length from the values provided.
|
123
|
+
#
|
98
124
|
# @return [Boolean]
|
125
|
+
# @todo GL 2015-10-16 Investigate: should this be && or ||.
|
99
126
|
def length?
|
100
127
|
default && length
|
101
128
|
end
|
102
129
|
|
130
|
+
# Provide the number of rows/lines or columns/characters.
|
131
|
+
#
|
132
|
+
# 1) Use the starting (x or y) and ending (xn or yn) values.
|
133
|
+
# 2) Or use the width or height value.
|
134
|
+
# 3) Or use the default/current terminal width or height value.
|
135
|
+
#
|
103
136
|
# @return [Fixnum|NilClass]
|
104
137
|
def length
|
105
138
|
if d && dn
|
@@ -108,7 +141,7 @@ module Vedeu
|
|
108
141
|
elsif d_dn
|
109
142
|
d_dn
|
110
143
|
|
111
|
-
|
144
|
+
else
|
112
145
|
default
|
113
146
|
|
114
147
|
end
|
@@ -116,16 +149,56 @@ module Vedeu
|
|
116
149
|
|
117
150
|
# Ascertains the centred starting coordinate.
|
118
151
|
#
|
152
|
+
# @example
|
153
|
+
# default = 78 # => 39
|
154
|
+
# length = 24 # => 12
|
155
|
+
# centred_d = 27 # (39 - 12 = 27)
|
156
|
+
#
|
119
157
|
# @return [Fixnum]
|
120
158
|
def centred_d
|
121
|
-
(default / 2) - (length / 2)
|
159
|
+
d = (default / 2) - (length / 2)
|
160
|
+
d < 1 ? 1 : d
|
122
161
|
end
|
123
162
|
|
124
163
|
# Ascertains the centred ending coordinate.
|
125
164
|
#
|
165
|
+
# @example
|
166
|
+
# default = 78 # => 39
|
167
|
+
# length = 24 # => 12
|
168
|
+
# centred_dn = 51 # (39 + 12 = 51)
|
169
|
+
#
|
126
170
|
# @return [Fixnum]
|
127
171
|
def centred_dn
|
128
|
-
(default / 2) + (length / 2)
|
172
|
+
dn = (default / 2) + (length / 2)
|
173
|
+
dn > default ? default : dn
|
174
|
+
end
|
175
|
+
|
176
|
+
# @return [Fixnum]
|
177
|
+
def left_dn
|
178
|
+
if d_dn
|
179
|
+
(d_dn > default) ? default : d_dn
|
180
|
+
|
181
|
+
elsif dn
|
182
|
+
dn
|
183
|
+
|
184
|
+
else
|
185
|
+
default
|
186
|
+
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
# @return [Fixnum]
|
191
|
+
def right_d
|
192
|
+
if d_dn
|
193
|
+
(default - d_dn) < 1 ? 1 : (default - d_dn)
|
194
|
+
|
195
|
+
elsif d
|
196
|
+
d
|
197
|
+
|
198
|
+
else
|
199
|
+
1
|
200
|
+
|
201
|
+
end
|
129
202
|
end
|
130
203
|
|
131
204
|
# Fetch the starting coordinate, or use 1 when not set.
|
@@ -139,10 +212,10 @@ module Vedeu
|
|
139
212
|
#
|
140
213
|
# 1) if an end value was given, use that.
|
141
214
|
# 2) if a start value wasn't given, but a width or height was,
|
142
|
-
# use the width or height
|
215
|
+
# use the width or height.
|
143
216
|
# 3) if a start value was given and a width or height was given,
|
144
217
|
# add the width or height to the start and minus 1.
|
145
|
-
# 4) otherwise, use the terminal default width or height
|
218
|
+
# 4) otherwise, use the terminal default width or height.
|
146
219
|
#
|
147
220
|
# @return [Fixnum]
|
148
221
|
def _dn
|
@@ -155,12 +228,36 @@ module Vedeu
|
|
155
228
|
elsif d && d_dn
|
156
229
|
(d + d_dn) - 1
|
157
230
|
|
158
|
-
|
231
|
+
elsif default
|
159
232
|
default
|
160
233
|
|
234
|
+
else
|
235
|
+
1
|
236
|
+
|
161
237
|
end
|
162
238
|
end
|
163
239
|
|
240
|
+
# Return a boolean indicating alignment was set to :left.
|
241
|
+
#
|
242
|
+
# @return [Boolean]
|
243
|
+
def left_aligned?
|
244
|
+
alignment == :left
|
245
|
+
end
|
246
|
+
|
247
|
+
# Return a boolean indicating alignment was set to :centre.
|
248
|
+
#
|
249
|
+
# @return [Boolean]
|
250
|
+
def centre_aligned?
|
251
|
+
alignment == :centre
|
252
|
+
end
|
253
|
+
|
254
|
+
# Return a boolean indicating alignment was set to :right.
|
255
|
+
#
|
256
|
+
# @return [Boolean]
|
257
|
+
def right_aligned?
|
258
|
+
alignment == :right
|
259
|
+
end
|
260
|
+
|
164
261
|
# Returns the default options/attributes for this class.
|
165
262
|
#
|
166
263
|
# @return [Hash<Symbol => NilClass,Boolean>]
|
@@ -172,6 +269,7 @@ module Vedeu
|
|
172
269
|
default: nil,
|
173
270
|
centred: false,
|
174
271
|
maximised: false,
|
272
|
+
alignment: Vedeu::Geometry::Alignment.align(:none),
|
175
273
|
}
|
176
274
|
end
|
177
275
|
|