vedeu 0.6.4 → 0.6.5
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/.codeclimate.yml +40 -0
- data/README.md +1 -0
- data/docs/dsl.md +24 -24
- data/lib/vedeu/all.rb +21 -44
- data/lib/vedeu/api.rb +13 -13
- data/lib/vedeu/application/application_controller.rb +2 -0
- data/lib/vedeu/bindings/movement.rb +53 -18
- data/lib/vedeu/bindings/refresh.rb +1 -1
- data/lib/vedeu/bindings/system.rb +2 -2
- data/lib/vedeu/bindings/visibility.rb +3 -3
- data/lib/vedeu/borders/all.rb +13 -0
- data/lib/vedeu/borders/border.rb +209 -202
- data/lib/vedeu/{dsl/border.rb → borders/dsl.rb} +15 -15
- data/lib/vedeu/{null/border.rb → borders/null.rb} +9 -9
- data/lib/vedeu/borders/render.rb +347 -0
- data/lib/vedeu/borders/repository.rb +19 -0
- data/lib/vedeu/buffers/all.rb +13 -0
- data/lib/vedeu/buffers/buffer.rb +182 -176
- data/lib/vedeu/{null/buffer.rb → buffers/null.rb} +8 -8
- data/lib/vedeu/buffers/repository.rb +24 -0
- data/lib/vedeu/buffers/virtual_buffer.rb +2 -2
- data/lib/vedeu/cursors/all.rb +11 -0
- data/lib/vedeu/cursors/cursor.rb +276 -0
- data/lib/vedeu/cursors/refresh.rb +84 -0
- data/lib/vedeu/cursors/repository.rb +34 -0
- data/lib/vedeu/dsl/interface.rb +9 -9
- data/lib/vedeu/dsl/shared.rb +11 -11
- data/lib/vedeu/{exceptions.rb → error.rb} +2 -2
- data/lib/vedeu/esc/esc.rb +1 -1
- data/lib/vedeu/geometry/all.rb +18 -0
- data/lib/vedeu/geometry/area.rb +170 -160
- data/lib/vedeu/geometry/coordinate.rb +61 -39
- data/lib/vedeu/geometry/dimension.rb +139 -132
- data/lib/vedeu/{dsl/geometry.rb → geometry/dsl.rb} +11 -11
- data/lib/vedeu/geometry/generic_coordinate.rb +159 -153
- data/lib/vedeu/geometry/geometry.rb +310 -212
- data/lib/vedeu/geometry/grid.rb +73 -69
- data/lib/vedeu/{null/geometry.rb → geometry/null.rb} +10 -10
- data/lib/vedeu/geometry/position.rb +124 -120
- data/lib/vedeu/geometry/repository.rb +19 -0
- data/lib/vedeu/input/editor/document.rb +2 -2
- data/lib/vedeu/internal_api.rb +8 -8
- data/lib/vedeu/models/escape.rb +2 -2
- data/lib/vedeu/models/interface.rb +1 -1
- data/lib/vedeu/models/page.rb +89 -0
- data/lib/vedeu/models/row.rb +66 -0
- data/lib/vedeu/models/toggleable.rb +1 -1
- data/lib/vedeu/models/views/char.rb +7 -6
- data/lib/vedeu/models/views/line.rb +1 -1
- data/lib/vedeu/models/views/view.rb +2 -2
- data/lib/vedeu/options.rb +19 -0
- data/lib/vedeu/output/clear/named_interface.rb +1 -1
- data/lib/vedeu/output/direct.rb +1 -1
- data/lib/vedeu/output/presentation.rb +2 -1
- data/lib/vedeu/output/viewport.rb +3 -3
- data/lib/vedeu/repositories/model.rb +9 -1
- data/lib/vedeu/repositories/repository.rb +5 -0
- data/lib/vedeu/terminal/terminal.rb +3 -3
- data/lib/vedeu/version.rb +1 -1
- data/test/lib/vedeu/borders/border_test.rb +299 -291
- data/test/lib/vedeu/{dsl/border_test.rb → borders/dsl_test.rb} +6 -6
- data/test/lib/vedeu/{null/border_test.rb → borders/null_test.rb} +6 -6
- data/test/lib/vedeu/borders/render_test.rb +125 -0
- data/test/lib/vedeu/borders/repository_test.rb +17 -0
- data/test/lib/vedeu/buffers/buffer_test.rb +116 -112
- data/test/lib/vedeu/{null/buffer_test.rb → buffers/null_test.rb} +5 -5
- data/test/lib/vedeu/buffers/repository_test.rb +18 -0
- data/test/lib/vedeu/cursors/cursor_test.rb +370 -0
- data/test/lib/vedeu/cursors/refresh_test.rb +69 -0
- data/test/lib/vedeu/cursors/repository_test.rb +41 -0
- data/test/lib/vedeu/dsl/interface_test.rb +5 -5
- data/test/lib/vedeu/{exceptions_test.rb → error_test.rb} +0 -0
- data/test/lib/vedeu/geometry/area_test.rb +141 -137
- data/test/lib/vedeu/geometry/coordinate_test.rb +93 -89
- data/test/lib/vedeu/geometry/dimension_test.rb +137 -133
- data/test/lib/vedeu/{dsl/geometry_test.rb → geometry/dsl_test.rb} +17 -17
- data/test/lib/vedeu/geometry/generic_coordinate_test.rb +32 -28
- data/test/lib/vedeu/geometry/geometry_test.rb +282 -157
- data/test/lib/vedeu/geometry/grid_test.rb +35 -31
- data/test/lib/vedeu/{null/geometry_test.rb → geometry/null_test.rb} +5 -5
- data/test/lib/vedeu/geometry/position_test.rb +146 -142
- data/test/lib/vedeu/geometry/repository_test.rb +19 -0
- data/test/lib/vedeu/input/editor/document_test.rb +1 -1
- data/test/lib/vedeu/models/escape_test.rb +1 -1
- data/test/lib/vedeu/models/interface_test.rb +2 -2
- data/test/lib/vedeu/models/page_test.rb +235 -0
- data/test/lib/vedeu/models/row_test.rb +111 -0
- data/test/lib/vedeu/models/views/char_test.rb +3 -3
- data/test/lib/vedeu/options_test.rb +57 -0
- data/test/lib/vedeu/output/clear/named_interface_test.rb +1 -1
- data/test/lib/vedeu/output/renderers/json_test.rb +1 -1
- data/test/lib/vedeu/output/viewport_test.rb +15 -9
- data/test/lib/vedeu/refresh/refresh_buffer_test.rb +12 -12
- data/test/lib/vedeu/repositories/repositories_test.rb +1 -1
- data/test/lib/vedeu/repositories/repository_test.rb +7 -0
- data/test/lib/vedeu/terminal/terminal_test.rb +1 -1
- data/test/test_helper.rb +1 -1
- data/vedeu.gemspec +2 -2
- metadata +57 -63
- data/lib/vedeu/borders/borders.rb +0 -15
- data/lib/vedeu/borders/render_border.rb +0 -331
- data/lib/vedeu/buffers/buffers.rb +0 -20
- data/lib/vedeu/cursor/cursor.rb +0 -174
- data/lib/vedeu/cursor/cursors.rb +0 -30
- data/lib/vedeu/cursor/move.rb +0 -239
- data/lib/vedeu/cursor/reposition.rb +0 -78
- data/lib/vedeu/geometry/geometries.rb +0 -15
- data/lib/vedeu/refresh/refresh_cursor.rb +0 -92
- data/test/lib/vedeu/borders/borders_test.rb +0 -13
- data/test/lib/vedeu/borders/render_border_test.rb +0 -121
- data/test/lib/vedeu/buffers/buffers_test.rb +0 -14
- data/test/lib/vedeu/cursor/cursor_test.rb +0 -246
- data/test/lib/vedeu/cursor/cursors_test.rb +0 -37
- data/test/lib/vedeu/cursor/move_test.rb +0 -301
- data/test/lib/vedeu/cursor/reposition_test.rb +0 -63
- data/test/lib/vedeu/geometry/geometries_test.rb +0 -15
- data/test/lib/vedeu/refresh/refresh_cursor_test.rb +0 -65
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fcd82ad8c943b3b1555c4b4019b6945bea88b4fd
|
4
|
+
data.tar.gz: efe4918ea1f85cca3528dae2098c1bc108786638
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aea1f3d343da09c7250f6b7e879e046ff05f1ac3be9a8f0afc4f18b15ccf49f296de0530e697a4a03cbbfad33085d55853fd19b2df397bf8a749cc12b8aea89d
|
7
|
+
data.tar.gz: 1cffa670f4d1c02ccc95ab5784653d22aaad3135f94b5ad9dd54123d6e515bbd34aeb826f3681b060e33bef39768caac6884449700cb8a68a3fd7c98ea203277
|
data/.codeclimate.yml
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# This is a sample .codeclimate.yml configured for Engine analysis on Code
|
2
|
+
# Climate Platform. For an overview of the Code Climate Platform, see here:
|
3
|
+
# http://docs.codeclimate.com/article/300-the-codeclimate-platform
|
4
|
+
|
5
|
+
# Under the engines key, you can configure which engines will analyze your repo.
|
6
|
+
# Each key is an engine name. For each value, you need to specify enabled: true
|
7
|
+
# to enable the engine as well as any other engines-specific configuration.
|
8
|
+
|
9
|
+
# For more details, see here:
|
10
|
+
# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
|
11
|
+
|
12
|
+
# For a list of all available engines, see here:
|
13
|
+
# http://docs.codeclimate.com/article/296-engines-available-engines
|
14
|
+
languages:
|
15
|
+
Ruby: true
|
16
|
+
|
17
|
+
engines:
|
18
|
+
# to turn on an engine, add it here and set enabled to `true`
|
19
|
+
# to turn off an engine, set enabled to `false` or remove it
|
20
|
+
rubocop:
|
21
|
+
enabled: true
|
22
|
+
|
23
|
+
# Engines can analyze files and report issues on them, but you can separately
|
24
|
+
# decide which files will receive ratings based on those issues. This is
|
25
|
+
# specified by path patterns under the ratings key.
|
26
|
+
|
27
|
+
# For more details see here:
|
28
|
+
# http://docs.codeclimate.com/article/289-configuring-your-repository-via-codeclimate-yml#platform
|
29
|
+
|
30
|
+
ratings:
|
31
|
+
paths:
|
32
|
+
- lib/**
|
33
|
+
|
34
|
+
# You can globally exclude files from being analyzed by any engine using the
|
35
|
+
# exclude_paths key.
|
36
|
+
|
37
|
+
exclude_paths:
|
38
|
+
- examples/**/*
|
39
|
+
- test/**/*
|
40
|
+
- vendor/**/*
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
[](https://codeclimate.com/github/gavinlaking/vedeu)
|
2
2
|
[](https://travis-ci.org/gavinlaking/vedeu)
|
3
|
+
[](https://codeclimate.com/github/gavinlaking/vedeu/coverage)
|
3
4
|
|
4
5
|
# Vedeu
|
5
6
|
|
data/docs/dsl.md
CHANGED
@@ -75,48 +75,48 @@ end
|
|
75
75
|
|
76
76
|
## Borders
|
77
77
|
|
78
|
-
{include:Vedeu::DSL
|
78
|
+
{include:Vedeu::Borders::DSL}
|
79
79
|
|
80
80
|
### Setting a title for the border
|
81
81
|
|
82
|
-
{include:Vedeu::DSL
|
82
|
+
{include:Vedeu::Borders::DSL#title}
|
83
83
|
|
84
84
|
### Customising the appearance of the border
|
85
85
|
|
86
|
-
{include:Vedeu::DSL
|
87
|
-
{include:Vedeu::DSL
|
88
|
-
{include:Vedeu::DSL
|
89
|
-
{include:Vedeu::DSL
|
90
|
-
{include:Vedeu::DSL
|
91
|
-
{include:Vedeu::DSL
|
86
|
+
{include:Vedeu::Borders::DSL#bottom_left}
|
87
|
+
{include:Vedeu::Borders::DSL#bottom_right}
|
88
|
+
{include:Vedeu::Borders::DSL#horizontal}
|
89
|
+
{include:Vedeu::Borders::DSL#top_left}
|
90
|
+
{include:Vedeu::Borders::DSL#top_right}
|
91
|
+
{include:Vedeu::Borders::DSL#vertical}
|
92
92
|
|
93
93
|
### Enabling/disabling the border
|
94
94
|
|
95
|
-
{include:Vedeu::DSL
|
96
|
-
{include:Vedeu::DSL
|
95
|
+
{include:Vedeu::Borders::DSL#enable!}
|
96
|
+
{include:Vedeu::Borders::DSL#disable!}
|
97
97
|
|
98
98
|
### Enabling/disabling an aspect of the border
|
99
99
|
|
100
|
-
{include:Vedeu::DSL
|
101
|
-
{include:Vedeu::DSL
|
102
|
-
{include:Vedeu::DSL
|
103
|
-
{include:Vedeu::DSL
|
100
|
+
{include:Vedeu::Borders::DSL#bottom}
|
101
|
+
{include:Vedeu::Borders::DSL#left}
|
102
|
+
{include:Vedeu::Borders::DSL#right}
|
103
|
+
{include:Vedeu::Borders::DSL#top}
|
104
104
|
|
105
105
|
## Geometry
|
106
106
|
|
107
|
-
{include:Vedeu::DSL
|
107
|
+
{include:Vedeu::Geometry::DSL}
|
108
108
|
|
109
109
|
### Setting the interface dimensions
|
110
110
|
|
111
|
-
{include:Vedeu::DSL
|
112
|
-
{include:Vedeu::DSL
|
113
|
-
{include:Vedeu::DSL
|
114
|
-
{include:Vedeu::DSL
|
115
|
-
{include:Vedeu::DSL
|
116
|
-
{include:Vedeu::DSL
|
117
|
-
{include:Vedeu::DSL
|
118
|
-
{include:Vedeu::DSL
|
119
|
-
{include:Vedeu::DSL
|
111
|
+
{include:Vedeu::Geometry::DSL#centred}
|
112
|
+
{include:Vedeu::Geometry::DSL#height}
|
113
|
+
{include:Vedeu::Geometry::DSL#width}
|
114
|
+
{include:Vedeu::Geometry::DSL#columns}
|
115
|
+
{include:Vedeu::Geometry::DSL#rows}
|
116
|
+
{include:Vedeu::Geometry::DSL#x}
|
117
|
+
{include:Vedeu::Geometry::DSL#xn}
|
118
|
+
{include:Vedeu::Geometry::DSL#y}
|
119
|
+
{include:Vedeu::Geometry::DSL#yn}
|
120
120
|
|
121
121
|
## Groups
|
122
122
|
|
data/lib/vedeu/all.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'vedeu/version'
|
2
|
+
require 'vedeu/options'
|
3
|
+
|
2
4
|
require 'vedeu/runtime/launcher'
|
3
5
|
require 'vedeu/runtime/bootstrap'
|
4
|
-
require 'vedeu/
|
6
|
+
require 'vedeu/error'
|
5
7
|
require 'vedeu/log/lockless_log_device'
|
6
8
|
require 'vedeu/log/mono_logger'
|
7
9
|
require 'vedeu/log/log'
|
@@ -23,8 +25,6 @@ require 'vedeu/runtime/main_loop'
|
|
23
25
|
require 'vedeu/runtime/flags'
|
24
26
|
require 'vedeu/runtime/application'
|
25
27
|
|
26
|
-
require 'vedeu/models/toggleable'
|
27
|
-
|
28
28
|
require 'vedeu/repositories/collection'
|
29
29
|
require 'vedeu/input/keys'
|
30
30
|
require 'vedeu/repositories/repositories'
|
@@ -35,56 +35,22 @@ require 'vedeu/repositories/registerable'
|
|
35
35
|
require 'vedeu/repositories/repository'
|
36
36
|
|
37
37
|
require 'vedeu/null/null'
|
38
|
-
require 'vedeu/null/border'
|
39
|
-
require 'vedeu/null/buffer'
|
40
38
|
require 'vedeu/null/generic'
|
41
|
-
require 'vedeu/null/geometry'
|
42
39
|
require 'vedeu/null/interface'
|
43
40
|
require 'vedeu/null/menu'
|
44
41
|
require 'vedeu/null/view'
|
45
42
|
|
46
|
-
require 'vedeu/geometry/area'
|
47
|
-
require 'vedeu/geometry/generic_coordinate'
|
48
|
-
require 'vedeu/geometry/coordinate'
|
49
|
-
require 'vedeu/geometry/dimension'
|
50
|
-
require 'vedeu/geometry/geometry'
|
51
|
-
require 'vedeu/geometry/geometries'
|
52
|
-
require 'vedeu/geometry/grid'
|
53
|
-
require 'vedeu/geometry/position'
|
54
|
-
|
55
|
-
require 'vedeu/colours/all'
|
56
|
-
|
57
|
-
require 'vedeu/buffers/buffer'
|
58
|
-
require 'vedeu/buffers/buffers'
|
59
|
-
require 'vedeu/buffers/virtual_buffer'
|
60
|
-
require 'vedeu/buffers/virtual_buffers'
|
61
|
-
|
62
43
|
require 'vedeu/refresh/refresh'
|
63
|
-
require 'vedeu/refresh/refresh_cursor'
|
64
44
|
require 'vedeu/refresh/refresh_buffer'
|
65
45
|
require 'vedeu/refresh/refresh_group'
|
66
46
|
|
67
|
-
require 'vedeu/
|
68
|
-
require 'vedeu/cursor/cursors'
|
69
|
-
require 'vedeu/cursor/move'
|
70
|
-
require 'vedeu/cursor/reposition'
|
47
|
+
require 'vedeu/models/toggleable'
|
71
48
|
|
72
49
|
require 'vedeu/esc/actions'
|
73
50
|
require 'vedeu/esc/borders'
|
74
51
|
require 'vedeu/esc/colours'
|
75
52
|
require 'vedeu/esc/esc'
|
76
53
|
|
77
|
-
require 'vedeu/output/renderers/renderer_options'
|
78
|
-
require 'vedeu/output/renderers/escape_sequence'
|
79
|
-
require 'vedeu/output/renderers/file'
|
80
|
-
require 'vedeu/output/renderers/html'
|
81
|
-
require 'vedeu/output/renderers/json'
|
82
|
-
require 'vedeu/output/renderers/null'
|
83
|
-
require 'vedeu/output/renderers/terminal'
|
84
|
-
require 'vedeu/output/renderers/text'
|
85
|
-
require 'vedeu/output/renderers'
|
86
|
-
|
87
|
-
require 'vedeu/events/all'
|
88
54
|
require 'vedeu/models/views/all'
|
89
55
|
|
90
56
|
require 'vedeu/models/cell'
|
@@ -94,6 +60,8 @@ require 'vedeu/models/group'
|
|
94
60
|
require 'vedeu/models/groups'
|
95
61
|
require 'vedeu/models/menu'
|
96
62
|
require 'vedeu/models/menus'
|
63
|
+
require 'vedeu/models/row'
|
64
|
+
require 'vedeu/models/page'
|
97
65
|
|
98
66
|
require 'vedeu/templating/all'
|
99
67
|
require 'vedeu/templating/encoder'
|
@@ -119,9 +87,7 @@ require 'vedeu/dsl/dsl'
|
|
119
87
|
require 'vedeu/dsl/shared'
|
120
88
|
require 'vedeu/dsl/use'
|
121
89
|
require 'vedeu/dsl/presentation'
|
122
|
-
require 'vedeu/dsl/border'
|
123
90
|
require 'vedeu/dsl/composition'
|
124
|
-
require 'vedeu/dsl/geometry'
|
125
91
|
require 'vedeu/dsl/group'
|
126
92
|
require 'vedeu/dsl/keymap'
|
127
93
|
require 'vedeu/dsl/text'
|
@@ -139,9 +105,12 @@ require 'vedeu/input/keymap'
|
|
139
105
|
require 'vedeu/input/keymaps'
|
140
106
|
require 'vedeu/input/editor/all'
|
141
107
|
|
142
|
-
require 'vedeu/borders/
|
143
|
-
require 'vedeu/
|
144
|
-
require 'vedeu/
|
108
|
+
require 'vedeu/borders/all'
|
109
|
+
require 'vedeu/buffers/all'
|
110
|
+
require 'vedeu/colours/all'
|
111
|
+
require 'vedeu/cursors/all'
|
112
|
+
require 'vedeu/events/all'
|
113
|
+
require 'vedeu/geometry/all'
|
145
114
|
|
146
115
|
require 'vedeu/output/direct'
|
147
116
|
require 'vedeu/output/clear/named_group'
|
@@ -151,10 +120,18 @@ require 'vedeu/output/compressor'
|
|
151
120
|
require 'vedeu/output/style'
|
152
121
|
require 'vedeu/output/text'
|
153
122
|
require 'vedeu/output/html_char'
|
154
|
-
|
155
123
|
require 'vedeu/output/output'
|
156
124
|
require 'vedeu/output/viewport'
|
157
125
|
require 'vedeu/output/wordwrap'
|
126
|
+
require 'vedeu/output/renderers/renderer_options'
|
127
|
+
require 'vedeu/output/renderers/escape_sequence'
|
128
|
+
require 'vedeu/output/renderers/file'
|
129
|
+
require 'vedeu/output/renderers/html'
|
130
|
+
require 'vedeu/output/renderers/json'
|
131
|
+
require 'vedeu/output/renderers/null'
|
132
|
+
require 'vedeu/output/renderers/terminal'
|
133
|
+
require 'vedeu/output/renderers/text'
|
134
|
+
require 'vedeu/output/renderers'
|
158
135
|
|
159
136
|
require 'vedeu/api'
|
160
137
|
require 'vedeu/internal_api'
|
data/lib/vedeu/api.rb
CHANGED
@@ -34,8 +34,8 @@ module Vedeu
|
|
34
34
|
# Vedeu.cursor
|
35
35
|
#
|
36
36
|
# @!method cursor
|
37
|
-
# @return [Vedeu::Cursor]
|
38
|
-
def_delegators Vedeu::Cursors, :cursor
|
37
|
+
# @return [Vedeu::Cursors::Cursor]
|
38
|
+
def_delegators Vedeu::Cursors::Repository, :cursor
|
39
39
|
|
40
40
|
# Manipulate the DRb server implementation.
|
41
41
|
#
|
@@ -60,15 +60,15 @@ module Vedeu
|
|
60
60
|
# Vedeu.border
|
61
61
|
#
|
62
62
|
# @!method border
|
63
|
-
# @see Vedeu::DSL
|
64
|
-
def_delegators Vedeu::DSL
|
63
|
+
# @see Vedeu::Borders::DSL.border
|
64
|
+
def_delegators Vedeu::Borders::DSL, :border
|
65
65
|
|
66
66
|
# @example
|
67
67
|
# Vedeu.geometry
|
68
68
|
#
|
69
69
|
# @!method geometry
|
70
|
-
# @see Vedeu::DSL
|
71
|
-
def_delegators Vedeu::DSL
|
70
|
+
# @see Vedeu::Geometry::DSL.geometry
|
71
|
+
def_delegators Vedeu::Geometry::DSL, :geometry
|
72
72
|
|
73
73
|
# @example
|
74
74
|
# Vedeu.group
|
@@ -250,8 +250,8 @@ module Vedeu
|
|
250
250
|
# Vedeu.hide_cursor(name)
|
251
251
|
#
|
252
252
|
# @!method hide_cursor
|
253
|
-
# @see Vedeu::Cursor#hide
|
254
|
-
def_delegators Vedeu::Cursor, :hide_cursor
|
253
|
+
# @see Vedeu::Cursors::Cursor#hide
|
254
|
+
def_delegators Vedeu::Cursors::Cursor, :hide_cursor
|
255
255
|
|
256
256
|
# Shows the cursor for the interface of the given name.
|
257
257
|
#
|
@@ -259,8 +259,8 @@ module Vedeu
|
|
259
259
|
# Vedeu.show_cursor(name)
|
260
260
|
#
|
261
261
|
# @!method show_cursor
|
262
|
-
# @see Vedeu::Cursor#show
|
263
|
-
def_delegators Vedeu::Cursor, :show_cursor
|
262
|
+
# @see Vedeu::Cursors::Cursor#show
|
263
|
+
def_delegators Vedeu::Cursors::Cursor, :show_cursor
|
264
264
|
|
265
265
|
# Toggle the visibility of the cursor with the given name.
|
266
266
|
#
|
@@ -268,9 +268,9 @@ module Vedeu
|
|
268
268
|
# Vedeu.toggle_cursor(name)
|
269
269
|
#
|
270
270
|
# @!method toggle_cursor
|
271
|
-
# @see Vedeu::Cursor#hide
|
272
|
-
# @see Vedeu::Cursor#show
|
273
|
-
def_delegators Vedeu::Cursor, :toggle_cursor
|
271
|
+
# @see Vedeu::Cursors::Cursor#hide
|
272
|
+
# @see Vedeu::Cursors::Cursor#show
|
273
|
+
def_delegators Vedeu::Cursors::Cursor, :toggle_cursor
|
274
274
|
|
275
275
|
# @!method hide_group
|
276
276
|
# @see Vedeu::Group#hide
|
@@ -8,6 +8,8 @@ module Vedeu
|
|
8
8
|
|
9
9
|
include Vedeu::Controller
|
10
10
|
|
11
|
+
# Returns an instance of Vedeu::ApplicationController.
|
12
|
+
#
|
11
13
|
# @param params [Hash] The named parameters provided to the controller which
|
12
14
|
# will be used by the actions within the controller.
|
13
15
|
# @return [Vedeu::ApplicationController]
|
@@ -21,32 +21,63 @@ module Vedeu
|
|
21
21
|
|
22
22
|
private
|
23
23
|
|
24
|
-
#
|
24
|
+
# Adjusts the position of the cursor or view.
|
25
25
|
#
|
26
26
|
# @example
|
27
|
-
# Vedeu.trigger(:_cursor_down_
|
28
|
-
#
|
29
|
-
# Vedeu.trigger(:
|
30
|
-
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
# Vedeu.trigger(:
|
34
|
-
#
|
35
|
-
#
|
36
|
-
#
|
37
|
-
#
|
38
|
-
# Vedeu.trigger(:
|
27
|
+
# Vedeu.trigger(:_cursor_down_)
|
28
|
+
#
|
29
|
+
# Vedeu.trigger(:_cursor_left_) # When a name is not given, the cursor
|
30
|
+
# # in the interface which is currently in
|
31
|
+
# # focus should move to the left.
|
32
|
+
#
|
33
|
+
# Vedeu.trigger(:_cursor_left_, 'my_interface')
|
34
|
+
# # When a name is given, the cursor
|
35
|
+
# # instance belonging to this interface
|
36
|
+
# # moves to the left.
|
37
|
+
#
|
38
|
+
# Vedeu.trigger(:_cursor_right_)
|
39
|
+
# Vedeu.trigger(:_cursor_up_)
|
40
|
+
#
|
41
|
+
# Vedeu.trigger(:_cursor_origin_) # /or/
|
42
|
+
# Vedeu.trigger(:_cursor_origin_, 'my_interface')
|
43
|
+
# # Moves the cursor to the top left of
|
44
|
+
# # the named or current interface in
|
45
|
+
# # focus.
|
46
|
+
#
|
47
|
+
# Vedeu.trigger(:_view_down_, 'my_interface')
|
48
|
+
# Vedeu.trigger(:_view_left_, 'my_interface')
|
49
|
+
# Vedeu.trigger(:_view_right_, 'my_interface')
|
50
|
+
# Vedeu.trigger(:_view_up_, 'my_interface')
|
51
|
+
#
|
52
|
+
# Each of the :_view_* events has an alias, :_geometry_*
|
53
|
+
#
|
54
|
+
# @note
|
55
|
+
# The cursor or view may not be visible, but it will still move if
|
56
|
+
# requested.
|
57
|
+
# The cursor will not exceed the border or boundary of the interface, or
|
58
|
+
# boundary of the visible terminal.
|
59
|
+
# The cursor will move freely within the bounds of the interface,
|
60
|
+
# irrespective of content.
|
61
|
+
# The view will not exceed the boundary of the visible terminal.
|
62
|
+
# The view will move freely within the bounds of the interface,
|
63
|
+
# irrespective of content.
|
39
64
|
#
|
40
65
|
# @return [TrueClass]
|
41
|
-
# @see Vedeu::Move
|
42
66
|
def directional!
|
43
67
|
[:down, :left, :right, :up].each do |direction|
|
44
68
|
Vedeu.bind("_cursor_#{direction}_".to_sym) do |name|
|
45
|
-
Vedeu
|
69
|
+
Vedeu.cursors.by_name(name).send("move_#{direction}")
|
70
|
+
|
71
|
+
Vedeu.trigger(:_refresh_cursor_, name)
|
46
72
|
end
|
47
73
|
|
48
74
|
Vedeu.bind("_view_#{direction}_".to_sym) do |name|
|
49
|
-
Vedeu
|
75
|
+
Vedeu.geometries.by_name(name).send("move_#{direction}")
|
76
|
+
|
77
|
+
Vedeu.trigger(:_clear_)
|
78
|
+
Vedeu.trigger(:_refresh_)
|
79
|
+
Vedeu.trigger(:_clear_, name)
|
80
|
+
Vedeu.trigger(:_refresh_, name)
|
50
81
|
end
|
51
82
|
|
52
83
|
Vedeu.bind_alias("_geometry_#{direction}_".to_sym,
|
@@ -65,7 +96,7 @@ module Vedeu
|
|
65
96
|
# @see Vedeu::Move
|
66
97
|
def cursor_origin!
|
67
98
|
Vedeu.bind(:_cursor_origin_) do |name|
|
68
|
-
Vedeu::Move.origin(Vedeu::Cursor, name)
|
99
|
+
Vedeu::Move.origin(Vedeu::Cursors::Cursor, name)
|
69
100
|
end
|
70
101
|
|
71
102
|
Vedeu.bind_alias(:_cursor_reset_, :_cursor_origin_)
|
@@ -95,7 +126,11 @@ module Vedeu
|
|
95
126
|
# @see Vedeu::Move
|
96
127
|
def cursor_reposition!
|
97
128
|
Vedeu.bind(:_cursor_reposition_) do |name, y, x|
|
98
|
-
Vedeu
|
129
|
+
Vedeu.cursors.by_name(name).reposition(y, x)
|
130
|
+
|
131
|
+
Vedeu.trigger(:_clear_, name)
|
132
|
+
Vedeu.trigger(:_refresh_, name)
|
133
|
+
Vedeu.trigger(:_refresh_cursor_, name)
|
99
134
|
end
|
100
135
|
end
|
101
136
|
|