Changeset 81
- Timestamp:
- 08/12/08 06:29:55 (4 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lily/lily/chrome/content/externals/slider.js
r80 r81 33 33 { 34 34 35 /*36 37 //args passed to the constructor to init the slider38 //also editable using the inspector39 var argsArr=LilyUtils.splitArgs(args);40 this.args=args;41 42 //init from args43 this.rangeStart=(argsArr.length>=2&&typeof argsArr[0]!="undefined")?parseInt(argsArr[0]):1; //slider range44 this.rangeEnd=(argsArr.length>=2&&typeof argsArr[1]!="undefined")?parseInt(argsArr[1]):20; //slider range45 this.orientation=(argsArr.length==3&&typeof argsArr[2]!="undefined")?argsArr[2]:"horizontal"; //slider orientation46 47 this.inlet1 = new this.inletClass("inlet1",this,"\"set\" sets & positions slider");48 this.outlet1 = new this.outletClass("outlet1",this,"float value on slide");49 this.outlet2 = new this.outletClass("outlet2",this,"float value after slide");50 51 //create a config with the params we want to be user editable in the inspector52 //must follow the form- property name, property value, label (for inspector), data type (number,boolean,string)53 this.setInspectorConfig([54 {name:"rangeStart",value:thisPtr.rangeStart,label:"Range Start",type:"number",input:"text"},55 {name:"rangeEnd",value:thisPtr.rangeEnd,label:"Range End",type:"number",input:"text"},56 {name:"orientation",value:thisPtr.orientation,label:"Orientation",type:"string",options:[{label:"Vertical",value:"vertical"},{label:"Horizontal",value:"horizontal"}],input:"radio"}57 ]);58 59 //save the values returned by the inspector- returned in form {valueName:value...}60 //called after the inspector window is saved61 this.saveInspectorValues=function(vals) {62 63 //update the local properties64 for(var x in vals)65 if(x=="orientation")66 thisPtr[x]=vals[x];67 else68 thisPtr[x]=parseInt(vals[x]);69 70 //update the arg str71 this.args=""+vals["rangeStart"]+" "+vals["rangeEnd"]+" "+vals["orientation"];72 73 //reload the frame & start over with the new values74 slider=null;75 iframe.reload();76 thisPtr.controller.cleanupOutletConnections();77 }78 79 this.inlet1["set"]=function(num) {80 slider.setValue(parseInt(num));81 }82 83 84 */85 86 35 var thisPtr=this; 87 36 … … 90 39 var argsArr=LilyUtils.splitArgs(args); 91 40 this.args=args; 41 42 var on_change_value = 0; 92 43 93 44 var bgcolor=argsArr[0]||this.color; … … 119 70 this.args=args; 120 71 this.allowFont=false; //dont allow font changes 121 122 var timeout = 0; //for set timeout ids123 72 124 73 this.inlet1 = new this.inletClass("inlet1",this,"\"set\" sets & positions slider"); … … 195 144 196 145 function handleMouseMove(e) { 197 198 clearTimeout(timeout); 199 146 200 147 if(thisPtr.orientation == "vertical") { 201 148 var val = (parseInt(e.clientY)-parseInt(thisPtr.top))-parseInt(handleOffset); … … 220 167 } 221 168 222 timeout = setTimeout(function(){ 223 doOutputOnComplete(val); 224 },250); 169 on_change_value = val; 170 225 171 } 226 172 … … 228 174 thisPtr.controller.patchController.removePatchObserver(thisPtr.createElID("slider"),"mouseup",handleMouseUpFunc,"performance"); 229 175 thisPtr.controller.patchController.removePatchObserver(thisPtr.createElID("slider"),"mousemove",handleMouseMove,"performance"); 176 doOutputOnComplete(on_change_value); 230 177 } 231 178 … … 244 191 if(tmp<=0) { 245 192 handle.style.top = (0)+"px"; 246 thisPtr.outlet 1.doOutlet(0);193 thisPtr.outlet2.doOutlet(0); 247 194 } else if(tmp+handleOffset>=maxY) { 248 195 handle.style.top = (maxY-handleOffset)+"px"; 249 thisPtr.outlet 1.doOutlet(thisPtr.rangeEnd);196 thisPtr.outlet2.doOutlet(thisPtr.rangeEnd); 250 197 } else { 251 198 handle.style.top = (tmp)+"px"; 252 thisPtr.outlet 1.doOutlet(parseInt(val));199 thisPtr.outlet2.doOutlet(parseInt(val)); 253 200 } 254 201 } else { … … 256 203 if(tmp<=0) { 257 204 handle.style.left = (0-horizOffset)+"px"; 258 thisPtr.outlet 1.doOutlet(0);205 thisPtr.outlet2.doOutlet(0); 259 206 } else if(tmp+handleOffset>=maxX) { 260 207 handle.style.left = (maxX-handleOffset-horizOffset)+"px"; 261 thisPtr.outlet 1.doOutlet(thisPtr.rangeEnd);208 thisPtr.outlet2.doOutlet(thisPtr.rangeEnd); 262 209 } else { 263 210 handle.style.left = (tmp-horizOffset)+"px"; 264 thisPtr.outlet 1.doOutlet(parseInt(val));211 thisPtr.outlet2.doOutlet(parseInt(val)); 265 212 } 266 213 }
