rsence-pre 2.2.2.1 → 2.3.0.0

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.
Files changed (46) hide show
  1. data/VERSION +1 -1
  2. data/conf/default_conf.yaml +6 -1
  3. data/js/comm/queue/queue.js +0 -1
  4. data/js/comm/transporter/transporter.js +32 -16
  5. data/js/comm/values/values.js +45 -13
  6. data/js/controls/sliders/slider/slider.js +5 -6
  7. data/js/controls/sliders/slider/themes/default/slider.css +34 -62
  8. data/js/controls/sliders/slider/themes/default/slider.html +4 -4
  9. data/js/controls/sliders/vslider/themes/default/vslider.css +43 -10
  10. data/js/controls/sliders/vslider/vslider.js +3 -1
  11. data/js/controls/stepper/stepper.js +1 -1
  12. data/js/controls/stringview/stringview.js +6 -8
  13. data/js/controls/stringview/themes/default/stringview.html +1 -1
  14. data/js/controls/textcontrol/textcontrol.js +22 -16
  15. data/js/controls/textcontrol/themes/default/textcontrol.css +23 -22
  16. data/js/controls/window/window.js +1 -1
  17. data/js/core/class/class.js +4 -4
  18. data/js/core/event/event.js +3 -2
  19. data/js/datetime/calendar/calendar.coffee +114 -58
  20. data/js/datetime/calendar/themes/default/calendar.css +4 -2
  21. data/js/foundation/control/control.js +2 -0
  22. data/js/foundation/control/dyncontrol/dyncontrol.js +15 -0
  23. data/js/foundation/control/eventresponder/eventresponder.js +29 -20
  24. data/js/foundation/eventmanager/eventmanager.coffee +1090 -0
  25. data/js/foundation/eventmanager/eventmanager.js +116 -28
  26. data/js/foundation/json_renderer/json_renderer.js +4 -2
  27. data/js/foundation/system/system.js +3 -0
  28. data/js/foundation/view/view.js +6 -30
  29. data/js/lists/listitems/listitems.js +8 -1
  30. data/js/lists/radiobuttonlist/radiobuttonlist.js +9 -4
  31. data/js/menus/minimenu/minimenu.js +11 -5
  32. data/js/menus/minimenuitem/minimenuitem.js +6 -4
  33. data/js/tables/table/table.coffee +19 -0
  34. data/js/tables/table/themes/default/table.css +0 -0
  35. data/js/tables/table/themes/default/table.html +19 -0
  36. data/lib/rsence/argv/initenv_argv.rb +1 -1
  37. data/lib/rsence/http/broker.rb +3 -1
  38. data/lib/rsence/msg.rb +1 -1
  39. data/lib/rsence/plugins/gui_plugin.rb +2 -0
  40. data/lib/rsence/sessionmanager.rb +7 -7
  41. data/lib/rsence/sessionstorage.rb +3 -1
  42. data/lib/rsence/transporter.rb +56 -32
  43. data/lib/rsence/valuemanager.rb +3 -3
  44. data/plugins/client_pkg/client_pkg.rb +5 -0
  45. data/plugins/client_pkg/lib/client_pkg_build.rb +29 -4
  46. metadata +10 -7
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.2.1.pre
1
+ 2.3.0.0.pre
@@ -78,13 +78,18 @@
78
78
  :latency: 0
79
79
  #
80
80
  # HTTP Port number to listen to.
81
- :port: 8001
81
+ :port: '8001'
82
82
  #
83
83
  # Bind this ip address ('0.0.0.0' means all)
84
84
  :bind_address: '127.0.0.1'
85
85
  #
86
86
  # Rack handler to use, defaults to puma
87
87
  :rack_require: puma
88
+ #
89
+ # These are default options. Ymmv, but these work fine for puma
90
+ :handler_options:
91
+ :Verbose: false
92
+ :Threads: '4:64' # puma default is '0:16'
88
93
  #
89
94
  # When enabled, sets http cache headers
90
95
  # to cache content as long as possible.
@@ -85,7 +85,6 @@ COMM.Queue = HApplication.extend({
85
85
  _strs.REASON,
86
86
  _exception
87
87
  ].join('');
88
- console.log( _errorText );
89
88
  return _errorText;
90
89
  },
