xref: /trunk/test/odf-validate/fixtures/connector-viewbox/make.py (revision 0e16a31d78a652c56c5c0fc79c752f48b9048df9) !
1# usage: runpy.sh fixtures/connector-viewbox/make.py <port> <outdir>   (office saving ODF 1.2 Extended)
2# Connectors of every kind, connected and free, axis-aligned and diagonal, in Draw and Impress.
3import sys, os, uno
4from unohelp import connect, desktop, pv
5from com.sun.star.awt import Size, Point
6from com.sun.star.drawing.ConnectorType import STANDARD, CURVE, LINE, LINES
7
8port, outdir = int(sys.argv[1]), sys.argv[2]
9d = desktop(connect(port))
10
11def build(doc, page):
12    def rect(x, y, w, h):
13        s = doc.createInstance("com.sun.star.drawing.RectangleShape")
14        page.add(s); s.Position = Point(x, y); s.Size = Size(w, h)
15        return s
16    def conn(kind, a, b, name):
17        c = doc.createInstance("com.sun.star.drawing.ConnectorShape")
18        page.add(c); c.EdgeKind = kind
19        c.StartPosition = Point(*a); c.EndPosition = Point(*b)
20        c.Name = name
21        return c
22    r1 = rect(1000, 12000, 3000, 2000); r2 = rect(12000, 16000, 3000, 2000)
23    r3 = rect(1000, 20000, 3000, 2000); r4 = rect(9000, 24000, 3000, 2000)
24    conn(STANDARD, (2000, 2000), (8000, 6000), "std_free")
25    conn(CURVE, (10000, 2000), (16000, 6000), "curve_free")
26    conn(LINE, (2000, 8000), (8000, 8000), "line_h")
27    conn(LINE, (10000, 8000), (10000, 11000), "line_v")
28    conn(LINE, (18000, 9000), (14000, 5000), "line_rev")
29    conn(STANDARD, (2000, 28000), (8000, 28000), "std_h")
30    conn(STANDARD, (16000, 28000), (16000, 32000), "std_v")
31    c = conn(STANDARD, (0, 0), (0, 0), "std_conn"); c.StartShape = r1; c.EndShape = r2
32    c = conn(CURVE, (0, 0), (0, 0), "curve_conn"); c.StartShape = r3; c.EndShape = r4
33    c = conn(LINES, (2000, 34000), (9000, 38000), "lines_free")
34
35def save(doc, name, flt):
36    doc.storeToURL(uno.systemPathToFileUrl(os.path.join(outdir, name)), (pv("FilterName", flt),))
37    doc.close(True)
38
39for kind, name, flt in (("sdraw", "conn.odg", "draw8"), ("simpress", "conn.odp", "impress8")):
40    doc = d.loadComponentFromURL("private:factory/" + kind, "_blank", 0, (pv("Hidden", True),))
41    build(doc, doc.DrawPages.getByIndex(0))
42    save(doc, name, flt)
43