update dev300-m58
[ooovba.git] / testautomation / writer / tools / includes / w_tools.inc
blob63e7e3a8ef7d5534d0a74d13b1a17cea89cfedac
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_tools.inc,v $
11 '* $Revision: 1.2 $
13 '* last change: $Author: vg $ $Date: 2008-08-18 12:44:20 $
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 : Writer-Tools
38 '\******************************************************************************
40 sub wDokSchreiben ( OutputText , optional iLoop as Integer )
41     Dim i as integer
42     If lcase(OutputText) = "<mod1 a>" then
43         If iSprache = 34 then OutputText = "<Mod1 E>"
44     end if
45     If IsMissing(iLoop) = True then iLoop = 1
46     For i = 1 to iLoop
47         Select Case Ucase(gApplication)
48         Case "WRITER"
49             Kontext "DocumentWriter"
50             DocumentWriter.TypeKeys OutputText
52         Case "MASTERDOCUMENT"
53             Kontext "DocumentMasterDoc"
54             DocumentMasterDoc.TypeKeys OutputText
56         Case "HTML"
57             Kontext "DocumentWriterWeb"
58             DocumentWriterWeb.TypeKeys OutputText
60         case "DRAW"
61             Call hTextrahmenErstellen (OutputText,35,35,50,20)
62         case "IMPRESS"
63             Call hTextrahmenErstellen (OutputText,35,35,50,20)
65         end select
66         wait 500
67     next i
68 end sub
70 ' -----------------------------------------------------------------------
72 sub wTypeKeys ( OutputText , optional iLoop as Integer )
73     Dim i as integer
74     If lcase(OutputText) = "<mod1 a>" then
75         If iSprache = 34 then OutputText = "<Mod1 E>"
76     end if
77     If IsMissing(iLoop) = True then iLoop = 1
78     For i = 1 to iLoop
79         Select Case Ucase(gApplication)
80         Case "WRITER"
81             Kontext "DocumentWriter"
82             DocumentWriter.TypeKeys OutputText
84         Case "MASTERDOCUMENT"
85             Kontext "DocumentMasterDoc"
86             DocumentMasterDoc.TypeKeys OutputText
88         Case "HTML"
89             Kontext "DocumentWriterWeb"
90             DocumentWriterWeb.TypeKeys OutputText
92         case "DRAW"
93             Call hTextrahmenErstellen (OutputText,35,35,50,20)
94         case "IMPRESS"
95             Call hTextrahmenErstellen (OutputText,35,35,50,20)
96         end select
97         wait 500
98     next i
99 end sub
101 ' -----------------------------------------------------------------------
103 sub wDocSetContext
104     Select Case Ucase(gApplication)
105     Case "WRITER"
106         Kontext "DocumentWriter"
108     Case "MASTERDOCUMENT"
109         Kontext "DocumentMasterDoc"
111     Case "HTML"
112         Kontext "DocumentWriterWeb"
114     Case "IMPRESS"
115         Kontext "DocumentImpress"
117     Case "DRAW"
118         Kontext "DocumentDraw"
120     Case "MATH"
121         Kontext "DocumentMath"
123     Case "CALC"
124         Kontext "DocumentCalc"
126     end select
127     wait 500
128 end sub
130 ' -----------------------------------------------------------------------
132 function wBlindtextEinfuegen() as boolean
133     '/// This functions inserts a Dummytext and returns true if it was inserted
134     Dim BlindText as string, bTemp as boolean
135     bTemp = False
136     select case iSprache
137     case 01    : BlindText = "DT<F3>"
138     case 03    : BlindText = "TE<F3>"
139     case 07    : BlindText = "DT<F3>"
140     case 31    : BlindText = "BT<F3>"
141     case 34    : BlindText = "TE<F3>"
142     case 33    : BlindText = "TEX<F3>"
143     case 39    : BlindText = "TE<F3>"
144     case 45    : BlindText = "ET<F3>"
145     case 46    : BlindText = "BT<F3>"
146     case 48    : BlindText = "TW<F3>"
147     case 49    : BlindText = "BT<F3>"
148     case 55    : BlindText = "TP<F3>"
149     case 81    : BlindText = "DT<F3>"
150     case 82    : BlindText = "BT<F3>"
151     case 86    : BlindText = "DT<F3>"
152     case 88    : BlindText = "BT<F3>"
153     case else : QAErrorlog "No Shortcut for Dummytext available!"
154     end select
156     if BlindText > "" then
157         Call wTypeKeys BlindText
158         Kontext "Active"
159         if Active.Exists then
160             if Active.GetRT = 304 then
161                 Warnlog Active.Gettext
162                 Active.Ok
163             else
164                 bTemp = True
165             end if
166         else
167             bTemp = True
168         end if
169     end if
171     wBlindtextEinfuegen = bTemp
173 end function
175 ' -----------------------------------------------------------------------
177 sub wZeichenobjektEinfuegen ( Objekt$, xStart%, yStart%, xEnde%, yEnde%, optional sCloseToolbar as boolean )
179     Kontext "DrawBar"
180     if Not DrawBar.Exists then Call hToolbarSelect("Drawing", true)
181     Sleep 2
183     Objekt = UCase( Objekt )
184     select case Objekt
185         case "RECHTECK" : Rechteck.Click
186                 case "LINIE"     : Linie.Click
187                 case "ELLIPSE"  : Ellipse.Click
188                 case "TEXT"      : Textobjekt.Click
189                 case "VTEXT"     :
190                 try
191                 VerticalText.Click
192                         catch
193                                 if gAsianSup = True then
194                         Warnlog "Unable to insert Vertical Text! Asian Support in Options activated ?"
195                                 end if
196                         endcatch
197                 case "LAUFTEXT" : Lauftext.Click
198                 case "LEGENDE"  : Legende.Click
199                 case "VLEGENDE" :
200                         try
201                                 VerticalCallout.Click
202                         catch
203                                 Warnlog "Unable to insert Vertical Callout! Asian Support in Options activated ?"
204                         endcatch
205     end select
206         Sleep (2)
208     Select Case gApplication
209     Case "WRITER"
210         Kontext "DocumentWriter"
211         DocumentWriter.MouseDown xStart%, yStart%
212         DocumentWriter.MouseMove xEnde%, yEnde%
213         DocumentWriter.MouseUp xEnde%, yEnde%
214         wait 100
215         Kontext "Drawbar"
216         if IsMissing(sCloseToolbar) then
217             Drawbar.Close
218         else
219             if sCloseToolbar = true then Drawbar.Close
220         end if
221         if Objekt <> "TEXT" and Objekt <> "VTEXT" then
222             Kontext "DocumentWriter"
223             Call gMouseClick (10, 10)
224             wait 100
225         end if
227     Case "MASTERDOCUMENT"
228         Kontext "DocumentMasterDoc"
229         DocumentMasterDoc.MouseDown xStart%, yStart%
230         DocumentMasterDoc.MouseMove xEnde%, yEnde%
231         DocumentMasterDoc.MouseUp xEnde%, yEnde%
232         wait 100
233         Kontext "Drawbar"
234         if IsMissing(sCloseToolbar) then
235             Drawbar.Close
236         else
237             if sCloseToolbar = true then Drawbar.Close
238         end if
239         if Objekt <> "TEXT" and Objekt <> "VTEXT" then
240             Kontext "DocumentMasterDoc"
241             Call gMouseClick (10, 10)
242             wait 100
243         end if
244     end select
245         sleep (1)
246 end sub
248 ' -----------------------------------------------------------------------
250 sub wObjektSelektieren ( xStart%, yStart%, xEnde%, yEnde% )
251     '    Call gMouseClick(90,90)
252     Call hToolbarSelect("DRAWING",true)
253     Auswahl.Click
254     Select Case gApplication
255     Case "WRITER"
256         Kontext "DocumentWriter"
257         DocumentWriter.MouseDown xStart%, yStart%
258         DocumentWriter.MouseMove xEnde%, yEnde%
259         DocumentWriter.MouseUp xEnde%, yEnde%
260     Case "MASTERDOCUMENT"
261         Kontext "DocumentMasterDoc"
262         DocumentMasterDoc.MouseDown xStart%, yStart%
263         DocumentMasterDoc.MouseMove xEnde%, yEnde%
264         DocumentMasterDoc.MouseUp xEnde%, yEnde%
265     end select
266     wait 200
267 end sub
269 ' -----------------------------------------------------------------------
271 sub wFindSelectObjectBelow ( xStart%, yStart%, xEnde%, yEnde% )
272     WL_TB_ZF_Auswahl
273     Select Case gApplication
274     Case "WRITER"
275         Kontext "DocumentWriter"
276         DocumentWriter.MouseMove xStart%, yStart%
277         DocumentWriter.MouseDown xStart%, yStart%
278         DocumentWriter.MouseUp xStart%, yStart%
280         do while (Mousepointer<>"Normalpointer")
281             DocumentWriter.MouseMove xEnde%, yEnde%
282             DocumentWriter.MouseDown xEnde%, yEnde%
283             DocumentWriter.MouseUp
284         loop
286         i = 1
287         while ((getMouseStyle = 0) AND (i<80))
288             sleep 1
289             inc (i)
290             printlog getMouseStyle
291             if (getMouseStyle <> 0) then i = 80
292         wend
294     Case "MASTERDOCUMENT"
295         Kontext "DocumentMasterDoc"
296         DocumentMasterDoc.MouseDown xStart%, yStart%
297         DocumentMasterDoc.MouseMove xEnde%, yEnde%
298         DocumentMasterDoc.MouseUp xEnde%, yEnde%
299     end select
300     wait 200
301 end sub
303 ' -----------------------------------------------------------------------
305 function WortAusWoerterbuchLoeschen ( Aufnahme$ ) as Boolean
306     Dim i as integer : Dim AnzahlBuecher as string
307     Dim j as integer
309     ToolsOptions
310     Call hToolsOptions("LanguageSettings","WritingAids")
311     WortAusWoerterbuchLoeschen = FALSE
312     for j = 1 to Benutzerwoerterbuch.GetItemCount
313         try
314             Bearbeiten.Click
315             exit for
316         catch
317             Benutzerwoerterbuch.Select j
318         endcatch
319     next j
320     Kontext "BenutzerwoerterbuchBearbeiten"
321     AnzahlBuecher = Buch.GetItemCount
323     for i= 1 to AnzahlBuecher
324         Buch.Select i
325         printlog "      - search word in module: " + Buch.GetSelText
326         Kontext "BenutzerwoerterbuchBearbeiten"
327         Inhalt.SetText Aufnahme$
328         Sleep 1
329         if Entfernen.IsEnabled then
330             Entfernen.Click
331             WortAusWoerterbuchLoeschen = TRUE
332             i = AnzahlBuecher + 1
333         end if
334     next i
335     if WortAusWoerterbuchLoeschen = FALSE then Warnlog "The added word has not been found in modules"
336     BenutzerwoerterbuchBearbeiten.Close
337     Kontext "ExtrasOptionenDlg"
338     ExtrasOptionenDlg.OK
339 end function
341 ' -----------------------------------------------------------------------
343 function wIgnorierenlisteLoeschen
344     Dim i as integer : Dim j as integer : Dim AlleBuecher as integer
346     ToolsOptions
347     Call hToolsOptions("LANGUAGESETTINGS","WRITINGAIDS")
348     Sleep 3
349     for j = 1 to Benutzerwoerterbuch.GetItemCount
350         try
351             Bearbeiten.Click
352             exit for
353         catch
354             Benutzerwoerterbuch.Select j
355         endcatch
356     next j
357     Kontext "BenutzerwoerterbuchBearbeiten"
358     sleep 1
359     AlleBuecher = Buch.GetItemCount
360     for i = 1 to AlleBuecher
361         Buch.Select i
362         if Left$(Buch.GetSelText,13)="IgnoreAllList" then
363             sleep 2
364             for j = 1 to 100
365                 if Loeschen.IsEnabled then
366                     Loeschen.Click
367                     sleep 1
368                 else
369                     Kontext "Active"
370                     if Active.Exists then
371                         Warnlog Active.Gettext
372                         Active.Ok
373                     end if
374                     Kontext "BenutzerwoerterbuchBearbeiten"
375                     BenutzerwoerterbuchBearbeiten.Cancel
376                     sleep 1
377                     j=101
378                 end if
379                 wait 500
380             next j
381             i=AlleBuecher + 1
382         end if
383     next i
384     Kontext "ExtrasOptionenDlg"
385     ExtrasOptionenDlg.OK
386 end function
388 ' -----------------------------------------------------------------------
390 sub hLeisteUmschalten(welche as integer)
391     Sleep 2
392     Select Case welche
393     case 1:
394         try                                             ' Textobjectbar
395             Kontext "NumObjectbar"
396             NumObjectbar.SetNextToolbox
397         catch
398         endcatch
399         Sleep 1
400         if gApplication = "HTML" then
401             Kontext "TextObjectbar"
402         else
403             Kontext "TextObjectbar"
404         end if
405         Sleep 1
406         try
407             Fett.Click    ' Sonst sind Comboboxen fÈ­r Testtool nicht sichtbar
408             Sleep 1
409             Fett.Click
410         catch
411             Warnlog "Error on switching the function bar!"
412         endcatch
413         Sleep 1
415     case 2:
416         Select Case gApplication
417             ' Numbering-Objectbar
418         Case "HTML"
419             Kontext "TextObjectbar"
420             try
421                 TextObjectbar.SetNextToolbox
422             catch
423             endcatch
425         Case else
426             Kontext "TextObjectbar"
427             try
428                 TextObjectbar.SetNextToolbox
429             catch
430             endcatch
431         end select
432         Sleep 1
433         Kontext "NumObjectbar"
434         try
435             Hinunterstufen.Click
436         catch
437             try
438                 Hochstufen.Click
439             catch
440                 Warnlog "Error on switching the function bar!"
441             endcatch
442         endcatch
443         Sleep 2
444     end select
445 end sub
447 ' -----------------------------------------------------------------------
449 sub hGrafikleisteUmschalten(welche as integer)
450     Select Case welche
451     case 1:
452         try
453             Kontext "GraphicObjectbar"
454             Wait 500
455             GraphicObjectbar.SetNextToolBox
456         catch
457         endcatch
458         Kontext "FrameObjectbar"
459         Sleep 1
461     case 2:
462         try
463             Kontext "FrameObjectbar"
464             Wait 500
465             FrameObjectbar.SetNextToolBox
466         catch
467         endcatch
468         Kontext "GraphicObjectbar"
469         Sleep 1
470     end select
471 end sub
473 ' -----------------------------------------------------------------------
475 sub wEinfuegenHyperlink(welcheSeite as integer)
476     Kontext "Hyperlink"
477     Auswahl.MouseDown 2,2
478     Auswahl.MouseUp 2,2
479     wait 500
480     Auswahl.TypeKeys "<Down>",1
481     wait 500
482     Auswahl.TypeKeys "<Up>",4
483     Sleep 1
485     Select case welcheSeite
486     case 1:
487         Kontext "TabHyperlinkInternet"
489     case 2:
490         Auswahl.TypeKeys "<Down>",1
491         Kontext "TabHyperlinkMailUndNews"
493     case 3:
494         Auswahl.TypeKeys "<Down>",2
495         Kontext "TabHyperlinkDokument"
497     case 4:
498         Auswahl.TypeKeys "<Down>",3
499         Kontext "TabHyperlinkNeuesDokument"
501     end select
502 end sub
504 ' -----------------------------------------------------------------------
506 sub wNavigatorAuswahl(Gruppe as integer, Eintrag as integer,optional LeaveFocus as boolean)
507     dim j as integer, WelcherEintrag as integer
508     Dim MinEntrys as integer
510     If IsMissing(LeaveFocus) = True then LeaveFocus = False
512     Select Case Ucase(gApplication)
513     Case "CALC"
514         Kontext "NavigatorCalc"
515         if NavigatorCalc.NotExists then ViewNavigator
516         wait 500
517         Kontext "NavigatorCalc"
518         MinEntrys = 8
519     Case "WRITER", "HTML", "HTML"
520         Kontext "NavigatorWriter"
521         if NavigatorWriter.NotExists then ViewNavigator
522         wait 500
523         Kontext "NavigatorWriter"
524         MinEntrys = 11
525     Case "MASTERDOCUMENT"
526         Kontext "NavigatorGlobalDoc"
527         if NavigatorGlobalDoc.NotExists then ViewNavigator
528         wait 500
529         Kontext "NavigatorGlobalDoc"
530         if Liste.IsVisible then
531             Kontext "GlobaldokumentToolbox"
532             Umschalten.Click
533             Kontext "NavigatorWriter"
534         end if
535         MinEntrys = 11
536     Case Else ' for all others!!!!
537         Warnlog "Not supported application!"
538         exit sub
539     end select
541     Sleep 2
543     Select Case Ucase(gApplication)
544     Case "CALC"
545         if (Liste.GetItemCount < MinEntrys) then Umschalten.Click
546         if Liste.GetItemCount >MinEntrys then
547             For j= 1 to 9
548                 Liste.Select j
549                 Liste.TypeKeys "-"
550             next j
551         end if
553         Liste.Select Gruppe
554         if Eintrag >0 then
555             WelcherEintrag = Gruppe + Eintrag
556             Liste.TypeKeys "+"
557             Liste.Select WelcherEintrag
558             Liste.TypeKeys "<Return>"
559         end if
561     Case "WRITER","HTML", "HTML"
562         if (Auswahlliste.GetItemCount < MinEntrys) then
563             try
564                 Inhaltsansicht.Click
565             catch
566             endcatch
567         end if
568         if Auswahlliste.GetItemCount >MinEntrys then
569             For j= 1 to 12
570                 Auswahlliste.Select j
571                 Auswahlliste.TypeKeys "-"
572             next j
573         end if
575         Auswahlliste.Select Gruppe
576         if Eintrag >0 then
577             WelcherEintrag = Gruppe + Eintrag
578             Auswahlliste.TypeKeys "+"
579             Auswahlliste.Select WelcherEintrag
580             Auswahlliste.TypeKeys "<Return>"
581         end if
583     Case "MASTERDOCUMENT"
584         if Liste.IsVisible = True then
585             Umschalten.Click
586         end if
588         if Auswahlliste.GetItemCount >MinEntrys then
589             For j= 1 to 12
590                 Auswahlliste.Select j
591                 Auswahlliste.TypeKeys "-"
592             next j
593         end if
595         Auswahlliste.Select Gruppe
596         if Eintrag >0 then
597             WelcherEintrag = Gruppe + Eintrag
598             Auswahlliste.TypeKeys "+"
599             Auswahlliste.Select WelcherEintrag
600             Auswahlliste.TypeKeys "<Return>"
601         end if
602     end select
604     if LeaveFocus = False then
605         Select Case Ucase(gApplication)
606         Case "CALC"
607             Kontext "DocumentCalc"
608         Case "HTML", "HTML"
609             Kontext "DocumentWriter"
610         Case "WRITER"
611             Kontext "DocumentWriter"
612         Case "MASTERDOCUMENT"
613             Kontext "DocumentMasterDoc"
614         end select
615     end if
616 end sub
618 ' ---------------------------------------------------------------
620 function wNavigatorClose
621     '/// Close Navigator
622     Kontext "Navigator"
623     if Navigator.Exists(2) then
624         Navigator.Close
625         WaitSlot()
626     end if
627 end function
629 ' ---------------------------------------------------------------
631 sub wClearDocument
632     Dim i as integer : Dim j as integer
633     '/// Remove all Text, Drawing-objects or Objects from document ///
634     Call wTypeKeys "<PageUp><Home>"
635     Call wTypeKeys "<Backspace>",5
636     DocumentWriter.MouseDown ( 30,30 )
637     DocumentWriter.MouseMove ( 75,60 )
638     wait 500
639     DocumentWriter.MouseUp ( 75, 60 )
640     Sleep 1
641     Call wTypeKeys "<Delete>"
642     Sleep 3
644     Kontext "NavigatorWriter"
645     if Not NavigatorWriter.Exists then ViewNavigator
646     wait 500
648     Kontext "NavigatorWriter"
649     if Auswahlliste.GetItemCount <11 then Inhaltsansicht.Click  ' Grundzustand
651     if Auswahlliste.GetItemCount >11 then
652         For j= 1 to 12
653             Auswahlliste.Select j
654             Auswahlliste.TypeKeys "-"
655         next j
656     end if
657     wait 500
658     for i = 1 to 12
659         Auswahlliste.Select i
660         Auswahlliste.TypeKeys "+"
661         if Auswahlliste.GetItemCount > 11 then
662             for j = 1 to 5 ' maximal 5 Elemente in einer Gruppe
663                 Auswahlliste.TypeKeys "<Down>"
664                 Auswahlliste.TypeKeys "<Delete>"
665                 wait 500
666                 if Auswahlliste.GetItemCount > 11 then Auswahlliste.Select i
667             next j
668         end if
669     next i
670     if j= 5 then Warnlog "Try another way to clear page !"
672     Kontext "Navigator"
673     try
674         Navigator.Close
675     catch
676         Errorlog
677         ViewNavigator
678     endcatch
680     try
681         Call wTypeKeys "<Mod1 A>"
682     catch
683     endcatch
684     Call wTypeKeys "<Delete>"
685     DocumentWriter.MouseDown ( 50,10 )
686     DocumentWriter.MouseUp ( 50,10 )
687     Sleep 2
688     Call wTypeKeys "<Home><PageUp>"
689     Sleep 5
690 end sub
692 ' ---------------------------------------------------------------
694 sub wMarkObjects(delete as boolean)
695     ' The drawing objects has to be selected before deleting them
696     Select Case gApplication
697     Case "WRITER"
698         Kontext "DocumentWriter"
699     Case "MASTERDOCUMENT"
700         Kontext "DocumentMasterDoc"
701     Case "HTML"
702         Kontext "DocumentWriterWeb"
703     end select
705     Call gMouseClick 50,50
706     Call wTypeKeys "<PageUp><Home>"
707     Call wTypeKeys "<Backspace>",5
708     Call gMouseClick 50,50
709     Select Case gApplication
710     Case "WRITER"
711         DocumentWriter.TypeKeys "<Shift F4>"
713     Case "MASTERDOCUMENT"
714         DocumentMasterDoc.TypeKeys "<Shift F4>"
716     Case "HTML"
717         DocumentWriterWeb.TypeKeys "<Shift F4>"
718     end select
720     Sleep 1
721     if delete = TRUE then
722         Call wTypeKeys "<Delete>"
723         Sleep 3
724     end if
725 end sub
727 ' -----------------------------------------------------------------------
729 sub hExportUmstellung ( WasDenn as Boolean )
730     if Ucase(gApplication) = "HTML" then
731         ToolsOptions
732         Call hToolsOptions("LoadSave","HTMLCompatibility")
733         if WasDenn = TRUE then
734             'Select Case iSprache
735             ' Case 81 : Export.Select "Microsoft Internet Explorer 4.0"
736             ' Case else : Export.Select "MS Internet Explorer 4.0"
737             'end select
738             try
739                 Export.Select "Microsoft Internet Explorer"
740             catch
741                 Warnlog "Unable to choose browser for export !"
742             endcatch
743         else
744             Export.Select "Netscape Navigator"
745         end if
746         Kontext "ExtrasOptionenDlg"
747         ExtrasOptionenDlg.OK
748     end if
749 end sub
751 ' -----------------------------------------------------------------------
753 sub wSetMacroSecurityLevel ( wLevel as integer ) as boolean
754     ToolsOptions
755     Call hToolsOptions("StarOffice","Security")
756     wSetMacroSecurityLevel = False
757     try
758         MacroSecurity.Click
759     catch
760         Warnlog "Unable to set macro security level (Button 'Macro Security' not found)"
761         Goto EarlyExit
762     endcatch
764     Kontext
765     Active.SetPage TabSecurityLevel
766     Kontext "TabSecurityLevel"
768     Select Case wLevel
769     Case 1:     VeryHigh.Check
770     Case 2:     High.Check
771     Case 3:     Medium.Check
772     Case 4:     Low.Check
773     Case else:  Warnlog "Wrong level number entered. Unknown"
774         goto EarlyExit
775     end select
776     TabSecurityLevel.Ok
777     wSetMacroSecurityLevel = True
779     EarlyExit:
780     Kontext "ExtrasOptionenDlg"
781     ExtrasOptionenDlg.OK
783 end sub
785 ' -----------------------------------------------------------------------
787 sub wInsertFrame
788     InsertFrame
789     Kontext
790     Active.SetPage TabType
791     Kontext "TabType"
792     TabType.OK
793     Sleep 3
794 end sub
796 ' -----------------------------------------------------------------------
798 sub wRectangleToClipboard
799     Dim tempApplication as string
800     tempApplication = gApplication
801     gApplication = "DRAW"
802     Call hNewDocument
803     Call hRechteckErstellen ( 45, 45, 60, 60 )
804     ' select the drawn object
805     try
806         EditSelectAll
807     catch
808         warnlog "Unable to select object. Maybe not drawn!"
809     endcatch
810     ' copy the selected object
811     try
812         EditCopy
813     catch
814         Warnlog "Unable to copy object. Maybe not selected!"
815     endcatch
817     Call hCloseDocument
818     gApplication = tempApplication
819     Select Case gApplication
820     Case "WRITER"
821         Kontext "DocumentWriter"
822     Case "MASTERDOCUMENT"
823         Kontext "DocumentMasterDoc"
824     end select
825     Call gMouseClick 10,10
826 end sub
828 ' -----------------------------------------------------------------------
830 sub wRectangleToClipboardHTML
831     gApplication = "DRAW"
832     Call hNewDocument
833     Call hRechteckErstellen ( 45, 45, 60, 60 )
834     EditSelectAll
835     EditCopy
836     Call hCloseDocument
837     gApplication = "HTML"
838     Kontext "DocumentWriterWeb"
839     Call gMouseClick
840 end sub
842 ' -----------------------------------------------------------------------
844 function MachMirDenEintrag(WoDenn as integer,WieLang as integer, optional Welches as string)
845     Call wTypeKeys "<Home>"
846     Call wTypeKeys "<Down>",WoDenn
847     Call wTypeKeys "<Mod1 Shift Right>" , WieLang
848     Kontext "VerzeichniseintragEinfuegen"
849     if Welches > "" then
850         Select case Welches
851         case "Inhalt" : Verzeichnis.Select 1
852         case "Stich"  : Verzeichnis.Select 2
853         case "Benutz" : Verzeichnis.Select 3
854         end select
855     end if
856     Verzeichniseintrag.TypeKeys "<Up>"
857     Wait 500
858     EintragOk.Click
859 end function
861 ' -----------------------------------------------------------------------
863 sub wOptionsUndo ( sOption$ )
864     Dim i as integer
865     Dim sTempSeparator as string
866     Dim sTempUnit as integer
868     Printlog "  - Initial state"
870     Call hNewDocument
872     Kontext "ExtrasOptionenDlg"
873     if Not ExtrasOptionenDlg.Exists then
874         ToolsOptions
875     end if
877     Call hToolsOptions("WRITER","General")
878     if Instr(Tabulatorenabstand.Gettext, ",") then
879         sTempSeparator = ","
880     else
881         sTempSeparator = "."
882     end if
883     sTempUnit = Masseinheit.GetSelIndex
885     if sOption$ = "Laden" OR sOption$ = "All" then
886         ' Update
887         AufNachfrage.Check
888         Feldbefehle.Check
889         Diagramme.Uncheck
890         ' Settings
891         Select Case sTempUnit
892         Case 1:     'Millimeter
893             Tabulatorenabstand.Settext "12" & sTempSeparator & "51"
894         Case 2:     ' Centimeter
895             Tabulatorenabstand.Settext "1" & sTempSeparator & "25"
896         Case 3:     ' Inch
897             Tabulatorenabstand.Settext "0" & sTempSeparator & "49"
898         Case 4:     ' Pica
899             Tabulatorenabstand.Settext "2" & sTempSeparator & "95"
900         Case 5:     ' Point
901             Tabulatorenabstand.Settext "35" & sTempSeparator & "5"
902         end select
903     end if
905     Call hToolsOptions("WRITER","View")
906     if sOption$ = "Inhalte" OR sOption$ = "All" then
907         ' Guides
908         Hilfslinien.Uncheck
909         FarbigeHandles.Check
910         GrosseHandles.Uncheck
911         ' View
912         HorizontaleBildlaufleiste.Check
913         VertikaleBildlaufleiste.Check
914         Lineal.Check
915         HorizontalesLineal.Check
916         VertikalesLineal.Check
917         WeichesScrollen.Uncheck
918         ' Display
919         GrafikenUndObjekte.Check
920         Tabellen.Check
921         Zeichnungen.Check
922         Feldname.Uncheck
923         Notizen.Check
924     end if
926     if sOption$ = "Cursor" OR sOption$ = "All" then
927         Call hToolsOptions("WRITER","FormattingAids")
928         ' Display of
929         Absatzenden.UnCheck
930         WeicheTrenner.Check
931         Leerzeichen.UnCheck
932         GeschLeerzeichen.Check
933         Tabulatoren.UnCheck
934         Umbrueche.UnCheck
935         VersteckterText.Uncheck
936         VersteckteAbsatze.Check
937         'Direct-Cursor
938         DirektCursor.Uncheck
939         Absatzausrichtung.Check
940         'Cursor in protected areas
941         Zonen_Cursor.Check
942     end if
944     if sOption$ = "Raster" OR sOption$ = "All" then
945         Call hToolsOptions("WRITER","Grid")
946         ' Grid
947         FangrasterBenutzen.Uncheck
948         RasterSichtbar.Uncheck
949         ' Resolution
950         AchsenSynchronisieren.Uncheck
951         Select Case sTempUnit
952         Case 1:     'Millimeter
953             RasterAufloesungXAchse.SetText "10" & sTempSeparator & "00"
954             RasterAufloesungYAchse.SetText "10" & sTempSeparator & "00"
955         Case 2:     ' Centimeter
956             RasterAufloesungXAchse.SetText "1" & sTempSeparator & "00"
957             RasterAufloesungYAchse.SetText "1" & sTempSeparator & "00"
958         Case 3:     ' Inch
959             RasterAufloesungXAchse.SetText "0" & sTempSeparator & "39"
960             RasterAufloesungYAchse.SetText "0" & sTempSeparator & "39"
961         Case 4:     ' Pica
962             RasterAufloesungXAchse.SetText "2" & sTempSeparator & "36"
963             RasterAufloesungYAchse.SetText "2" & sTempSeparator & "36"
964         Case 5:     ' Point
965             RasterAufloesungXAchse.SetText "28" & sTempSeparator & "3"
966             RasterAufloesungYAchse.SetText "28" & sTempSeparator & "3"
967         end select
968         RasterUnterteilungXAchse.ToMin
969         RasterUnterteilungXAchse.More 1
970         RasterUnterteilungYAchse.ToMin
971         RasterUnterteilungYAchse.More 1
972     end if
974     if sOption$ = "Grundschriften" OR sOption$ = "All" then
975         Call hToolsOptions("WRITER","BasicFonts")
976         Standard.Click
977         AktuellesDokument.Uncheck
978     end if
980     if sOption$ = "Drucken" OR sOption$ = "All" then
981         Call hToolsOptions("WRITER","Print")
982         ' Contents
983         Grafiken.Check
984         Tabellen.Check
985         Zeichnungen.Check
986         Kontrollfelder.Check
987         Hintergrund.Check
988         SchwarzDrucken.Uncheck
989         ' Pages
990         LinkeSeiten.Check
991         RechteSeiten.Check
992         Umgekehrt.Uncheck
993         Prospekt.Uncheck
994         ' Notes
995         Keine.Check
996         ' Other
997         EinzelneDruckauftraege.Uncheck
998         AusDruckereinstellung.Uncheck
999         Fax.SetNoSelection
1000     end if
1002     if sOption$ = "Tabelle" OR sOption$ = "All" then
1003         Call hToolsOptions("WRITER","Table")
1004         ' Default
1005         Ueberschrift.Check
1006         Wiederholen.Check
1007         NichtTrennen.Uncheck
1008         Umrandung.Check
1009         ' Input in Tables
1010         AutomatischeZahlenerkennung.Check
1011         Zahlenformaterkennung.Check
1012         AutomatischeAusrichtung.Check
1013         AutomatischeZahlenerkennung.UnCheck
1014         ' Keyboard handling
1015         Select Case sTempUnit
1016         Case 1:     'Millimeter
1017             VerschiebenZeile.SetText "4" & sTempSeparator & "99"
1018             VerschiebenSpalte.SetText "4" & sTempSeparator & "99"
1019             EinfuegenZeile.SetText "4" & sTempSeparator & "99"
1020             EinfuegenSpalte.SetText "24" & sTempSeparator & "99"
1021         Case 2:     ' Centimeter
1022             VerschiebenZeile.SetText "0" & sTempSeparator & "50"
1023             VerschiebenSpalte.SetText "0" & sTempSeparator & "50"
1024             EinfuegenZeile.SetText "0" & sTempSeparator & "50"
1025             EinfuegenSpalte.SetText "2" & sTempSeparator & "50"
1026         Case 3:     ' Inch
1027             VerschiebenZeile.SetText "0" & sTempSeparator & "20"
1028             VerschiebenSpalte.SetText "0" & sTempSeparator & "20"
1029             EinfuegenZeile.SetText "0" & sTempSeparator & "20"
1030             EinfuegenSpalte.SetText "0" & sTempSeparator & "98"
1031         Case 4:     ' Pica
1032             VerschiebenZeile.SetText "1" & sTempSeparator & "18"
1033             VerschiebenSpalte.SetText "1" & sTempSeparator & "18"
1034             EinfuegenZeile.SetText "1" & sTempSeparator & "18"
1035             EinfuegenSpalte.SetText "5" & sTempSeparator & "90"
1036         Case 5:     ' Point
1037             VerschiebenZeile.SetText "14" & sTempSeparator & "2"
1038             VerschiebenSpalte.SetText "14" & sTempSeparator & "2"
1039             EinfuegenZeile.SetText "14" & sTempSeparator & "2"
1040             EinfuegenSpalte.SetText "70" & sTempSeparator & "9"
1041         end select
1042         Sleep 1
1043         ' Behaviour of rows/columns
1044         Variabel.Check
1045     end if
1047     if sOption$ = "Aenderung" OR sOption$ = "All" then
1048         Call hToolsOptions("WRITER","Changes")
1049         ' Text display
1050         EinfuegenAttribute.Select 4
1051         EinfuegenFarbe.Select 2
1052         LoeschenAttribute.Select 4
1053         LoeschenFarbe.Select 2
1054         AendernAttribute.Select 2
1055         AendernFarbe.Select 2
1056         ' Lines changed
1057         Zeilenmarkierung.Select 2
1058         Zeilenfarbe.Select 1
1059     end if
1061     if sOption$ = "AutoCaption" OR sOption$ = "All" then
1062         Call hToolsOptions("WRITER","Autocaption")
1063         for i = 1 to ObjectList.GetItemCount
1064             ObjectList.Select i
1065             ObjectList.UnCheck
1066         next i
1067     end if
1069     Kontext "ExtrasOptionenDlg"
1070     ExtrasOptionenDlg.OK
1072     Call hCloseDocument
1073 end sub
1075 ' -----------------------------------------------------------------------
1077 function wInsertDocumentinMasterDoc(DocumentName as string) as boolean
1078     Call hNewDocument
1079     Call hFileOpen(DocumentName)
1080     Sleep 2
1081     Call wTypeKeys "<Mod1 A>"
1082     Sleep 2
1083     EditCopy
1084     Call hCloseDocument
1085     wInsertDocumentinMasterDoc = True
1086 end function
1088 ' -----------------------------------------------------------------------
1090 function CheckForFilters() as boolean
1091     Kontext "GraphicFilterBar"
1092     if not GraphicFilterBar.Exists then
1093         Warnlog "- Toolbox has been closed!"
1094         Kontext "GraphicObjectbar"
1095         if Filter.IsEnabled then
1096             GraphicObjectbar.TearOff Filter
1097             Kontext "GraphicFilterBar"
1098             GraphicFilterBar.Move ( 20, 20 )
1099             CheckForFilters = True
1100         else
1101             Warnlog "- Though graphic is selected, the filter button in objectbar is disabled!"
1102             Select Case gApplication
1103             Case "WRITER"
1104                 Kontext "DocumentWriter"
1105                 DocumentWriter.MouseDoubleClick 10,10
1106                 DocumentWriter.MouseDown 50,20
1107                 DocumentWriter.MouseUp 50,20
1108             case else
1109                 Kontext "DocumentMasterDoc"
1110                 DocumentMasterDoc.MouseDoubleClick 10,10
1111                 DocumentMasterDoc.MouseDown 50,20
1112                 DocumentMasterDoc.MouseUp 50,20
1113             end select
1114             Wait 500
1115             Kontext "GraphicObjectbar"
1116             if Filter.IsEnabled then
1117                 GraphicObjectbar.TearOff Filter
1118                 Kontext "GraphicFilterBar"
1119                 GraphicFilterBar.Move ( 20, 20 )
1120                 CheckForFilters = True
1121             else
1122                 Warnlog "- Reselecting the graphic didn't enable the button in the toolbar! No further test!"
1123                 CheckForFilters = False
1124             end if
1125         end if
1126     else
1127         CheckForFilters=True
1128     end if
1129     Kontext "GraphicFilterBar"
1130 end function
1132 ' -----------------------------------------------------------------------
1134 sub hInsertFloatingFrame
1135     Sleep 3
1136     InsertFloatingFrame
1137     Sleep 3
1138     Kontext "TabEigenschaften"
1139     FrameName.SetText "Hallo"
1140     TabEigenschaften.OK
1141     Sleep 2
1142     Kontext "OeffnenDlg"
1143     if OeffnenDlg.Exists(2) then OeffnenDlg.Cancel
1144 end sub
1146 ' -----------------------------------------------------------------------
1148 function wStyleCreate( sStyleName as string, sType as string, optional NotFromSelection as boolean ) as boolean
1149     '/// This function creates a new style through stylist
1151     Kontext "Stylist"
1152     If Not Stylist.Exists then FormatStylist
1154     select case sType
1155     case "Paragraph":   Absatzvorlagen.Click
1156     case "Character":   Zeichenvorlagen.Click
1157     case "Frame":               Rahmenvorlagen.Click
1158     case "Page":                Seitenvorlagen.Click
1159     case "Numbering":   Numerierungsvorlagen.Click
1160     end select
1162     if IsMissing ( NotFromSelection ) then
1163         wait 500
1164         AusSelektion.OpenMenu
1165         Sleep 1
1166         Call hMenuSelectNr(1)
1167         Sleep 1
1168         wait 500
1169         Kontext "VorlageErzeugen"
1170         Vorlagenname.Settext sStyleName
1171         VorlageErzeugen.Ok
1172     else
1173         if NotFromSelection = true then
1174             VorlagenListe.TypeKeys "<Mod1 End>"
1175             Vorlagenliste.TypeKeys "<Mod1 Home>"
1176             Vorlagenliste.OpenContextMenu
1177             Sleep 1
1178             Call hMenuSelectNr(1)
1179             wait 500
1180             Kontext
1181             Active.SetPage TabVerwalten
1182             wait 500
1183             Kontext "TabVerwalten"
1184             VorlagenName.SetText sStyleName
1185             wait 500
1186             TabVerwalten.OK
1187         end if
1188     end if
1190     Kontext "Stylist"
1192     if wStyleSelect ( sStyleName, sType ) = true then
1193         wStyleCreate = False
1194     else
1195         wStyleCreate = True
1196     end if
1197     Stylist.Close
1198 end function
1200 ' -----------------------------------------------------------------------
1202 function wStyleSelect( sStyleName as string, optional sType as string ) as boolean
1203     '/// This function selects a given style in Stylist
1204     '/// function leaves Stylist opened
1206     Dim i as integer
1208     Kontext "Stylist"
1209     If Not Stylist.Exists then FormatStylist
1211     wait 500
1212     Gruppenliste.Select 2       '-> 'All Styles' has to be selected
1213     wait 500
1214     if IsMissing (sType) then
1215         Absatzvorlagen.Click
1216     else
1217         select case sType
1218         case "Paragraph":       Absatzvorlagen.Click
1219         case "Character":       Zeichenvorlagen.Click
1220         case "Frame":           Rahmenvorlagen.Click
1221         case "Page":            Seitenvorlagen.Click
1222         case "Numbering":       Numerierungsvorlagen.Click
1223         end select
1224     end if
1226     Sleep 1
1227     Vorlagenliste.Select 1
1228     wait 500
1229     if Vorlagenliste.GetSelText <> sStyleName then
1230         For i = 1 to 200
1231             if Vorlagenliste.GetSelText = sStyleName then
1232                 wStyleSelect = true
1233                 i = 202
1234             else
1235                 Vorlagenliste.TypeKeys "<Down>"
1236             end if
1237         next i
1238         if i = 202 then wStyleSelect = true
1239     else
1240         wStyleSelect = true
1241     end if
1243 end function
1245 ' -----------------------------------------------------------------------
1247 function wStyleDelete ( sStyleName as string, sType as string ) as boolean
1248     '/// This function selects a given style in Stylist
1249     '/// function leaves Stylist opened
1251     Dim i as integer
1253     Kontext "Stylist"
1254     If Not Stylist.Exists then FormatStylist
1256     select case sType
1257     case "Paragraph":   Absatzvorlagen.Click
1258     case "Character":   Zeichenvorlagen.Click
1259     case "Frame":               Rahmenvorlagen.Click
1260     case "Page":                Seitenvorlagen.Click
1261     case "Numbering":   Numerierungsvorlagen.Click
1262     end select
1264     Vorlagenliste.TypeKeys "<Mod1 End>"
1265     Vorlagenliste.TypeKeys "<Mod1 Home>"
1266     if Vorlagenliste.GetSelText <> sStyleName then
1267         For i = 1 to 200
1268             if Vorlagenliste.GetSelText = sStyleName then
1269                 Vorlagenliste.OpenContextMenu
1270                 Sleep 1
1271                 Call hMenuSelectNr(3)
1272                 wait 500
1273                 Kontext "Active"
1274                 if Active.Exists then
1275                     if Active.GetRT = 304 then
1276                         Active.Yes
1277                         i = 203
1278                     end if
1279                 end if
1280             else
1281                 Vorlagenliste.TypeKeys "<Down>"
1282             end if
1283         next i
1284         if i = 204 then wStyleDelete = true
1285     else
1286         Vorlagenliste.OpenContextMenu
1287         Sleep 1
1288         Call hMenuSelectNr(3)
1289         wait 500
1290         Kontext "Active"
1291         if Active.Exists then
1292             if Active.GetRT = 304 then
1293                 Active.Yes
1294             end if
1295         end if
1296         wStyleDelete = true
1297     end if
1299 end function
1301 ' -----------------------------------------------------------------------
1303 function wStyleSet( sStyleName as string, optional sType as string ) as boolean
1304     '/// This function sets a given style in Stylist
1305     '/// function leaves Stylist opened
1307     Dim i as integer
1309     Kontext "Stylist"
1310     If Not Stylist.Exists then FormatStylist
1312     wait 500
1313     Gruppenliste.Select 2       '-> 'All Styles' has to be selected
1314     wait 500
1315     if IsMissing (sType) then
1316         Absatzvorlagen.Click
1317     else
1318         select case sType
1319         case "Paragraph":       Absatzvorlagen.Click
1320         case "Character":       Zeichenvorlagen.Click
1321         case "Frame":           Rahmenvorlagen.Click
1322         case "Page":            Seitenvorlagen.Click
1323         case "Numbering":       Numerierungsvorlagen.Click
1324         end select
1325     end if
1327     Sleep 1
1328     Vorlagenliste.Select 1
1329     wait 500
1330     if Vorlagenliste.GetSelText <> sStyleName then
1331         For i = 1 to 200
1332             if Vorlagenliste.GetSelText = sStyleName then
1333                 wStyleSet = true
1334                 Vorlagenliste.TypeKeys "<Return>"
1335                 exit for
1336             else
1337                 Vorlagenliste.TypeKeys "<Down>"
1338             end if
1339         next i
1340     else
1341         wStyleSet = true
1342     end if
1344 end function
1346 ' -----------------------------------------------------------------------
1348 function wStyleGet( sStyleName as string, optional sType as string ) as boolean
1349     '/// This function checks if a given style is selected in Stylist
1350     '/// function leaves Stylist opened
1352     Dim i as integer
1354     Kontext "Stylist"
1355     If Not Stylist.Exists then FormatStylist
1357     wait 500
1358     Gruppenliste.Select 2       '-> 'All Styles' has to be selected
1359     wait 500
1360     if IsMissing (sType) then
1361         Absatzvorlagen.Click
1362     else
1363         select case sType
1364         case "Paragraph":       Absatzvorlagen.Click
1365         case "Character":       Zeichenvorlagen.Click
1366         case "Frame":           Rahmenvorlagen.Click
1367         case "Page":            Seitenvorlagen.Click
1368         case "Numbering":       Numerierungsvorlagen.Click
1369         end select
1370     end if
1372     wait 500
1373     if Vorlagenliste.GetSelText = sStyleName then
1374         wStyleGet = true
1375     end if
1377 end function