275 lines
9.1 KiB
HTML
275 lines
9.1 KiB
HTML
<html dir="rtl">
|
|
<head>
|
|
<title>Testing textpath</title>
|
|
<style type="text/css">
|
|
@import "../../../../../dojo/resources/dojo.css";
|
|
@import "../../../../../dijit/tests/css/dijitTests.css";
|
|
</style>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<!-- SVGWEB { -->
|
|
<meta name="svg.render.forceflash" content="true"/>
|
|
<script src="../../svgweb/svgweb/src/svg.js" data-path="../../svgweb/svgweb/src"></script>
|
|
<script src="../../../../../dojo/dojo.js" djConfig="isDebug:true,forceGfxRenderer:'svg'" type="text/javascript"></script>
|
|
<!-- } -->
|
|
<script type="text/javascript">
|
|
|
|
dojo.require("dojox.gfx");
|
|
dojo.require("dojox.gfx._gfxBidiSupport");
|
|
dojo.require("doh.runner");
|
|
|
|
var CPD = 30, tp1, tp2, tp3, tp4, tp5, tp6, t1, t2, t3, t4, t5, t6;
|
|
var g1 = null, g2 = null, g3, g4;
|
|
|
|
var surfaceLTR = null, surfaceRTL = null, surfaceAUTO = null;
|
|
|
|
var placeAnchor = function(surface, x, y){
|
|
surface.createLine({x1: x - 2, y1: y, x2: x + 2, y2: y});
|
|
surface.createLine({x1: x, y1: y - 2, x2: x, y2: y + 2});
|
|
};
|
|
|
|
var makeText = function(surface, text, font, fill, stroke){
|
|
var t = surface.createText(text);
|
|
if(font) t.setFont(font);
|
|
if(fill) t.setFill(fill);
|
|
if(stroke) t.setStroke(stroke);
|
|
placeAnchor(surface, text.x, text.y);
|
|
return t;
|
|
};
|
|
|
|
var makeShapes = function(){
|
|
var m = dojox.gfx.matrix;
|
|
surfaceLTR = dojox.gfx.createSurface("testLTR", 500, 170, "ltr");
|
|
console.debug("surfaceLTR created");
|
|
|
|
surfaceLTR.whenLoaded(function() {
|
|
var p = surfaceLTR.createPath({})
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 0, 0, 50, 0)
|
|
;
|
|
console.debug("p created");
|
|
tp1 = surfaceLTR.createTextPath({
|
|
text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end."
|
|
, align: "start"
|
|
})
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 0, 0, 100, 0)
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("blue")
|
|
;
|
|
console.debug("tp1 created");
|
|
tp2 = surfaceLTR.createTextPath({
|
|
text: "Beginning \u05e1\u05d5\u05e3."
|
|
, align: "start"
|
|
|
|
})
|
|
.moveTo(0, 50)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 0, 0, 100, 0)
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("blue")
|
|
;
|
|
console.debug("tp2 created");
|
|
|
|
g1 = surfaceLTR.createGroup();
|
|
g1.setTextDir("rtl");
|
|
|
|
t1 = makeText(g1, {id: "t1",x: 0, y: 100, text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end."},
|
|
{family: "Times", size: "18pt"}, "black", "blue")
|
|
.setTransform(m.rotategAt(0, 250, 150));
|
|
|
|
t2 = makeText(surfaceLTR, {x: 0, y: 140, text: "Beginning \u05e1\u05d5\u05e3."},
|
|
{family: "Times", size: "18pt"}, "black", "blue")
|
|
.setTransform(m.rotategAt(0, 250, 100));
|
|
|
|
surfaceRTL = dojox.gfx.createSurface("testRTL", 500, 170);
|
|
console.debug("surfaceRTL created");
|
|
|
|
surfaceRTL.whenLoaded(function(){
|
|
var p2 = surfaceRTL.createPath({})
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 0, 0, 100, 0)
|
|
;
|
|
console.debug("p2 created");
|
|
tp3 = surfaceRTL.createTextPath({
|
|
text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end. "
|
|
, align: "start"
|
|
//, rotated: true
|
|
})
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 100 - CPD, 0, 100, 0)
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("red")
|
|
;
|
|
g2 = surfaceRTL.createGroup();
|
|
g2.add(tp3);
|
|
g2.setTextDir("ltr");
|
|
|
|
g3 = g2.createGroup("rtl");
|
|
|
|
g4 = surfaceRTL.createGroup("auto");
|
|
console.debug("tp3 created");
|
|
tp4 = surfaceRTL.createTextPath({
|
|
text: "Beginning \u05e1\u05d5\u05e3."
|
|
, align: "start"
|
|
|
|
//, rotated: true
|
|
})
|
|
//.setShape(p.shape)
|
|
.moveTo(0, 50)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 100 - CPD, 0, 100, 0)
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("red")
|
|
;
|
|
console.debug("tp4 created");
|
|
|
|
t3 = makeText(g3, {id: "t1",x: 0, y: 100, text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end."},
|
|
{family: "Times", size: "18pt"}, "black", "red")
|
|
.setTransform(m.rotategAt(0, 250, 150));
|
|
|
|
t4 = makeText(surfaceRTL, {x: 0, y: 140, text: "Beginning \u05e1\u05d5\u05e3."},
|
|
{family: "Times", size: "18pt"}, "black", "red")
|
|
.setTransform(m.rotategAt(0, 250, 100));
|
|
|
|
surfaceAUTO = dojox.gfx.createSurface("testAUTO", 500, 170,"auto");
|
|
console.debug("surfaceAUTO created");
|
|
|
|
surfaceAUTO.whenLoaded(function() {
|
|
var p3 = surfaceAUTO.createPath({})
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 0, 0, 100, 0)
|
|
;
|
|
console.debug("p3 created");
|
|
|
|
tp5 = surfaceAUTO.createTextPath({
|
|
text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end. "
|
|
, align: "start"
|
|
|
|
//, rotated: true
|
|
})
|
|
//.setShape(p.shape)
|
|
.moveTo(0, 15)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 100 - CPD, 0, 100, 0)
|
|
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("red")
|
|
;
|
|
console.debug("tp5 created");
|
|
tp6 = surfaceAUTO.createTextPath({
|
|
text: "Beginning \u05e1\u05d5\u05e3."
|
|
, align: "start"
|
|
|
|
//, rotated: true
|
|
})
|
|
//.setShape(p.shape)
|
|
.moveTo(0, 50)
|
|
.setAbsoluteMode(false)
|
|
.curveTo(CPD, 0, 100 - CPD, 0, 100, 0)
|
|
.setFont({family: "times", size: "12pt"})
|
|
.setFill("blue")
|
|
;
|
|
console.debug("tp6 created");
|
|
|
|
t5 = makeText(surfaceAUTO, {id: "t1",x: 0, y: 100, text: "\u05d4\u05ea\u05d7\u05dc\u05d4 end."},
|
|
{family: "Times", size: "18pt"}, "black", "red")
|
|
.setTransform(m.rotategAt(0, 250, 150));
|
|
|
|
t6 = makeText(surfaceAUTO, {x: 0, y: 140, text: "Beginning \u05e1\u05d5\u05e3."},
|
|
{family: "Times", size: "18pt"}, "black", "blue")
|
|
.setTransform(m.rotategAt(0, 250, 100));
|
|
|
|
runTests();
|
|
});
|
|
});
|
|
});
|
|
};
|
|
|
|
function runTests(){
|
|
doh.register("Test inheritance", [
|
|
function surfaces_TextDir(){
|
|
doh.is("ltr", surfaceLTR.getTextDir(), "surfaceLTR.getTextDir");
|
|
doh.is("rtl", surfaceRTL.getTextDir(), "surfaceRTL.getTextDir");
|
|
doh.is("auto", surfaceAUTO.getTextDir(), "surfaceAUTO.getTextDir");
|
|
},
|
|
function groups_TextDir(){
|
|
doh.is("rtl", g1.getTextDir(), "g1.getTextDir");
|
|
doh.is("ltr", g2.getTextDir(), "g2.getTextDir");
|
|
doh.is("rtl", g3.getTextDir(), "g3.getTextDir");
|
|
doh.is("auto", g4.getTextDir(), "g4.getTextDir");
|
|
},
|
|
function gfxText_TextDir(){
|
|
doh.is("rtl", t1.textDir, "t1.getTextDir");
|
|
doh.is("ltr", t2.textDir, "t2.getTextDir");
|
|
doh.is("rtl", t3.textDir, "t3.getTextDir");
|
|
doh.is("rtl", t4.textDir, "t4.getTextDir");
|
|
doh.is("auto", t5.textDir, "t5.getTextDir");
|
|
doh.is("auto", t6.textDir, "t6h.getTextDir");
|
|
},
|
|
function gfxTextPath_TextDir(){
|
|
doh.is("ltr", tp1.textDir, "tp1.getTextDir");
|
|
doh.is("ltr", tp2.textDir, "tp2.getTextDir");
|
|
doh.is("ltr", tp3.textDir, "tp3.getTextDir");
|
|
doh.is("rtl", tp4.textDir, "tp4.getTextDir");
|
|
doh.is("auto", tp5.textDir, "tp5.getTextDir");
|
|
doh.is("auto", tp6.textDir, "tp6.getTextDir");
|
|
},
|
|
function changeSurfaceRTLextDir(){
|
|
surfaceRTL.setTextDir("ltr");
|
|
|
|
doh.is("ltr", surfaceRTL.getTextDir(), "surfaceRTL.getTextDir");
|
|
|
|
doh.is("ltr", g2.getTextDir(), "g2.getTextDir");
|
|
doh.is("ltr", g3.getTextDir(), "g3.getTextDir");
|
|
doh.is("ltr", g4.getTextDir(), "g4.getTextDir");
|
|
|
|
|
|
doh.is("ltr", t3.textDir, "t3.getTextDir");
|
|
doh.is("ltr", t4.textDir, "t4.getTextDir");
|
|
|
|
doh.is("ltr", tp3.textDir, "tp3.getTextDir");
|
|
doh.is("ltr", tp4.textDir, "tp4.getTextDir");
|
|
},
|
|
function changeGroupTextDir(){
|
|
|
|
g3.add(tp5);
|
|
g3.add(t2);
|
|
|
|
g2.setTextDir("rtl");
|
|
|
|
doh.is("rtl", g2.getTextDir(), "g2.getTextDir");
|
|
// son of g2
|
|
doh.is("rtl", g3.getTextDir(), "g3.getTextDir");
|
|
|
|
doh.is("rtl", t2.textDir, "t2.getTextDir");
|
|
doh.is("rtl", t3.textDir, "t3.getTextDir");
|
|
|
|
doh.is("rtl", tp5.textDir, "tp3.getTextDir");
|
|
}
|
|
]);
|
|
|
|
doh.run();
|
|
}
|
|
|
|
dojo.addOnLoad(makeShapes);
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<h1>dojox.gfx Text on a Path test</h1>
|
|
<h2>LTR TextPath and Text first two are TextPath and two others are Text</h2>
|
|
<div id="testLTR" style="width: 500px;"></div>
|
|
<h2>RTL Text Path and Text first two are TextPath and two others are Text</h2>
|
|
<div id="testRTL" style="width: 500px;"></div>
|
|
<h2>AUTO Text Path and Text first two are TextPath and two others are Text</h2>
|
|
<div id="testAUTO" style="width: 500px;"></div>
|
|
|
|
<p>That's all Folks!</p>
|
|
</body>
|
|
</html>
|