/mozilla/common/deploy |
---|
Property changes: |
Modified: svn:ignore |
meta_local.xml |
+ |
/mozilla/pixeled/trunk/meta.xml |
---|
0,0 → 1,4 |
<meta> |
<xpiName>pixeled.xpi</xpiName> |
</meta> |
/mozilla/pixeled/trunk/src/install.rdf |
---|
0,0 → 1,27 |
<?xml version="1.0"?> |
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
xmlns:em="http://www.mozilla.org/2004/em-rdf#"> |
<Description about="urn:mozilla:install-manifest"> |
<em:id>{e00a6ec9-6ce4-4ab8-a6b1-886dced500c3}</em:id> |
<em:version>1.1</em:version> |
<em:type>2</em:type> |
<!-- firefox --> |
<em:targetApplication> |
<Description> |
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> |
<em:minVersion>3</em:minVersion> |
<em:maxVersion>3.5.*</em:maxVersion> |
</Description> |
</em:targetApplication> |
<em:name>Pixeled</em:name> |
<em:description>Zoom images and whole pages without antialiasing</em:description> |
<em:creator>Anatoli Klassen</em:creator> |
<em:homepageURL>http://www.26th.net/public/projects/mozilla/pixeled/</em:homepageURL> |
<em:updateURL>http://www.26th.net/public/projects/mozilla/pixeled/update.rdf</em:updateURL> |
<em:updateKey>MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD0n3FJvEygIzLWtleG7RQGsW33KlWt2CEKm4cNdyYtos2PXb68ZwMIGDduDeAdv0kg90Y2vnHpEgJwE4O6Ce6bfjxQWNbCWj6UgjRaosuzqKq4+BBwT65hMcIs72K1x3zQde6oNBsnYiEP18Cy7aY26+QA7M/vcOY5Rut66xYcjQIDAQAB</em:updateKey> |
</Description> |
</RDF> |
/mozilla/pixeled/trunk/src/chrome.manifest |
---|
0,0 → 1,2 |
content pixeled chrome/content/ |
overlay chrome://browser/content/browser.xul chrome://pixeled/content/pixeled.xul |
/mozilla/pixeled/trunk/src/chrome/content/display.xul |
---|
0,0 → 1,28 |
<?xml version="1.0"?> |
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> |
<dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" |
xmlns:html="http://www.w3.org/1999/xhtml" |
title="Pixeled" |
buttons="cancel" |
buttonlabelcancel="Close" |
id="Pixeled_Display_dialog" |
persist="screenX screenY width height sizemode" |
> |
<script type="application/x-javascript" src="chrome://pixeled/content/display.js" /> |
<hbox style="overflow:auto"> |
<html:canvas id="originCanvas" style="background:#FFFFFF; padding:0px; margin:0px;"></html:canvas> |
<spacer flex="1" /> |
</hbox> |
<hbox> |
<scale id="scaler" min="1" max="5" pageincrement="1" flex="1" /> |
<label id="scaleLabel" control="scale" /> |
</hbox> |
<hbox flex="1" style="overflow:auto"> |
<html:canvas id="scaledCanvas" style="background:#FFFFFF; padding:0px; margin:0px;"></html:canvas> |
<spacer flex="1" /> |
</hbox> |
</dialog> |
/mozilla/pixeled/trunk/src/chrome/content/display.js |
---|
0,0 → 1,139 |
// ===================================================================================================================== |
var Pixeled_Display = { |
// ----------------------------------------------------------------------------------------------------------------- |
init: function() |
{ |
try { |
var params = window.arguments[0]; |
var k = params.k; |
Pixeled_Display.scaleLabel = document.getElementById("scaleLabel"); |
Pixeled_Display.originCanvas = document.getElementById("originCanvas"); |
Pixeled_Display.scaledCanvas = document.getElementById("scaledCanvas"); |
Pixeled_Display.scaler = document.getElementById("scaler"); |
Pixeled_Display.scaler.value = k; |
Pixeled_Display.scaler.addEventListener('change', Pixeled_Display.onScale, false); |
Pixeled_Display.showOrigin(params.target); |
Pixeled_Display.onScale(null); |
} |
catch(ex) { |
dump("Pixeled_Display.init: " + ex + "\n"); |
} |
}, |
// ----------------------------------------------------------------------------------------------------------------- |
onScale: function(aEvent) |
{ |
try { |
dump(Pixeled_Display.scaler.value + "\n"); |
var k = Pixeled_Display.scaler.value; |
var n = (1 << k); |
Pixeled_Display.scaleLabel.value = ("x" + n); |
Pixeled_Display.showScaled(k); |
} |
catch(ex) { |
dump("Pixeled_Display.onScale: " + ex + "\n"); |
} |
}, |
// ----------------------------------------------------------------------------------------------------------------- |
showOrigin: function(target) |
{ |
dump("showOrigin p1 " + target + "\n"); |
var originWidth; |
var originHeight; |
var isImage = (target instanceof Components.interfaces.nsIImageLoadingContent); |
if(isImage) { |
originWidth = target.naturalWidth; |
originHeight = target.naturalHeight; |
} |
else { |
target = target.ownerDocument.defaultView; |
originWidth = target.innerWidth; |
originHeight = target.innerHeight; |
dump("showOrigin p2 " + target + " " + originWidth + " " + originHeight + "\n"); |
} |
Pixeled_Display.originCanvas.setAttribute("width", originWidth); |
Pixeled_Display.originCanvas.setAttribute("height", originHeight); |
Pixeled_Display.originCanvas.style.display = "none"; |
Pixeled_Display.originCanvas.style.width = originWidth + "px"; |
Pixeled_Display.originCanvas.style.minWidth = originWidth + "px"; |
Pixeled_Display.originCanvas.style.maxWidth = originWidth + "px"; |
Pixeled_Display.originCanvas.style.height = originHeight + "px"; |
Pixeled_Display.originCanvas.style.minHeight = originHeight + "px"; |
Pixeled_Display.originCanvas.style.maxHeight = originHeight + "px"; |
var originContext = Pixeled_Display.originCanvas.getContext("2d"); |
if(isImage) { |
originContext.drawImage(target, 0, 0, originWidth, originHeight); |
} |
else { |
originContext.drawWindow(target, 0, 0, originWidth, originHeight, "rgba(0,0,0,0)"); |
} |
}, |
// ----------------------------------------------------------------------------------------------------------------- |
showScaled: function(k) |
{ |
dump("showScaled p1\n"); |
var n = (1 << k); |
var originWidth = Pixeled_Display.originCanvas.getAttribute("width"); |
var originHeight = Pixeled_Display.originCanvas.getAttribute("height"); |
var scaledWidth = originWidth * n; |
var scaledHeight = originHeight * n; |
dump("showScaled p2 " + originWidth + " " + originHeight + "\n"); |
Pixeled_Display.scaledCanvas.setAttribute("width", scaledWidth); |
Pixeled_Display.scaledCanvas.setAttribute("height", scaledHeight); |
Pixeled_Display.scaledCanvas.style.minWidth = scaledWidth + "px"; |
Pixeled_Display.scaledCanvas.style.maxWidth = scaledWidth + "px"; |
Pixeled_Display.scaledCanvas.style.minHeight = scaledHeight + "px"; |
Pixeled_Display.scaledCanvas.style.maxHeight = scaledHeight + "px"; |
var originContext = Pixeled_Display.originCanvas.getContext("2d"); |
var scaledContext = Pixeled_Display.scaledCanvas.getContext("2d"); |
var originData = originContext.getImageData(0, 0, originWidth, originHeight); |
var scaledData = scaledContext.createImageData(scaledWidth, scaledHeight); |
dump("onLoad p3 " + originData + " " + scaledData + "\n"); |
for(var x = 0; x < originData.width; ++x) { |
for(var y = 0; y < originData.height; ++y) { |
var o = (y * originData.width + x) * 4; |
var r = originData.data[o]; |
var g = originData.data[o+1]; |
var b = originData.data[o+2]; |
var a = originData.data[o+3]; |
var sx = x*n; |
var sy = y*n; |
for(var dx = 0; dx < n; ++dx) { |
for(var dy = 0; dy < n; ++dy) { |
var so = ((sy+dy) * scaledData.width + (sx+dx)) * 4; |
scaledData.data[so] = r; |
scaledData.data[so+1] = g; |
scaledData.data[so+2] = b; |
scaledData.data[so+3] = a; |
} |
} |
} |
} |
dump("showScaled p4 " + scaledData.width + " " + scaledData.height + "\n"); |
scaledContext.putImageData(scaledData, 0, 0); |
dump("showScaled done\n"); |
}, |
}; |
// ===================================================================================================================== |
window.addEventListener('load', Pixeled_Display.init, false); |
/mozilla/pixeled/trunk/src/chrome/content/pixeled.xul |
---|
0,0 → 1,22 |
<?xml version="1.0"?> |
<overlay id="selsearch" |
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> |
<script type="application/x-javascript" src="chrome://pixeled/content/pixeled.js" /> |
<popup id="contentAreaContextMenu"> |
<menu id="context-pixeled-submenu" class="menuitem-iconic" insertbefore="context-sep-copyimage" |
label="Pixeled"> |
<menupopup id="context-selsearch-menupopup"> |
<menuitem label="x2" oncommand="Pixeled.execute(1)" /> |
<menuitem label="x4" oncommand="Pixeled.execute(2)" /> |
<menuitem label="x8" oncommand="Pixeled.execute(3)" /> |
<menuitem label="x16" oncommand="Pixeled.execute(4)" /> |
<menuitem label="x32" oncommand="Pixeled.execute(5)" /> |
</menupopup> |
</menu> |
</popup> |
</overlay> |
/mozilla/pixeled/trunk/src/chrome/content/pixeled.js |
---|
0,0 → 1,38 |
// ===================================================================================================================== |
var Pixeled = { |
// ----------------------------------------------------------------------------------------------------------------- |
init: function() |
{ |
try { |
// override default context menu handler to show our menu if popup on image |
/*var nsContextMenu_initMenu = nsContextMenu.prototype.initMenu; |
nsContextMenu.prototype.initMenu = function CM_initMenu(aPopup, aBrowser) { |
nsContextMenu_initMenu.call(this, aPopup, aBrowser); |
this.showItem("context-pixeled-submenu", this.onImage); |
};*/ |
} |
catch(ex) { |
dump("Pixeled.init: " + ex + "\n"); |
} |
}, |
// ----------------------------------------------------------------------------------------------------------------- |
execute: function(k) |
{ |
try { |
var params = { |
k: k, |
target: gContextMenu.target, |
}; |
window.openDialog("chrome://pixeled/content/display.xul", "", |
"chrome,dialog,resizable=yes", params); |
} |
catch(ex) { |
dump("Pixeled.execute: " + ex + "\n"); |
} |
}, |
}; |
// ===================================================================================================================== |
window.addEventListener('load', Pixeled.init, false); |
/mozilla/pixeled/trunk/bin/deploy.sh |
---|
0,0 → 1,13 |
#!/bin/sh |
project_dir=$(dirname $0)"/.." |
project_dir=$(cd "$project_dir"; pwd) |
common_dir="$project_dir/../../common/deploy" |
if [ ! -d "$common_dir" ] ; then |
echo "Common dir '$common_dir' not found" >> /dev/stderr |
exit 1 |
fi |
. "$common_dir/deploy_subr" |
Property changes: |
Added: svn:executable |
+* |
\ No newline at end of property |