xref: /trunk/test/odf-validate/fixtures/page-fill-1_3/gen.bas (revision 0e16a31d78a652c56c5c0fc79c752f48b9048df9)
1Dim gDoc As Object
2
3Function Gr(c1 As Long, c2 As Long, b As Integer)
4  Dim g As New com.sun.star.awt.Gradient
5  g.Style = com.sun.star.awt.GradientStyle.LINEAR : g.StartColor = c1 : g.EndColor = c2
6  g.Angle = 0 : g.Border = b : g.XOffset = 50 : g.YOffset = 50
7  g.StartIntensity = 100 : g.EndIntensity = 100 : g.StepCount = 0
8  Gr = g
9End Function
10
11Sub Fill(o As Object, pre As String, kind As String, png As String)
12  Dim h As New com.sun.star.drawing.Hatch
13  Select Case kind
14  Case "solid"
15    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.SOLID)
16    o.setPropertyValue(pre + "FillColor", &H33AA55)
17  Case "solid_transp"
18    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.SOLID)
19    o.setPropertyValue(pre + "FillColor", &H3355AA)
20    o.setPropertyValue(pre + "FillTransparence", 40)
21  Case "gradient", "shared"
22    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.GRADIENT)
23    o.setPropertyValue(pre + "FillGradient", Gr(&HFF0000, &H0000FF, 10))
24  Case "gradient_transp"
25    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.GRADIENT)
26    o.setPropertyValue(pre + "FillGradient", Gr(&HFF0000, &H0000FF, 10))
27    o.setPropertyValue(pre + "FillTransparence", 30)
28  Case "gradient_tgrad"
29    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.GRADIENT)
30    o.setPropertyValue(pre + "FillGradient", Gr(65280, &HFF00FF, 0))
31    Dim tg As Object
32    tg = gDoc.createInstance("com.sun.star.drawing.TransparencyGradientTable")
33    If Not tg.hasByName("TG1") Then tg.insertByName("TG1", Gr(0, &HFFFFFF, 0))
34    o.setPropertyValue(pre + "FillTransparenceGradientName", "TG1")
35  Case "hatch", "hatch_nobg"
36    h.Style = com.sun.star.drawing.HatchStyle.SINGLE : h.Color = 43520 : h.Distance = 200 : h.Angle = 450
37    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.HATCH)
38    o.setPropertyValue(pre + "FillHatch", h)
39    If kind = "hatch" Then
40      o.setPropertyValue(pre + "FillColor", &HFFFFCC)
41      o.setPropertyValue(pre + "FillBackground", True)
42    Else
43      o.setPropertyValue(pre + "FillBackground", False)
44    End If
45  Case "bitmap_tile", "bitmap_stretch", "bitmap_once"
46    o.setPropertyValue(pre + "FillStyle", com.sun.star.drawing.FillStyle.BITMAP)
47    o.setPropertyValue(pre + "FillBitmapURL", png)
48    If kind = "bitmap_stretch" Then
49      o.setPropertyValue(pre + "FillBitmapMode", com.sun.star.drawing.BitmapMode.STRETCH)
50    ElseIf kind = "bitmap_once" Then
51      o.setPropertyValue(pre + "FillBitmapMode", com.sun.star.drawing.BitmapMode.NO_REPEAT)
52    Else
53      o.setPropertyValue(pre + "FillBitmapMode", com.sun.star.drawing.BitmapMode.REPEAT)
54    End If
55  End Select
56End Sub
57
58Sub Gen
59  Dim out As String, png As String
60  out = Environ("PFF_OUT") : png = Environ("PFF_PNG")
61  Dim a(0) As New com.sun.star.beans.PropertyValue
62  a(0).Name = "Hidden" : a(0).Value = True
63  Dim doc As Object
64  doc = StarDesktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, a())
65  gDoc = doc
66  Dim kinds
67  kinds = Split(Environ("PFF_KINDS"), ",")
68  Dim styles As Object, s As Object, i As Integer, nm As String
69  styles = doc.StyleFamilies.getByName("PageStyles")
70  For i = 0 To UBound(kinds)
71    nm = "P_" + kinds(i)
72    s = doc.createInstance("com.sun.star.style.PageStyle")
73    styles.insertByName(nm, s)
74    s = styles.getByName(nm)
75    If kinds(i) <> "none" Then Fill s, "", kinds(i), png
76  Next
77  styles.getByName("P_shared").setPropertyValue("FollowStyle", "P_shared")
78  s = doc.createInstance("com.sun.star.style.PageStyle")
79  styles.insertByName("P_shared2", s)
80  Fill styles.getByName("P_shared2"), "", "shared", png
81  s = styles.getByName("P_gradient")
82  s.HeaderIsOn = True
83  Fill s, "Header", "hatch", png
84  Fill styles.getByName("Standard"), "", "solid", png
85  Fill styles.getByName("First Page"), "", "hatch_nobg", png
86  Dim cur As Object, en As Object, p As Object
87  cur = doc.Text.createTextCursor()
88  doc.Text.insertString(cur, "first", False)
89  doc.Text.insertControlCharacter(cur, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
90  For i = 0 To UBound(kinds)
91    doc.Text.insertString(cur, "page P_" + kinds(i), False)
92    doc.Text.insertControlCharacter(cur, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
93  Next
94  doc.Text.insertString(cur, "page P_shared2", False)
95  en = doc.Text.createEnumeration()
96  p = en.nextElement()
97  p.PageDescName = "First Page"
98  For i = 0 To UBound(kinds)
99    p = en.nextElement()
100    p.PageDescName = "P_" + kinds(i)
101  Next
102  p = en.nextElement()
103  p.PageDescName = "P_shared2"
104  Dim b(0) As New com.sun.star.beans.PropertyValue
105  b(0).Name = "FilterName" : b(0).Value = "writer8"
106  doc.storeToURL(ConvertToURL(out), b())
107  doc.close(True)
108End Sub
109