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,651 @@
|
|
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
|
+
** A Rect object represents a rectangle. Rects are used throughout the
|
11
|
+
** Components to define the frames of windows, views, bitmaps even the
|
12
|
+
** screen itself. A HRect is defined by its four sides, expressed as the public
|
13
|
+
** data members left, top, right, and bottom.
|
14
|
+
**
|
15
|
+
** If you change a component's rect, you should call its HView.drawRect method.
|
16
|
+
**
|
17
|
+
** = Instance Variables
|
18
|
+
** +type+:: '[HRect]'
|
19
|
+
** +top+:: The position of the rect's top side (from parent top)
|
20
|
+
** +left+:: The position of the rect's left side (from parent left)
|
21
|
+
** +bottom+:: The position of the rect's bottom side (from parent top)
|
22
|
+
** +right+:: The position of the rect's right side (from parent left)
|
23
|
+
** +leftTop+:: A HPoint representing the coordinate of the rect's left top corner
|
24
|
+
** +leftBottom+:: A HPoint representing the coordinate of the rect's left bottom corner
|
25
|
+
** +rightTop+:: A HPoint representing the coordinate of the rect's right top corner
|
26
|
+
** +rightBottom+:: A HPoint representing the coordinate of the rect's right bottom corner
|
27
|
+
** +width+:: The width of the rect.
|
28
|
+
** +height+:: The height of the rect.
|
29
|
+
***/
|
30
|
+
var//RSence.Foundation.Geom
|
31
|
+
HRect = HClass.extend({
|
32
|
+
/** = Description
|
33
|
+
* Initializes a Rect as four sides, as two diametrically opposed corners,
|
34
|
+
* or as a copy of some other Rect object. A rectangle that's not assigned
|
35
|
+
* any initial values is invalid, until a specific assignment is made, either
|
36
|
+
* through a set() function or by setting the object's data members directly.
|
37
|
+
*
|
38
|
+
* = Parameters
|
39
|
+
* using a HRect instance:
|
40
|
+
* +rect+:: Another HRect.
|
41
|
+
*
|
42
|
+
* using two HPoint instances:
|
43
|
+
* +leftTop+:: Coordinates of the left top corner.
|
44
|
+
* +rightBottom+:: Coordinates of the right bottom corner.
|
45
|
+
*
|
46
|
+
* using separate numeric coordinates:
|
47
|
+
* +left+:: The coordinate of left side.
|
48
|
+
* +top+:: The coordinate of top side.
|
49
|
+
* +right+:: The coordinate of right side.
|
50
|
+
* +bottom+:: The coordinate of bottom side.
|
51
|
+
*
|
52
|
+
* = Usage
|
53
|
+
* var myLeftTopPoint = new HPoint(100,200);
|
54
|
+
* var myBottomRightPoint = new HPoint(300,400);
|
55
|
+
* var myRectFromOppositeCornerPoints = new HRect( myLeftTopPoint, myBottomRightPoint );
|
56
|
+
* var myRectFromSideCoordinates = new HRect(100,200,300,400);
|
57
|
+
* var myRectFromAnotherRect = new HRect( myRectFromEdgeCoordinates );
|
58
|
+
*
|
59
|
+
**/
|
60
|
+
constructor: function() {
|
61
|
+
this.viewIds = [];
|
62
|
+
var _args=arguments;
|
63
|
+
|
64
|
+
if (_args.length === 0) {
|
65
|
+
this._constructorDefault();
|
66
|
+
} else if (_args.length === 4) {
|
67
|
+
this._constructorSides(_args[0],_args[1],_args[2],_args[3]);
|
68
|
+
}
|
69
|
+
else if (_args.length === 2) {
|
70
|
+
this._constructorPoint(_args[0],_args[1]);
|
71
|
+
}
|
72
|
+
else if (_args.length === 1) {
|
73
|
+
if(_args[0] instanceof Array){
|
74
|
+
this._constructorSides(_args[0][0],_args[0][1],_args[0][2],_args[0][3]);
|
75
|
+
}
|
76
|
+
else{
|
77
|
+
this._constructorRect(_args[0]);
|
78
|
+
}
|
79
|
+
}
|
80
|
+
else {
|
81
|
+
throw "Invalid number of arguments.";
|
82
|
+
}
|
83
|
+
this.updateSecondaryValues();
|
84
|
+
},
|
85
|
+
_constructorDefault: function() {
|
86
|
+
this.top = 0;
|
87
|
+
this.left = 0;
|
88
|
+
this.bottom = -1;
|
89
|
+
this.right = -1;
|
90
|
+
},
|
91
|
+
_constructorSides: function(_left, _top, _right, _bottom) {
|
92
|
+
this.top = _top;
|
93
|
+
this.left = _left;
|
94
|
+
this.bottom = _bottom;
|
95
|
+
this.right = _right;
|
96
|
+
},
|
97
|
+
_constructorPoint: function(_leftTop, _rightBottom) {
|
98
|
+
this.top = _leftTop.y;
|
99
|
+
this.left = _leftTop.x;
|
100
|
+
this.bottom = _rightBottom.y;
|
101
|
+
this.right = _rightBottom.x;
|
102
|
+
},
|
103
|
+
_constructorRect: function(_rect) {
|
104
|
+
this.top = _rect.top;
|
105
|
+
this.left = _rect.left;
|
106
|
+
this.bottom = _rect.bottom;
|
107
|
+
this.right = _rect.right;
|
108
|
+
},
|
109
|
+
|
110
|
+
_updateFlexibleDimensions: function(){
|
111
|
+
var
|
112
|
+
_this = this,
|
113
|
+
_viewIds = _this.viewIds,
|
114
|
+
_parentElemId,
|
115
|
+
_parentSize,
|
116
|
+
_parentWidth,
|
117
|
+
_parentHeight,
|
118
|
+
_viewId,
|
119
|
+
_view,
|
120
|
+
i = 0;
|
121
|
+
for(;i<_viewIds.length;i++){
|
122
|
+
_viewId = _viewIds[i];
|
123
|
+
_view = HSystem.views[_viewId];
|
124
|
+
if(_view.flexRight || _view.flexBottom){
|
125
|
+
ELEM.flushLoop();
|
126
|
+
_parentElemId = _view.parent.elemId;
|
127
|
+
_parentSize = _view.parentSize();
|
128
|
+
_parentWidth = _parentSize[0];
|
129
|
+
if(_view.flexRight){
|
130
|
+
_this.right = _parentWidth - _view.flexRightOffset;
|
131
|
+
}
|
132
|
+
if(!_view.flexLeft){
|
133
|
+
_this.left = _this.right - _this.width;
|
134
|
+
}
|
135
|
+
_parentHeight = _parentSize[1];
|
136
|
+
if(_view.flexBottom){
|
137
|
+
_this.bottom = _parentWidth - _view.flexBottomOffset - _this.top;
|
138
|
+
}
|
139
|
+
if(!_view.flexTop){
|
140
|
+
_this.top = _this.bottom - _this.height;
|
141
|
+
}
|
142
|
+
_this.updateSecondaryValues();
|
143
|
+
}
|
144
|
+
}
|
145
|
+
},
|
146
|
+
|
147
|
+
/** = Description
|
148
|
+
* You should call this on the instance to update secondary values, like
|
149
|
+
* width and height, if you change a primary (left/top/right/bottom) value
|
150
|
+
* straight through the property.
|
151
|
+
*
|
152
|
+
* Do not change properties other than the primaries through properties.
|
153
|
+
*
|
154
|
+
* Use the accompanied methods instead.
|
155
|
+
*
|
156
|
+
**/
|
157
|
+
updateSecondaryValues: function() {
|
158
|
+
|
159
|
+
// this._updateFlexibleDimensions();
|
160
|
+
|
161
|
+
/**
|
162
|
+
* isValid is true if the Rect's right side is greater than or equal to its left
|
163
|
+
* and its bottom is greater than or equal to its top, and false otherwise.
|
164
|
+
* An invalid rectangle can't be used to define an interface area (such as
|
165
|
+
* the frame of a view or window).
|
166
|
+
**/
|
167
|
+
this.isValid = ( this.right >= this.left && this.bottom >= this.top );
|
168
|
+
|
169
|
+
/**
|
170
|
+
*
|
171
|
+
* The Point-returning functions return the coordinates of one of the
|
172
|
+
* rectangle's four corners.
|
173
|
+
**/
|
174
|
+
this.leftTop = new HPoint(this.left, this.top);
|
175
|
+
this.leftBottom = new HPoint(this.left, this.bottom);
|
176
|
+
this.rightTop = new HPoint(this.right, this.top);
|
177
|
+
this.rightBottom = new HPoint(this.right, this.bottom);
|
178
|
+
|
179
|
+
/**
|
180
|
+
* The width and height of a Rect's rectangle, as returned through these
|
181
|
+
* properties.
|
182
|
+
**/
|
183
|
+
this.width = (this.right - this.left);
|
184
|
+
this.height = (this.bottom - this.top);
|
185
|
+
},
|
186
|
+
|
187
|
+
/** = Description
|
188
|
+
* Sets the object's rectangle by defining the coordinates of all four
|
189
|
+
* sides.
|
190
|
+
*
|
191
|
+
* The other set...() functions move one of the rectangle's corners to the
|
192
|
+
* Point argument; the other corners and sides are modified concomittantly.
|
193
|
+
*
|
194
|
+
* None of these methods prevents you from creating an invalid rectangle.
|
195
|
+
*
|
196
|
+
* = Parameters
|
197
|
+
* +_left+:: The coordinate of the left side.
|
198
|
+
* +_top+:: The coordinate of the top side.
|
199
|
+
* +_right+:: The coordinate of the right side.
|
200
|
+
* +_bottom+:: The coordinate of the bottom side.
|
201
|
+
*
|
202
|
+
**/
|
203
|
+
set: function() {
|
204
|
+
var _args=arguments;
|
205
|
+
|
206
|
+
if (_args.length === 0) {
|
207
|
+
this._constructorDefault();
|
208
|
+
} else if (_args.length === 4) {
|
209
|
+
this._constructorSides(_args[0],_args[1],_args[2],_args[3]);
|
210
|
+
}
|
211
|
+
else if (_args.length === 2) {
|
212
|
+
this._constructorPoint(_args[0],_args[1]);
|
213
|
+
}
|
214
|
+
else if (_args.length === 1) {
|
215
|
+
this._constructorRect(_args[0]);
|
216
|
+
}
|
217
|
+
else {
|
218
|
+
throw "Invalid number of arguments.";
|
219
|
+
}
|
220
|
+
this.updateSecondaryValues();
|
221
|
+
},
|
222
|
+
|
223
|
+
/** = Description
|
224
|
+
* Moves the rect's left side to a new coordinate.
|
225
|
+
*
|
226
|
+
* = Parameters
|
227
|
+
* +_left+:: The new left side coordinate (in px)
|
228
|
+
*
|
229
|
+
**/
|
230
|
+
setLeft: function(_left){
|
231
|
+
this.left = _left;
|
232
|
+
this.updateSecondaryValues();
|
233
|
+
},
|
234
|
+
|
235
|
+
/** = Description
|
236
|
+
* Moves the rect's right side to a new coordinate.
|
237
|
+
*
|
238
|
+
* = Parameters
|
239
|
+
* +_right+:: The new right side coordinate (in px)
|
240
|
+
*
|
241
|
+
**/
|
242
|
+
setRight: function(_right){
|
243
|
+
this.right = _right;
|
244
|
+
this.updateSecondaryValues();
|
245
|
+
},
|
246
|
+
|
247
|
+
/** = Description
|
248
|
+
* Moves the rect's top side to a new coordinate.
|
249
|
+
*
|
250
|
+
* = Parameters
|
251
|
+
* +_top+:: The new top side coordinate (in px)
|
252
|
+
*
|
253
|
+
**/
|
254
|
+
setTop: function(_top){
|
255
|
+
this.top = _top;
|
256
|
+
this.updateSecondaryValues();
|
257
|
+
},
|
258
|
+
|
259
|
+
/** = Description
|
260
|
+
* Moves the rect's bottom side to a new coordinate.
|
261
|
+
*
|
262
|
+
* = Parameters
|
263
|
+
* +_bottom+:: The new bottom side coordinate (in px)
|
264
|
+
*
|
265
|
+
**/
|
266
|
+
setBottom: function(_bottom){
|
267
|
+
this.bottom = _bottom;
|
268
|
+
this.updateSecondaryValues();
|
269
|
+
},
|
270
|
+
|
271
|
+
/** = Description
|
272
|
+
* Moves the rects left and top sides to a new point. Affects the position,
|
273
|
+
* width and height.
|
274
|
+
*
|
275
|
+
* = Parameters
|
276
|
+
* +_point+:: A HPoint instance to mode the sides to.
|
277
|
+
*
|
278
|
+
**/
|
279
|
+
setLeftTop: function(_point) {
|
280
|
+
this.left=_point.x;
|
281
|
+
this.top=_point.y;
|
282
|
+
this.updateSecondaryValues();
|
283
|
+
},
|
284
|
+
|
285
|
+
/** = Description
|
286
|
+
* Moves the rects left and bottom sides to a new point. Affects the left
|
287
|
+
* position, width and height.
|
288
|
+
*
|
289
|
+
* = Parameters
|
290
|
+
* +_point+:: A HPoint instance to mode the sides to.
|
291
|
+
*
|
292
|
+
**/
|
293
|
+
setLeftBottom: function(_point) {
|
294
|
+
this.left=_point.x;
|
295
|
+
this.bottom=_point.y;
|
296
|
+
this.updateSecondaryValues();
|
297
|
+
},
|
298
|
+
|
299
|
+
/** = Description
|
300
|
+
* Moves the rects right and top sides to a new point. Affects the top
|
301
|
+
* position, width and height.
|
302
|
+
*
|
303
|
+
* = Parameters
|
304
|
+
* +_point+:: A HPoint instance to mode the sides to.
|
305
|
+
*
|
306
|
+
**/
|
307
|
+
setRightTop: function(_point) {
|
308
|
+
this.right=_point.x;
|
309
|
+
this.top=_point.y;
|
310
|
+
this.updateSecondaryValues();
|
311
|
+
},
|
312
|
+
|
313
|
+
/** = Description
|
314
|
+
* Moves the rects right and bottom sides to a new point. Affects the width
|
315
|
+
* and height. Does not affect the position.
|
316
|
+
*
|
317
|
+
* = Parameters
|
318
|
+
* +_point+:: A HPoint instance to mode the sides to.
|
319
|
+
*
|
320
|
+
**/
|
321
|
+
setRightBottom: function(_point) {
|
322
|
+
this.right=_point.x;
|
323
|
+
this.bottom=_point.y;
|
324
|
+
this.updateSecondaryValues();
|
325
|
+
},
|
326
|
+
|
327
|
+
/** = Description
|
328
|
+
* Moves the rects right side to a new coordinate. Does not affect the position.
|
329
|
+
*
|
330
|
+
* = Parameters
|
331
|
+
* +_width+:: A numeric value representing the new target width of the rect.
|
332
|
+
*
|
333
|
+
**/
|
334
|
+
setWidth: function(_width){
|
335
|
+
this.right = this.left + _width;
|
336
|
+
this.updateSecondaryValues();
|
337
|
+
},
|
338
|
+
|
339
|
+
/** = Description
|
340
|
+
* Moves the rects bottom side to a new coordinate. Does not affect the position.
|
341
|
+
*
|
342
|
+
* = Parameters
|
343
|
+
* +_height+:: A numeric value representing the new target height of the rect.
|
344
|
+
*
|
345
|
+
**/
|
346
|
+
setHeight: function(_height){
|
347
|
+
this.bottom = this.top + _height;
|
348
|
+
this.updateSecondaryValues();
|
349
|
+
},
|
350
|
+
|
351
|
+
/** = Description
|
352
|
+
* Moves the rects right and bottom sides to new coordinates. Does not affect the position.
|
353
|
+
*
|
354
|
+
* = Parameters
|
355
|
+
* by separate numeric values:
|
356
|
+
* +_width+:: A numeric value representing the new target width of the rect.
|
357
|
+
* +_height+:: A numeric value representing the new target height of the rect.
|
358
|
+
*
|
359
|
+
* by HPoint used as "HSize":
|
360
|
+
* +_point.x+:: A numeric value representing the new target width of the rect.
|
361
|
+
* +_point.y+:: A numeric value representing the new target height of the rect.
|
362
|
+
*
|
363
|
+
**/
|
364
|
+
setSize: function(){
|
365
|
+
var _args=arguments;
|
366
|
+
// Using width and height:
|
367
|
+
if (_args.length === 2) {
|
368
|
+
_width = _args[0];
|
369
|
+
_height = _args[1];
|
370
|
+
}
|
371
|
+
// Using a point:
|
372
|
+
else if (_args.length === 1) {
|
373
|
+
_width = _args.x;
|
374
|
+
_height = _args.y;
|
375
|
+
}
|
376
|
+
this.right = this.left + _width;
|
377
|
+
this.bottom = this.top + _height;
|
378
|
+
this.updateSecondaryValues();
|
379
|
+
},
|
380
|
+
|
381
|
+
/** = Description
|
382
|
+
* Returns true if the Rect has any area even a corner or part
|
383
|
+
* of a side in common with rect, and false if it doesn't.
|
384
|
+
*
|
385
|
+
* = Parameters
|
386
|
+
* +_rect+:: A HRect instance to intersect this rect with
|
387
|
+
*
|
388
|
+
* = Returns
|
389
|
+
* A Boolean (true/false) depending on the result.
|
390
|
+
*
|
391
|
+
**/
|
392
|
+
intersects: function(_rect) {
|
393
|
+
return (
|
394
|
+
((_rect.left >= this.left && _rect.left <= this.right) ||
|
395
|
+
(_rect.right >= this.left && _rect.right <= this.right)) &&
|
396
|
+
((_rect.top >= this.top && _rect.top <= this.bottom) ||
|
397
|
+
(_rect.bottom >= this.top && _rect.bottom <= this.bottom)));
|
398
|
+
},
|
399
|
+
|
400
|
+
/** = Description
|
401
|
+
* Returns true if point or rect lies entirely within the Rect's
|
402
|
+
* rectangle (and false if not). A rectangle contains the points that lie
|
403
|
+
* along its edges; for example, two identical rectangles contain each other.
|
404
|
+
*
|
405
|
+
* Also works with HPoint instances.
|
406
|
+
*
|
407
|
+
* = Parameters
|
408
|
+
* +_obj+:: A HRect or HPoint to check the containment with.
|
409
|
+
*
|
410
|
+
* = Returns
|
411
|
+
* A Boolean (true/false) depending on the result.
|
412
|
+
*
|
413
|
+
**/
|
414
|
+
contains: function(_obj) {
|
415
|
+
if(_obj instanceof HPoint) {
|
416
|
+
return this._containsPoint(_obj);
|
417
|
+
}
|
418
|
+
else if(_obj instanceof HRect) {
|
419
|
+
return this._containsRect(_obj);
|
420
|
+
}
|
421
|
+
else {
|
422
|
+
throw "Wrong argument type.";
|
423
|
+
}
|
424
|
+
},
|
425
|
+
_containsPoint: function(_point) {
|
426
|
+
return ( _point.x >= this.left && _point.x <= this.right &&
|
427
|
+
_point.y >= this.top && _point.y <= this.bottom );
|
428
|
+
},
|
429
|
+
_containsRect: function(_rect) {
|
430
|
+
return ( _rect.left >= this.left && _rect.right <= this.right &&
|
431
|
+
_rect.top >= this.top && _rect.bottom <= this.bottom );
|
432
|
+
},
|
433
|
+
|
434
|
+
/** = Description
|
435
|
+
* Insets the sides of the Rect's rectangle by x units (left and
|
436
|
+
* right sides) and y units (top and bottom). Positive inset values shrink
|
437
|
+
* the rectangle; negative values expand it. Note that both sides of each
|
438
|
+
* pair moves the full amount. For example, if you inset a Rect by (4,4), the
|
439
|
+
* left side moves (to the right) four units and the right side moves (to the
|
440
|
+
* left) four units (and similarly with the top and bottom).
|
441
|
+
*
|
442
|
+
* = Parameters
|
443
|
+
* using a HPoint:
|
444
|
+
* +point+:: A HPoint to inset by.
|
445
|
+
*
|
446
|
+
* using separate x and y coordinates:
|
447
|
+
* +x+:: x Coordinate
|
448
|
+
* +y+:: y Coordinate
|
449
|
+
*
|
450
|
+
**/
|
451
|
+
insetBy: function() {
|
452
|
+
var _args=arguments;
|
453
|
+
if (_args.length === 1) {
|
454
|
+
this._insetByPoint(_args[0]);
|
455
|
+
} else if (_args.length === 2) {
|
456
|
+
this._insetByXY(_args[0],_args[1]);
|
457
|
+
} else {
|
458
|
+
throw "Invalid number of arguments.";
|
459
|
+
}
|
460
|
+
this.updateSecondaryValues();
|
461
|
+
},
|
462
|
+
_insetByPoint: function(_point) {
|
463
|
+
this._insetByXY(_point.x, _point.y);
|
464
|
+
},
|
465
|
+
_insetByXY: function(x, y) {
|
466
|
+
this.left += x;
|
467
|
+
this.top += y;
|
468
|
+
this.right -= x;
|
469
|
+
this.bottom -= y;
|
470
|
+
},
|
471
|
+
|
472
|
+
/** = Description
|
473
|
+
* Moves the Rect horizontally by x units and vertically by y
|
474
|
+
* units. The rectangle's size doesn't change.
|
475
|
+
*
|
476
|
+
* = Parameters
|
477
|
+
* using a HPoint:
|
478
|
+
* +point+:: A HPoint to offset by.
|
479
|
+
*
|
480
|
+
* using separate x and y coordinates
|
481
|
+
* +x+:: X coordinate
|
482
|
+
* +y+:: Y coordinate
|
483
|
+
*
|
484
|
+
**/
|
485
|
+
offsetBy: function() {
|
486
|
+
var _args=arguments;
|
487
|
+
if (_args.length === 1) {
|
488
|
+
this._offsetByPoint(_args[0]);
|
489
|
+
} else if (_args.length === 2) {
|
490
|
+
this._offsetByXY(_args[0],_args[1]);
|
491
|
+
} else {
|
492
|
+
throw "Invalid number of arguments.";
|
493
|
+
}
|
494
|
+
this.updateSecondaryValues();
|
495
|
+
},
|
496
|
+
_offsetByPoint: function(_point) {
|
497
|
+
this._offsetByXY(_point.x, _point.y);
|
498
|
+
},
|
499
|
+
_offsetByXY: function(x, y) {
|
500
|
+
this.left += x;
|
501
|
+
this.top += y;
|
502
|
+
this.right += x;
|
503
|
+
this.bottom += y;
|
504
|
+
},
|
505
|
+
|
506
|
+
/** = Description
|
507
|
+
* Moves the Rect to the location (x,y).
|
508
|
+
*
|
509
|
+
* = Parameters
|
510
|
+
* using a HPoint:
|
511
|
+
* +point+:: A HPoint to offset to.
|
512
|
+
*
|
513
|
+
* using separate x and y coordinates):
|
514
|
+
* +x+:: X coordinate
|
515
|
+
* +y+:: Y coordinate
|
516
|
+
*
|
517
|
+
**/
|
518
|
+
offsetTo: function() {
|
519
|
+
var _args=arguments;
|
520
|
+
if (_args.length === 1) {
|
521
|
+
this._offsetToPoint(_args[0]);
|
522
|
+
} else if (_args.length === 2) {
|
523
|
+
this._offsetToXY(_args[0],_args[1]);
|
524
|
+
} else {
|
525
|
+
throw "Invalid number of arguments.";
|
526
|
+
}
|
527
|
+
this.updateSecondaryValues();
|
528
|
+
},
|
529
|
+
_offsetToPoint: function(_point) {
|
530
|
+
this._offsetToXY(_point.x, _point.y);
|
531
|
+
},
|
532
|
+
_offsetToXY: function(x, y) {
|
533
|
+
this.right += x-this.left;
|
534
|
+
this.left = x;
|
535
|
+
this.bottom += y-this.top;
|
536
|
+
this.top = y;
|
537
|
+
},
|
538
|
+
|
539
|
+
/** = Description
|
540
|
+
* Returns true if the two objects' rectangles exactly coincide.
|
541
|
+
*
|
542
|
+
* = Parameters
|
543
|
+
* +_rect+:: A HRect instance to compare to.
|
544
|
+
*
|
545
|
+
* = Returns
|
546
|
+
* A Boolean (true/false) depending on the result.
|
547
|
+
*
|
548
|
+
**/
|
549
|
+
equals: function(_rect) {
|
550
|
+
return (this.left === _rect.left && this.top === _rect.top &&
|
551
|
+
this.right === _rect.right && this.bottom === _rect.bottom);
|
552
|
+
},
|
553
|
+
|
554
|
+
/** = Description
|
555
|
+
* Creates and returns a new Rect that's the intersection of this Rect and
|
556
|
+
* the specified Rect. The new Rect encloses the area that the two Rects have
|
557
|
+
* in common. If the two Rects don't intersect, the new Rect will be invalid.
|
558
|
+
*
|
559
|
+
* = Parameters
|
560
|
+
* +_rect+:: A HRect instance to compare to.
|
561
|
+
*
|
562
|
+
* = Returns
|
563
|
+
* A new HRect instance.
|
564
|
+
*
|
565
|
+
**/
|
566
|
+
intersection: function(_rect) {
|
567
|
+
return new HRect(
|
568
|
+
Math.max(this.left, _rect.left), Math.max(this.top, _rect.top),
|
569
|
+
Math.min(this.right, _rect.right), Math.min(this.bottom, _rect.bottom)
|
570
|
+
);
|
571
|
+
},
|
572
|
+
|
573
|
+
/** = Description
|
574
|
+
* Creates and returns a new Rect that minimally but completely encloses the
|
575
|
+
* area defined by this Rect and the specified Rect.
|
576
|
+
*
|
577
|
+
* = Parameters
|
578
|
+
* +_rect+:: A HRect instance to compare to.
|
579
|
+
*
|
580
|
+
* = Returns
|
581
|
+
* A new HRect instance.
|
582
|
+
*
|
583
|
+
**/
|
584
|
+
union: function(_rect) {
|
585
|
+
return new HRect(
|
586
|
+
Math.min(this.left, _rect.left), Math.min(this.top, _rect.top),
|
587
|
+
Math.max(this.right, _rect.right), Math.max(this.bottom, _rect.bottom)
|
588
|
+
);
|
589
|
+
},
|
590
|
+
|
591
|
+
// HValue and HView support
|
592
|
+
valueObj: null,
|
593
|
+
|
594
|
+
/** = Description
|
595
|
+
* Bind function
|
596
|
+
*
|
597
|
+
* = Parameters
|
598
|
+
* +_view+:: view
|
599
|
+
*
|
600
|
+
**/
|
601
|
+
bind: function(_view){
|
602
|
+
if(this.viewIds.indexOf( _view.viewId ) === -1){
|
603
|
+
this.viewIds.push( _view.viewId );
|
604
|
+
}
|
605
|
+
this._updateFlexibleDimensions();
|
606
|
+
},
|
607
|
+
|
608
|
+
/** = Description
|
609
|
+
* Release function
|
610
|
+
**/
|
611
|
+
release: function(_view){
|
612
|
+
var _viewIdx = this.viewIds.indexOf(_view.viewId);
|
613
|
+
if(_viewIdx !== -1){
|
614
|
+
this.viewIds.splice( _viewIdx, 1 );
|
615
|
+
}
|
616
|
+
},
|
617
|
+
|
618
|
+
/** = Description
|
619
|
+
* Sets valueObj for this component given as parameter.
|
620
|
+
*
|
621
|
+
* = Parameters
|
622
|
+
* +_valueObj+:: valueObj to use
|
623
|
+
*
|
624
|
+
**/
|
625
|
+
setValueObj: function(_valueObj){
|
626
|
+
this.valueObj = _valueObj;
|
627
|
+
},
|
628
|
+
|
629
|
+
/** = Description
|
630
|
+
* setValue function
|
631
|
+
*
|
632
|
+
* = Parameters
|
633
|
+
* +_value+:: value
|
634
|
+
* +_srcViewId+:: srcViewId
|
635
|
+
*
|
636
|
+
**/
|
637
|
+
setValue: function(_value,_srcViewId){
|
638
|
+
if(this.valueObj){
|
639
|
+
this.valueObj.set(_value);
|
640
|
+
}
|
641
|
+
this.set(_value[0],_value[1],_value[2],_value[3]);
|
642
|
+
var i=0, _viewId;
|
643
|
+
for(;i<this.viewIds.length;i++){
|
644
|
+
_viewId = this.viewIds[i];
|
645
|
+
HSystem.views[_viewId].drawRect();
|
646
|
+
}
|
647
|
+
}
|
648
|
+
|
649
|
+
});
|
650
|
+
|
651
|
+
|
File without changes
|