91
90
 
@@ -70,20 +70,18 @@ COMM.Transporter = HApplication.extend({
70
70
  * to report js errors to the server.
71
71
  * If no error, returns an empty string.
72
72
  **/
73
- getClientEvalError: function(){
74
- var _this = COMM.Transporter;
75
- return _this._clientEvalError?'&err_msg=' +
76
- COMM.Values._encodeString(_this._clientEvalError):'';
77
- },
73
+ // getClientEvalError: function(){
74
+ // var _this = COMM.Transporter;
75
+ // return _this._clientEvalError?'&err_msg=' +
76
+ // COMM.Values._encodeString(_this._clientEvalError):'';
77
+ // },
78
78
 
79
79
  parseResponseArray: function( _responseText ){
80
- var _arr = eval( _responseText );
81
- return _arr;
80
+ return HVM.decode( _responseText );
82
81
  },
83
82
 
84
83
  _nativeParseResponseArray: function( _responseText ){
85
- var _arr = JSON.parse( _responseText );
86
- return _arr;
84
+ return JSON.parse( _responseText );
87
85
  },
88
86
 
89
87
  setValues: function( _values ){
@@ -176,7 +174,9 @@ COMM.Transporter = HApplication.extend({
176
174
  flushBusy: function(){
177
175
  var _this = COMM.Transporter;
178
176
  _this.busy = false;
179
- COMM.Values.tosync.length !== 0 && _this.sync();
177
+ if( COMM.Values.tosync.length !== 0 ){
178
+ _this.sync();
179
+ }
180
180
  },
181
181
  failMessage: function(_title,_message){
182
182
  var _this = COMM.Transporter,
@@ -320,18 +320,34 @@ COMM.Transporter = HApplication.extend({
320
320
  }
321
321
  // console.log('sync.');
322
322
  this.busy = true;
323
+ var _now = new Date().getTime();
323
324
  if(window['sesWatcher'] && window.sesWatcher['sesTimeoutValue']){
324
325
  // Sets the value of the session watcher to the current time. It could cause an unnecessary re-sync poll immediately after this sync otherwise.
325
- sesWatcher.sesTimeoutValue.set( new Date().getTime() );
326
+ sesWatcher.sesTimeoutValue.set( _now );
326
327
  }
327
- var _this = this,
328
- _values = COMM.Values.sync(),
329
- _sesKey = 'ses_key='+COMM.Session.ses_key,
330
- _errorMessage = _this.getClientEvalError(),
331
- _body = [_sesKey,_errorMessage,_values?'&values='+_values:''].join('');
328
+ var
329
+ _this = this,
330
+ // _values = HVM.sync(),
331
+ // _boundary = _now.toString(36)+(Math.random()*10000).toString(36)+(Math.random()*10000).toString(36),
332
+ // _separator = '--'+_boundary,
333
+ // _errorMessage = _this.getClientEvalError(),
334
+ _body = HVM.sync();
335
+ // _body = _separator+
336
+ // '\r\nContent-Disposition: form-data; name="ses_key"\r\nContent-Type: text/plain\r\n'+
337
+ // '\r\n'+COMM.Session.ses_key+'\r\n'+_separator;
338
+ // if( _values ){
339
+ // _body += '\r\nContent-Disposition: form-data; name="values"\r\nContent-Type: application/json; charset=UTF-8\r\n'+
340
+ // '\r\n'+_values+'\r\n'+_separator+'--\r\n';
341
+ // }
342
+ // else {
343
+ // _body += '--\r\n';
344
+ // }
345
+ // _body = [_sesKey,_errorMessage,_values?'&values='+_values:''].join('');
332
346
  COMM.request(
333
347
  _this.url, {
334
348
  _this: _this,
349
+ // contentType: 'multipart/form-data; boundary='+_boundary,
350
+ contentType: 'application/json',
335
351
  onSuccess: COMM.Transporter.success,
336
352
  onFailure: COMM.Transporter.failure,
337
353
  method: 'POST',
@@ -468,22 +468,54 @@ COMM.Values = HClass.extend({
468
468
  * An encoded string representation of values to synchronize.
469
469
  **/
470
470
  sync: function(){
471
- if(this.tosync.length===0){
472
- return false;
471
+ var
472
+ _this = this,
473
+ _response = [ COMM.Session.ses_key,{},[] ],
474
+ _error = COMM.Transporter._clientEvalError;
475
+
476
+ if( _error ){
477
+ _response[2].push({'err_msg':_error});
473
478
  }
474
- var _syncValues = {},
475
- _this = this,
476
- _values = _this.values,
477
- _tosync = _this.tosync,
478
- _len = _tosync.length,
479
- i = 0, _id, _value;
480
- for(;i<_len;i++){
481
- _id = _tosync.shift();
482
- _value = _values[_id].value;
483
- _syncValues[_id] = _value;
479
+
480
+ // new implementation, symmetric with the server response format
481
+ if( this.tosync.length > 0 ){
482
+ _response[1].set=[];
483
+ var
484
+ _syncValues = _response[1].set,
485
+ _values = _this.values,
486
+ _tosync = _this.tosync,
487
+ i = _tosync.length,
488
+ _id, _value;
489
+ while(i--){
490
+ _id = _tosync.shift();
491
+ _value = _values[_id].value;
492
+ _syncValues.push( [ _id, _value ] );
493
+ }
484
494
  }
485
- return encodeURIComponent(_this.encode(_syncValues));
495
+ // console.log('response:',_response);
496
+ // console.log('encoded:',_this.encode(_response));
497
+ return _this.encode(_response);
486
498
  },
499
+
500
+ // Old sync implementation:
501
+ // sync: function(){
502
+ // if(this.tosync.length===0){
503
+ // return false;
504
+ // }
505
+ // var
506
+ // _syncValues = {},
507
+ // _this = this,
508
+ // _values = _this.values,
509
+ // _tosync = _this.tosync,
510
+ // _len = _tosync.length,
511
+ // i = 0, _id, _value;
512
+ // for(;i<_len;i++){
513
+ // _id = _tosync.shift();
514
+ // _value = _values[_id].value;
515
+ // _syncValues[_id] = _value;
516
+ // }
517
+ // return encodeURIComponent(_this.encode(_syncValues));
518
+ // },
487
519
 
488
520
  _detectNativeJSONSupport: function(){
489
521
  if(window['JSON']){
@@ -289,7 +289,7 @@ HSlider = HControl.extend({
289
289
 
290
290
  prevOrientation: 'c',
291
291
 
292
- cssClassPrefix: 'h',
292
+ orientations: ['n','s','c'],
293
293
 
294
294
  /** = Description
295
295
  * Changes the thumb graphic. Possible orientations by default are
@@ -316,17 +316,16 @@ HSlider = HControl.extend({
316
316
  }
317
317
  var _toggleCSS = this.toggleCSSClass,
318
318
  _ctrlId = this.markupElemIds.control,
319
- _orientations = ['n','s','w','e','c'],
319
+ _orientations = this.orientations,
320
320
  _iOrientation = '',
321
321
  _cssClassName = '',
322
- _cssClassPrefix = this.cssClassPrefix,
323
- _cssClassVert = this._isVertical?'v':'',
322
+ _componentName = this.componentName,
324
323
  _activeOrientation = false,
325
324
  i = 0;
326
- for(;i<5;i++){
325
+ for(;i<3;i++){
327
326
  _iOrientation = _orientations[i];
328
327
  _activeOrientation = (_orientation===_iOrientation);
329
- _cssClassName = (_orientation==='c')?_cssClassPrefix+_cssClassVert+'slider_thumb':_cssClassPrefix+'slider_thumb_'+_iOrientation;
328
+ _cssClassName = (_orientation==='c')?_componentName+'_'+'thumb':_componentName+'_'+'thumb'+'_'+_iOrientation;
330
329
  _toggleCSS( _ctrlId, _cssClassName, _activeOrientation );
331
330
  }
332
331
 
@@ -1,108 +1,80 @@
1
- .hslider_track_left,
2
- .hslider_track_right,
3
- .hslider_track {
1
+ .slider_track_left,
2
+ .slider_track_right,
3
+ .slider_track {
4
4
  position: absolute;
5
5
  height: 7px; top: 7px;
6
- font-size: 0px;
6
+ font-size: 0;
7
7
  background-image: #{this.getCssFilePath('hslider_tracks.png')};
8
8
  }
9
9
 
10
- .hslider_track_left {
10
+ .slider_track_left {
11
11
  left: 10px; width: 4px;
12
- background-position: 0px 0px;
12
+ background-position: 0 0;
13
13
  }
14
14
 
15
- .hslider_track_right {
15
+ .slider_track_right {
16
16
  right: 10px; width: 4px;
17
- background-position: -4px 0px;
17
+ background-position: -4px 0;
18
18
  }
19
19
 
20
- .hslider_track {
20
+ .slider_track {
21
21
  left: 14px; right: 14px;
22
- background-position: 0px -14px;
22
+ background-position: 0 -14px;
23
23
  }
24
24
 
25
- .disabled .hslider_track_left {
26
- background-position: 0px -7px;
25
+ .disabled .slider_track_left {
26
+ background-position: 0 -7px;
27
27
  }
28
28
 
29
- .disabled .hslider_track_right {
29
+ .disabled .slider_track_right {
30
30
  background-position: -4px -7px;
31
31
  }
32
32
 
33
- .disabled .hslider_track {
34
- background-position: 0px -21px;
33
+ .disabled .slider_track {
34
+ background-position: 0 -21px;
35
35
  }
36
36
 
37
- .hslider_thumb {
37
+ .slider_thumb {
38
38
  position: absolute;
39
- top: 0px; height: 21px; width: 21px;
40
- font-size: 0px;
41
- background-position: 0px 0px;
39
+ top: 0; height: 21px; width: 21px;
40
+ font-size: 0;
41
+ background-position: 0 0;
42
42
  background-image: #{this.getCssFilePath('slider_thumbs.png')};
43
43
  }
44
44
 
45
- .hslider_thumb:active {
46
- background-position: 0px -22px;
45
+ .slider_thumb:active {
46
+ background-position: 0 -22px;
47
47
  }
48
48
 
49
- .disabled .hslider_thumb {
50
- background-position: 0px -44px;
49
+ .disabled .slider_thumb {
50
+ background-position: 0 -44px;
51
51
  }
52
52
 
53
- .hslider_thumb_n,
54
- .hslider_thumb_s,
55
- .hslider_thumb_e,
56
- .hslider_thumb_w {
53
+ .slider_thumb_n,
54
+ .slider_thumb_s {
57
55
  position: absolute;
58
- top: 0px; height: 21px; width: 21px;
56
+ top: 0; height: 21px; width: 21px;
59
57
  background-image: #{this.getCssFilePath('slider_thumbs.png')};
60
58
  }
61
59
 
62
- .hslider_thumb_e,
63
- .hslider_thumb_w {
64
- left: 0px;
60
+ .slider_thumb_n {
61
+ background-position: -22px 0;
65
62
  }
66
-
67
- .hslider_thumb_n {
68
- background-position: -22px 0px;
69
- }
70
- .hslider_thumb_n:active {
63
+ .slider_thumb_n:active {
71
64
  background-position: -22px -22px;
72
65
  }
73
- .disabled .hslider_thumb_n {
66
+ .disabled .slider_thumb_n {
74
67
  background-position: -22px -44px;
75
68
  }
76
69
 
77
- .hslider_thumb_s {
78
- background-position: -44px 0px;
70
+ .slider_thumb_s {
71
+ background-position: -44px 0;
79
72
  }
80
- .hslider_thumb_s:active {
73
+ .slider_thumb_s:active {
81
74
  background-position: -44px -22px;
82
75
  }
83
- .disabled .hslider_thumb_s {
76
+ .disabled .slider_thumb_s {
84
77
  background-position: -44px -44px;
85
78
  }
86
79
 
87
- .hslider_thumb_w {
88
- background-position: -66px 0px;
89
- }
90
- .hslider_thumb_w:active {
91
- background-position: -66px -22px;
92
- }
93
- .disabled .hslider_thumb_w {
94
- background-position: -66px -44px;
95
- }
96
-
97
- .hslider_thumb_e {
98
- background-position: -88px 0px;
99
- }
100
- .hslider_thumb_e:active {
101
- background-position: -88px -22px;
102
- }
103
- .disabled .hslider_thumb_e {
104
- background-position: -88px -44px;
105
- }
106
-
107
-
108
80
 
@@ -1,5 +1,5 @@
1
- <div class="hslider_track_left"></div>
2
- <div class="hslider_track_right"></div>
3
- <div class="hslider_track"></div>
4
- <div class="hslider_thumb" id="control#{_ID}"></div>
1
+ <div class="slider_track_left"></div>
2
+ <div class="slider_track_right"></div>
3
+ <div class="slider_track"></div>
4
+ <div class="slider_thumb" id="control#{_ID}"></div>
5
5
  ${this.thumbSize=21;}
@@ -3,27 +3,27 @@
3
3
  .vslider_track {
4
4
  position: absolute;
5
5
  width: 7px; left: 7px;
6
- font-size: 0px;
6
+ font-size: 0;
7
7
  background-image: #{this.getCssFilePath('vslider_tracks.png')};
8
8
  }
9
9
 
10
10
  .vslider_track_top {
11
11
  top: 10px; height: 4px;
12
- background-position: 0px 0px;
12
+ background-position: 0 0;
13
13
  }
14
14
 
15
15
  .vslider_track_bottom {
16
16
  bottom: 10px; height: 4px;
17
- background-position: 0px -4px;
17
+ background-position: 0 -4px;
18
18
  }
19
19
 
20
20
  .vslider_track {
21
21
  top: 14px; bottom: 14px;
22
- background-position: -14px 0px;
22
+ background-position: -14px 0;
23
23
  }
24
24
 
25
25
  .disabled .vslider_track_top {
26
- background-position: -7px 0px;
26
+ background-position: -7px 0;
27
27
  }
28
28
 
29
29
  .disabled .vslider_track_bottom {
@@ -31,22 +31,55 @@
31
31
  }
32
32
 
33
33
  .disabled .vslider_track {
34
- background-position: -21px 0px;
34
+ background-position: -21px 0;
35
35
  }
36
36
 
37
37
  .vslider_thumb {
38
38
  position: absolute;
39
39
  font-size: 0px;
40
- left: 0px; width: 21px; height: 21px;
41
- background-position: 0px 0px;
40
+ left: 0; width: 21px; height: 21px;
41
+ background-position: 0 0;
42
42
  background-image: #{this.getCssFilePath('slider_thumbs.png')};
43
43
  }
44
44
 
45
45
  .vslider_thumb:active {
46
- background-position: 0px -22px;
46
+ background-position: 0 -22px;
47
47
  }
48
48
 
49
49
  .disabled .vslider_thumb {
50
- background-position: 0px -44px;
50
+ background-position: 0 -44px;
51
+ }
52
+
53
+ .vslider_thumb_e,
54
+ .vslider_thumb_w {
55
+ position: absolute;
56
+ top: 0; height: 21px; width: 21px;
57
+ background-image: #{this.getCssFilePath('slider_thumbs.png')};
58
+ }
59
+
60
+ .vslider_thumb_e,
61
+ .vslider_thumb_w {
62
+ left: 0;
63
+ }
64
+
65
+ .vslider_thumb_w {
66
+ background-position: -66px 0;
67
+ }
68
+ .vslider_thumb_w:active {
69
+ background-position: -66px -22px;
70
+ }
71
+ .disabled .vslider_thumb_w {
72
+ background-position: -66px -44px;
73
+ }
74
+
75
+ .vslider_thumb_e {
76
+ background-position: -88px 0;
77
+ }
78
+ .vslider_thumb_e:active {
79
+ background-position: -88px -22px;
51
80
  }
81
+ .disabled .vslider_thumb_e {
82
+ background-position: -88px -44px;
83
+ }
84
+
52
85
 
@@ -35,7 +35,9 @@ HVSlider = HSlider.extend({
35
35
  componentName: "vslider",
36
36
 
37
37
  // This overrides the HSlider property.
38
- _isVertical: true
38
+ _isVertical: true,
39
+
40
+ orientations: ['w','e','c']
39
41
 
40
42
  });
41
43
 
@@ -140,7 +140,7 @@ HStepper = HControl.extend({
140
140
  **/
141
141
  mouseDown: function( x, y ){
142
142
  this.setMouseUp(true);
143
- this._setRepeatInterval( ( y - ELEM.getVisiblePosition( this.elemId )[1] ) <= 11 );
143
+ this._setRepeatInterval( ( y - this.pageY() ) <= 11 );
144
144
  return true;
145
145
  },
146
146
 
@@ -43,14 +43,12 @@ var HStringView, HLabel;
43
43
  *
44
44
  **/
45
45
  refreshLabel: function() {
46
- if(this.markupElemIds) {
47
- if(this.markupElemIds.value) {
48
- if( this.value !== undefined ){
49
- this.setAttrOfPart( 'value', 'title', this.label );
50
- }
51
- else {
52
- this.setMarkupOfPart( 'value', this.label );
53
- }
46
+ if(this.markupElemIds && this.markupElemIds.value) {
47
+ if( this.value !== undefined ){
48
+ this.setAttrOfPart( 'value', 'title', this.label );
49
+ }
50
+ else {
51
+ this.setMarkupOfPart( 'value', this.label );
54
52
  }
55
53
  }
56
54
  }
@@ -1 +1 @@
1
- <div class="stringview" id="value#{_ID}" title="#{this.label}"></div>
1
+ <div class="stringview" id="value#{_ID}"></div>
@@ -152,23 +152,16 @@ HTextControl = HControl.extend({
152
152
  textBlur: function(){
153
153
  this.hasTextFocus = false;
154
154
  this._clearChangeEventFn();
155
- this._updateValueFromField();
156
155
  if(this.options.refreshOnBlur){
156
+ this._updateValueFromField();
157
157
  this.refreshValue();
158
158
  }
159
159
  return true;
160
160
  },
161
161
 
162
162
  idle: function(){
163
- if( !this.options.refreshOnIdle ){ return; }
164
- this.hasTextFocus && this._updateValueFromField();
165
- try{
166
- this.base();
167
- }
168
- catch(e){
169
- console.error('HTextControl::onIdle error -> ',e);
170
- debugger;
171
- this.base();
163
+ if( this.hasTextFocus && this.options.refreshOnIdle && this.options.refreshOnInput ){
164
+ this._updateValueFromField();
172
165
  }
173
166
  },
174
167
 
@@ -354,12 +347,12 @@ HTextControl = HControl.extend({
354
347
  *
355
348
  **/
356
349
  textEnter: function(){
357
- this.setValue(
358
- this.validateText(
359
- this.getTextFieldValue()
360
- )
361
- );
362
350
  if(this.options.refreshOnInput){
351
+ this.setValue(
352
+ this.validateText(
353
+ this.getTextFieldValue()
354
+ )
355
+ );
363
356
  this.refreshValue();
364
357
  }
365
358
  return false;
@@ -380,7 +373,8 @@ HNumericTextControl = HTextControl.extend({
380
373
  defaultEvents: {
381
374
  mouseWheel: true,
382
375
  textEnter: true,
383
- contextMenu: true
376
+ contextMenu: true,
377
+ keyDown: true
384
378
  },
385
379
 
386
380
  /** Uses the mouseWheel event to step up/down the value.
@@ -391,6 +385,18 @@ HNumericTextControl = HTextControl.extend({
391
385
  this.setValue(Math.round(this.validateText(_value)));
392
386
  },
393
387
 
388
+ keyDown: function(_key){
389
+ if(_key===Event.KEY_UP){
390
+ this.mouseWheel(1);
391
+ return true;
392
+ }
393
+ else if(_key===Event.KEY_DOWN){
394
+ this.mouseWheel(-1);
395
+ return true;
396
+ }
397
+ return false;
398
+ },
399
+
394
400
  /** = Description
395
401
  * Extends the validateText method to ensure the
396
402
  * input is a number.
@@ -7,8 +7,8 @@
7
7
  color: #000;
8
8
  background-color: transparent;
9
9
  vertical-align: middle;
10
- border: 0px;
11
- left: 0px; top: 0px;
10
+ border: 0;
11
+ left: 0; top: 0;
12
12
  #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.ie9||BROWSER_TYPE.opera)?'padding-left:2px;width:100% !important;height:90% !important;':BROWSER_TYPE.ie6?'right:4px;bottom:2px;':'padding:2px;right:0px;bottom:0px;width:auto;height:auto;'}
13
13
  }
14
14
 
@@ -23,7 +23,8 @@
23
23
 
24
24
  .default .textcontrol_input_parent {
25
25
  position: absolute;
26
- #{(BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.ie9||BROWSER_TYPE.opera)?'left:0;padding-left:1px;top:0;right:4px;bottom:0;':BROWSER_TYPE.ie6?'left:2px;top:1px;right:1px;bottom:1px;':'left:-2px;top:-2px;right:-2px;bottom:-2px;'}
26
+ #{(BROWSER_TYPE.chrome||BROWSER_TYPE.firefox||BROWSER_TYPE.ie7||BROWSER_TYPE.ie8||BROWSER_TYPE.ie9||BROWSER_TYPE.opera)?'left:0;padding-left:1px;top:0;right:4px;bottom:0;':BROWSER_TYPE.ie6?'left:2px;top:1px;right:1px;bottom:1px;':'left:-2px;top:-2px;right:-2px;bottom:-2px;'}
27
+ #{(BROWSER_TYPE.chrome)?'top:1px;':''}
27
28
  }
28
29
 
29
30
  .default .textcontrol_bg {
@@ -34,10 +35,10 @@
34
35
  }
35
36
 
36
37
  .default .active>.textcontrol_bg {
37
- left: 0px; top: 0px; right: 0px; bottom: 0px;
38
- -moz-box-shadow: 0px 0px 3px #333;
39
- -webkit-box-shadow: 0px 0px 3px #333;
40
- box-shadow: 0px 0px 3px #333;
38
+ left: 0; top: 0; right: 0; bottom: 0;
39
+ -moz-box-shadow: 0 0 3px #333;
40
+ -webkit-box-shadow: 0 0 3px #333;
41
+ box-shadow: 0 0 3px #333;
41
42
  }
42
43
 
43
44
  .default .disabled .textcontrol_bg {
@@ -57,22 +58,22 @@
57
58
  }
58
59
 
59
60
  .default .textcontrol_nw {
60
- left: 0px; top: 0px;
61
- background-position: 0px 0px;
61
+ left: 0; top: 0;
62
+ background-position: 0 0;
62
63
  }
63
64
 
64
65
  .default .textcontrol_ne {
65
- right: 0px; top: 0px;
66
- background-position: -7px 0px;
66
+ right: 0; top: 0;
67
+ background-position: -7px 0;
67
68
  }
68
69
 
69
70
  .default .textcontrol_sw {
70
- left: 0px; bottom: 0px;
71
- background-position: 0px -7px;
71
+ left: 0; bottom: 0;
72
+ background-position: 0 -7px;
72
73
  }
73
74
 
74
75
  .default .textcontrol_se {
75
- right: 0px; bottom: 0px;
76
+ right: 0; bottom: 0;
76
77
  background-position: -7px -7px;
77
78
  }
78
79
 
@@ -88,13 +89,13 @@
88
89
  }
89
90
 
90
91
  .default .textcontrol_w {
91
- left: 0px;
92
- background-position: 0px 0px;
92
+ left: 0;
93
+ background-position: 0 0;
93
94
  }
94
95
 
95
96
  .default .textcontrol_e {
96
- right: 0px;
97
- background-position: -7px 0px;
97
+ right: 0;
98
+ background-position: -7px 0;
98
99
  }
99
100
 
100
101
 
@@ -109,13 +110,13 @@
109
110
  }
110
111
 
111
112
  .default .textcontrol_n {
112
- top: 0px;
113
- background-position: 0px 0px;
113
+ top: 0;
114
+ background-position: 0 0;
114
115
  }
115
116
 
116
117
  .default .textcontrol_s {
117
- bottom: 0px;
118
- background-position: 0px -7px;
118
+ bottom: 0;
119
+ background-position: 0 -7px;
119
120
  }
120
121
 
121
122