Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
10 lines
No EOL
1.6 KiB
JavaScript
10 lines
No EOL
1.6 KiB
JavaScript
|
|
var STKHelper={getIconCanvas:function(mozStkIcon){if(!mozStkIcon||!mozStkIcon.pixels||!mozStkIcon.width||!mozStkIcon.height){return null;}
|
|
if(mozStkIcon.pixels.length<(mozStkIcon.width*mozStkIcon.height)){console.error('Not enough pixels for the required dimension: '+
|
|
mozStkIcon.width+'x'+mozStkIcon.height);return null;}
|
|
if(!mozStkIcon.codingScheme){mozStkIcon.codingScheme='basic';}
|
|
var canvas=document.createElement('canvas');canvas.setAttribute('width',mozStkIcon.width);canvas.setAttribute('height',mozStkIcon.height);var ctx=canvas.getContext('2d',{willReadFrequently:true});var imageData=ctx.createImageData(mozStkIcon.width,mozStkIcon.height);var pixel=0,pos=0;var data=imageData.data;for(var y=0;y<mozStkIcon.height;y++){for(var x=0;x<mozStkIcon.width;x++){data[pos++]=(mozStkIcon.pixels[pixel]&0xFF000000)>>>24;data[pos++]=(mozStkIcon.pixels[pixel]&0xFF0000)>>>16;data[pos++]=(mozStkIcon.pixels[pixel]&0xFF00)>>>8;data[pos++]=(mozStkIcon.pixels[pixel]&0xFF);pixel++;}}
|
|
ctx.putImageData(imageData,0,0);return canvas;},getMessageText:function(stkMessage,defaultMsgL10nId,defaultMsgL10nArgs){if(this.isIconSelfExplanatory(stkMessage)){return{raw:''};}
|
|
var text;if(stkMessage==='string'||stkMessage instanceof String){text=stkMessage;}else{text=stkMessage?stkMessage.text:'';}
|
|
if(!text&&defaultMsgL10nId){return{id:defaultMsgL10nId,args:defaultMsgL10nArgs};}
|
|
return{raw:text};},isIconSelfExplanatory:function(stkMessage){return(stkMessage&&stkMessage.icons&&stkMessage.iconSelfExplanatory);},getFirstIconRawData:function(stkItem){return stkItem.icons&&stkItem.icons.length>0?stkItem.icons[0]:null;}}; |