vedeu 0.4.3 → 0.4.4
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/lib/vedeu/api.rb +3 -1
- data/lib/vedeu/application.rb +1 -1
- data/lib/vedeu/bindings.rb +68 -101
- data/lib/vedeu/cursor/cursor.rb +1 -1
- data/lib/vedeu/cursor/move_cursor.rb +77 -1
- data/lib/vedeu/cursor/toggle_cursor.rb +2 -0
- data/lib/vedeu/distributed/all.rb +7 -0
- data/lib/vedeu/distributed/client.rb +23 -11
- data/lib/vedeu/distributed/server.rb +8 -0
- data/lib/vedeu/distributed/subprocess.rb +0 -24
- data/lib/vedeu/distributed/uri.rb +1 -8
- data/lib/vedeu/dsl/all.rb +3 -0
- data/lib/vedeu/dsl/components/all.rb +4 -4
- data/lib/vedeu/dsl/components/geometry.rb +2 -0
- data/lib/vedeu/dsl/components/keymap.rb +14 -3
- data/lib/vedeu/dsl/group.rb +69 -0
- data/lib/vedeu/dsl/interface.rb +9 -8
- data/lib/vedeu/dsl/shared/text.rb +3 -1
- data/lib/vedeu/events/event.rb +2 -2
- data/lib/vedeu/input/keymap.rb +1 -1
- data/lib/vedeu/models/geometry.rb +1 -1
- data/lib/vedeu/models/group.rb +24 -10
- data/lib/vedeu/models/view/lines.rb +1 -0
- data/lib/vedeu/output/all.rb +6 -1
- data/lib/vedeu/output/border.rb +1 -1
- data/lib/vedeu/{support → output}/esc.rb +0 -0
- data/lib/vedeu/output/foreground.rb +1 -1
- data/lib/vedeu/output/html_char.rb +2 -0
- data/lib/vedeu/output/html_renderer.rb +6 -0
- data/lib/vedeu/output/output.rb +21 -0
- data/lib/vedeu/{support → output}/refresh.rb +1 -1
- data/lib/vedeu/output/renderer.rb +3 -0
- data/lib/vedeu/{support → output}/text.rb +0 -0
- data/lib/vedeu/output/virtual_terminal.rb +2 -0
- data/lib/vedeu/support/all.rb +0 -7
- data/lib/vedeu/support/coercions.rb +7 -4
- data/lib/vedeu/support/terminal.rb +1 -1
- data/lib/vedeu/support/trace.rb +1 -1
- data/lib/vedeu/support/visible.rb +1 -1
- data/test/lib/vedeu/cursor/move_cursor_test.rb +60 -1
- data/test/lib/vedeu/distributed/client_test.rb +21 -2
- data/test/lib/vedeu/dsl/group_test.rb +52 -0
- data/test/lib/vedeu/models/group_test.rb +11 -4
- data/test/lib/vedeu/{support → output}/esc_test.rb +0 -0
- data/test/lib/vedeu/{support → output}/refresh_test.rb +0 -0
- data/test/lib/vedeu/{support → output}/text_test.rb +0 -0
- data/test/test_helper.rb +2 -0
- data/vedeu.gemspec +2 -1
- metadata +28 -24
- data/lib/vedeu/output/writer.rb +0 -44
- data/lib/vedeu/support/console.rb +0 -90
- data/lib/vedeu/support/node.rb +0 -51
- data/lib/vedeu/support/read.rb +0 -66
- data/lib/vedeu/support/write.rb +0 -86
- data/test/lib/vedeu/output/writer_test.rb +0 -32
- data/test/lib/vedeu/support/console_test.rb +0 -138
- data/test/lib/vedeu/support/read_test.rb +0 -86
- data/test/lib/vedeu/support/write_test.rb +0 -158
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ce46fbb0f483168f5c1817fc857b4f1134afdc48
|
4
|
+
data.tar.gz: fe7eeaa6731a12dc572479b89f88de211cdf0c05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d996c0a1dc1ddb48cc050343ac91ee2d8ecba8035d833796d4a1fb0c07cc5cce75c265a12bd8b3c6c22de2e3b477805b602e20dcb8e4cc98112bf7e5cf31731c
|
7
|
+
data.tar.gz: 0d42cd88c6680854c1cd322762182d90f0dff970230db9064f709b382c36089a1c01cd406e24a74b9db6262055723eb37bd0cff64d06b4e5fe72cc923f39b23d
|
data/lib/vedeu/api.rb
CHANGED
@@ -3,9 +3,10 @@ require 'vedeu/support/terminal'
|
|
3
3
|
require 'vedeu/events/all'
|
4
4
|
require 'vedeu/models/all'
|
5
5
|
require 'vedeu/input/all'
|
6
|
-
require 'vedeu/dsl/components/
|
6
|
+
require 'vedeu/dsl/components/all'
|
7
7
|
require 'vedeu/dsl/composition'
|
8
8
|
require 'vedeu/dsl/shared/all'
|
9
|
+
require 'vedeu/dsl/group'
|
9
10
|
require 'vedeu/dsl/view'
|
10
11
|
|
11
12
|
module Vedeu
|
@@ -38,6 +39,7 @@ module Vedeu
|
|
38
39
|
def_delegators Vedeu::DSL::Border, :border
|
39
40
|
def_delegators Vedeu::DSL::Geometry, :geometry
|
40
41
|
def_delegators Vedeu::DSL::Keymap, :keymap
|
42
|
+
def_delegators Vedeu::DSL::Group, :group
|
41
43
|
def_delegators Vedeu::DSL::Use, :use
|
42
44
|
def_delegators Vedeu::DSL::View, :interface, :renders, :views
|
43
45
|
|
data/lib/vedeu/application.rb
CHANGED
data/lib/vedeu/bindings.rb
CHANGED
@@ -14,18 +14,11 @@ module Vedeu
|
|
14
14
|
#
|
15
15
|
module Bindings
|
16
16
|
|
17
|
-
# Clears the whole terminal space.
|
18
|
-
Vedeu.bind(:_clear_) do
|
19
|
-
Vedeu::Terminal.virtual.clear if Vedeu::Configuration.drb?
|
20
|
-
|
21
|
-
Vedeu::Terminal.clear
|
22
|
-
end
|
23
|
-
|
24
17
|
# Vedeu triggers this event when `:_exit_` is triggered. You can hook into
|
25
18
|
# this to perform a special action before the application terminates. Saving
|
26
19
|
# the user's work, session or preferences might be popular here.
|
27
20
|
Vedeu.bind(:_cleanup_) do
|
28
|
-
Vedeu.trigger(:_drb_stop_
|
21
|
+
Vedeu.trigger(:_drb_stop_)
|
29
22
|
Vedeu.trigger(:cleanup)
|
30
23
|
end
|
31
24
|
|
@@ -34,51 +27,40 @@ module Vedeu
|
|
34
27
|
Vedeu.trigger(:_keypress_, data)
|
35
28
|
end
|
36
29
|
|
37
|
-
Vedeu.bind(:_drb_retrieve_output_)
|
30
|
+
Vedeu.bind(:_drb_retrieve_output_) do
|
38
31
|
Vedeu.log(type: :drb, message: 'Retrieving output')
|
39
32
|
Vedeu::VirtualBuffer.retrieve
|
40
33
|
end
|
41
34
|
|
42
|
-
Vedeu.bind(:_drb_store_output_)
|
35
|
+
Vedeu.bind(:_drb_store_output_) do |data|
|
43
36
|
Vedeu.log(type: :drb, message: 'Storing output')
|
44
37
|
Vedeu::VirtualBuffer.store(Vedeu::Terminal.virtual.output(data))
|
45
38
|
end
|
46
39
|
|
47
|
-
Vedeu.bind(:_drb_restart_)
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
Vedeu.bind(:_drb_start_) do
|
53
|
-
Vedeu.log(type: :drb, message: 'Attempting to start')
|
54
|
-
Vedeu::Distributed::Server.start
|
55
|
-
end
|
56
|
-
|
57
|
-
Vedeu.bind(:_drb_status_) do
|
58
|
-
Vedeu.log(type: :drb, message: 'Fetching status')
|
59
|
-
Vedeu::Distributed::Server.status
|
60
|
-
end
|
61
|
-
|
62
|
-
Vedeu.bind(:_drb_stop_) do |message|
|
63
|
-
Vedeu.log(type: :drb, message: "Attempting to stop (#{message})")
|
64
|
-
Vedeu::Distributed::Server.stop
|
65
|
-
end
|
40
|
+
Vedeu.bind(:_drb_restart_) { Vedeu::Distributed::Server.restart }
|
41
|
+
Vedeu.bind(:_drb_start_) { Vedeu::Distributed::Server.start }
|
42
|
+
Vedeu.bind(:_drb_status_) { Vedeu::Distributed::Server.status }
|
43
|
+
Vedeu.bind(:_drb_stop_) { Vedeu::Distributed::Server.stop }
|
66
44
|
|
67
45
|
# When triggered, Vedeu will trigger a `:cleanup` event which you can define
|
68
46
|
# (to save files, etc) and attempt to exit.
|
69
|
-
Vedeu.bind(:_exit_)
|
47
|
+
Vedeu.bind(:_exit_) { Vedeu::Application.stop }
|
70
48
|
|
71
49
|
# Vedeu triggers this event when it is ready to enter the main loop. Client
|
72
50
|
# applications can listen for this event and perform some action(s), like
|
73
51
|
# render the first screen, interface or make a sound. When Vedeu triggers
|
74
52
|
# this event, the :_refresh_ event is also triggered automatically.
|
75
|
-
Vedeu.bind(:_initialize_)
|
53
|
+
Vedeu.bind(:_initialize_) { Vedeu.trigger(:_refresh_) }
|
76
54
|
|
77
|
-
#
|
55
|
+
# Will cause the triggering of the `:key` event; which
|
78
56
|
# you should define to 'do things'. If the `escape` key is pressed, then
|
79
57
|
# `key` is triggered with the argument `:escape`, also an internal event
|
80
58
|
# `_mode_switch_` is triggered.
|
81
|
-
Vedeu.bind(:_keypress_)
|
59
|
+
Vedeu.bind(:_keypress_) do |key|
|
60
|
+
Vedeu.trigger(:key, key)
|
61
|
+
|
62
|
+
Vedeu.keypress(key)
|
63
|
+
end
|
82
64
|
|
83
65
|
# When triggered with a message will cause Vedeu to log the message if
|
84
66
|
# logging is enabled in the configuration.
|
@@ -96,79 +78,35 @@ module Vedeu
|
|
96
78
|
|
97
79
|
# Hide the cursor of the named interface or interface currently in focus.
|
98
80
|
Vedeu.bind(:_cursor_hide_) do |name|
|
99
|
-
named =
|
100
|
-
Vedeu.cursors.by_name(name)
|
101
|
-
|
102
|
-
else
|
103
|
-
Vedeu.cursor
|
104
|
-
|
105
|
-
end
|
81
|
+
named = name ? Vedeu.cursors.by_name(name) : Vedeu.cursor
|
106
82
|
|
107
83
|
ToggleCursor.hide(named)
|
108
84
|
end
|
109
85
|
|
110
86
|
# Show the cursor of the named interface or interface currently in focus.
|
111
87
|
Vedeu.bind(:_cursor_show_) do |name|
|
112
|
-
named =
|
113
|
-
Vedeu.cursors.by_name(name)
|
114
|
-
|
115
|
-
else
|
116
|
-
Vedeu.cursor
|
117
|
-
|
118
|
-
end
|
88
|
+
named = name ? Vedeu.cursors.by_name(name) : Vedeu.cursor
|
119
89
|
|
120
90
|
ToggleCursor.show(named)
|
121
91
|
end
|
122
92
|
|
123
|
-
#
|
124
|
-
|
125
|
-
Vedeu.bind(:_cursor_down_) do
|
126
|
-
interface = Vedeu.interfaces.current
|
93
|
+
# @see {Vedeu::MoveCursor}
|
94
|
+
Vedeu.bind(:_cursor_down_) { |name| MoveCursor.by_name(:down, name) }
|
127
95
|
|
128
|
-
|
96
|
+
# @see {Vedeu::MoveCursor}
|
97
|
+
Vedeu.bind(:_cursor_left_) { |name| MoveCursor.by_name(:left, name) }
|
129
98
|
|
130
|
-
|
131
|
-
|
99
|
+
# @see {Vedeu::MoveCursor}
|
100
|
+
Vedeu.bind(:_cursor_right_) { |name| MoveCursor.by_name(:right, name) }
|
132
101
|
|
133
|
-
#
|
134
|
-
|
135
|
-
Vedeu.bind(:_cursor_left_) do
|
136
|
-
interface = Vedeu.interfaces.current
|
102
|
+
# @see {Vedeu::MoveCursor}
|
103
|
+
Vedeu.bind(:_cursor_up_) { |name| MoveCursor.by_name(:up, name) }
|
137
104
|
|
138
|
-
|
139
|
-
|
140
|
-
Refresh.by_focus
|
141
|
-
end
|
105
|
+
# @see {Vedeu::MoveCursor}
|
106
|
+
Vedeu.bind(:_cursor_origin_) { |name| MoveCursor.by_name(:origin, name) }
|
142
107
|
|
143
|
-
#
|
144
|
-
|
145
|
-
Vedeu.bind(:_cursor_right_) do
|
146
|
-
interface = Vedeu.interfaces.current
|
147
|
-
|
148
|
-
MoveCursor.right(Vedeu.cursor, interface)
|
149
|
-
|
150
|
-
Refresh.by_focus
|
151
|
-
end
|
152
|
-
|
153
|
-
# Move the cursor up one character in the interface currently in focus.
|
154
|
-
# Will not exceed the border or boundary of the interface.
|
155
|
-
Vedeu.bind(:_cursor_up_) do
|
156
|
-
interface = Vedeu.interfaces.current
|
157
|
-
|
158
|
-
MoveCursor.up(Vedeu.cursor, interface)
|
159
|
-
|
160
|
-
Refresh.by_focus
|
161
|
-
end
|
162
|
-
|
163
|
-
# Moves the cursor to the top left position of the interface currently in
|
164
|
-
# focus; respecting a border if present.
|
165
|
-
Vedeu.bind(:_cursor_origin_) do
|
166
|
-
interface = Vedeu.interfaces.current
|
167
|
-
|
168
|
-
MoveCursor.origin(Vedeu.cursor, interface)
|
169
|
-
|
170
|
-
Refresh.by_focus
|
171
|
-
end
|
108
|
+
# @see {Vedeu::MoveCursor}
|
109
|
+
Vedeu.bind(:_cursor_reset_) { |name| Vedeu.trigger(:_cursor_origin_, name) }
|
172
110
|
|
173
111
|
# When triggered with an interface name will focus that interface and
|
174
112
|
# restore the cursor position and visibility.
|
@@ -219,22 +157,51 @@ module Vedeu
|
|
219
157
|
# starting at the current item to the last item.
|
220
158
|
Vedeu.bind(:_menu_view_) { |name| Vedeu.menus.find(name).view }
|
221
159
|
|
222
|
-
#
|
223
|
-
#
|
224
|
-
Vedeu.bind(:
|
225
|
-
if name
|
226
|
-
Vedeu::
|
160
|
+
# Clears the whole terminal space, or the named interface area to be cleared
|
161
|
+
# if given.
|
162
|
+
Vedeu.bind(:_clear_) do |name|
|
163
|
+
if name && Vedeu.interfaces.registered?(name)
|
164
|
+
Vedeu::Output.clear(Vedeu.interfaces.find(name))
|
227
165
|
|
228
166
|
else
|
229
|
-
Vedeu::
|
167
|
+
Vedeu::Terminal.virtual.clear if Vedeu::Configuration.drb?
|
168
|
+
|
169
|
+
Vedeu::Terminal.clear
|
170
|
+
end
|
171
|
+
end
|
230
172
|
|
173
|
+
# Clears the spaces occupied by the interfaces belonging to the named group.
|
174
|
+
Vedeu.bind(:_clear_group_) do |name|
|
175
|
+
Vedeu.groups.find(name).members.each do |group_name|
|
176
|
+
Vedeu.trigger(:_clear_, group_name)
|
231
177
|
end
|
232
178
|
end
|
233
179
|
|
234
|
-
#
|
235
|
-
|
236
|
-
|
237
|
-
|
180
|
+
# Will cause all interfaces to refresh, or the named interface if given.
|
181
|
+
Vedeu.bind(:_refresh_) do |name|
|
182
|
+
name ? Vedeu::Refresh.by_name(name) : Vedeu::Refresh.all
|
183
|
+
end
|
184
|
+
|
185
|
+
# Will cause all interfaces in the named group to refresh.
|
186
|
+
Vedeu.bind(:_refresh_group_) { |name| Vedeu::Refresh.by_group(name) }
|
187
|
+
|
188
|
+
# Will clear the terminal and then show all of the interfaces belonging to
|
189
|
+
# the named group.
|
190
|
+
Vedeu.bind(:_show_group_) do |name|
|
191
|
+
Vedeu.trigger(:_clear_)
|
192
|
+
|
193
|
+
Vedeu.trigger(:_refresh_group_, name)
|
194
|
+
end
|
195
|
+
|
196
|
+
# Will hide all of the interfaces belonging to the named group. Useful for
|
197
|
+
# hiding part of that which is currently displaying in the terminal.
|
198
|
+
#
|
199
|
+
# @note
|
200
|
+
# This may be rarely used, since the action of showing a group using
|
201
|
+
# `Vedeu.trigger(:_show_group_, group_name)` will effectively clear the
|
202
|
+
# terminal and show the new group.
|
203
|
+
Vedeu.bind(:_hide_group_) do |name|
|
204
|
+
Vedeu.trigger(:_clear_group_, name)
|
238
205
|
end
|
239
206
|
|
240
207
|
end # Bindings
|
data/lib/vedeu/cursor/cursor.rb
CHANGED
@@ -18,7 +18,7 @@ module Vedeu
|
|
18
18
|
|
19
19
|
attr_reader :attributes, :name, :ox, :oy, :state, :x, :y
|
20
20
|
|
21
|
-
#
|
21
|
+
# Returns a new instance of Cursor.
|
22
22
|
#
|
23
23
|
# @param attributes [Hash]
|
24
24
|
# @option attributes name [String] The name of the interface this cursor
|
@@ -4,7 +4,34 @@ require 'vedeu/geometry/position_validator'
|
|
4
4
|
|
5
5
|
module Vedeu
|
6
6
|
|
7
|
-
# Adjusts the position of the cursor.
|
7
|
+
# Adjusts the position of the cursor. To use this class, call the appropriate
|
8
|
+
# event:
|
9
|
+
#
|
10
|
+
# @example
|
11
|
+
# Vedeu.trigger(:_cursor_down_)
|
12
|
+
#
|
13
|
+
# Vedeu.trigger(:_cursor_left_) # When a name is not given, the cursor in
|
14
|
+
# # the interface which is currently in focus
|
15
|
+
# # should move to the left.
|
16
|
+
#
|
17
|
+
# Vedeu.trigger(:_cursor_left_, 'my_interface')
|
18
|
+
# # When a name is given, the cursor instance
|
19
|
+
# # belonging to this interface moves to the
|
20
|
+
# # left.
|
21
|
+
#
|
22
|
+
# Vedeu.trigger(:_cursor_right_)
|
23
|
+
# Vedeu.trigger(:_cursor_up_)
|
24
|
+
#
|
25
|
+
# Vedeu.trigger(:_cursor_origin_) # /or/
|
26
|
+
# Vedeu.trigger(:_cursor_origin_, 'my_interface')
|
27
|
+
# # Moves the cursor to the top left of the
|
28
|
+
# # named or current interface in focus.
|
29
|
+
#
|
30
|
+
# @note
|
31
|
+
# The cursor may not be visible, but it will still move if requested.
|
32
|
+
# The cursor will not exceed the border or boundary of the interface.
|
33
|
+
# The cursor will move freely within the bounds of the interface,
|
34
|
+
# irrespective of content.
|
8
35
|
#
|
9
36
|
class MoveCursor
|
10
37
|
|
@@ -19,6 +46,8 @@ module Vedeu
|
|
19
46
|
:height,
|
20
47
|
:width
|
21
48
|
|
49
|
+
# Returns an instance of MoveCursor.
|
50
|
+
#
|
22
51
|
# @param cursor [Cursor]
|
23
52
|
# @param interface [Interface]
|
24
53
|
# @param dy [Fixnum] Move up (-1), or down (1), or no action (0).
|
@@ -31,8 +60,37 @@ module Vedeu
|
|
31
60
|
@interface = interface
|
32
61
|
end
|
33
62
|
|
63
|
+
# Move the named cursor, or that which is currently in focus in the
|
64
|
+
# specified direction.
|
65
|
+
#
|
66
|
+
# @param direction [Symbol] The direction of travel. Directions include:
|
67
|
+
# (:down, :left, :right, :up, :origin). When ':origin' the cursor is moved
|
68
|
+
# to the top left of the interface.
|
69
|
+
# @param name [String|NilClass] The name of the interface/cursor to be
|
70
|
+
# moved; when not given, the interface currently in focus determines which
|
71
|
+
# cursor instance to move.
|
72
|
+
# @return [Cursor]
|
73
|
+
def self.by_name(direction, name = nil)
|
74
|
+
if name
|
75
|
+
cursor = Vedeu.cursors.by_name(name)
|
76
|
+
interface = Vedeu.interfaces.find(name)
|
77
|
+
new_cursor = MoveCursor.send(direction, cursor, interface)
|
78
|
+
Refresh.by_name(name)
|
79
|
+
|
80
|
+
else
|
81
|
+
cursor = Vedeu.cursor
|
82
|
+
interface = Vedeu.interfaces.current
|
83
|
+
new_cursor = MoveCursor.send(direction, cursor, interface)
|
84
|
+
Refresh.by_focus
|
85
|
+
|
86
|
+
end
|
87
|
+
new_cursor
|
88
|
+
end
|
89
|
+
|
34
90
|
# Moves the cursor down by one row.
|
35
91
|
#
|
92
|
+
# @param cursor [Cursor]
|
93
|
+
# @param interface [Interface]
|
36
94
|
# @return [Cursor]
|
37
95
|
def self.down(cursor, interface)
|
38
96
|
new(cursor, interface, 1, 0).move
|
@@ -40,6 +98,8 @@ module Vedeu
|
|
40
98
|
|
41
99
|
# Moves the cursor left by one column.
|
42
100
|
#
|
101
|
+
# @param cursor [Cursor]
|
102
|
+
# @param interface [Interface]
|
43
103
|
# @return [Cursor]
|
44
104
|
def self.left(cursor, interface)
|
45
105
|
return cursor unless cursor.ox > 0
|
@@ -49,6 +109,8 @@ module Vedeu
|
|
49
109
|
|
50
110
|
# Moves the cursor right by one column.
|
51
111
|
#
|
112
|
+
# @param cursor [Cursor]
|
113
|
+
# @param interface [Interface]
|
52
114
|
# @return [Cursor]
|
53
115
|
def self.right(cursor, interface)
|
54
116
|
new(cursor, interface, 0, 1).move
|
@@ -56,6 +118,8 @@ module Vedeu
|
|
56
118
|
|
57
119
|
# Moves the cursor up by one row.
|
58
120
|
#
|
121
|
+
# @param cursor [Cursor]
|
122
|
+
# @param interface [Interface]
|
59
123
|
# @return [Cursor]
|
60
124
|
def self.up(cursor, interface)
|
61
125
|
return cursor unless cursor.oy > 0
|
@@ -65,6 +129,8 @@ module Vedeu
|
|
65
129
|
|
66
130
|
# Moves the cursor to the top left coordinate of the interface.
|
67
131
|
#
|
132
|
+
# @param cursor [Cursor]
|
133
|
+
# @param interface [Interface]
|
68
134
|
# @return [Cursor]
|
69
135
|
def self.origin(cursor, interface)
|
70
136
|
new(cursor, interface, (0 - cursor.y), (0 - cursor.x)).move
|
@@ -98,6 +164,9 @@ module Vedeu
|
|
98
164
|
coordinate.y_position(oy))
|
99
165
|
end
|
100
166
|
|
167
|
+
# Apply the direction amount to the cursor offset. If the offset is less
|
168
|
+
# than 0, correct to 0.
|
169
|
+
#
|
101
170
|
# @return [Fixnum]
|
102
171
|
def ox
|
103
172
|
ox = cursor.ox + dx
|
@@ -105,6 +174,9 @@ module Vedeu
|
|
105
174
|
ox
|
106
175
|
end
|
107
176
|
|
177
|
+
# Apply the direction amount to the cursor offset. If the offset is less
|
178
|
+
# than 0, correct to 0.
|
179
|
+
#
|
108
180
|
# @return [Fixnum]
|
109
181
|
def oy
|
110
182
|
oy = cursor.oy + dy
|
@@ -120,6 +192,8 @@ module Vedeu
|
|
120
192
|
top)
|
121
193
|
end
|
122
194
|
|
195
|
+
# Return the height of the interface, minus any borders.
|
196
|
+
#
|
123
197
|
# @return [Fixnum]
|
124
198
|
def bordered_height
|
125
199
|
return border.height if border?
|
@@ -127,6 +201,8 @@ module Vedeu
|
|
127
201
|
height
|
128
202
|
end
|
129
203
|
|
204
|
+
# Return the width of the interface, minus any borders.
|
205
|
+
#
|
130
206
|
# @return [Fixnum]
|
131
207
|
def bordered_width
|
132
208
|
return border.width if border?
|