rsence-pre 2.3.0.11 → 2.3.0.12
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.
- data/VERSION +1 -1
- data/js/core/class/class.js +14 -4
- data/js/foundation/view/view.js +10 -1
- data/lib/rsence/argv/initenv_argv.rb +13 -2
- data/lib/rsence/plugins/gui_plugin.rb +96 -11
- data/plugins/client_pkg/lib/client_pkg_build.rb +1 -1
- data/setup/welcome/client_pkgs.yaml +19 -0
- data/setup/welcome/gui.yaml +53 -0
- data/setup/welcome/info.yaml +1 -1
- data/setup/welcome/js/welcome_scrollcontainer/welcome_scrollcontainer.coffee +37 -0
- data/setup/welcome/js/welcome_view/welcome_view.coffee +55 -0
- data/setup/welcome/text/welcome.html +0 -1
- data/setup/welcome/values.yaml +6 -6
- metadata +6 -3
- data/setup/welcome/gui/welcome.yaml +0 -92
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.3.0.
|
1
|
+
2.3.0.12.pre
|
data/js/core/class/class.js
CHANGED
@@ -85,9 +85,18 @@ HClass.prototype = {
|
|
85
85
|
var _previous = this.base;
|
86
86
|
// copies previous this.base from the direction from HClass
|
87
87
|
this.base = _ancestor;
|
88
|
-
|
89
|
-
//
|
90
|
-
|
88
|
+
|
89
|
+
// The current class's method is called with an exception handler to
|
90
|
+
// ignore the common mistake of calling super, while being in the class
|
91
|
+
// declaring the method; has no super.
|
92
|
+
try{
|
93
|
+
// now inside the function when called this.base points to parent method
|
94
|
+
_returnValue = _method.apply(this, arguments);
|
95
|
+
}
|
96
|
+
catch(e){
|
97
|
+
!this.isProduction && console.warn("An exception occurred while calling base: ",e);
|
98
|
+
_returnValue = null;
|
99
|
+
}
|
91
100
|
// then because event this function can be called from child method
|
92
101
|
// resets the base to as is was before calling this function
|
93
102
|
this.base = _previous;
|
@@ -102,7 +111,8 @@ HClass.prototype = {
|
|
102
111
|
}
|
103
112
|
return this[_source] = _value;
|
104
113
|
// this is called when called by HClass.extend
|
105
|
-
}
|
114
|
+
}
|
115
|
+
else if (_source) {
|
106
116
|
_prototype = {toSource: null};
|
107
117
|
_protected = ["toString", "valueOf"];
|
108
118
|
// we want default constructor function
|
data/js/foundation/view/view.js
CHANGED
@@ -738,7 +738,16 @@ HView = HClass.extend({
|
|
738
738
|
if(this.options.html){
|
739
739
|
this.setHTML(this.options.html);
|
740
740
|
}
|
741
|
-
|
741
|
+
// Extended draw for components to define/extend.
|
742
|
+
// This is preferred over drawSubviews, when defining
|
743
|
+
// parts of a complex component.
|
744
|
+
if(typeof this.extDraw === 'function'){
|
745
|
+
this.extDraw();
|
746
|
+
}
|
747
|
+
// Extended draw for the purpose of drawing subviews.
|
748
|
+
if(typeof this.drawSubviews === 'function'){
|
749
|
+
this.drawSubviews();
|
750
|
+
}
|
742
751
|
// if options contain a subviews function, call it with the namespace of self
|
743
752
|
if(this.options.subviews && typeof this.options.subviews == 'function'){
|
744
753
|
this.options.subviews.call( this );
|
@@ -159,7 +159,7 @@ module ArgvUtil
|
|
159
159
|
config[:http_server][:port] = ask(str_http_port) do |q|
|
160
160
|
q.default = config[:http_server][:port].to_s
|
161
161
|
end
|
162
|
-
|
162
|
+
|
163
163
|
say @strs[:initenv][:enter_tcp_ip]
|
164
164
|
str_tcp_ip = @strs[:initenv][:tcp_ip]
|
165
165
|
config[:http_server][:bind_address] = ask(str_tcp_ip) do |q|
|
@@ -171,6 +171,13 @@ module ArgvUtil
|
|
171
171
|
config[:base_url] = ask(str_root_dir) do |q|
|
172
172
|
q.default = config[:base_url]
|
173
173
|
end
|
174
|
+
|
175
|
+
# possible workaround for highline on some systems:
|
176
|
+
config[:index_html][:title] = config[:index_html][:title].to_s
|
177
|
+
config[:database][:ses_db] = config[:database][:ses_db].to_s
|
178
|
+
config[:http_server][:port] = config[:http_server][:port].to_s.to_i
|
179
|
+
config[:http_server][:bind_address] = config[:http_server][:bind_address].to_s
|
180
|
+
config[:base_url] = config[:base_url].to_s
|
174
181
|
|
175
182
|
test_url = "http://#{config[:http_server][:bind_address]}:#{config[:http_server][:port]}#{config[:base_url]}"
|
176
183
|
say ERB.new( @strs[:initenv][:config_summary] ).result( binding )
|
@@ -210,7 +217,11 @@ module ArgvUtil
|
|
210
217
|
readme_file = File.join( env_dir, 'README' )
|
211
218
|
File.open( readme_file, 'w' ) {|f| f.write( ERB.new( @strs[:initenv][:readme] ).result( binding ) ) }
|
212
219
|
version_file = File.join( env_dir, 'VERSION' )
|
213
|
-
File.open( version_file, 'w' ) {|f| f.write( "RSence Environment Version #{version.to_f}" ) }
|
220
|
+
File.open( version_file, 'w' ) {|f| f.write( "RSence Environment Version #{version.to_f}\n" ) }
|
221
|
+
[ db_dir, log_dir, run_dir ].each do |ign_prefix|
|
222
|
+
gitignore_file = File.join( ign_prefix, '.gitignore' )
|
223
|
+
File.open( gitignore_file, 'w' ) {|f| f.write("*\n") }
|
224
|
+
end
|
214
225
|
puts ERB.new( @strs[:initenv][:congratulations] ).result( binding )
|
215
226
|
exit
|
216
227
|
end
|
@@ -85,21 +85,106 @@ module RSence
|
|
85
85
|
warn "install_client_pkgs: called with @client_pkgs defined (#{@client_pkgs.inspect}); returning" if RSence.args[:debug]
|
86
86
|
return
|
87
87
|
end
|
88
|
-
|
89
|
-
if
|
90
|
-
|
91
|
-
|
92
|
-
|
88
|
+
client_pkgs = yaml_read( 'client_pkgs.yaml' )
|
89
|
+
if client_pkgs
|
90
|
+
|
91
|
+
sleep 0.1 until client_pkg.ready?
|
92
|
+
|
93
|
+
if client_pkgs.has_key?('src_dir')
|
94
|
+
src_dirs = [ client_pkgs['src_dir'] ]
|
95
|
+
elsif client_pkgs.has_key?('src_dirs')
|
96
|
+
src_dirs = client_pkgs['src_dirs']
|
97
|
+
elsif client_pkgs.has_key?(:src_dirs)
|
98
|
+
src_dirs = client_pkgs[:src_dirs]
|
99
|
+
else
|
100
|
+
src_dirs = false
|
101
|
+
end
|
102
|
+
|
103
|
+
@client_pkgs = {}
|
104
|
+
if src_dirs
|
105
|
+
src_dirs.each do |src_dir|
|
106
|
+
if src_dir.start_with?('./')
|
107
|
+
src_dir = bundle_path( src_dir[2..-1] )
|
108
|
+
end
|
93
109
|
client_pkg.add_src_dir( src_dir )
|
94
110
|
end
|
111
|
+
@client_pkgs[:src_dirs] = src_dirs
|
95
112
|
end
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
113
|
+
|
114
|
+
if client_pkgs.has_key?('packages')
|
115
|
+
packages = client_pkgs['packages']
|
116
|
+
elsif client_pkgs.has_key?(:packages)
|
117
|
+
packages = client_pkgs[:packages]
|
118
|
+
else
|
119
|
+
packages = false
|
120
|
+
end
|
121
|
+
|
122
|
+
if packages
|
123
|
+
client_pkg.add_packages( packages )
|
124
|
+
@client_pkgs[:packages] = packages
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
if client_pkgs.has_key?('compounds')
|
129
|
+
compounds = client_pkgs['compounds']
|
130
|
+
elsif client_pkgs.has_key?('compound_packages')
|
131
|
+
compounds = client_pkgs['compound_packages']
|
132
|
+
elsif client_pkgs.has_key?(:compound_packages)
|
133
|
+
compounds = client_pkgs[:compound_packages]
|
134
|
+
else
|
135
|
+
compounds = false
|
136
|
+
end
|
137
|
+
|
138
|
+
if compounds
|
139
|
+
client_pkg.add_compounds( compounds )
|
140
|
+
@client_pkgs[:compound_packages] = compounds
|
141
|
+
end
|
142
|
+
|
143
|
+
|
144
|
+
if client_pkgs.has_key?('themes')
|
145
|
+
theme_names = client_pkgs['themes']
|
146
|
+
elsif client_pkgs.has_key?('theme_names')
|
147
|
+
theme_names = client_pkgs['theme_names']
|
148
|
+
elsif client_pkgs.has_key?(:theme_names)
|
149
|
+
theme_names = client_pkgs[:theme_names]
|
150
|
+
else
|
151
|
+
theme_names = false
|
152
|
+
end
|
153
|
+
|
154
|
+
if theme_names
|
155
|
+
client_pkg.add_themes( theme_names )
|
156
|
+
@client_pkgs[:theme_names] = theme_names
|
157
|
+
end
|
158
|
+
|
159
|
+
|
160
|
+
if client_pkgs.has_key?('gfx_formats')
|
161
|
+
gfx_formats = client_pkgs['gfx_formats']
|
162
|
+
elsif client_pkgs.has_key?(:gfx_formats)
|
163
|
+
gfx_formats = client_pkgs[:gfx_formats]
|
164
|
+
else
|
165
|
+
gfx_formats = false
|
166
|
+
end
|
167
|
+
|
168
|
+
if gfx_formats
|
169
|
+
client_pkg.add_gfx_formats( gfx_formats )
|
170
|
+
@client_pkgs[:gfx_formats] = gfx_formats
|
171
|
+
end
|
172
|
+
|
173
|
+
if client_pkgs.has_key?('reserved_names')
|
174
|
+
reserved_names = client_pkgs['reserved_names']
|
175
|
+
elsif client_pkgs.has_key?(:reserved_names)
|
176
|
+
reserved_names = client_pkgs[:reserved_names]
|
177
|
+
else
|
178
|
+
reserved_names = false
|
179
|
+
end
|
180
|
+
|
181
|
+
if reserved_names
|
182
|
+
client_pkg.add_reserved_names( reserved_names )
|
183
|
+
@client_pkgs[:reserved_names] = reserved_names
|
184
|
+
end
|
185
|
+
|
102
186
|
client_pkg.rebuild_client
|
187
|
+
|
103
188
|
end
|
104
189
|
end
|
105
190
|
|
@@ -241,7 +241,7 @@ class ClientPkgBuild
|
|
241
241
|
@src_cache[:orig_size][src_path] = js_size
|
242
242
|
end
|
243
243
|
else
|
244
|
-
js_data = %{console.log( "ERROR: CoffeeScript not
|
244
|
+
js_data = %{console.log( "ERROR: CoffeeScript not supported and no JS source available for #{bundle_path}" );}
|
245
245
|
js_size = js_data.bytesize
|
246
246
|
min_size = js_size
|
247
247
|
src_timestamp = 0
|
@@ -0,0 +1,19 @@
|
|
1
|
+
|
2
|
+
### This file defines how to build custom client-side code.
|
3
|
+
|
4
|
+
# The source directory './' is a special prefix meaning the path of this plugin.
|
5
|
+
src_dir: ./js
|
6
|
+
# If you have several source directories, you can specify them in plural, like this:
|
7
|
+
# src_dirs:
|
8
|
+
# - ./js
|
9
|
+
# - /opt/src/examples/coffeescript
|
10
|
+
# - ~/proj/demo
|
11
|
+
|
12
|
+
# The packages of found bundles in the source directory are
|
13
|
+
# combined into packages.
|
14
|
+
packages:
|
15
|
+
# The following is the name of the package:
|
16
|
+
welcome_pkg:
|
17
|
+
# These are the bundles to include in the package:
|
18
|
+
- welcome_scrollcontainer
|
19
|
+
- welcome_view
|
@@ -0,0 +1,53 @@
|
|
1
|
+
---
|
2
|
+
|
3
|
+
# RSence user interfaces can be defined as YAML files.
|
4
|
+
# The structure is converted to JSON for the client and "special"
|
5
|
+
# variables are processed by the server.
|
6
|
+
# The server tries to find a match in its gui_params for all values
|
7
|
+
# that begin with a colon (they are parsed as symbols on ruby).
|
8
|
+
|
9
|
+
# Read more about YAML on http://yaml.org/
|
10
|
+
|
11
|
+
|
12
|
+
# GUITree is used as the type identifier for
|
13
|
+
# user interface definition structures.
|
14
|
+
type: GUITree
|
15
|
+
|
16
|
+
# The version defines what version of the structure is used.
|
17
|
+
version: 1.0
|
18
|
+
|
19
|
+
# List of javascript packages the user interface needs.
|
20
|
+
# These are automatically loaded once per session.
|
21
|
+
dependencies:
|
22
|
+
- welcome_pkg # See client_pkgs.yaml
|
23
|
+
|
24
|
+
# The root level class for user interfaces must be an instance of
|
25
|
+
# HApplication (RSence.GUIApp is extended from the HApplication class).
|
26
|
+
class: RSence.GUIApp
|
27
|
+
|
28
|
+
# Each class takes a number of options for its constructor.
|
29
|
+
options:
|
30
|
+
label: Welcome App
|
31
|
+
|
32
|
+
# The subviews use the class defined above as their parent component.
|
33
|
+
subviews:
|
34
|
+
|
35
|
+
# The sheet is used as the main visual container for the gui in this app.
|
36
|
+
# HSheet is an component that dims the background and shows a dialog sheet
|
37
|
+
# while its value is 0.
|
38
|
+
- WelcomeView:
|
39
|
+
|
40
|
+
# For this rect, the rect defines the inner dialog
|
41
|
+
# size and position relave to the center position.
|
42
|
+
rect: [ 0, 0, 600, 500 ]
|
43
|
+
|
44
|
+
# Values are bound to their component responders using the bind -option.
|
45
|
+
bind: :values.close
|
46
|
+
|
47
|
+
options:
|
48
|
+
# Passes on the rest of the value id's as a reference to be used
|
49
|
+
# in the code. See js/welcome_view for details.
|
50
|
+
values: :values
|
51
|
+
|
52
|
+
# See the js/welcome_scrollcontainer for client-side usage of this:
|
53
|
+
welcomeText: :text.welcome
|
data/setup/welcome/info.yaml
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
###
|
2
|
+
This custom HScrollView contains a number of subviews that are inside
|
3
|
+
its scrollbars (if the inner content area is bigger than the outer
|
4
|
+
dimensions of HScrollView itself). ###
|
5
|
+
WelcomeScrollContainer = HScrollView.extend
|
6
|
+
|
7
|
+
###
|
8
|
+
Subviews of the HScrollView; items inside are displayed
|
9
|
+
inside the scrollbars. ###
|
10
|
+
drawSubviews: ->
|
11
|
+
@base()
|
12
|
+
###
|
13
|
+
The HInlineView is a simple HTML container, designed
|
14
|
+
to contain "flowing layout" html. ###
|
15
|
+
HInlineView.new( [ 0, 0, null, null, 0, 0 ], @,
|
16
|
+
###
|
17
|
+
See the gui_params method of welcome.rb to understand how the
|
18
|
+
contents of the text/welcome.html files is linked like this. ###
|
19
|
+
html: @parent.options.welcomeText
|
20
|
+
style:
|
21
|
+
fontFamily: 'Helvetica, Arial, sans-serif'
|
22
|
+
fontSize: '16px'
|
23
|
+
lineHeight: '20px'
|
24
|
+
)
|
25
|
+
|
26
|
+
# The RSence logo image:
|
27
|
+
HImageView.extend(
|
28
|
+
click: ->
|
29
|
+
console.log 'clicked'
|
30
|
+
location.href="http://rsence.org/"
|
31
|
+
).new( [ 20, 10, 559, 110 ], @,
|
32
|
+
# Images use the value as the URL of the image.
|
33
|
+
value: 'http://rsence.org/rsence_org_logo.gif'
|
34
|
+
scaleToFit: false
|
35
|
+
events:
|
36
|
+
click: true
|
37
|
+
)
|
@@ -0,0 +1,55 @@
|
|
1
|
+
###
|
2
|
+
The sheet is used as the main visual container for the gui in this app.
|
3
|
+
HSheet is an component that dims the background and shows a dialog sheet
|
4
|
+
while its value is 0. ###
|
5
|
+
WelcomeView = HSheet.extend
|
6
|
+
|
7
|
+
###
|
8
|
+
The extended refreshValue method that terminates its application,
|
9
|
+
including all the subviews. It's triggered when the value becomes 1,
|
10
|
+
as a result of the "Close" -button being clicked. ###
|
11
|
+
refreshValue: ->
|
12
|
+
@base()
|
13
|
+
@app.die() if @value == 1
|
14
|
+
|
15
|
+
###
|
16
|
+
The drawSubviews is a method to extend, if you want to draw items,
|
17
|
+
when construction is completed. ###
|
18
|
+
drawSubviews: ->
|
19
|
+
@base()
|
20
|
+
###
|
21
|
+
The values hash is set in the gui.yaml file for value id references
|
22
|
+
of the session-specific plugin values. ###
|
23
|
+
_values = @options.values
|
24
|
+
|
25
|
+
###
|
26
|
+
A button in the lower right corner of the HSheet that triggers
|
27
|
+
destruction of this application (see WelcomeView#refreshValue) ###
|
28
|
+
HClickButton.new( [ null, null, 60, 24, 8, 8 ], @,
|
29
|
+
bind: _values.close
|
30
|
+
label: 'Close'
|
31
|
+
)
|
32
|
+
|
33
|
+
###
|
34
|
+
A Check Box in the lower right corner of the HSheet that triggers
|
35
|
+
an server action to disable the whole plugin when combined with
|
36
|
+
the close button's value. ###
|
37
|
+
HCheckbox.new( [ null, null, 130, 24, 74, 8 ], @,
|
38
|
+
bind: _values.dont_show_again
|
39
|
+
label: "Don't show again"
|
40
|
+
)
|
41
|
+
|
42
|
+
###
|
43
|
+
See welcome_scrollcontainer.coffee for details of this one.
|
44
|
+
The rectangle stretches the component to contain all of the parent's
|
45
|
+
space except the bottom-most 42 pixels and the minimum size
|
46
|
+
of 550 by 300 pixels. ###
|
47
|
+
WelcomeScrollContainer.new( [ 0, 0, 550, 300, 0, 42 ], @,
|
48
|
+
scrollX: false # Disables horizontal scroll bars.
|
49
|
+
scrollY: 'auto' # Makes vertical scroll bars appear
|
50
|
+
# automatically, when needed.
|
51
|
+
# Custom additional styling using style properties:
|
52
|
+
style:
|
53
|
+
backgroundColor: 'white'
|
54
|
+
borderBottom: '1px solid black'
|
55
|
+
)
|
@@ -2,7 +2,6 @@
|
|
2
2
|
<div style="margin-left:40px;margin-top:140px;margin-right:20px">
|
3
3
|
<h1>Congratulations!</h1>
|
4
4
|
<p>This message is served to you by RSence running in your new environment.</p>
|
5
|
-
<p>The next time you create an RSence environment, use the <code>--blank</code> option of the <code>rsence init</code> command to avoid this message.</p>
|
6
5
|
<p>Use the <code>rsence help</code> command to learn more about the <code>rsence</code> command-line tool and its various commands and options.</p>
|
7
6
|
<p>You may want to install or write some software to run in your new RSence environment next.</p>
|
8
7
|
<p>Go to <a href="http://rsence.org/">rsence.org</a> to learn more about RSence.</p>
|
data/setup/welcome/values.yaml
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# Value for the checkbox. When true combined with 1 of the close value, disables the plugin. See welcome.rb
|
2
|
-
|
3
|
-
:
|
2
|
+
dont_show_again:
|
3
|
+
data: false
|
4
4
|
|
5
5
|
# Value for the close button.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
close:
|
7
|
+
value: 0
|
8
|
+
# See the 'close_button' method of welcome.rb to see what a responder is.
|
9
|
+
responder: close_button
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsence-pre
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.0.
|
4
|
+
version: 2.3.0.12
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2012-11-
|
13
|
+
date: 2012-11-23 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rsence-deps
|
@@ -112,8 +112,11 @@ files:
|
|
112
112
|
- lib/rsence/value.rb
|
113
113
|
- lib/rsence/valuemanager.rb
|
114
114
|
- lib/rsence.rb
|
115
|
-
- setup/welcome/
|
115
|
+
- setup/welcome/client_pkgs.yaml
|
116
|
+
- setup/welcome/gui.yaml
|
116
117
|
- setup/welcome/info.yaml
|
118
|
+
- setup/welcome/js/welcome_scrollcontainer/welcome_scrollcontainer.coffee
|
119
|
+
- setup/welcome/js/welcome_view/welcome_view.coffee
|
117
120
|
- setup/welcome/text/welcome.html
|
118
121
|
- setup/welcome/values.yaml
|
119
122
|
- setup/welcome/welcome.rb
|
@@ -1,92 +0,0 @@
|
|
1
|
-
# RSence user interfaces can be defined as YAML files.
|
2
|
-
# The structure is converted to JSON for the client and "special" variables are processed by the server.
|
3
|
-
# The server tries to find a match in its gui_params for all values that begin with a colon (they are parsed as symbols on ruby).
|
4
|
-
|
5
|
-
# Read more about YAML on http://yaml.org/
|
6
|
-
|
7
|
-
# GUITree is used as the type identifier for user interface definition structures.
|
8
|
-
type: GUITree
|
9
|
-
# The version defines what version of the structure is used. New features are added constantly, each incrementing the version by 0.1
|
10
|
-
version: 0.6
|
11
|
-
|
12
|
-
# List of javascript packages the user interface needs. These are automatically loaded once per session.
|
13
|
-
dependencies:
|
14
|
-
- default_theme # The default_theme package contains all the theme resources needed when using the default theme.
|
15
|
-
- controls # The controls package contains the basic set of widget components.
|
16
|
-
|
17
|
-
# The root level class for user interfaces must be an instance of HApplication (RSence.GUIApp is extended from the HApplication class).
|
18
|
-
class: RSence.GUIApp
|
19
|
-
# Each class takes a number of options for its constructor.
|
20
|
-
options:
|
21
|
-
label: Welcome App
|
22
|
-
# The subviews use the class defined above as their parent component.
|
23
|
-
subviews:
|
24
|
-
# The sheet is used as the main visual container for the gui in this app.
|
25
|
-
# HSheet is an component that dims the background and shows a dialog sheet while its value is 0.
|
26
|
-
- class: HSheet
|
27
|
-
rect: [ 0, 0, 600, 500 ] # For HSheet, the rect defines the inner dialog size (it's always centered).
|
28
|
-
bind: :values.close # Values are bound to their component responders using the bind keyword.
|
29
|
-
extend: # The extend keyword takes a dictionary of properties to extend the class with.
|
30
|
-
# Extending refreshValue with a javascript function that terminates its application,
|
31
|
-
# including all the subviews. It's triggered when the value becomes 1, when the Close button is clicked.
|
32
|
-
refreshValue: |
|
33
|
-
function(){
|
34
|
-
this.base();
|
35
|
-
if ( this.value==1 ) {
|
36
|
-
this.app.die();
|
37
|
-
}
|
38
|
-
}
|
39
|
-
# Subviews of the HSheet, nested visual-logical structure.
|
40
|
-
subviews:
|
41
|
-
# A button in the lower right corner of the HSheet that triggers destruction of this GUITree (see the extension of HSheet above)
|
42
|
-
- class: HClickButton
|
43
|
-
rect: [ null, null, 60, 24, 8, 8 ]
|
44
|
-
bind: :values.close
|
45
|
-
options:
|
46
|
-
label: Close
|
47
|
-
# A checkbox in the lower right corner of the HSheet that triggers an server action to disable the whole plugin when combined with the close button's value.
|
48
|
-
- class: HCheckbox
|
49
|
-
rect: [ null, null, 130, 24, 74, 8 ]
|
50
|
-
bind: :values.dont_show_again
|
51
|
-
options:
|
52
|
-
label: Don't show again
|
53
|
-
# The HScrollView contains a number of subviews that are inside its scrollbars (if the inner content area is bigger than the outer dimensions of HScrollView itself).
|
54
|
-
- class: HScrollView
|
55
|
-
rect: [ 0, 0, 550, 300, 0, 42 ] # This rectangle stretches the component to contain all of the parent's space except the bottom-most 42 pixels.
|
56
|
-
options:
|
57
|
-
scrollX: false # Disables horizontal scroll bars.
|
58
|
-
scrollY: auto # Makes vertical scroll bars appear automatically when needed.
|
59
|
-
style: # Custom styling using style properties. There are several ways to display nested arrays. This is one:
|
60
|
-
- [ 'background-color', 'white' ]
|
61
|
-
- [ 'border-bottom', '1px solid black' ]
|
62
|
-
# Subviews of the HScrollView; items inside are displayed inside the scrollbars.
|
63
|
-
subviews:
|
64
|
-
# The RSence logo image:
|
65
|
-
- class: HImageView
|
66
|
-
rect: [ 18, 10, 559, 110 ]
|
67
|
-
options:
|
68
|
-
# Images use the value as the URL of the image.
|
69
|
-
value: http://rsence.org/rsence_org_logo.gif
|
70
|
-
# A plain view containing a hyperlink, positioned in the right bottom corner of the logo image.
|
71
|
-
- class: HView
|
72
|
-
rect: [ null, 95, 310, 25, 35, null ]
|
73
|
-
options:
|
74
|
-
html: |
|
75
|
-
<i style="font-family:Helvetica,Arial,sans-serif;font-size:16px;">
|
76
|
-
<a style="color:#28c;font-weight:bold" href="http://rsence.org/">http://www.rsence.org/</a>
|
77
|
-
</i>
|
78
|
-
style: # Another way to define nested arrays for the style:
|
79
|
-
- - text-align
|
80
|
-
- right
|
81
|
-
# The HInlineView is a simple HTML container, designed to contain "flowing layout" html.
|
82
|
-
- class: HInlineView
|
83
|
-
rect: [ 0, 0, null, null, 0, 0 ]
|
84
|
-
options:
|
85
|
-
html: :text.welcome # See the gui_params method of welcome.rb to understand how the contents of the text/welcome.html files is linked like this.
|
86
|
-
style:
|
87
|
-
- - font-family
|
88
|
-
- 'Helvetica, Arial, sans-serif'
|
89
|
-
- - font-size
|
90
|
-
- 16px
|
91
|
-
- - line-height
|
92
|
-
- 20px
|