merge the formfield patch from ooo-build
[ooovba.git] / testautomation / writer / tools / includes / w_tool5.inc
blobf9ddfcf065d8d7fabf525274d369511792602447
1 'encoding UTF-8  Do not remove or change this line!
2 '*******************************************************************************
3 '* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 '*
5 '* Copyright 2008 by Sun Microsystems, Inc.
6 '*
7 '* OpenOffice.org - a multi-platform office productivity suite
8 '*
9 '* $RCSfile: w_tool5.inc,v $
11 '* $Revision: 1.2 $
13 '* last change: $Author: vg $ $Date: 2008-08-18 12:43:52 $
15 '* This file is part of OpenOffice.org.
17 '* OpenOffice.org is free software: you can redistribute it and/or modify
18 '* it under the terms of the GNU Lesser General Public License version 3
19 '* only, as published by the Free Software Foundation.
21 '* OpenOffice.org is distributed in the hope that it will be useful,
22 '* but WITHOUT ANY WARRANTY; without even the implied warranty of
23 '* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24 '* GNU Lesser General Public License version 3 for more details
25 '* (a copy is included in the LICENSE file that accompanied this code).
27 '* You should have received a copy of the GNU Lesser General Public License
28 '* version 3 along with OpenOffice.org.  If not, see
29 '* <http://www.openoffice.org/license.html>
30 '* for a copy of the LGPLv3 License.
32 '/******************************************************************************
34 '* owner : helge.delfs@sun.com
36 '* short description : Description of file
38 '\******************************************************************************
40 function hLevelContent () as String
41     ' presupposition: just stay in line with the to check content
42     ' easy to enhance; on demand you can add text to the paragraph and only have to chage this function
43     ' input : -
44     ' output: paragraph content
45     dim sTemp as string
46     wTypeKeys "<end><shift home>" 'select line
47     editcopy
48     sTemp = GetClipboardText()
49     'i don't need the first '-', so i start searching at 2. char
50     hLevelContent = Right(sTemp, Len(sTemp)-InStr(2,sTemp,"-")
51 end function
53 '------------------------------------------------------------------------------
55 function hLevelChange(aL() as integer,i as integer,x as integer ,y as integer, sublevel as boolean ) as boolean
56     ' ALSO boolean, if it schould be checked, if it got changed! else don't adjust array!!!
57     ' input: level Nr., how many levels +/-
58     ' return: false, if wrong paragraph
60     dim itemp as integer
61     dim xtemp as integer
62     dim ytemp as integer
63     dim stemp as integer
64     dim j as integer
66     if (hLevelOk (i)) then
67         if (aL (i,1) + x) > 0 then  ' CHG <-> level 'stufen'
68             ' has to work for +/- x
69             xTemp = aL (i,1)
70             aL (i,1) = aL (i,1) + x
71             if (sublevel) then
72                 iTemp = i+1
73                 do while (aL (iTemp,1) > xTemp)
74                     aL (iTemp,1) = aL (iTemp,1) + x
75                     iTemp=iTemp + 1
76                 loop
77             end if
78         else
79             'warnlog "This makes no sense; you trie to 'move to the left'; it doesn't go further! Entry: "+i
80         end if
81         iTemp = 1
82         do while (i <> aL(itemp,2))
83             inc iTemp
84         loop
85         printlog "CHG: found i="+i+" at: "+iTemp
87         ' move entry without sublevels
88         if (y < -1) OR (y > 1) then warnlog "y ! aus (-1,1) is not implemented :-( yet !"
89         if (y > 0) then
90             xtemp = aL( itemp+y ,1)
91             aL( itemp+y ,1) = aL( itemp ,1)
92             aL( itemp ,1) = xtemp
93             xtemp = aL( itemp+y ,2)
94             aL( itemp+y ,2) = aL( itemp ,2)
95             aL( itemp ,2) = xtemp
96             if (sublevel) then            ' with sublevel
97                 yTemp = aL( iTemp+y ,1)            ' save hor <-> level in yTemp
98                 sTemp = 2
99                 do while (aL (iTemp ,1) > yTemp)
100                     xtemp = aL( itemp+sTemp ,1)
101                     aL( itemp+sTemp ,1) = aL( itemp ,1)
102                     aL( itemp ,1) = xtemp
103                     xtemp = aL( itemp+sTemp ,2)
104                     aL( itemp+sTemp ,2) = aL( itemp ,2)
105                     aL( itemp ,2) = xtemp
106                     inc sTemp
107                 loop
108             end if
109         else
110             if (y < 0) then
111                 for j=-1 to y
112                     xtemp = aL( itemp+j ,1)              ' hori <-> level copy
113                     aL( itemp+j ,1) = aL( itemp+j+1 ,1)
114                     aL( itemp+j+1 ,1) = xtemp            '      ^
115                     xtemp = aL( itemp+j ,2)              ' vert | level copy
116                     aL( itemp+j ,2) = aL( itemp+j+1 ,2)  '      v
117                     aL( itemp+j+1 ,2) = xtemp
118                 next j
119                 if (sublevel) then            ' with sublevel
120                     yTemp = aL( iTemp+y ,1)            ' save hor <-> level in yTemp
121                     iTemp = itemp+1
122                     do while (aL (iTemp,1) > yTemp)
123                         xtemp = aL( itemp+y ,1)
124                         aL( itemp+y ,1) = aL( itemp+y+1 ,1)
125                         aL( itemp+y+1 ,1) = xtemp
126                         xtemp = aL( itemp+y ,2)
127                         aL( itemp+y ,2) = aL( itemp+y+1 ,2)
128                         aL( itemp+y+1 ,2) = xtemp
129                         iTemp=iTemp + 1
130                     loop
131                 end if
132             else ' 0
133             end if
134         end if
135     end if
136 end function
138 '------------------------------------------------------------------------------
140 function hLevelPrint (aL()as integer) as boolean
141     dim sTemp as string
142     dim iTemp as integer
143     dim i,j as integer
144     ' how big is this array??!!! pd: it has to be in aL(0,0)
145     printlog "---------------------------------------------------------------------"
146     for i=1 to aL(0,0)
147         sTemp = ""
148         for j=1 to aL(i,1)
149             sTemp = sTemp + "..."
150         next j
151         printlog sTemp + i + "  "+aL(i,2)+ "                   +1: "+aL(i,1)
152     next i
153     printlog "---------------------------------------------------------------------"
154 end function
156 '------------------------------------------------------------------------------
158 function hIsNumberingBullets () as Boolean
159     '/// am i in a NumberingBullets area ?? ///'
160     '/// Output: True / False (as Boolean)  ///'
161     dim NOerror as Boolean
163     hIsNumberingBullets = false
164     NOerror = false
166     sleep (1)
167     try
168         FormatNumberingBullets
169         NOerror = true
170     catch
171         Warnlog "w_tool5.inc::hIsNumberingBullets::Slot not available"
172         NOerror = false
173     endcatch
175     if NOerror then
176         Kontext
177         Active.SetPage TabBullet
178         Kontext "TabBullet"
179         sleep (1)
180         if (remove.isEnabled) then
181             hIsNumberingBullets = true
182         else
183             hIsNumberingBullets = false
184         end if
185         TabBullet.cancel
186     end if
187     sleep (1)
188 end function
190 '------------------------------------------------------------------------------
192 sub hFormatParagraphNumbering (sStyle as string,bRestart as integer,sStartW as string)
194     FormatParagraph
195     Kontext
196     Active.SetPage TabNumerierungAbsatz
197     Kontext "TabNumerierungAbsatz"
199     try
200         if (sStyle <> "") then
201             Vorlage.Select sStyle
202         else
203             Vorlage.Select 2
204         end if
205         if (bRestart <> -1) then
206             select case bRestart
207             case 0: NumerierungNeuBeginnen.UnCheck
208             case 1: NumerierungNeuBeginnen.Check
209             case 2: NumerierungNeuBeginnen.TriState
210             end select
211         end if
212         if (sStartW <> -1) then
213             select case sStartW
214             case 0: NumerierungBeginnenBei.UnCheck
215             case 1: NumerierungBeginnenBei.Check
216             end select
217         end if
218     catch
219         Warnlog "Not possible; wrong style=none??"
220     endcatch
222     TabNumerierungAbsatz.OK
224 end sub
226 '------------------------------------------------------------------------------
228 function hFindInDocument (sTempSearch as string) as boolean
229     dim  sTemp as string
231     hFindInDocument = FALSE
232     Call hFindeImDokument (sTempSearch, 1)
233     EditCopy
234     sTemp = right (GetClipboardText(), len(sTempSearch))
235     if (sTemp <> sTempSearch) then
236         Warnlog "Found: '" & sTemp & "'  and not: " & sTempSearch
237         hFindInDocument = FALSE
238     else
239         hFindInDocument = TRUE
240     end if
241 end function