rsence-pre 3.0.0.5 → 3.0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/client/conf/client_pkg.yaml +8 -8
- data/client/js/chat/speech_bubble/themes/default/speech_bubble.css +3 -3
- data/client/js/controls/button/button.coffee +45 -0
- data/client/js/controls/button/themes/default/button.css +39 -72
- data/client/js/controls/button/themes/default/button.html +14 -4
- data/client/js/controls/checkbox/checkbox.js +9 -8
- data/client/js/controls/checkbox/themes/default/checkbox.css +1 -1
- data/client/js/controls/checkbox/themes/default/checkbox.html +1 -0
- data/client/js/controls/clickbutton/clickbutton.coffee +44 -0
- data/client/js/controls/onoffbutton/themes/default/onoffbutton.css +20 -19
- data/client/js/controls/onoffbutton/themes/default/onoffbutton.html +1 -4
- data/client/js/controls/radiobutton/themes/default/radiobutton.css +1 -1
- data/client/js/controls/radiobutton/themes/default/radiobutton.html +1 -0
- data/client/js/controls/searchfield/searchfield.coffee +1 -1
- data/client/js/controls/searchfield/themes/default/searchfield.css +1 -1
- data/client/js/controls/stringview/themes/default/stringview.css +1 -1
- data/client/js/controls/tab/tab.js +17 -17
- data/client/js/controls/tab/themes/default/tab.css +16 -16
- data/client/js/controls/tab/themes/default/tab.html +1 -1
- data/client/js/controls/textarea/textarea.js +1 -1
- data/client/js/controls/textarea/themes/default/textarea.css +1 -1
- data/client/js/controls/textcontrol/themes/default/textcontrol.css +1 -2
- data/client/js/controls/uploader/themes/default/uploader.css +10 -62
- data/client/js/controls/uploader/themes/default/uploader.html +31 -25
- data/client/js/controls/uploader/uploader.coffee +10 -7
- data/client/js/controls/window/themes/default/window.css +2 -4
- data/client/js/core/elem/elem.coffee +4 -4
- data/client/js/core/event/event.js +11 -11
- data/client/js/datetime/calendar/themes/default/calendar.css +3 -3
- data/client/js/foundation/eventmanager/eventmanager.coffee +44 -1
- data/client/js/foundation/thememanager/thememanager.coffee +30 -17
- data/client/js/foundation/view/view.js +194 -192
- data/client/js/menus/menuitem/themes/default/menuitem.css +1 -1
- data/client/js/menus/minimenu/themes/default/minimenu.css +1 -1
- data/client/js/menus/minimenuitem/themes/default/minimenuitem.css +1 -1
- data/client/js/menus/popupmenu/themes/default/popupmenu.css +1 -1
- data/plugins/client_pkg/lib/client_pkg_build.rb +54 -53
- data/plugins/main/tmpl/index.html +1 -1
- metadata +4 -5
- data/client/js/controls/button/button.js +0 -78
- data/client/js/controls/button/themes/default/button_parts1.png +0 -0
- data/client/js/foundation/view/markupview/markupview.js +0 -95
@@ -1,7 +1,7 @@
|
|
1
1
|
/* tab bar */
|
2
2
|
.tab_label {
|
3
3
|
position: absolute;
|
4
|
-
top:
|
4
|
+
top: 0; left: 0; right: 0; height: 24px;
|
5
5
|
cursor: pointer;
|
6
6
|
}
|
7
7
|
|
@@ -9,7 +9,7 @@
|
|
9
9
|
.tab_label .item_fg,
|
10
10
|
.tab_label .item_bg {
|
11
11
|
position: absolute;
|
12
|
-
top:
|
12
|
+
top: 0; height: 24px;
|
13
13
|
background-repeat: repeat-x;
|
14
14
|
}
|
15
15
|
.tab_label,
|
@@ -22,33 +22,33 @@
|
|
22
22
|
}
|
23
23
|
.tab_label_fill_bg {
|
24
24
|
position: absolute;
|
25
|
-
top:
|
26
|
-
background-position:
|
25
|
+
top: 0; left: 0; right: 0; height: 24px;
|
26
|
+
background-position: 0 -96px;
|
27
27
|
background-repeat: repeat-x;
|
28
28
|
}
|
29
29
|
|
30
30
|
.tab_label .edge_left {
|
31
31
|
position: absolute;
|
32
|
-
top:
|
33
|
-
background-position:
|
32
|
+
top: 0; left: 0; width: 12px; height: 24px;
|
33
|
+
background-position: 0 0;
|
34
34
|
}
|
35
35
|
.tab_label .item_bg .edge_left {
|
36
|
-
background-position: -24px
|
36
|
+
background-position: -24px 0;
|
37
37
|
}
|
38
38
|
|
39
39
|
.tab_label .edge_right {
|
40
40
|
position: absolute;
|
41
|
-
top:
|
42
|
-
background-position: -12px
|
41
|
+
top: 0; right: 0; width: 9px; height: 24px;
|
42
|
+
background-position: -12px 0;
|
43
43
|
}
|
44
44
|
.tab_label .item_bg .edge_right {
|
45
|
-
background-position: -36px
|
45
|
+
background-position: -36px 0;
|
46
46
|
}
|
47
47
|
|
48
48
|
.tab_label .tablabel {
|
49
49
|
position: absolute;
|
50
|
-
top:
|
51
|
-
background-position:
|
50
|
+
top: 0; left: 12px; right: 9px; height: 24px;
|
51
|
+
background-position: 0 -24px;
|
52
52
|
background-repeat: repeat-x;
|
53
53
|
vertical-align: middle;
|
54
54
|
text-align: center;
|
@@ -56,24 +56,24 @@
|
|
56
56
|
line-height: 26px;
|
57
57
|
overflow: hidden;
|
58
58
|
text-align: center; vertical-align: middle;
|
59
|
-
font-family: Arial, sans-serif;
|
59
|
+
font-family: Helvetica, Arial, sans-serif;
|
60
60
|
font-size: 12px; font-weight: bold;
|
61
61
|
color: #333;
|
62
62
|
}
|
63
63
|
.tab_label .item_bg .tablabel {
|
64
|
-
background-position:
|
64
|
+
background-position: 0 -48px;
|
65
65
|
color: #666;
|
66
66
|
}
|
67
67
|
|
68
68
|
.tab_bg {
|
69
69
|
position: absolute;
|
70
|
-
top: 24px; left:
|
70
|
+
top: 24px; left: 0; right: 0; bottom: 0;
|
71
71
|
border-radius: 0 0 3px 3px;
|
72
72
|
background-image: #{this.getCssFilePath('tab_border_pattern.png')};
|
73
73
|
}
|
74
74
|
.tab_fg {
|
75
75
|
position: absolute;
|
76
|
-
top:
|
76
|
+
top: 0; left: 1px; right: 1px; bottom: 1px;
|
77
77
|
border-radius: 0 0 3px 3px;
|
78
78
|
background-image: #{this.getCssFilePath('tab_bg_color.png')};
|
79
79
|
}
|
@@ -3,4 +3,4 @@
|
|
3
3
|
</div>
|
4
4
|
<div class="tab_label" id="label]I["></div>
|
5
5
|
<div class="tab_label_fill_bg" id="state]I["></div>
|
6
|
-
${this.tabLabelLeftEdge=12;this.tabLabelRightEdge=9;this.tabLabelHeight=24;this.fontStyle='font-family:Arial,sans-serif;font-size:12px;font-weight:bold;';this.tabLabelFillBg=true;}
|
6
|
+
${this.tabLabelLeftEdge=12;this.tabLabelRightEdge=9;this.tabLabelHeight=24;this.fontStyle='font-family: Helvetica, Arial, sans-serif;font-size:12px;font-weight:bold;';this.tabLabelFillBg=true;}
|
@@ -2,7 +2,7 @@
|
|
2
2
|
.default .textcontrol_input {
|
3
3
|
position: absolute;
|
4
4
|
display: block;
|
5
|
-
font-family: Arial, sans-serif;
|
5
|
+
font-family: Helvetica, Arial, sans-serif;
|
6
6
|
font-size: 13px;
|
7
7
|
color: #000;
|
8
8
|
background-color: transparent;
|
@@ -54,7 +54,6 @@
|
|
54
54
|
|
55
55
|
.default .active>.textcontrol_bg {
|
56
56
|
left: 0; top: 0; right: 0; bottom: 0;
|
57
|
-
-moz-box-shadow: 0 0 3px #333;
|
58
57
|
-webkit-box-shadow: 0 0 3px #333;
|
59
58
|
box-shadow: 0 0 3px #333;
|
60
59
|
}
|
@@ -1,59 +1,44 @@
|
|
1
1
|
.uploader_iframe {
|
2
|
-
visibility: hidden;
|
3
|
-
width: 0px;
|
4
|
-
height: 0px;
|
5
|
-
border-width: 0px;
|
2
|
+
visibility: hidden; width: 0; height: 0; border-width: 0;
|
6
3
|
}
|
7
4
|
|
8
5
|
.uploader_form {
|
9
|
-
visibility: hidden;
|
10
|
-
|
11
|
-
display: block;
|
12
|
-
left: 0px;
|
13
|
-
top: 0px;
|
14
|
-
right: 0px;
|
15
|
-
bottom: 0px;
|
16
|
-
cursor: pointer;
|
6
|
+
visibility: hidden; position: absolute; display: block;
|
7
|
+
left: 0; top: 0; right: 0; bottom: 0; cursor: pointer;
|
17
8
|
}
|
18
9
|
|
19
10
|
.uploader_file_wrap {
|
20
11
|
position: absolute;
|
21
|
-
left: -350px; top:
|
22
|
-
bottom:
|
12
|
+
left: -350px; top: 0;
|
13
|
+
bottom: 0; right: 0;
|
23
14
|
line-height: 200px;
|
24
15
|
font-size: 200px;
|
25
16
|
}
|
26
17
|
|
27
18
|
.uploader_file {
|
28
19
|
position: absolute;
|
29
|
-
right:
|
20
|
+
right: 0; top: 0;
|
30
21
|
display: block;
|
31
22
|
line-height: 200px;
|
32
23
|
font-size: 200px;
|
33
24
|
width: 1000px;
|
34
25
|
height: 200px;
|
35
|
-
|
36
|
-
|
37
|
-
opacity: 0.0;
|
26
|
+
/*filter:alpha(opacity: 0);*/
|
27
|
+
opacity: 0.001;
|
38
28
|
text-align: right;
|
39
29
|
cursor: pointer;
|
40
30
|
z-index: 100;
|
41
31
|
}
|
42
|
-
.uploader_file:hover {
|
43
|
-
background-color: #ff0;
|
44
|
-
}
|
45
32
|
|
46
33
|
.ack_button {
|
47
34
|
visibility: hidden;
|
48
|
-
left: auto; right: 0px; width: 48px;
|
49
35
|
}
|
50
36
|
|
51
37
|
.upload_progress {
|
52
38
|
visibility: hidden;
|
53
39
|
position: absolute;
|
54
|
-
left:
|
55
|
-
|
56
|
-
font-family: Arial, sans-serif;
|
40
|
+
left: 0; top: 0; right: 0; height: 24px;
|
41
|
+
font-family: Helvetica, Arial, sans-serif;
|
57
42
|
line-height: 24px;
|
58
43
|
vertical-align: middle;
|
59
44
|
font-size: 12px;
|
@@ -69,40 +54,3 @@
|
|
69
54
|
right: 0px; top: 4px; width: 16px; height: 16px;
|
70
55
|
background-image: #{this.getCssFilePath('upload_progress.gif')};
|
71
56
|
}
|
72
|
-
|
73
|
-
.disabled > .uploader > .button_control > .button_edge_left {
|
74
|
-
background-position: 0px -144px;
|
75
|
-
}
|
76
|
-
.enabled > .uploader:hover > .button_control > .button_edge_left {
|
77
|
-
background-position: 0px -48px;
|
78
|
-
}
|
79
|
-
.enabled > .uploader:active > .button_control > .button_edge_left {
|
80
|
-
background-position: 0px -96px;
|
81
|
-
}
|
82
|
-
.disabled > .uploader > .button_control > .button_edge_right {
|
83
|
-
background-position: -42px -144px;
|
84
|
-
}
|
85
|
-
.enabled > .uploader:hover > .button_control > .button_edge_right {
|
86
|
-
background-position: -42px -48px;
|
87
|
-
}
|
88
|
-
.enabled > .uploader:active > .button_control > .button_edge_right {
|
89
|
-
background-position: -42px -96px;
|
90
|
-
}
|
91
|
-
.disabled > .uploader > .button_control > .button_center {
|
92
|
-
background-position: 0px -168px;
|
93
|
-
}
|
94
|
-
.enabled > .uploader:hover > .button_control > .button_center {
|
95
|
-
background-position: 0px -72px;
|
96
|
-
}
|
97
|
-
.enabled > .uploader:active > .button_control > .button_center {
|
98
|
-
background-position: 0px -120px;
|
99
|
-
}
|
100
|
-
.disabled > .uploader > .button_control > .button_label {
|
101
|
-
color: #999;
|
102
|
-
}
|
103
|
-
.enabled > .uploader:hover > .button_control > .button_label {
|
104
|
-
color: #000;
|
105
|
-
}
|
106
|
-
.enabled > .uploader:active > .button_control > .button_label {
|
107
|
-
color: #000;
|
108
|
-
}
|
@@ -1,27 +1,33 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
<div
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
<div class="
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
<div class="
|
15
|
-
<
|
16
|
-
<div class="button_center"></div>
|
17
|
-
<div class="button_edge_right"></div>
|
18
|
-
<div class="button_label">#{this.getLocaleString('HUploader.strings.ok')}</div>
|
19
|
-
<div class="button_antiselect"></div>
|
1
|
+
<iframe id="iframe]I[" name="upload_target_]I[" src="/U/iframe_html" class="uploader_iframe"></iframe>
|
2
|
+
<div class="upload_progress" id="upload_progress]I[">
|
3
|
+
<div id="progress_label]I[" class="progress_message">#{this.label}</div>
|
4
|
+
<div id="progress_indicator]I[" class="progress_indicator"></div>
|
5
|
+
</div>
|
6
|
+
<div class="button_control ack_button" id="ack_button]I[" style="left: auto; right: 0; width: 48px;">
|
7
|
+
<div class="button_bg" id="ack_bg]I["></div>
|
8
|
+
<div class="button_label" id="ack_button_label]I[">#{this.getLocaleString('HUploader.strings.ok')}</div>
|
9
|
+
</div>
|
10
|
+
<div class="button_control" id="button]I[">
|
11
|
+
<div class="button_bg" id="bg]I["></div>
|
12
|
+
<div class="button_label" id="button_label]I[">#{this.label}</div>
|
13
|
+
<form id="form]I[" name="upload_form_]I[" enctype="multipart/form-data" method="POST" action="/U/NoUploadKey" target="upload_target_]I[" class="uploader_form">
|
14
|
+
<div class="uploader_file_wrap">
|
15
|
+
<input align="right" id="file]I[" name="file_data" type="file" onchange="HSystem.views[#{this.viewId}].upload();" class="uploader_file" size="1" />
|
20
16
|
</div>
|
21
|
-
<
|
22
|
-
|
23
|
-
<input align="right" id="file#{this.elemId}" name="file_data" type="file" onchange="HSystem.views[#{this.viewId}].upload();" class="uploader_file" size="1" />
|
24
|
-
</div>
|
25
|
-
<input id="value#{this.elemId}" name="value_id" type="hidden" value="NoUploadValue" />
|
26
|
-
</form>
|
17
|
+
<input id="value]I[" name="value_id" type="hidden" value="NoUploadValue" />
|
18
|
+
</form>
|
27
19
|
</div>
|
20
|
+
${#!coffee
|
21
|
+
@themeStyle = ->
|
22
|
+
_labelHeight = (@rect.height-4)+'px'
|
23
|
+
_fontSize = Math.floor(@rect.height*0.5)+'px'
|
24
|
+
for [_key,_value] in [
|
25
|
+
['height',_labelHeight],
|
26
|
+
['lineHeight',_labelHeight],
|
27
|
+
['fontSize',_fontSize] ]
|
28
|
+
for _labelElem in ['progress_label','ack_button_label','button_label']
|
29
|
+
@setStyleOfPart(_labelElem,_key,_value)
|
30
|
+
_radius = Math.floor(@rect.height / 6)+'px'
|
31
|
+
for _bgElem in ['bg','ack_bg']
|
32
|
+
@setStyleOfPart(_bgElem,'borderRadius',_radius)
|
33
|
+
}
|
@@ -22,6 +22,7 @@ HUploader = HControl.extend
|
|
22
22
|
uploadState: false
|
23
23
|
uploadKey: false
|
24
24
|
markupElemNames: [
|
25
|
+
'bg',
|
25
26
|
'form',
|
26
27
|
'file',
|
27
28
|
'iframe',
|
@@ -31,12 +32,14 @@ HUploader = HControl.extend
|
|
31
32
|
'button',
|
32
33
|
'button_label',
|
33
34
|
'value',
|
34
|
-
'ack_button'
|
35
|
+
'ack_button',
|
36
|
+
'ack_bg',
|
37
|
+
'ack_button_label'
|
35
38
|
]
|
36
39
|
|
37
40
|
defaultEvents:
|
38
41
|
click: true
|
39
|
-
|
42
|
+
|
40
43
|
setUploadKey: (_uploadKey, _label)->
|
41
44
|
@setStyleOfPart( 'upload_progress', 'visibility', 'hidden' )
|
42
45
|
@setStyleOfPart( 'progress_indicator', 'visibility', 'hidden' )
|
@@ -47,7 +50,7 @@ HUploader = HControl.extend
|
|
47
50
|
@setAttrOfPart( 'form', 'action', '/U/'+_uploadKey, true )
|
48
51
|
@setAttrOfPart( 'file', 'value', '', true )
|
49
52
|
@uploadKey = _uploadKey
|
50
|
-
|
53
|
+
|
51
54
|
setProgressState: (_state, _label)->
|
52
55
|
@setStyleOfPart( 'upload_progress', 'visibility', 'inherit' )
|
53
56
|
if _state == 3
|
@@ -61,7 +64,7 @@ HUploader = HControl.extend
|
|
61
64
|
@setStyleOfPart( 'form', 'visibility', 'hidden' )
|
62
65
|
if _state == 1
|
63
66
|
@elemOfPart( 'form' ).submit()
|
64
|
-
|
67
|
+
|
65
68
|
setErrorState: (_label)->
|
66
69
|
@setStyleOfPart( 'progress_indicator', 'visibility', 'hidden' )
|
67
70
|
@setStyleOfPart( 'ack_button', 'visibility', 'inherit' )
|
@@ -83,7 +86,7 @@ HUploader = HControl.extend
|
|
83
86
|
@setProgressState( _state, _label )
|
84
87
|
else if _state < 0
|
85
88
|
@setErrorState( _label )
|
86
|
-
|
89
|
+
|
87
90
|
refreshValue: ->
|
88
91
|
return unless typeof @value == 'string'
|
89
92
|
return unless ~@value.indexOf(':::')
|
@@ -95,9 +98,9 @@ HUploader = HControl.extend
|
|
95
98
|
)
|
96
99
|
upload: ->
|
97
100
|
@setValue( '1:::'+@uploadKey )
|
98
|
-
|
101
|
+
|
99
102
|
getNewUploadKey: ->
|
100
103
|
@setValue( '4:::'+@uploadKey )
|
101
|
-
|
104
|
+
|
102
105
|
click: ->
|
103
106
|
@getNewUploadKey() if @uploadState == 3 or @uploadState < 0
|
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
2
|
.window_shadow,
|
3
3
|
.window_titlebar,
|
4
|
-
.window_titlebar_edge_left,
|
4
|
+
.window_titlebar_edge_left,
|
5
5
|
.window_titlebar_center,
|
6
6
|
.window_titlebar_edge_right,
|
7
7
|
.window_bg,
|
@@ -36,13 +36,11 @@
|
|
36
36
|
.window_shadow {
|
37
37
|
left: 4px; right: 4px; top: 4px; bottom: 4px;
|
38
38
|
overflow: visible;
|
39
|
-
-moz-box-shadow: 3px 3px 20px #333, 3px 3px 10px #000;
|
40
39
|
-webkit-box-shadow: 3px 3px 20px #333, 3px 3px 10px #000;
|
41
40
|
box-shadow: 3px 3px 20px #333, 3px 3px 10px #000;
|
42
41
|
}
|
43
42
|
|
44
43
|
.inactive > .window_shadow {
|
45
|
-
-moz-box-shadow: 3px 3px 13px #333;
|
46
44
|
-webkit-box-shadow: 3px 3px 13px #333;
|
47
45
|
box-shadow: 3px 3px 13px #333;
|
48
46
|
}
|
@@ -160,7 +158,7 @@
|
|
160
158
|
line-height: 26px;
|
161
159
|
text-align: center;
|
162
160
|
vertical-align: middle;
|
163
|
-
font-family: Arial, sans-serif;
|
161
|
+
font-family: Helvetica, Arial, sans-serif;
|
164
162
|
font-size: 13px;
|
165
163
|
font-weight: bold;
|
166
164
|
color: #000;
|
@@ -805,7 +805,7 @@ ELEM = HClass.extend
|
|
805
805
|
_key = 'filter'
|
806
806
|
_value = "progid:DXImageTransform.Microsoft.gradient( startColorstr='#{_gradient.start}', endColorstr='#{_gradient.end}',GradientType=0 )"
|
807
807
|
# IE9
|
808
|
-
else if BROWSER_TYPE.ie9 or BROWSER_TYPE.ie10
|
808
|
+
else if BROWSER_TYPE.ie9 # or BROWSER_TYPE.ie10
|
809
809
|
# IE9 SVG, needs conditional override of 'filter' to 'none'
|
810
810
|
# Also static white-shaded svg, needs a svg source to base64 utility
|
811
811
|
_key = 'background'
|
@@ -816,7 +816,7 @@ ELEM = HClass.extend
|
|
816
816
|
for _step in _gradient.steps
|
817
817
|
_svg += """<stop offset="#{_step[0]}%" stop-color="##{_step[1]}" />"""
|
818
818
|
_svg += """<stop offset="100%" stop-color="##{_gradient.end}" />"""
|
819
|
-
_svg += _svgSteps.join('')
|
819
|
+
# _svg += _svgSteps.join('')
|
820
820
|
_svg += '</linearGradient>'
|
821
821
|
_svg += '<rect x="0" y="0" width="1" height="1" fill="url(#gradientie9)" />'
|
822
822
|
_svg += '</svg>'
|
@@ -843,7 +843,7 @@ ELEM = HClass.extend
|
|
843
843
|
else if BROWSER_TYPE.opera
|
844
844
|
_key = 'background'
|
845
845
|
_steps = @_standardGradientSteps(_gradient.start,_gradient.steps,_gradient.end).join(',')
|
846
|
-
_value = "-o-linear-gradient(top, )"
|
846
|
+
_value = "-o-linear-gradient(top, #{_steps})"
|
847
847
|
else
|
848
848
|
# Old browsers
|
849
849
|
_key = 'background'
|
@@ -875,7 +875,7 @@ ELEM = HClass.extend
|
|
875
875
|
_browserType.ie10 = !!~_ua.indexOf('MSIE 10')
|
876
876
|
unless _browserType.ie9
|
877
877
|
@sha = SHA.new(8) # SHA1 needed for IE9/10 SVG base64 encoding
|
878
|
-
_browserType.ie9 = _browserType.ie10 # IE 10 is treated like IE 9
|
878
|
+
# _browserType.ie9 = _browserType.ie10 # IE 10 is treated like IE 9
|
879
879
|
_browserType.mac = !!~_ua.indexOf('Macintosh')
|
880
880
|
_browserType.win = !!~_ua.indexOf('Windows')
|
881
881
|
_browserType.firefox = !!~_ua.indexOf('Firefox')
|
@@ -4,13 +4,13 @@
|
|
4
4
|
***/
|
5
5
|
var//RSence.Core
|
6
6
|
Event = {
|
7
|
-
|
7
|
+
|
8
8
|
/** Returns the element of the event.
|
9
9
|
**/
|
10
10
|
element: function(e) {
|
11
11
|
return e.target || e.srcElement;
|
12
12
|
},
|
13
|
-
|
13
|
+
|
14
14
|
/** Returns the mouse cursor x -coordinate of the event.
|
15
15
|
**/
|
16
16
|
pointerX: function(e) {
|
@@ -35,23 +35,23 @@ Event = {
|
|
35
35
|
e.cancelBubble = true;
|
36
36
|
}
|
37
37
|
},
|
38
|
-
|
38
|
+
|
39
39
|
/** Returns true if the left mouse butten was clicked.
|
40
40
|
**/
|
41
41
|
isLeftClick: function(e) {
|
42
42
|
// IE: left 1, middle 4, right 2
|
43
|
-
if (BROWSER_TYPE.ie && !BROWSER_TYPE.ie9) {
|
43
|
+
if (BROWSER_TYPE.ie && !BROWSER_TYPE.ie9 && !BROWSER_TYPE.ie10) {
|
44
44
|
return (e.button === 1 || e.button === 3 || e.button === 5);
|
45
45
|
}
|
46
46
|
else {
|
47
47
|
return (e.button === 0);
|
48
48
|
}
|
49
49
|
},
|
50
|
-
|
50
|
+
|
51
51
|
/** List of event observers
|
52
52
|
**/
|
53
53
|
observers: false,
|
54
|
-
|
54
|
+
|
55
55
|
/* Implementation of observe */
|
56
56
|
_observeAndCache: function(_elem, _name, _function, _useCapture) {
|
57
57
|
if (!Event.observers) {
|
@@ -66,7 +66,7 @@ Event = {
|
|
66
66
|
_elem.attachEvent("on" + _name, _function);
|
67
67
|
}
|
68
68
|
},
|
69
|
-
|
69
|
+
|
70
70
|
/** Flushes the event observer cache.
|
71
71
|
**/
|
72
72
|
unloadCache: function() {
|
@@ -83,7 +83,7 @@ Event = {
|
|
83
83
|
}
|
84
84
|
Event.observers = false;
|
85
85
|
},
|
86
|
-
|
86
|
+
|
87
87
|
/** Starts observing the named event of the element and
|
88
88
|
* specifies a callback function.
|
89
89
|
**/
|
@@ -92,7 +92,7 @@ Event = {
|
|
92
92
|
Event._observeAndCache(_elem, _name, _function, _useCapture);
|
93
93
|
return _function;
|
94
94
|
},
|
95
|
-
|
95
|
+
|
96
96
|
/** Stops observing the named event of the element and
|
97
97
|
* removes the callback function.
|
98
98
|
**/
|
@@ -120,7 +120,7 @@ Event = {
|
|
120
120
|
}
|
121
121
|
}
|
122
122
|
},
|
123
|
-
|
123
|
+
|
124
124
|
// List of ASCII "special characters":
|
125
125
|
KEY_BACKSPACE: 8,
|
126
126
|
KEY_TAB: 9,
|
@@ -135,7 +135,7 @@ Event = {
|
|
135
135
|
KEY_END: 35,
|
136
136
|
KEY_PAGEUP: 33,
|
137
137
|
KEY_PAGEDOWN: 34
|
138
|
-
|
138
|
+
|
139
139
|
};
|
140
140
|
|
141
141
|
// Activates the garbage collector of Internet Explorer
|
@@ -36,7 +36,7 @@
|
|
36
36
|
position: absolute;
|
37
37
|
top: 0px; left: 20px; right: 20px; height: 20px;
|
38
38
|
color: #000;
|
39
|
-
font-family: Arial, sans-serif;
|
39
|
+
font-family: Helvetica, Arial, sans-serif;
|
40
40
|
font-weight: normal;
|
41
41
|
font-size: 13px;
|
42
42
|
line-height: 20px;
|
@@ -51,7 +51,7 @@
|
|
51
51
|
position: absolute;
|
52
52
|
top: 0px; height: 15px; width: 25px;
|
53
53
|
color: #000;
|
54
|
-
font-family: Arial, sans-serif;
|
54
|
+
font-family: Helvetica, Arial, sans-serif;
|
55
55
|
font-size: 11px;
|
56
56
|
line-height: 16px;
|
57
57
|
vertical-align: middle;
|
@@ -73,7 +73,7 @@
|
|
73
73
|
position: absolute;
|
74
74
|
text-decoration: none;
|
75
75
|
top: 0px;
|
76
|
-
font-family: Arial, sans-serif;
|
76
|
+
font-family: Helvetica, Arial, sans-serif;
|
77
77
|
font-size: 15px;
|
78
78
|
vertical-align: middle;
|
79
79
|
text-align: center;
|
@@ -784,6 +784,40 @@ EventManagerApp = HApplication.extend
|
|
784
784
|
# Remove possible selections.
|
785
785
|
ELEM.get(0).focus()
|
786
786
|
#
|
787
|
+
# Patches IE classes that match css :active with .ieActive classes
|
788
|
+
_ieClassNamePatched: []
|
789
|
+
_ieClassNamePatch: (_viewId)->
|
790
|
+
_elemId = @_views[_viewId].elemId
|
791
|
+
_elem = ELEM.get( _elemId )
|
792
|
+
_ieClassNamePatched = @_ieClassNamePatched
|
793
|
+
_ieClassNames = HThemeManager._ieActiveCssClassMatch
|
794
|
+
_hasClassName = (_elem,_className)->
|
795
|
+
~_elem.className.split(' ').indexOf(_className)
|
796
|
+
_addClassName = (_elem)->
|
797
|
+
_classNames = _elem.className.trim().split(' ')
|
798
|
+
_classNames.push('ieActive')
|
799
|
+
_elem.className = _classNames.join(' ')
|
800
|
+
_ieClassNamePatched.push(_elem)
|
801
|
+
_level = 0
|
802
|
+
_patcher = (_elem)->
|
803
|
+
return if _level > 10
|
804
|
+
for _child in _elem.childNodes
|
805
|
+
for _className in _ieClassNames
|
806
|
+
_addClassName(_elem) if _hasClassName(_elem,_className) and not _hasClassName(_elem,'ieActive')
|
807
|
+
_level += 1
|
808
|
+
_patcher(_child)
|
809
|
+
_level -= 1
|
810
|
+
_patcher(_elem)
|
811
|
+
_ieClassNameUnPatch: ->
|
812
|
+
_ieClassNamePatched = @_ieClassNamePatched
|
813
|
+
@_ieClassNamePatched = []
|
814
|
+
_delClassName = (_elem)->
|
815
|
+
_classNames = _elem.className.split(' ')
|
816
|
+
_classNames.splice( _classNames.indexOf( 'ieActive' ), 1 )
|
817
|
+
_elem.className = _classNames.join(' ')
|
818
|
+
for _elem in _ieClassNamePatched
|
819
|
+
_delClassName(_elem)
|
820
|
+
#
|
787
821
|
# Mouse button press manager. Triggered by the global mouseDown event.
|
788
822
|
# Delegates the following event responder methods to active HControl instances:
|
789
823
|
# - mouseDown
|
@@ -825,6 +859,9 @@ EventManagerApp = HApplication.extend
|
|
825
859
|
_dragged.unshift( _viewId )
|
826
860
|
_stop = true if _ctrl.startDrag( x, y, _leftClick )
|
827
861
|
@_cancelTextSelection() unless _startDragIds.length == 0 and _mouseDownIds.length == 0
|
862
|
+
if BROWSER_TYPE.ie
|
863
|
+
for _viewId in _focused
|
864
|
+
@_ieClassNamePatch(_viewId)
|
828
865
|
Event.stop(e) if _stop
|
829
866
|
#
|
830
867
|
# Mouse button press manager. Triggered by the global mouseDown event.
|
@@ -877,6 +914,7 @@ EventManagerApp = HApplication.extend
|
|
877
914
|
@_listeners.hovered = []
|
878
915
|
@_listeners.dragged = []
|
879
916
|
@_cancelTextSelection() unless _endDragIds.length == 0 and _mouseUpIds.length == 0
|
917
|
+
@_ieClassNameUnPatch() if BROWSER_TYPE.ie and @_ieClassNamePatched.length
|
880
918
|
Event.stop(e) if _stop
|
881
919
|
#
|
882
920
|
# Handles mouse button clicks
|
@@ -1082,11 +1120,16 @@ EventManagerApp = HApplication.extend
|
|
1082
1120
|
return null unless @_listeners.active
|
1083
1121
|
_ctrl = @_views[@_listeners.active[0]]
|
1084
1122
|
return true if _ctrl[_methodName]? and _ctrl[_methodName]()
|
1123
|
+
_stop = null
|
1085
1124
|
for _viewId in _ctrl.parent.views
|
1086
1125
|
continue if _ctrl.viewId == _viewId
|
1087
1126
|
_ctrl = @_views[_viewId]
|
1088
1127
|
if _ctrl[_methodName]?
|
1089
|
-
|
1128
|
+
_stopStatus = _ctrl[_methodName]()
|
1129
|
+
if _stopStatus == false or _stopStatus == true
|
1130
|
+
_stop = _stopStatus unless _stop
|
1131
|
+
if _stop != null
|
1132
|
+
return _stop
|
1090
1133
|
if _ctrl.parent?
|
1091
1134
|
return true if @defaultKey(_methodName,_ctrl.parent)
|
1092
1135
|
return null
|