summaryrefslogtreecommitdiff
path: root/scripting/examples/basic/InsertColouredText.xba
blob: 791689a155386c8f7a3dfb017ec125325d3d03f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
<script:module xmlns:script="http://openoffice.org/2000/script" script:name="InsertColouredText" script:language="StarBasic">&apos; ***
&apos; InsertColouredText basic script
&apos; Uses a user interface to insert text of a specified colour to the
&apos; start and end of a document
&apos;
&apos; author	Neil Montgomery
&apos; created	August 12, 2002
&apos; ***


&apos; Main subprocedure to start script
Sub Main
 dialogShow()
End Sub


&apos; Global reference to the dialog object
Dim oDialog as Object


&apos; Uses the loadDialog subprocedure to load and execute the dialog box
Sub dialogShow
 oDialog = loadDialog(&quot;Standard&quot;,&quot;InsertColouredTextDialog&quot;)
 oDialog.execute()
End Sub


&apos; ***
&apos; Loads the dialog from the dialog library
&apos;
&apos; param	Libname 	the library name where dialog is stored
&apos; param  DialogName	the name of the dialog
&apos; param 	oLibContainer	library container to hold the loaded dialog library (optional)
&apos; return	runtime dialog object
&apos; ***
Function loadDialog(Libname as String, DialogName as String, Optional oLibContainer)
 Dim oLib as Object
 Dim oLibDialog as Object
 Dim oRuntimeDialog as Object
 
 &apos; If the optional oLibContainer is not passed to the function then
 &apos; DialogLibraries is loaded by default
 If isMissing(oLibContainer ) then
  oLibContainer = DialogLibraries
 End If

 &apos; Loads the specified library, then loads the dialog
 oLibContainer.loadLibrary(LibName)
 oLib = oLibContainer.getByName(Libname)
 oLibDialog = oLib.getByName(DialogName)
 oRuntimeDialog = createUnoDialog(oLibDialog)

 &apos; Returns the runtime dialog object
 loadDialog() = oRuntimeDialog
End Function



&apos; ***
&apos; Gets the RGB integer values and new text string from the dialog
&apos; then writes the new coloured text to the start and end of the document
&apos;
&apos; ***
Sub getFromDialog
 Dim oDocument As Object
 Dim oText As Object
 Dim oCursor As Object
 
 &apos; Create a document object for the current document then create text and
 &apos; cursor objects
 oDocument = StarDesktop.ActiveFrame.Controller.Model
 oText = oDocument.Text
 oCursor = oText.createTextCursor()

 &apos; Write the coloured text to the start and end of the document
 oCursor.gotoStart(false)
 oCursor.CharColor = getColor()
 oCursor.setString(&quot;New text at start: &quot; + getNewText())
 oCursor.gotoEnd(false)
 oCursor.CharColor = getColor()
 oCursor.setString(&quot;New text at end: &quot; + getNewText())
End Sub



&apos; ***
&apos; Reads the RGB integer values from the dialog
&apos;
&apos; returns   long  representing the RGB value	 
&apos; ***
Function getColor() as Long
 Dim oRedText as Object
 Dim oGreenText as Object
 Dim oBlueText as Object
 Dim nColor As Long

 &apos; Get the three RGB values
 oRedText = oDialog.GetControl(&quot;RedTextBox&quot;)
 oGreenText = oDialog.GetControl(&quot;GreenTextBox&quot;)
 oBlueText = oDialog.GetControl(&quot;BlueTextBox&quot;)

 &apos; Convert the values to long type and return the value
 nColor = RGB(oRedText.Text,oGreenText.Text,oBlueText.Text)
 getColor = nColor
End Function



&apos; ***
&apos; Reads the new text from the dialog
&apos;
&apos; returns   string  the new text
&apos; ***
Function getNewText() as String
 Dim oNewText As Object
 Dim sNewText As String

 &apos; Gets the string from dialog and returns the new text
 oNewText = oDialog.GetControl(&quot;NewTextBox&quot;)
 sNewText = oNewText.Text
 getNewText = sNewText
End Function</script:module>