<?xml version="1.0" encoding="UTF-8" ?> | |
<!-- | |
Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (the | |
"License"); you may not use this file except in compliance | |
with the License. You may obtain a copy of the License at | |
http://www.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. | |
--> | |
<library> | |
<class name="chatBarMenu" extends="view" width="${ parent.width }" x="0" | |
height="20" layout="axis:x;spacing:1;inset:2" bgcolor="$once{ canvas.getThemeColor('baseMousecolorizer') }"> | |
<attribute name="staticwidth" type="number" value="120" /> | |
<attribute name="currentBtn" value="null" /> | |
<event name="onRemoveWindow" /> | |
<method name="getCurrentSize"> | |
<![CDATA[ | |
if ( ((this.subviews.length+1)*(this.staticwidth+1)) <= this.width) { | |
return this.staticwidth; | |
} else { | |
var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length+1)); | |
for (var i=0;i<this.subviews.length;i++) { | |
this.subviews[i].setAttribute('width',newwidth); | |
} | |
return newwidth; | |
} | |
]]> | |
</method> | |
<handler name="onwidth"> | |
<![CDATA[ | |
if ( ((this.subviews.length)*(this.staticwidth+1)) <= this.width) { | |
for (var i=0;i<this.subviews.length;i++) { | |
this.subviews[i].setAttribute('width',this.staticwidth); | |
} | |
} else { | |
var newwidth = Math.round((this.width-this.subviews.length)/(this.subviews.length)); | |
for (var i=0;i<this.subviews.length;i++) { | |
this.subviews[i].setAttribute('width',newwidth); | |
} | |
} | |
]]> | |
</handler> | |
<method name="removeObject" args="btn"> | |
this.removeObjectSynced(btn); | |
if ($debug) Debug.write("removeObject :: ",btn); | |
this.onRemoveWindow.sendEvent(btn.objRef.refObj.publicSID); | |
</method> | |
<method name="removeObjectSynced" args="btn"> | |
var removeCurrent = false; | |
if (this.currentBtn == btn){ | |
removeCurrent = true; | |
} | |
btn.objRef.destroy(); | |
btn.destroy(); | |
if (this.subviews.length != 0) { | |
if (removeCurrent) { | |
this.sendActiveWindowSynced(this.subviews[this.subviews.length-1]); | |
} | |
} | |
</method> | |
<method name="sendActiveWindow" args="btn,win"> | |
if ($debug) Debug.write("sendActiveWindow: ", btn, win); | |
this.sendActiveWindowSynced(btn); | |
</method> | |
<method name="sendActiveWindowSynced" args="btn"> | |
<![CDATA[ | |
if (this.currentBtn != null){ | |
this.currentBtn.isactive=false; | |
this.currentBtn.objRef.setAttribute("visibility", "hidden"); | |
if ($debug) Debug.write("sendActiveWindow1: ",this.currentBtn); | |
this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden'); | |
this.currentBtn._minimizebtn_dn.setAttribute('visibility','hidden'); | |
} | |
this.currentBtn = btn; | |
this.currentBtn.objRef.setAttribute("visibility","visible"); | |
this.currentBtn.objRef.bringToFront(); | |
if ($debug) //Debug.write("sendActiveWindow2: ",this.currentBtn); | |
this.currentBtn._minimizebtn_mo.setAttribute('visibility','hidden'); | |
this.currentBtn._minimizebtn_dn.setAttribute('visibility','visible'); | |
this.currentBtn.isactive=true; | |
this.currentBtn.objRef.sendActiveWindow(); | |
]]> | |
</method> | |
</class> | |
</library> |