Lively Kernel canvas
// this script is evaluated on world load
LivelyKernel-Clock121234567891011121234567891011121234567891011Examples.js:ClockMorph:--all--http://lively-kernel.org/repository/webwerkstatt/lively/codebaselocalBase.js(notparsed)bindings.js(notparsed)CanvasExpt.js(notparsed)ChangeSet.js(notparsed)Connector.js(notparsed)Contributions.js(notparsed)Core.js(notparsed)Data.js(notparsed)defaultconfig.js(notparsed)demofx.js(notparsed)EmuDom.js(notparsed)Examples.jsFabrik.js(notparsed)FileUploadWidget.js(notparsed)Graffle.js(notparsed)GridLayout.js(notparsed)Helper.js(notparsed)ide.js(notparsed)JSON.js(notparsed)LayerableMorphs.js(notparsed)lk-js-parser.ometa(notparsed)LKFileParser.js(notparsed)LKFileParser.ometa(notparsed)LKWiki.js(notparsed)Localcodelocalconfig.js(notparsed)Main.js(notparsed)miniprototype.js(notparsed)Network.js(notparsed)obsolete.js(notparsed)Ometa.js(notparsed)phone.js(notparsed)Presentation.js(notparsed)rhino-compat.js(notparsed)scene.js(notparsed)simpleMain.js(notparsed)SmalltalkParser.js(notparsed)SmalltalkParser.ometa(notparsed)SmalltalkParserSupport.js(notparsed)SpellChecker.js(notparsed)Storage.js(notparsed)Styles.js(notparsed)SyntaxHighlighting.js(notparsed)TabCompletion.js(notparsed)TestFramework.js(notparsed)TestRunnerExtensions.js(notparsed)Text.js(notparsed)TileScripting.js(notparsed)Tools.js(notparsed)TouchSupport.js(notparsed)Undo.js(notparsed)WebPIM.js(notparsed)Widgets.js(notparsed)WikiParser.js(notparsed)WikiParser.ometa(notparsed)WikiWidget.js(notparsed)TestWidgetClockMorphSymmetryMorphPianoKeyboardFeedWidgetSquiggleMorphWeatherWidgetStockWidgetEngineMorphAnimMorphPlayerMorphlively.Examples.Sun3DMorphlively.Examples.asteroids.GameMorphlively.Examples.canvascape.MiniMapMorphlively.Examples.canvascape.CanvasScapeMorph--all--defaultcategoryopenForDragAndDrop(proto)styleClass(proto)initialize(proto)makeNewFace(proto)angleForHour(proto)reshape(proto)startSteppingScripts(proto)setHands(proto)Morph.subclass("ClockMorph",{openForDragAndDrop:false,styleClass:['clock','raisedBorder'],initialize:function($super,position,radius,timeZoneOffset,hour12or24,roman){$super(newlively.scene.Ellipse(position,radius));this.applyLinkedStyles();this.timeZoneOffset=timeZoneOffset||(-1*newDate().getTimezoneOffset()/60)-1;this.nHours=hour12or24||12this.makeNewFace(roman);//Roman},makeNewFace:function(useRoman){this.removeAllMorphs();varbnds=this.innerBounds();varradius=bnds.width/2;varfontSize=(this.nHours==12)?(useRoman?8:9):6;for(vari=0;i<this.nHours;i++){varlabelPosition=bnds.center().addXY(0,-1).addPt(Point.polar(radius*0.85,(this.angleForHour(i))));varlabelNo=(i==0&&(this.nHours==12||useRoman))?this.nHours:i;varlabel=(useRoman&&this.nHours==12)?["XII","I","II","III","IV","V","VI","VII","VIII","IX","X","XI"][i]:labelNo.toString();this.addMorph(TextMorph.makeLabel(label,{fontSize:fontSize}).centerAt(labelPosition));}this.hours=this.addMorph(Morph.makePolygon([pt(-2.5,0),pt(0,-radius*0.50),pt(2.5,0)],0,null,Color.blue));this.minutes=this.addMorph(Morph.makePolygon([pt(-2,0),pt(0,-radius*0.70),pt(2,0)],0,null,Color.blue));this.seconds=this.addMorph(Morph.makePolygon([pt(-1.5,radius*0.25),pt(0,-radius*0.85),pt(1.5,radius*0.25)],0,null,Color.red));this.dot=this.addMorph(Morph.makeCircle(pt(0,0),3,0,null,Color.red));this.setHands();this.changed();},angleForHour:function(hr){varangle12=(this.nHours==12)?-0.25:0.25;//Offsetof12oclockfromzerodegrees(east)return(hr/this.nHours+angle12)*Math.PI*2;},reshape:Functions.Null,startSteppingScripts:function(){this.startStepping(1000,"setHands");//oncepersecond},setHands:function(){vartimeNow=newDate();varoffset=Number(this.timeZoneOffset)+1;offset+=(this.nHours==12)?3:6;//compensateforangleof12varsecond=timeNow.getUTCSeconds();varminute=timeNow.getUTCMinutes()+second/60;varhour=timeNow.getUTCHours()+offset+minute/60;this.hours.setRotation(this.angleForHour(hour));this.minutes.setRotation(minute/60*2*Math.PI);this.seconds.setRotation(second/60*2*Math.PI);}});AddmoduleLoadallLineNoRefreshEvalonSortViewas...Wikicontrol