rsence-pre 2.1.0.1.pre
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/.yardopts +10 -0
- data/INSTALL.rdoc +330 -0
- data/LICENSE.txt +622 -0
- data/README.rdoc +98 -0
- data/VERSION +1 -0
- data/bin/rsence +25 -0
- data/bin/rsence-pre +25 -0
- data/conf/default_conf.yaml +346 -0
- data/conf/default_strings.yaml +76 -0
- data/conf/rsence_command_strings.yaml +444 -0
- data/docs/ExampleGuiPlugin.rdoc +193 -0
- data/docs/JavascriptBundles.rdoc +0 -0
- data/docs/PluginBundleInfo.rdoc +173 -0
- data/docs/PluginBundles.rdoc +96 -0
- data/docs/Values.rdoc +163 -0
- data/js/comm/autosync/autosync.js +17 -0
- data/js/comm/autosync/js.inc +0 -0
- data/js/comm/comm.js +203 -0
- data/js/comm/js.inc +0 -0
- data/js/comm/jsloader/js.inc +0 -0
- data/js/comm/jsloader/jsloader.js +112 -0
- data/js/comm/queue/js.inc +0 -0
- data/js/comm/queue/queue.js +184 -0
- data/js/comm/session/js.inc +0 -0
- data/js/comm/session/session.js +52 -0
- data/js/comm/sessionwatcher/js.inc +0 -0
- data/js/comm/sessionwatcher/sessionwatcher.js +44 -0
- data/js/comm/transporter/js.inc +0 -0
- data/js/comm/transporter/transporter.js +261 -0
- data/js/comm/urlresponder/js.inc +0 -0
- data/js/comm/urlresponder/urlresponder.js +149 -0
- data/js/comm/values/js.inc +0 -0
- data/js/comm/values/values.js +433 -0
- data/js/controls/button/button.js +72 -0
- data/js/controls/button/js.inc +0 -0
- data/js/controls/button/themes/bright/button.css +89 -0
- data/js/controls/button/themes/bright/button.html +7 -0
- data/js/controls/button/themes/bright/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/bright/button_parts1.png +0 -0
- data/js/controls/button/themes/default/button.css +89 -0
- data/js/controls/button/themes/default/button.html +7 -0
- data/js/controls/button/themes/default/button_parts1-ie6.gif +0 -0
- data/js/controls/button/themes/default/button_parts1.png +0 -0
- data/js/controls/checkbox/checkbox.js +49 -0
- data/js/controls/checkbox/js.inc +0 -0
- data/js/controls/checkbox/themes/default/checkbox.css +69 -0
- data/js/controls/checkbox/themes/default/checkbox.html +5 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1-ie6.gif +0 -0
- data/js/controls/checkbox/themes/default/checkbox_parts1.png +0 -0
- data/js/controls/dialogs/alert_sheet/alert_sheet.js +63 -0
- data/js/controls/dialogs/alert_sheet/js.inc +0 -0
- data/js/controls/dialogs/confirm_sheet/confirm_sheet.js +37 -0
- data/js/controls/dialogs/confirm_sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/js.inc +0 -0
- data/js/controls/dialogs/sheet/sheet.js +84 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.css +64 -0
- data/js/controls/dialogs/sheet/themes/default/sheet.html +14 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_bg.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_dim.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts1.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_parts2.png +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning-ie6.gif +0 -0
- data/js/controls/dialogs/sheet/themes/default/sheet_warning.png +0 -0
- data/js/controls/imageview/imageview.js +109 -0
- data/js/controls/imageview/js.inc +0 -0
- data/js/controls/imageview/themes/default/blank.gif +0 -0
- data/js/controls/passwordcontrol/js.inc +0 -0
- data/js/controls/passwordcontrol/passwordcontrol.js +23 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.css +0 -0
- data/js/controls/passwordcontrol/themes/default/passwordcontrol.html +18 -0
- data/js/controls/progress/progressbar/js.inc +0 -0
- data/js/controls/progress/progressbar/progressbar.js +40 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.css +16 -0
- data/js/controls/progress/progressbar/themes/default/progressbar.html +2 -0
- data/js/controls/progress/progressindicator/js.inc +0 -0
- data/js/controls/progress/progressindicator/progressindicator.js +44 -0
- data/js/controls/radiobutton/js.inc +0 -0
- data/js/controls/radiobutton/radiobutton.js +43 -0
- data/js/controls/radiobutton/themes/default/radiobutton.css +69 -0
- data/js/controls/radiobutton/themes/default/radiobutton.html +5 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1-ie6.gif +0 -0
- data/js/controls/radiobutton/themes/default/radiobutton_parts1.png +0 -0
- data/js/controls/sliders/slider/js.inc +0 -0
- data/js/controls/sliders/slider/slider.js +357 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/hslider_tracks.png +0 -0
- data/js/controls/sliders/slider/themes/default/slider.css +108 -0
- data/js/controls/sliders/slider/themes/default/slider.html +5 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs-ie6.gif +0 -0
- data/js/controls/sliders/slider/themes/default/slider_thumbs.png +0 -0
- data/js/controls/sliders/vslider/js.inc +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider.css +52 -0
- data/js/controls/sliders/vslider/themes/default/vslider.html +5 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks-ie6.gif +0 -0
- data/js/controls/sliders/vslider/themes/default/vslider_tracks.png +0 -0
- data/js/controls/sliders/vslider/vslider.js +41 -0
- data/js/controls/stepper/js.inc +0 -0
- data/js/controls/stepper/stepper.js +213 -0
- data/js/controls/stepper/themes/default/stepper-ie6.gif +0 -0
- data/js/controls/stepper/themes/default/stepper.css +14 -0
- data/js/controls/stepper/themes/default/stepper.html +2 -0
- data/js/controls/stepper/themes/default/stepper.png +0 -0
- data/js/controls/stringview/js.inc +0 -0
- data/js/controls/stringview/stringview.js +49 -0
- data/js/controls/stringview/themes/default/stringview.css +8 -0
- data/js/controls/stringview/themes/default/stringview.html +1 -0
- data/js/controls/tab/js.inc +0 -0
- data/js/controls/tab/tab.js +280 -0
- data/js/controls/tab/themes/bright/tab.css +76 -0
- data/js/controls/tab/themes/bright/tab.html +6 -0
- data/js/controls/tab/themes/bright/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/bright/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/bright/tab_parts1.png +0 -0
- data/js/controls/tab/themes/default/tab.css +77 -0
- data/js/controls/tab/themes/default/tab.html +6 -0
- data/js/controls/tab/themes/default/tab_bg_color-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_bg_color.png +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_border_pattern.png +0 -0
- data/js/controls/tab/themes/default/tab_parts1-ie6.gif +0 -0
- data/js/controls/tab/themes/default/tab_parts1.png +0 -0
- data/js/controls/textarea/js.inc +0 -0
- data/js/controls/textarea/textarea.js +24 -0
- data/js/controls/textarea/themes/default/textarea.css +21 -0
- data/js/controls/textarea/themes/default/textarea.html +18 -0
- data/js/controls/textcontrol/js.inc +0 -0
- data/js/controls/textcontrol/textcontrol.js +374 -0
- data/js/controls/textcontrol/themes/default/textcontrol.css +107 -0
- data/js/controls/textcontrol/themes/default/textcontrol.html +18 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts1.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts2.png +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3-ie6.gif +0 -0
- data/js/controls/textcontrol/themes/default/textcontrol_parts3.png +0 -0
- data/js/controls/uploader/js.inc +0 -0
- data/js/controls/uploader/themes/default/upload_progress.gif +0 -0
- data/js/controls/uploader/themes/default/uploader.css +108 -0
- data/js/controls/uploader/themes/default/uploader.html +27 -0
- data/js/controls/uploader/uploader.js +154 -0
- data/js/controls/validatorview/js.inc +0 -0
- data/js/controls/validatorview/themes/default/validator-ie6.gif +0 -0
- data/js/controls/validatorview/themes/default/validator.png +0 -0
- data/js/controls/validatorview/themes/default/validatorview.css +0 -0
- data/js/controls/validatorview/themes/default/validatorview.html +0 -0
- data/js/controls/validatorview/validatorview.js +62 -0
- data/js/controls/window/js.inc +0 -0
- data/js/controls/window/themes/default/window.css +219 -0
- data/js/controls/window/themes/default/window.html +17 -0
- data/js/controls/window/themes/default/window_bg_active-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_active.png +0 -0
- data/js/controls/window/themes/default/window_bg_inactive-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_bg_inactive.png +0 -0
- data/js/controls/window/themes/default/window_buttons-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_buttons.png +0 -0
- data/js/controls/window/themes/default/window_parts1-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts1.png +0 -0
- data/js/controls/window/themes/default/window_parts2-ie6.gif +0 -0
- data/js/controls/window/themes/default/window_parts2.png +0 -0
- data/js/controls/window/window.js +286 -0
- data/js/core/class/class.js +318 -0
- data/js/core/class/js.inc +0 -0
- data/js/core/elem/elem.js +1383 -0
- data/js/core/elem/js.inc +0 -0
- data/js/core/event/event.js +153 -0
- data/js/core/event/js.inc +0 -0
- data/js/core/iefix/ie_css_element.htc +5 -0
- data/js/core/iefix/ie_css_style.htc +5 -0
- data/js/core/iefix/iefix.js +359 -0
- data/js/core/iefix/js.inc +0 -0
- data/js/core/rsence_ns/js.inc +0 -0
- data/js/core/rsence_ns/rsence_ns.js +21 -0
- data/js/datetime/calendar/calendar.js +198 -0
- data/js/datetime/calendar/js.inc +0 -0
- data/js/datetime/calendar/themes/default/calendar.css +108 -0
- data/js/datetime/calendar/themes/default/calendar.html +9 -0
- data/js/datetime/calendar/themes/default/calendar_arrows-ie6.gif +0 -0
- data/js/datetime/calendar/themes/default/calendar_arrows.png +0 -0
- data/js/datetime/datetimevalue/datetimevalue.js +247 -0
- data/js/datetime/datetimevalue/js.inc +0 -0
- data/js/datetime/timesheet/js.inc +0 -0
- data/js/datetime/timesheet/themes/default/timesheet.css +30 -0
- data/js/datetime/timesheet/themes/default/timesheet.html +2 -0
- data/js/datetime/timesheet/timesheet.js +183 -0
- data/js/datetime/timesheet_item/js.inc +0 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.css +42 -0
- data/js/datetime/timesheet_item/themes/default/timesheet_item.html +8 -0
- data/js/datetime/timesheet_item/timesheet_item.js +248 -0
- data/js/datetime/timesheet_item_edit/js.inc +0 -0
- data/js/datetime/timesheet_item_edit/timesheet_item_edit.js +274 -0
- data/js/foundation/application/application.js +208 -0
- data/js/foundation/application/js.inc +0 -0
- data/js/foundation/control/control.js +339 -0
- data/js/foundation/control/controldefaults/controldefaults.js +56 -0
- data/js/foundation/control/controldefaults/js.inc +0 -0
- data/js/foundation/control/dummyvalue/dummyvalue.js +51 -0
- data/js/foundation/control/dummyvalue/js.inc +0 -0
- data/js/foundation/control/dyncontrol/dyncontrol.js +500 -0
- data/js/foundation/control/dyncontrol/js.inc +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.css +0 -0
- data/js/foundation/control/dyncontrol/themes/default/dyncontrol.html +0 -0
- data/js/foundation/control/eventresponder/eventresponder.js +750 -0
- data/js/foundation/control/eventresponder/js.inc +0 -0
- data/js/foundation/control/js.inc +0 -0
- data/js/foundation/control/valuematrix/js.inc +0 -0
- data/js/foundation/control/valuematrix/valuematrix.js +135 -0
- data/js/foundation/control/valueresponder/js.inc +0 -0
- data/js/foundation/control/valueresponder/valueresponder.js +79 -0
- data/js/foundation/eventmanager/eventmanager.js +991 -0
- data/js/foundation/eventmanager/js.inc +0 -0
- data/js/foundation/geom/point/js.inc +0 -0
- data/js/foundation/geom/point/point.js +202 -0
- data/js/foundation/geom/rect/js.inc +0 -0
- data/js/foundation/geom/rect/rect.js +651 -0
- data/js/foundation/json_renderer/js.inc +0 -0
- data/js/foundation/json_renderer/json_renderer.js +246 -0
- data/js/foundation/system/js.inc +0 -0
- data/js/foundation/system/system.js +381 -0
- data/js/foundation/thememanager/js.inc +0 -0
- data/js/foundation/thememanager/thememanager.js +393 -0
- data/js/foundation/value/js.inc +0 -0
- data/js/foundation/value/value.js +183 -0
- data/js/foundation/view/js.inc +0 -0
- data/js/foundation/view/markupview/js.inc +0 -0
- data/js/foundation/view/markupview/markupview.js +114 -0
- data/js/foundation/view/morphanimation/js.inc +0 -0
- data/js/foundation/view/morphanimation/morphanimation.js +237 -0
- data/js/foundation/view/view.js +1812 -0
- data/js/foundation/view/viewdefaults/js.inc +0 -0
- data/js/foundation/view/viewdefaults/viewdefaults.js +26 -0
- data/js/lists/checkboxlist/checkboxlist.js +171 -0
- data/js/lists/checkboxlist/js.inc +0 -0
- data/js/lists/listitems/js.inc +0 -0
- data/js/lists/listitems/listitems.js +88 -0
- data/js/lists/propertylist/js.inc +0 -0
- data/js/lists/propertylist/propertylist.js +326 -0
- data/js/lists/radiobuttonlist/js.inc +0 -0
- data/js/lists/radiobuttonlist/radiobuttonlist.js +116 -0
- data/js/util/reloadapp/js.inc +0 -0
- data/js/util/reloadapp/reloadapp.js +152 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning-ie6.gif +0 -0
- data/js/util/reloadapp/themes/default/reloadapp_warning.png +0 -0
- data/js/util/sha/js.inc +0 -0
- data/js/util/sha/sha.js +426 -0
- data/js/views/centerview/centerview.js +75 -0
- data/js/views/centerview/js.inc +0 -0
- data/js/views/inlineview/inlineview.js +15 -0
- data/js/views/inlineview/js.inc +0 -0
- data/js/views/scrollview/js.inc +0 -0
- data/js/views/scrollview/scrollview.js +40 -0
- data/lib/conf/argv.rb +850 -0
- data/lib/conf/default.rb +219 -0
- data/lib/daemon/daemon.rb +387 -0
- data/lib/daemon/sigcomm.rb +64 -0
- data/lib/http/broker.rb +150 -0
- data/lib/http/rackup.rb +91 -0
- data/lib/http/request.rb +66 -0
- data/lib/http/response.rb +65 -0
- data/lib/plugins/dependencies.rb +285 -0
- data/lib/plugins/gui_plugin.rb +160 -0
- data/lib/plugins/guiparser.rb +123 -0
- data/lib/plugins/plugin.rb +438 -0
- data/lib/plugins/plugin_base.rb +162 -0
- data/lib/plugins/plugin_plugins.rb +81 -0
- data/lib/plugins/plugin_sqlite_db.rb +98 -0
- data/lib/plugins/pluginmanager.rb +635 -0
- data/lib/plugins/plugins.rb +169 -0
- data/lib/plugins/servlet.rb +108 -0
- data/lib/rsence.rb +32 -0
- data/lib/session/msg.rb +327 -0
- data/lib/session/sessionmanager.rb +522 -0
- data/lib/session/sessionstorage.rb +340 -0
- data/lib/transporter/transporter.rb +263 -0
- data/lib/util/gzstring.rb +9 -0
- data/lib/util/ruby19_fixes.rb +18 -0
- data/lib/values/hvalue.rb +378 -0
- data/lib/values/valuemanager.rb +172 -0
- data/plugins/client_pkg/client_pkg.rb +157 -0
- data/plugins/client_pkg/info.yaml +25 -0
- data/plugins/client_pkg/lib/client_pkg_build.rb +561 -0
- data/plugins/client_pkg/lib/client_pkg_cache.rb +50 -0
- data/plugins/client_pkg/lib/client_pkg_serve.rb +218 -0
- data/plugins/index_html/img/loading.gif +0 -0
- data/plugins/index_html/img/riassence.gif +0 -0
- data/plugins/index_html/index_html.rb +120 -0
- data/plugins/index_html/info.yaml +18 -0
- data/plugins/index_html/tmpl/index.html +15 -0
- data/plugins/main/info.yaml +18 -0
- data/plugins/main/js/main.js +84 -0
- data/plugins/main/main.rb +255 -0
- data/plugins/main/values.yaml +8 -0
- data/plugins/ticket/info.yaml +21 -0
- data/plugins/ticket/lib/common.rb +392 -0
- data/plugins/ticket/lib/favicon.rb +39 -0
- data/plugins/ticket/lib/file.rb +58 -0
- data/plugins/ticket/lib/img.rb +50 -0
- data/plugins/ticket/lib/objblob.rb +66 -0
- data/plugins/ticket/lib/rsrc.rb +34 -0
- data/plugins/ticket/lib/upload.rb +236 -0
- data/plugins/ticket/ticket.rb +333 -0
- data/setup/welcome/gui/welcome.yaml +92 -0
- data/setup/welcome/info.yaml +13 -0
- data/setup/welcome/text/welcome.html +9 -0
- data/setup/welcome/values.yaml +9 -0
- data/setup/welcome/welcome.rb +54 -0
- metadata +407 -0
@@ -0,0 +1,213 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2006 Riassence Inc.
|
3
|
+
* http://riassence.com/
|
4
|
+
*
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*** = Description
|
10
|
+
** HStepper is a control unit made of two adjacent buttons with up and down arrows
|
11
|
+
** to select the previous or next of a set of contiguous values.
|
12
|
+
** Normally, a HStepper instance works in combination with a HTextControl or a HStringView instance.
|
13
|
+
**
|
14
|
+
** = Instance Variables
|
15
|
+
** +minValue+:: The smallest allowed value
|
16
|
+
** +maxValue+:: The biggest allowed value
|
17
|
+
** +stepSize+:: Amount of to step, defaults to +/- 1
|
18
|
+
** +repeatInterval+:: Interval in milliseconds for repeat
|
19
|
+
** +wrapAround+:: Boolean to control wrap-around behaviour
|
20
|
+
***/
|
21
|
+
|
22
|
+
var//RSence.Controls
|
23
|
+
HStepper = HControl.extend({
|
24
|
+
|
25
|
+
componentName: "stepper",
|
26
|
+
|
27
|
+
defaultEvents: {
|
28
|
+
mouseDown: true,
|
29
|
+
keyDown: true,
|
30
|
+
mouseWheel: true
|
31
|
+
},
|
32
|
+
|
33
|
+
controlDefaults: (HControlDefaults.extend({
|
34
|
+
minValue: 0,
|
35
|
+
maxValue: 100,
|
36
|
+
stepSize: 1,
|
37
|
+
repeatInterval: 200,
|
38
|
+
wrapAround: false
|
39
|
+
})),
|
40
|
+
|
41
|
+
/** Setter for wrap-around behaviour
|
42
|
+
**/
|
43
|
+
setWrapAround: function(_on){
|
44
|
+
this.options.wrapAround = _on;
|
45
|
+
},
|
46
|
+
|
47
|
+
// -- Makes sure the value is in its boundaries and either wrap-around
|
48
|
+
// to min/max or revert to the current value ++
|
49
|
+
_checkValueBoundaries: function(_value){
|
50
|
+
|
51
|
+
// -- checks for boundaries ++
|
52
|
+
var _this = this,
|
53
|
+
_options = _this.options,
|
54
|
+
_minVal = _options.minValue,
|
55
|
+
_maxVal = _options.maxValue,
|
56
|
+
_tooSmall = _value<_minVal,
|
57
|
+
_tooBig = _value>_maxVal,
|
58
|
+
_overflow = ( _tooSmall || _tooBig );
|
59
|
+
|
60
|
+
// -- The value is ok, just return it as it is ++
|
61
|
+
if (!_overflow) {
|
62
|
+
return _value;
|
63
|
+
}
|
64
|
+
|
65
|
+
|
66
|
+
/// -- Handle the overflow condition: ++
|
67
|
+
|
68
|
+
// -- Wrap around uses min/max as new value as either is reached ++
|
69
|
+
if (_options.wrapAround) {
|
70
|
+
if (_tooSmall) {
|
71
|
+
return _maxVal;
|
72
|
+
}
|
73
|
+
else {
|
74
|
+
return _minVal;
|
75
|
+
}
|
76
|
+
}
|
77
|
+
// -- Any other condition means we just revert the changes ++
|
78
|
+
else {
|
79
|
+
return _this.value;
|
80
|
+
}
|
81
|
+
|
82
|
+
},
|
83
|
+
|
84
|
+
/** Adds the step size to the value
|
85
|
+
**/
|
86
|
+
stepUp: function(){
|
87
|
+
this.setValue(
|
88
|
+
this._checkValueBoundaries(
|
89
|
+
this.value + this.options.stepSize
|
90
|
+
)
|
91
|
+
);
|
92
|
+
},
|
93
|
+
|
94
|
+
/** Subtracts the step size from the value
|
95
|
+
**/
|
96
|
+
stepDown: function(){
|
97
|
+
this.setValue(
|
98
|
+
this._checkValueBoundaries(
|
99
|
+
this.value - this.options.stepSize
|
100
|
+
)
|
101
|
+
);
|
102
|
+
},
|
103
|
+
|
104
|
+
// -- Returns an action string for the setInterval in _setRepeatInterval ++
|
105
|
+
_repeatIntervalStr: function( _up ){
|
106
|
+
return [
|
107
|
+
'HSystem.views[',
|
108
|
+
this.viewId,
|
109
|
+
'].step',
|
110
|
+
(_up?'Up':'Down'),
|
111
|
+
'();'
|
112
|
+
].join('');
|
113
|
+
},
|
114
|
+
|
115
|
+
// -- Background-offset of the state images up/down,
|
116
|
+
// overrideable in the html template ++
|
117
|
+
bgStateUp: '0px -23px',
|
118
|
+
bgStateDown: '0px -46px',
|
119
|
+
|
120
|
+
// enables the up/down effect in the image based on the _up boolean (true means up, false means down)
|
121
|
+
_bgStateOn: function( _up ){
|
122
|
+
ELEM.setStyle(this.markupElemIds.state,'background-position',_up?this.bgStateUp:this.bgStateDown);
|
123
|
+
},
|
124
|
+
|
125
|
+
// reverts the up/down effect
|
126
|
+
_bgStateOff: function(){
|
127
|
+
ELEM.setStyle(this.markupElemIds.state,'background-position','');
|
128
|
+
},
|
129
|
+
|
130
|
+
// Starts the repeating stepping up or down (when the mouse button or a arrow key is down)
|
131
|
+
_setRepeatInterval: function( _up ){
|
132
|
+
var _this = this,
|
133
|
+
_options = _this.options;
|
134
|
+
_this._bgStateOn( _up );
|
135
|
+
if (_up) {
|
136
|
+
_this.stepUp();
|
137
|
+
_this._repeatInterval = setInterval( _this._repeatIntervalStr(1), _options.repeatInterval );
|
138
|
+
}
|
139
|
+
else {
|
140
|
+
_this.stepDown();
|
141
|
+
_this._repeatInterval = setInterval( _this._repeatIntervalStr(0), _options.repeatInterval );
|
142
|
+
}
|
143
|
+
},
|
144
|
+
|
145
|
+
// Stops the repeating stepping up or down enabled in _setRepeatInterval
|
146
|
+
_clearRepeatInterval: function(){
|
147
|
+
this._bgStateOff();
|
148
|
+
clearInterval( this._repeatInterval );
|
149
|
+
},
|
150
|
+
|
151
|
+
/** Checks where the mouseDown happened and adjusts the stepper up/down based on that
|
152
|
+
**/
|
153
|
+
mouseDown: function( x, y ){
|
154
|
+
this.setMouseUp(true);
|
155
|
+
this._setRepeatInterval( ( y - ELEM.getVisiblePosition( this.elemId )[1] ) <= 11 );
|
156
|
+
},
|
157
|
+
|
158
|
+
/** Stops the repeating stepping, when the mouse button goes up
|
159
|
+
**/
|
160
|
+
mouseUp: function(){
|
161
|
+
this._clearRepeatInterval();
|
162
|
+
},
|
163
|
+
|
164
|
+
/** Stops the repeating stepping, when the control becomes inactive
|
165
|
+
**/
|
166
|
+
blur: function(){
|
167
|
+
this._clearRepeatInterval();
|
168
|
+
},
|
169
|
+
|
170
|
+
/** adjusts stepping up/down based on the arrow key pressed.
|
171
|
+
* up and right arrow keys steps the value up, down and left steps the value down
|
172
|
+
**/
|
173
|
+
keyDown: function( _keyCode ) {
|
174
|
+
this.setKeyUp(true);
|
175
|
+
var _keyDown = (_keyCode === Event.KEY_DOWN),
|
176
|
+
_keyUp = (_keyCode === Event.KEY_UP),
|
177
|
+
_keyLeft = (_keyCode === Event.KEY_LEFT),
|
178
|
+
_keyRight = (_keyCode === Event.KEY_RIGHT),
|
179
|
+
_arrowKey = (_keyDown || _keyUp || _keyLeft || _keyRight);
|
180
|
+
if (_arrowKey) {
|
181
|
+
this._setRepeatInterval( (_keyUp || _keyRight) );
|
182
|
+
}
|
183
|
+
else if (_keyCode === Event.KEY_HOME) {
|
184
|
+
this.setValue(this.options.minValue);
|
185
|
+
}
|
186
|
+
else if (_keyCode === Event.KEY_END) {
|
187
|
+
this.setValue(this.options.maxValue);
|
188
|
+
}
|
189
|
+
// Page up and page down keys act just like arrow up/down.
|
190
|
+
else if (_keyCode === Event.KEY_PAGEUP) {
|
191
|
+
this._setRepeatInterval( 1 );
|
192
|
+
}
|
193
|
+
else if (_keyCode === Event.KEY_PAGEDOWN) {
|
194
|
+
this._setRepeatInterval( 0 );
|
195
|
+
}
|
196
|
+
},
|
197
|
+
|
198
|
+
/** stops the repeating when a key goes up
|
199
|
+
**/
|
200
|
+
keyUp: function(){
|
201
|
+
this._clearRepeatInterval();
|
202
|
+
},
|
203
|
+
|
204
|
+
/** steps the value up/down based on the mouse scroll wheel
|
205
|
+
**/
|
206
|
+
mouseWheel: function(_delta) {
|
207
|
+
(_delta>0)?this.stepUp():this.stepDown();
|
208
|
+
}
|
209
|
+
|
210
|
+
|
211
|
+
});
|
212
|
+
|
213
|
+
|
Binary file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
.stepper_state {
|
2
|
+
position: absolute;
|
3
|
+
left: 0px;
|
4
|
+
top: 0px;
|
5
|
+
width: 15px;
|
6
|
+
height: 23px;
|
7
|
+
background-position: 0px 0px;
|
8
|
+
background-repeat: no-repeat;
|
9
|
+
background-image: #{this.getCssFilePath('stepper.png')};
|
10
|
+
}
|
11
|
+
|
12
|
+
.disabled .stepper_state {
|
13
|
+
background-position: 0px -69px;
|
14
|
+
}
|
Binary file
|
File without changes
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2006 Riassence Inc.
|
3
|
+
* http://riassence.com/
|
4
|
+
*
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*** = Description
|
10
|
+
** HStringView is a view component that represents a non-editable line of text.
|
11
|
+
** Commonly, stringview is used as a label to control elements
|
12
|
+
** that do not have implicit labels (text fields, checkboxes and radio buttons, and menus).
|
13
|
+
** Some form controls automatically have labels associated with them (press buttons)
|
14
|
+
** while most do not have (text fields, checkboxes and radio buttons, and sliders etc.).
|
15
|
+
**
|
16
|
+
** = Instance variables
|
17
|
+
** +type+:: '[HStringView]'
|
18
|
+
** +value+:: The string that this string view displays when drawn.
|
19
|
+
***/
|
20
|
+
var//RSence.Controls
|
21
|
+
HStringView = HControl.extend({
|
22
|
+
|
23
|
+
componentName: "stringview",
|
24
|
+
|
25
|
+
/** = Description
|
26
|
+
* setStyle function
|
27
|
+
*
|
28
|
+
**/
|
29
|
+
setStyle: function(_name, _value, _cacheOverride) {
|
30
|
+
if (!this['markupElemIds']||!this.markupElemIds['value']) {
|
31
|
+
return this;
|
32
|
+
}
|
33
|
+
ELEM.setStyle(this.markupElemIds.value, _name, _value, _cacheOverride);
|
34
|
+
return this;
|
35
|
+
},
|
36
|
+
|
37
|
+
/** = Description
|
38
|
+
* refreshLable function
|
39
|
+
*
|
40
|
+
**/
|
41
|
+
refreshLabel: function() {
|
42
|
+
if(this.markupElemIds) {
|
43
|
+
if(this.markupElemIds.value) {
|
44
|
+
ELEM.setAttr(this.markupElemIds.value, 'title', this.label);
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}
|
48
|
+
});
|
49
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
<div class="stringview" id="value#{_ID}" title="#{this.label}"></div>
|
File without changes
|
@@ -0,0 +1,280 @@
|
|
1
|
+
/* RSence
|
2
|
+
* Copyright 2008 Riassence Inc.
|
3
|
+
* http://riassence.com/
|
4
|
+
*
|
5
|
+
* You should have received a copy of the GNU General Public License along
|
6
|
+
* with this software package. If not, contact licensing@riassence.com
|
7
|
+
*/
|
8
|
+
|
9
|
+
/*** = Description
|
10
|
+
** HTabView
|
11
|
+
**
|
12
|
+
**
|
13
|
+
***/
|
14
|
+
var//RSence.Controls
|
15
|
+
HTabView = HView.extend({
|
16
|
+
/** = Description
|
17
|
+
* draw function
|
18
|
+
*
|
19
|
+
**/
|
20
|
+
draw: function(){
|
21
|
+
var _isDrawn = this.drawn;
|
22
|
+
this.base();
|
23
|
+
if(!_isDrawn){
|
24
|
+
var i=0,_styles = [
|
25
|
+
['overflow','auto']
|
26
|
+
];
|
27
|
+
for(i;i<_styles.length;i++){
|
28
|
+
this.setStyle(_styles[i][0],_styles[i][1]);
|
29
|
+
}
|
30
|
+
this.hide();
|
31
|
+
}
|
32
|
+
}
|
33
|
+
});
|
34
|
+
|
35
|
+
/** = Description
|
36
|
+
* HTab
|
37
|
+
*
|
38
|
+
**/
|
39
|
+
var//RSence.Controls
|
40
|
+
HTab = HControl.extend({
|
41
|
+
componentName: "tab",
|
42
|
+
refreshOnValueChange: true,
|
43
|
+
refreshOnLabelChange: false,
|
44
|
+
|
45
|
+
controlDefaults: (HControlDefaults.extend({
|
46
|
+
constructor: function(_ctrl){
|
47
|
+
this.tabInit(_ctrl);
|
48
|
+
},
|
49
|
+
tabInit: function(_ctrl){
|
50
|
+
_ctrl.tabs = [];
|
51
|
+
_ctrl.tabLabels = [];
|
52
|
+
_ctrl.tabLabelBounds = [];
|
53
|
+
_ctrl.tabLabelStrings = [];
|
54
|
+
}
|
55
|
+
})),
|
56
|
+
|
57
|
+
rightmostPx: 0,
|
58
|
+
selectIdx: -1,
|
59
|
+
|
60
|
+
// overridden in the template
|
61
|
+
tabLabelHeight: 20,
|
62
|
+
|
63
|
+
// overridden in the template
|
64
|
+
tabLabelLeftEdge: 4,
|
65
|
+
|
66
|
+
// overridden in the template
|
67
|
+
tabLabelRightEdge: 4,
|
68
|
+
|
69
|
+
// overridden in the template
|
70
|
+
fontStyle: 'font-family:Arial,sans-serif;font-size:13px;',
|
71
|
+
|
72
|
+
tabLabelHTMLPrefix1: '<div class="edge-left"></div><div class="tablabel" style="width:',
|
73
|
+
tabLabelHTMLPrefix2: 'px">',
|
74
|
+
tabLabelHTMLSuffix: '</div><div class="edge-right"></div>',
|
75
|
+
tabLabelParentElem: 'label',
|
76
|
+
tabLabelElementTagName: 'div',
|
77
|
+
tabLabelAlign: 'left',
|
78
|
+
tabLabelFillBg: false,
|
79
|
+
tabTriggerLink: true,
|
80
|
+
tabLabelNoHTMLPrefix: false,
|
81
|
+
|
82
|
+
/** = Description
|
83
|
+
* refreshValue function
|
84
|
+
*
|
85
|
+
**/
|
86
|
+
refreshValue: function(){
|
87
|
+
var _value = this.value;
|
88
|
+
if(typeof _value === 'number'){
|
89
|
+
var _index = parseInt(_value,10);
|
90
|
+
if(_index<this.tabs.length){
|
91
|
+
if(_index!==this.selectIdx){
|
92
|
+
this.selectTab(_index);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
|
98
|
+
/** = Description
|
99
|
+
* Sets label for the tab.
|
100
|
+
*
|
101
|
+
* = Parameters
|
102
|
+
* +_label+:: Label for the tab
|
103
|
+
*
|
104
|
+
**/
|
105
|
+
setLabel: function(_label){
|
106
|
+
this.label = _label;
|
107
|
+
},
|
108
|
+
|
109
|
+
/** = Description
|
110
|
+
* selectTab function
|
111
|
+
*
|
112
|
+
* = Parameters
|
113
|
+
* +_tabIdx+::
|
114
|
+
*
|
115
|
+
**/
|
116
|
+
selectTab: function(_tabIdx){
|
117
|
+
if(_tabIdx instanceof HTabView){
|
118
|
+
_tabIdx = _tabIdx.tabIndex;
|
119
|
+
}
|
120
|
+
if(this.selectIdx!==-1){
|
121
|
+
var _tabSelectElemId = this.tabLabels[this.selectIdx],
|
122
|
+
_tabSelectViewId = this.tabs[this.selectIdx];
|
123
|
+
ELEM.removeClassName(_tabSelectElemId,'item-fg');
|
124
|
+
ELEM.addClassName(_tabSelectElemId,'item-bg');
|
125
|
+
HSystem.views[_tabSelectViewId].hide();
|
126
|
+
}
|
127
|
+
if(_tabIdx!==-1){
|
128
|
+
var _tabLabelElemId = this.tabLabels[_tabIdx],
|
129
|
+
_tabViewId = this.tabs[_tabIdx];
|
130
|
+
ELEM.removeClassName(_tabLabelElemId,'item-bg');
|
131
|
+
ELEM.addClassName(_tabLabelElemId,'item-fg');
|
132
|
+
HSystem.views[_tabViewId].show();
|
133
|
+
}
|
134
|
+
this.selectIdx = _tabIdx;
|
135
|
+
this.setValue(_tabIdx);
|
136
|
+
},
|
137
|
+
|
138
|
+
/** = Description
|
139
|
+
* addTab function
|
140
|
+
*
|
141
|
+
* = Parameters
|
142
|
+
* +_tabLabel+::
|
143
|
+
* +_doSelect+::
|
144
|
+
*
|
145
|
+
**/
|
146
|
+
addTab: function(_tabLabel,_doSelect,_viewClass){
|
147
|
+
var _tabIdx=this.tabs.length,
|
148
|
+
_tabLabelHTML = '',
|
149
|
+
_labelTextWidth = this.stringWidth( _tabLabel, null, 0, this.fontStyle ),
|
150
|
+
_labelWidth = _labelTextWidth+this.tabLabelLeftEdge+this.tabLabelRightEdge,
|
151
|
+
_tab = HTabView.nu( [0,this.tabLabelHeight,null,null,0,0] ,this),
|
152
|
+
_tabLabelElemId = ELEM.make(this.markupElemIds[this.tabLabelParentElem],this.tabLabelElementTagName);
|
153
|
+
_tabIdx = this.tabs.length;
|
154
|
+
if(this.tabLabelNoHTMLPrefix){
|
155
|
+
_tabLabelHTML = _tabLabel;
|
156
|
+
}
|
157
|
+
else {
|
158
|
+
_tabLabelHTML = this.tabLabelHTMLPrefix1+_labelTextWidth+this.tabLabelHTMLPrefix2+_tabLabel+this.tabLabelHTMLSuffix;
|
159
|
+
}
|
160
|
+
_tab.hide();
|
161
|
+
ELEM.addClassName(_tabLabelElemId,'item-bg');
|
162
|
+
ELEM.setStyle(_tabLabelElemId,'width',_labelWidth+'px');
|
163
|
+
ELEM.setStyle(_tabLabelElemId,this.tabLabelAlign,this.rightmostPx+'px');
|
164
|
+
ELEM.setHTML(_tabLabelElemId,_tabLabelHTML);
|
165
|
+
this.tabLabelStrings.push(_tabLabel);
|
166
|
+
if(this.tabTriggerLink&&this.tabLabelElementTagName==='a'){
|
167
|
+
ELEM.setAttr(_tabLabelElemId,'href','javascript:HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
|
168
|
+
}
|
169
|
+
else if (this.tabTriggerLink && !(BROWSER_TYPE.ie7 || BROWSER_TYPE.ie6)){
|
170
|
+
ELEM.setAttr(_tabLabelElemId,'onclick','HSystem.views['+this.viewId+'].selectTab('+_tabIdx+');');
|
171
|
+
}
|
172
|
+
else {
|
173
|
+
this.tabTriggerLink = false;
|
174
|
+
this.setClick(true);
|
175
|
+
this.tabLabelBounds.push([this.rightmostPx,this.rightmostPx+_labelWidth]);
|
176
|
+
}
|
177
|
+
this.rightmostPx+=_labelWidth;
|
178
|
+
if(this.tabLabelAlign === 'right'){
|
179
|
+
ELEM.setStyle(this.markupElemIds[this.tabLabelParentElem],'width',this.rightmostPx+'px');
|
180
|
+
}
|
181
|
+
else if (this.tabLabelFillBg) {
|
182
|
+
ELEM.setStyle(this.markupElemIds.state,'left',this.rightmostPx+'px');
|
183
|
+
}
|
184
|
+
this.tabs.push(_tab.viewId);
|
185
|
+
this.tabLabels.push(_tabLabelElemId);
|
186
|
+
_tab.tabIndex = _tabIdx;
|
187
|
+
if(_doSelect || (this.value === _tabIdx)){
|
188
|
+
this.selectTab(_tabIdx);
|
189
|
+
}
|
190
|
+
return _tab;
|
191
|
+
},
|
192
|
+
|
193
|
+
/** = Description
|
194
|
+
* click function
|
195
|
+
*
|
196
|
+
* = Parameters
|
197
|
+
* +_x+::
|
198
|
+
* +_y+::
|
199
|
+
*
|
200
|
+
**/
|
201
|
+
click: function(_x,_y){
|
202
|
+
if(this.tabTriggerLink){
|
203
|
+
this.setClickable(false);
|
204
|
+
return;
|
205
|
+
}
|
206
|
+
_x -= this.pageX();
|
207
|
+
_y -= this.pageY();
|
208
|
+
if(_y<=this.tabLabelHeight){
|
209
|
+
if (this.tabLabelAlign === 'right') {
|
210
|
+
_x = this.rect.width - _x;
|
211
|
+
}
|
212
|
+
if(_x<=this.rightmostPx){
|
213
|
+
var i=0,_labelBounds;
|
214
|
+
for(i;i<this.tabLabelBounds.length;i++){
|
215
|
+
_labelBounds = this.tabLabelBounds[i];
|
216
|
+
if(_x<_labelBounds[1] && _x>=_labelBounds[0]){
|
217
|
+
this.selectTab(i);
|
218
|
+
return;
|
219
|
+
}
|
220
|
+
}
|
221
|
+
}
|
222
|
+
|
223
|
+
}
|
224
|
+
},
|
225
|
+
|
226
|
+
/** = Description
|
227
|
+
* removeTab function
|
228
|
+
*
|
229
|
+
* = Parameters
|
230
|
+
* +_tabIdx+::
|
231
|
+
*
|
232
|
+
**/
|
233
|
+
removeTab: function(_tabIdx){
|
234
|
+
var _selIdx = this.selectIdx,
|
235
|
+
_tabViewId = this.tabs[_tabIdx],
|
236
|
+
_tabLabelElemId = this.tabViews[_tabIdx];
|
237
|
+
this.tabs.splice(_tabIdx,1);
|
238
|
+
this.tabLabels.splice(_tabIdx,1);
|
239
|
+
this.tabLabelBounds.splice(_tabIdx,1);
|
240
|
+
this.tabLabelStrings.splice(_tabIdx,1);
|
241
|
+
if(_tabIdx===_selIdx){
|
242
|
+
this.selectIdx=-1;
|
243
|
+
if(_tabIdx===0&&this.tabs.length===0){
|
244
|
+
this.selectTab(-1);
|
245
|
+
}
|
246
|
+
else if(_tabIdx===(this.tabs.length-1)){
|
247
|
+
this.selectTab(_tabIdx-1);
|
248
|
+
}
|
249
|
+
else{
|
250
|
+
this.selectTab(_tabIdx);
|
251
|
+
}
|
252
|
+
}
|
253
|
+
else if(_tabIdx<_selIdx){
|
254
|
+
this.selectIdx--;
|
255
|
+
}
|
256
|
+
ELEM.del(_tabLabelElemId);
|
257
|
+
HSystem.views[_tabViewId].die();
|
258
|
+
}
|
259
|
+
});
|
260
|
+
|
261
|
+
/** = Description
|
262
|
+
* HTabItem is a wrapper for creating tabs as subviews when using JSONRenderer.
|
263
|
+
* rect is ignored
|
264
|
+
* parent is the HTab instance
|
265
|
+
* options may contain the following:
|
266
|
+
* select: true|false, passed on to addTab
|
267
|
+
* label: true|false, passed on to addTab
|
268
|
+
*
|
269
|
+
* = Returns
|
270
|
+
* a new HTabView instance returned by addTab
|
271
|
+
*
|
272
|
+
**/
|
273
|
+
var//RSence.Controls
|
274
|
+
HTabItem = {
|
275
|
+
nu: function(_rect, _parent, _options){
|
276
|
+
return _parent.addTab( _options.label, _options.select );
|
277
|
+
}
|
278
|
+
};
|
279
|
+
|
280
|
+
|
@@ -0,0 +1,76 @@
|
|
1
|
+
/* tab bar */
|
2
|
+
.tab_label {
|
3
|
+
position: absolute;
|
4
|
+
top: 0px; left: 0px right: 0px; height: 24px;
|
5
|
+
cursor: pointer;
|
6
|
+
}
|
7
|
+
|
8
|
+
/* set left and width manually */
|
9
|
+
.tab_label .item-fg,
|
10
|
+
.tab_label .item-bg {
|
11
|
+
position: absolute;
|
12
|
+
top: 0px; height: 24px;
|
13
|
+
background-repeat: repeat-x;
|
14
|
+
}
|
15
|
+
.tab_label,
|
16
|
+
.tab_label .edge-left,
|
17
|
+
.tab_label .edge-right,
|
18
|
+
.tab_label .tablabel,
|
19
|
+
.tab_label_fill_bg {
|
20
|
+
background-repeat: no-repeat;
|
21
|
+
background-image: #{this.getCssFilePath('tab_parts1.png')};
|
22
|
+
}
|
23
|
+
.tab_label_fill_bg {
|
24
|
+
position: absolute;
|
25
|
+
top: 0px; left: 0px; right: 0px; height: 24px;
|
26
|
+
background-position: 0px -96px;
|
27
|
+
background-repeat: repeat-x;
|
28
|
+
}
|
29
|
+
|
30
|
+
.tab_label .edge-left {
|
31
|
+
position: absolute;
|
32
|
+
top: 0px; left: 0px; width: 12px; height: 24px;
|
33
|
+
background-position: 0px 0px;
|
34
|
+
}
|
35
|
+
.tab_label .item-bg .edge-left {
|
36
|
+
background-position: -24px 0px;
|
37
|
+
}
|
38
|
+
|
39
|
+
.tab_label .edge-right {
|
40
|
+
position: absolute;
|
41
|
+
top: 0px; right: 0px; width: 9px; height: 24px;
|
42
|
+
background-position: -12px 0px;
|
43
|
+
}
|
44
|
+
.tab_label .item-bg .edge-right {
|
45
|
+
background-position: -36px 0px;
|
46
|
+
}
|
47
|
+
|
48
|
+
.tab_label .tablabel {
|
49
|
+
position: absolute;
|
50
|
+
top: 0px; left: 12px; right: 9px; height: 24px;
|
51
|
+
background-position: 0px -24px;
|
52
|
+
background-repeat: repeat-x;
|
53
|
+
vertical-align: middle;
|
54
|
+
text-align: center;
|
55
|
+
color: #000;
|
56
|
+
line-height: 26px;
|
57
|
+
text-align: center; vertical-align: middle;
|
58
|
+
font-family: Arial, sans-serif;
|
59
|
+
font-size: 12px; font-weight: bold;
|
60
|
+
color: #333;
|
61
|
+
}
|
62
|
+
.tab_label .item-bg .tablabel {
|
63
|
+
background-position: 0px -48px;
|
64
|
+
color: #666;
|
65
|
+
}
|
66
|
+
|
67
|
+
.tab_bg {
|
68
|
+
position: absolute;
|
69
|
+
top: 24px; left: 0px; right: 0px; bottom: 0px;
|
70
|
+
background-image: #{this.getCssFilePath('tab_border_pattern.png')};
|
71
|
+
}
|
72
|
+
.tab_fg {
|
73
|
+
position: absolute;
|
74
|
+
top: 0px; left: 1px; right: 1px; bottom: 1px;
|
75
|
+
background-image: #{this.getCssFilePath('tab_bg_color.png')};
|
76
|
+
}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div class="tab_bg" id="bg#{_ID}">
|
2
|
+
<div class="tab_fg"></div>
|
3
|
+
</div>
|
4
|
+
<div class="tab_label" id="label#{_ID}"></div>
|
5
|
+
<div class="tab_label_fill_bg" id="state#{_ID}"></div>
|
6
|
+
${this.tabLabelLeftEdge=12;this.tabLabelRightEdge=9;this.tabLabelHeight=24;this.fontStyle='font-size: 12px; font-weight: bold;';this.tabLabelFillBg=true;}
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|