Changeset 81

Show
Ignore:
Timestamp:
08/12/08 06:29:55 (4 months ago)
Author:
bi..@lilyapp.org
Message:

adding a help for slider and fixing a couple of bugs in slider

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lily/lily/chrome/content/externals/slider.js

    r80 r81  
    3333{ 
    3434         
    35         /* 
    36          
    37         //args passed to the constructor to init the slider 
    38         //also editable using the inspector 
    39         var argsArr=LilyUtils.splitArgs(args); 
    40         this.args=args; 
    41                  
    42         //init from args 
    43         this.rangeStart=(argsArr.length>=2&&typeof argsArr[0]!="undefined")?parseInt(argsArr[0]):1; //slider range 
    44         this.rangeEnd=(argsArr.length>=2&&typeof argsArr[1]!="undefined")?parseInt(argsArr[1]):20; //slider range 
    45         this.orientation=(argsArr.length==3&&typeof argsArr[2]!="undefined")?argsArr[2]:"horizontal"; //slider orientation 
    46          
    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 inspector 
    52         //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 saved 
    61         this.saveInspectorValues=function(vals) { 
    62                  
    63                 //update the local properties 
    64                 for(var x in vals) 
    65                         if(x=="orientation") 
    66                                 thisPtr[x]=vals[x]; 
    67                         else 
    68                                 thisPtr[x]=parseInt(vals[x]); 
    69                          
    70                 //update the arg str 
    71                 this.args=""+vals["rangeStart"]+" "+vals["rangeEnd"]+" "+vals["orientation"];    
    72                          
    73                 //reload the frame & start over with the new values 
    74                 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          
    8635        var thisPtr=this; 
    8736         
     
    9039        var argsArr=LilyUtils.splitArgs(args); 
    9140        this.args=args;  
     41         
     42        var on_change_value = 0; 
    9243                         
    9344        var bgcolor=argsArr[0]||this.color; 
     
    11970        this.args=args;  
    12071        this.allowFont=false; //dont allow font changes 
    121          
    122         var timeout = 0; //for set timeout ids 
    12372         
    12473        this.inlet1 = new this.inletClass("inlet1",this,"\"set\" sets & positions slider");              
     
    195144         
    196145        function handleMouseMove(e) { 
    197                  
    198                 clearTimeout(timeout); 
    199                          
     146                                         
    200147                if(thisPtr.orientation == "vertical") { 
    201148                        var val = (parseInt(e.clientY)-parseInt(thisPtr.top))-parseInt(handleOffset); 
     
    220167                } 
    221168                 
    222                 timeout = setTimeout(function(){ 
    223                         doOutputOnComplete(val); 
    224                 },250); 
     169                on_change_value = val; 
     170                 
    225171        } 
    226172         
     
    228174                thisPtr.controller.patchController.removePatchObserver(thisPtr.createElID("slider"),"mouseup",handleMouseUpFunc,"performance");          
    229175                thisPtr.controller.patchController.removePatchObserver(thisPtr.createElID("slider"),"mousemove",handleMouseMove,"performance");                  
     176                doOutputOnComplete(on_change_value); 
    230177        } 
    231178         
     
    244191                        if(tmp<=0) { 
    245192                                handle.style.top = (0)+"px"; 
    246                                 thisPtr.outlet1.doOutlet(0);                                   
     193                                thisPtr.outlet2.doOutlet(0);                                   
    247194                        } else if(tmp+handleOffset>=maxY) { 
    248195                                handle.style.top = (maxY-handleOffset)+"px"; 
    249                                 thisPtr.outlet1.doOutlet(thisPtr.rangeEnd);                            
     196                                thisPtr.outlet2.doOutlet(thisPtr.rangeEnd);                            
    250197                        } else { 
    251198                                handle.style.top = (tmp)+"px"; 
    252                                 thisPtr.outlet1.doOutlet(parseInt(val));                               
     199                                thisPtr.outlet2.doOutlet(parseInt(val));                               
    253200                        }                        
    254201                } else { 
     
    256203                        if(tmp<=0) { 
    257204                                handle.style.left = (0-horizOffset)+"px"; 
    258                                 thisPtr.outlet1.doOutlet(0);                                   
     205                                thisPtr.outlet2.doOutlet(0);                                   
    259206                        } else if(tmp+handleOffset>=maxX) { 
    260207                                handle.style.left = (maxX-handleOffset-horizOffset)+"px"; 
    261                                 thisPtr.outlet1.doOutlet(thisPtr.rangeEnd);                            
     208                                thisPtr.outlet2.doOutlet(thisPtr.rangeEnd);                            
    262209                        } else { 
    263210                                handle.style.left = (tmp-horizOffset)+"px"; 
    264                                 thisPtr.outlet1.doOutlet(parseInt(val));                               
     211                                thisPtr.outlet2.doOutlet(parseInt(val));                               
    265212                        } 
    266213                }