xref: /aoo4110/main/wizards/source/tools/Debug.xba (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski<?xml version="1.0" encoding="UTF-8"?>
2*b1cdbd2cSJim Jagielski<!DOCTYPE script:module PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "module.dtd">
3*b1cdbd2cSJim Jagielski<!--***********************************************************
4*b1cdbd2cSJim Jagielski *
5*b1cdbd2cSJim Jagielski * Licensed to the Apache Software Foundation (ASF) under one
6*b1cdbd2cSJim Jagielski * or more contributor license agreements.  See the NOTICE file
7*b1cdbd2cSJim Jagielski * distributed with this work for additional information
8*b1cdbd2cSJim Jagielski * regarding copyright ownership.  The ASF licenses this file
9*b1cdbd2cSJim Jagielski * to you under the Apache License, Version 2.0 (the
10*b1cdbd2cSJim Jagielski * "License"); you may not use this file except in compliance
11*b1cdbd2cSJim Jagielski * with the License.  You may obtain a copy of the License at
12*b1cdbd2cSJim Jagielski *
13*b1cdbd2cSJim Jagielski *   http://www.apache.org/licenses/LICENSE-2.0
14*b1cdbd2cSJim Jagielski *
15*b1cdbd2cSJim Jagielski * Unless required by applicable law or agreed to in writing,
16*b1cdbd2cSJim Jagielski * software distributed under the License is distributed on an
17*b1cdbd2cSJim Jagielski * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18*b1cdbd2cSJim Jagielski * KIND, either express or implied.  See the License for the
19*b1cdbd2cSJim Jagielski * specific language governing permissions and limitations
20*b1cdbd2cSJim Jagielski * under the License.
21*b1cdbd2cSJim Jagielski *
22*b1cdbd2cSJim Jagielski ***********************************************************-->
23*b1cdbd2cSJim Jagielski<script:module xmlns:script="http://openoffice.org/2000/script" script:name="Debug" script:language="StarBasic">REM  *****  BASIC  *****
24*b1cdbd2cSJim Jagielski
25*b1cdbd2cSJim JagielskiSub ActivateReadOnlyFlag()
26*b1cdbd2cSJim Jagielski	SetBasicReadOnlyFlag(True)
27*b1cdbd2cSJim JagielskiEnd Sub
28*b1cdbd2cSJim Jagielski
29*b1cdbd2cSJim Jagielski
30*b1cdbd2cSJim JagielskiSub DeactivateReadOnlyFlag()
31*b1cdbd2cSJim Jagielski	SetBasicReadOnlyFlag(False)
32*b1cdbd2cSJim JagielskiEnd Sub
33*b1cdbd2cSJim Jagielski
34*b1cdbd2cSJim Jagielski
35*b1cdbd2cSJim JagielskiSub SetBasicReadOnlyFlag(bReadOnly as Boolean)
36*b1cdbd2cSJim JagielskiDim i as Integer
37*b1cdbd2cSJim JagielskiDim LibName as String
38*b1cdbd2cSJim JagielskiDim BasicLibNames() as String
39*b1cdbd2cSJim Jagielski	BasicLibNames() = BasicLibraries.ElementNames()
40*b1cdbd2cSJim Jagielski	For i = 0 To Ubound(BasicLibNames())
41*b1cdbd2cSJim Jagielski		LibName = BasicLibNames(i)
42*b1cdbd2cSJim Jagielski		If LibName &lt;&gt; &quot;Standard&quot; Then
43*b1cdbd2cSJim Jagielski			BasicLibraries.SetLibraryReadOnly(LibName, bReadOnly)
44*b1cdbd2cSJim Jagielski		End If
45*b1cdbd2cSJim Jagielski	Next i
46*b1cdbd2cSJim JagielskiEnd Sub
47*b1cdbd2cSJim Jagielski
48*b1cdbd2cSJim Jagielski
49*b1cdbd2cSJim JagielskiSub WritedbgInfo(LocObject as Object)
50*b1cdbd2cSJim JagielskiDim locUrl as String
51*b1cdbd2cSJim JagielskiDim oLocDocument as Object
52*b1cdbd2cSJim JagielskiDim oLocText as Object
53*b1cdbd2cSJim JagielskiDim oLocCursor as Object
54*b1cdbd2cSJim JagielskiDim NoArgs()
55*b1cdbd2cSJim JagielskiDim sObjectStrings(2) as String
56*b1cdbd2cSJim JagielskiDim sProperties() as String
57*b1cdbd2cSJim JagielskiDim n as Integer
58*b1cdbd2cSJim JagielskiDim m as Integer
59*b1cdbd2cSJim JagielskiDim MaxIndex as Integer
60*b1cdbd2cSJim Jagielski	sObjectStrings(0) = LocObject.dbg_Properties
61*b1cdbd2cSJim Jagielski	sObjectStrings(1) = LocObject.dbg_Methods
62*b1cdbd2cSJim Jagielski	sObjectStrings(2) = LocObject.dbg_SupportedInterfaces
63*b1cdbd2cSJim Jagielski	LocUrl = &quot;private:factory/swriter&quot;
64*b1cdbd2cSJim Jagielski	oLocDocument = StarDesktop.LoadComponentFromURL(LocUrl,&quot;_default&quot;,0,NoArgs)
65*b1cdbd2cSJim Jagielski	oLocText = oLocDocument.text
66*b1cdbd2cSJim Jagielski	oLocCursor = oLocText.createTextCursor()
67*b1cdbd2cSJim Jagielski	oLocCursor.gotoStart(False)
68*b1cdbd2cSJim Jagielski	If Vartype(LocObject) = 9 then	&apos; an Object Variable
69*b1cdbd2cSJim Jagielski		For n = 0 To 2
70*b1cdbd2cSJim Jagielski			sProperties() = ArrayoutofString(sObjectStrings(n),&quot;;&quot;, MaxIndex)
71*b1cdbd2cSJim Jagielski			For m = 0 To MaxIndex
72*b1cdbd2cSJim Jagielski				oLocText.insertString(oLocCursor,sProperties(m),False)
73*b1cdbd2cSJim Jagielski				oLocText.insertControlCharacter(oLocCursor,com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
74*b1cdbd2cSJim Jagielski			Next m
75*b1cdbd2cSJim Jagielski		Next n
76*b1cdbd2cSJim Jagielski	Elseif Vartype(LocObject) = 8 Then	&apos; a String Variable
77*b1cdbd2cSJim Jagielski		oLocText.insertString(oLocCursor,LocObject,False)
78*b1cdbd2cSJim Jagielski	ElseIf Vartype(LocObject) = 1 Then
79*b1cdbd2cSJim Jagielski		Msgbox(&quot;Variable is Null!&quot;, 16, GetProductName())
80*b1cdbd2cSJim Jagielski	End If
81*b1cdbd2cSJim JagielskiEnd Sub
82*b1cdbd2cSJim Jagielski
83*b1cdbd2cSJim Jagielski
84*b1cdbd2cSJim JagielskiSub WriteDbgString(LocString as string)
85*b1cdbd2cSJim JagielskiDim oLocDesktop as object
86*b1cdbd2cSJim JagielskiDim LocUrl as String
87*b1cdbd2cSJim JagielskiDim oLocDocument as Object
88*b1cdbd2cSJim JagielskiDim oLocCursor as Object
89*b1cdbd2cSJim JagielskiDim oLocText as Object
90*b1cdbd2cSJim Jagielski
91*b1cdbd2cSJim Jagielski	LocUrl = &quot;private:factory/swriter&quot;
92*b1cdbd2cSJim Jagielski	oLocDocument = StarDesktop.LoadComponentFromURL(LocUrl,&quot;_default&quot;,0,NoArgs)
93*b1cdbd2cSJim Jagielski	oLocText = oLocDocument.text
94*b1cdbd2cSJim Jagielski	oLocCursor = oLocText.createTextCursor()
95*b1cdbd2cSJim Jagielski	oLocCursor.gotoStart(False)
96*b1cdbd2cSJim Jagielski	oLocText.insertString(oLocCursor,LocString,False)
97*b1cdbd2cSJim JagielskiEnd Sub
98*b1cdbd2cSJim Jagielski
99*b1cdbd2cSJim Jagielski
100*b1cdbd2cSJim JagielskiSub printdbgInfo(LocObject)
101*b1cdbd2cSJim Jagielski	If Vartype(LocObject) = 9 then
102*b1cdbd2cSJim Jagielski		Msgbox LocObject.dbg_properties
103*b1cdbd2cSJim Jagielski		Msgbox LocObject.dbg_methods
104*b1cdbd2cSJim Jagielski		Msgbox LocObject.dbg_supportedinterfaces
105*b1cdbd2cSJim Jagielski	Elseif Vartype(LocObject) = 8 Then	&apos; a String Variable
106*b1cdbd2cSJim Jagielski		Msgbox LocObject
107*b1cdbd2cSJim Jagielski	ElseIf Vartype(LocObject) = 0 Then
108*b1cdbd2cSJim Jagielski		Msgbox(&quot;Variable is Null!&quot;, 16, GetProductName())
109*b1cdbd2cSJim Jagielski	Else
110*b1cdbd2cSJim Jagielski		Msgbox(&quot;Type of Variable: &quot; &amp; Typename(LocObject), 48, GetProductName())
111*b1cdbd2cSJim Jagielski	End If
112*b1cdbd2cSJim JagielskiEnd Sub
113*b1cdbd2cSJim Jagielski
114*b1cdbd2cSJim Jagielski
115*b1cdbd2cSJim JagielskiSub ShowArray(LocArray())
116*b1cdbd2cSJim JagielskiDim i as integer
117*b1cdbd2cSJim JagielskiDim msgstring
118*b1cdbd2cSJim Jagielski	msgstring = &quot;&quot;
119*b1cdbd2cSJim Jagielski	For i = Lbound(LocArray()) to Ubound(LocArray())
120*b1cdbd2cSJim Jagielski		msgstring = msgstring + LocArray(i) + chr(13)
121*b1cdbd2cSJim Jagielski	Next
122*b1cdbd2cSJim Jagielski	Msgbox msgstring
123*b1cdbd2cSJim JagielskiEnd Sub
124*b1cdbd2cSJim Jagielski
125*b1cdbd2cSJim Jagielski
126*b1cdbd2cSJim JagielskiSub ShowPropertyValues(oLocObject as Object)
127*b1cdbd2cSJim JagielskiDim PropName as String
128*b1cdbd2cSJim JagielskiDim sValues as String
129*b1cdbd2cSJim Jagielski	On Local Error Goto NOPROPERTYSETINFO:
130*b1cdbd2cSJim Jagielski	sValues = &quot;&quot;
131*b1cdbd2cSJim Jagielski	For i = 0 To Ubound(oLocObject.PropertySetInfo.Properties)
132*b1cdbd2cSJim Jagielski		Propname = oLocObject.PropertySetInfo.Properties(i).Name
133*b1cdbd2cSJim Jagielski		sValues = sValues &amp; PropName &amp; chr(13) &amp; &quot; = &quot; &amp; oLocObject.GetPropertyValue(PropName) &amp; chr(13)
134*b1cdbd2cSJim Jagielski	Next i
135*b1cdbd2cSJim Jagielski	Msgbox(sValues , 64, GetProductName())
136*b1cdbd2cSJim Jagielski	Exit Sub
137*b1cdbd2cSJim Jagielski
138*b1cdbd2cSJim JagielskiNOPROPERTYSETINFO:
139*b1cdbd2cSJim Jagielski	Msgbox(&quot;Sorry, No PropertySetInfo attached to the object&quot;, 16, GetProductName())
140*b1cdbd2cSJim Jagielski	Resume LEAVEPROC
141*b1cdbd2cSJim Jagielski	LEAVEPROC:
142*b1cdbd2cSJim JagielskiEnd Sub
143*b1cdbd2cSJim Jagielski
144*b1cdbd2cSJim Jagielski
145*b1cdbd2cSJim JagielskiSub ShowNameValuePair(Pair())
146*b1cdbd2cSJim JagielskiDim i as Integer
147*b1cdbd2cSJim JagielskiDim ShowString as String
148*b1cdbd2cSJim Jagielski	ShowString = &quot;&quot;
149*b1cdbd2cSJim Jagielski	On Local Error Resume Next
150*b1cdbd2cSJim Jagielski	For i = 0 To Ubound(Pair())
151*b1cdbd2cSJim Jagielski		ShowString = ShowString &amp; Pair(i).Name &amp; &quot; = &quot;
152*b1cdbd2cSJim Jagielski		ShowString = ShowString &amp; Pair(i).Value &amp; chr(13)
153*b1cdbd2cSJim Jagielski	Next i
154*b1cdbd2cSJim Jagielski	Msgbox ShowString
155*b1cdbd2cSJim JagielskiEnd Sub
156*b1cdbd2cSJim Jagielski
157*b1cdbd2cSJim Jagielski
158*b1cdbd2cSJim Jagielski&apos; Retrieves all the Elements of aSequence of an object, with the
159*b1cdbd2cSJim Jagielski&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
160*b1cdbd2cSJim JagielskiSub ShowElementNames(oLocElements() as Object, Optional sFiltername as String)
161*b1cdbd2cSJim JagielskiDim i as Integer
162*b1cdbd2cSJim JagielskiDim NameString as String
163*b1cdbd2cSJim Jagielski	NameString = &quot;&quot;
164*b1cdbd2cSJim Jagielski	For i = 0 To Ubound(oLocElements())
165*b1cdbd2cSJim Jagielski		If Not IsMissIng(sFilterName) Then
166*b1cdbd2cSJim Jagielski			If Instr(1, oLocElements(i), sFilterName) Then
167*b1cdbd2cSJim Jagielski				NameString = NameString &amp; oLocElements(i) &amp; chr(13)
168*b1cdbd2cSJim Jagielski			End If
169*b1cdbd2cSJim Jagielski		Else
170*b1cdbd2cSJim Jagielski			NameString = NameString &amp; oLocElements(i) &amp; chr(13)
171*b1cdbd2cSJim Jagielski		End If
172*b1cdbd2cSJim Jagielski	Next i
173*b1cdbd2cSJim Jagielski	Msgbox(NameString, 64, GetProductName())
174*b1cdbd2cSJim JagielskiEnd Sub
175*b1cdbd2cSJim Jagielski
176*b1cdbd2cSJim Jagielski
177*b1cdbd2cSJim Jagielski&apos; Retrieves all the supported servicenames of an object, with the
178*b1cdbd2cSJim Jagielski&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
179*b1cdbd2cSJim JagielskiSub ShowSupportedServiceNames(oLocObject as Object, Optional sFilterName as String)
180*b1cdbd2cSJim Jagielski	On Local Error Goto NOSERVICENAMES
181*b1cdbd2cSJim Jagielski	If IsMissing(sFilterName) Then
182*b1cdbd2cSJim Jagielski		ShowElementNames(oLocobject.SupportedServiceNames())
183*b1cdbd2cSJim Jagielski	Else
184*b1cdbd2cSJim Jagielski		ShowElementNames(oLocobject.SupportedServiceNames(), sFilterName)
185*b1cdbd2cSJim Jagielski	End If
186*b1cdbd2cSJim Jagielski	Exit Sub
187*b1cdbd2cSJim Jagielski
188*b1cdbd2cSJim Jagielski	NOSERVICENAMES:
189*b1cdbd2cSJim Jagielski	Msgbox(&quot;Sorry, No &apos;SupportedServiceNames&apos; - Property attached to the object&quot;, 16, GetProductName())
190*b1cdbd2cSJim Jagielski	Resume LEAVEPROC
191*b1cdbd2cSJim Jagielski	LEAVEPROC:
192*b1cdbd2cSJim JagielskiEnd Sub
193*b1cdbd2cSJim Jagielski
194*b1cdbd2cSJim Jagielski
195*b1cdbd2cSJim Jagielski&apos; Retrieves all the available Servicenames of an object, with the
196*b1cdbd2cSJim Jagielski&apos; possibility to define a filter(sfilter &lt;&gt; &quot;&quot;)
197*b1cdbd2cSJim JagielskiSub ShowAvailableServiceNames(oLocObject as Object, Optional sFilterName as String)
198*b1cdbd2cSJim Jagielski	On Local Error Goto NOSERVICENAMES
199*b1cdbd2cSJim Jagielski	If IsMissing(sFilterName) Then
200*b1cdbd2cSJim Jagielski		ShowElementNames(oLocobject.AvailableServiceNames)
201*b1cdbd2cSJim Jagielski	Else
202*b1cdbd2cSJim Jagielski		ShowElementNames(oLocobject.AvailableServiceNames, sFilterName)
203*b1cdbd2cSJim Jagielski	End If
204*b1cdbd2cSJim Jagielski	Exit Sub
205*b1cdbd2cSJim Jagielski
206*b1cdbd2cSJim Jagielski	NOSERVICENAMES:
207*b1cdbd2cSJim Jagielski	Msgbox(&quot;Sorry, No &apos;AvailableServiceNames&apos; - Property attached to the object&quot;, 16, GetProductName())
208*b1cdbd2cSJim Jagielski	Resume LEAVEPROC
209*b1cdbd2cSJim Jagielski	LEAVEPROC:
210*b1cdbd2cSJim JagielskiEnd Sub
211*b1cdbd2cSJim Jagielski
212*b1cdbd2cSJim Jagielski
213*b1cdbd2cSJim JagielskiSub ShowCommands(oLocObject as Object)
214*b1cdbd2cSJim Jagielski	On Local Error Goto NOCOMMANDS
215*b1cdbd2cSJim Jagielski	ShowElementNames(oLocObject.QueryCommands)
216*b1cdbd2cSJim Jagielski	Exit Sub
217*b1cdbd2cSJim Jagielski	NOCOMMANDS:
218*b1cdbd2cSJim Jagielski	Msgbox(&quot;Sorry, No &apos;QueryCommands&apos; - Property attached to the object&quot;, 16, GetProductName())
219*b1cdbd2cSJim Jagielski	Resume LEAVEPROC
220*b1cdbd2cSJim Jagielski	LEAVEPROC:
221*b1cdbd2cSJim JagielskiEnd Sub
222*b1cdbd2cSJim Jagielski
223*b1cdbd2cSJim Jagielski
224*b1cdbd2cSJim JagielskiSub ProtectCurrentSheets()
225*b1cdbd2cSJim JagielskiDim oDocument as Object
226*b1cdbd2cSJim JagielskiDim sDocType as String
227*b1cdbd2cSJim JagielskiDim iResult as Integer
228*b1cdbd2cSJim JagielskiDim oSheets as Object
229*b1cdbd2cSJim JagielskiDim i as Integer
230*b1cdbd2cSJim JagielskiDim bDoProtect as Boolean
231*b1cdbd2cSJim Jagielski	oDocument = StarDesktop.ActiveFrame.Controller.Model
232*b1cdbd2cSJim Jagielski	sDocType = GetDocumentType(oDocument)
233*b1cdbd2cSJim Jagielski	If sDocType = &quot;scalc&quot; Then
234*b1cdbd2cSJim Jagielski		oSheets = oDocument.Sheets
235*b1cdbd2cSJim Jagielski		bDoProtect = False
236*b1cdbd2cSJim Jagielski		For i = 0 To oSheets.Count-1
237*b1cdbd2cSJim Jagielski			If Not oSheets(i).IsProtected Then
238*b1cdbd2cSJim Jagielski				bDoProtect = True
239*b1cdbd2cSJim Jagielski			End If
240*b1cdbd2cSJim Jagielski		Next i
241*b1cdbd2cSJim Jagielski		If bDoProtect Then
242*b1cdbd2cSJim Jagielski			iResult = Msgbox( &quot;Do you want to protect all sheets of this document?&quot;,35, GetProductName())
243*b1cdbd2cSJim Jagielski			If iResult = 6 Then
244*b1cdbd2cSJim Jagielski				ProtectSheets(oDocument.Sheets)
245*b1cdbd2cSJim Jagielski			End If
246*b1cdbd2cSJim Jagielski		End If
247*b1cdbd2cSJim Jagielski	End If
248*b1cdbd2cSJim JagielskiEnd Sub
249*b1cdbd2cSJim Jagielski
250*b1cdbd2cSJim Jagielski
251*b1cdbd2cSJim JagielskiSub FillDocument()
252*b1cdbd2cSJim Jagielski	oMyReport = createUNOService(&quot;com.sun.star.wizards.report.CallReportWizard&quot;)
253*b1cdbd2cSJim Jagielski	oMyReport.trigger(&quot;fill&quot;)
254*b1cdbd2cSJim JagielskiEnd Sub
255*b1cdbd2cSJim Jagielski
256*b1cdbd2cSJim Jagielski</script:module>
257