diff options
author | August Sodora <augsod@gmail.com> | 2011-12-07 00:55:10 -0500 |
---|---|---|
committer | August Sodora <augsod@gmail.com> | 2011-12-07 00:56:22 -0500 |
commit | a2eb0cf44bbd15ae24f9423d3bc6e420691c300d (patch) | |
tree | b11ce54011011e96217d9b504e81ec87aaef38a4 /testautomation/global/tools/includes/required/t_tools1.inc | |
parent | e2621785569969374cc3bc39fae0341d8b848612 (diff) |
Remove testtool
Diffstat (limited to 'testautomation/global/tools/includes/required/t_tools1.inc')
-rw-r--r-- | testautomation/global/tools/includes/required/t_tools1.inc | 1148 |
1 files changed, 0 insertions, 1148 deletions
diff --git a/testautomation/global/tools/includes/required/t_tools1.inc b/testautomation/global/tools/includes/required/t_tools1.inc deleted file mode 100644 index 837a989678be..000000000000 --- a/testautomation/global/tools/includes/required/t_tools1.inc +++ /dev/null @@ -1,1148 +0,0 @@ -'encoding UTF-8 Do not remove or change this line! -'******************************************************************************* -' DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -' -' Copyright 2000, 2010 Oracle and/or its affiliates. -' -' OpenOffice.org - a multi-platform office productivity suite -' -' This file is part of OpenOffice.org. -' -' OpenOffice.org is free software: you can redistribute it and/or modify -' it under the terms of the GNU Lesser General Public License version 3 -' only, as published by the Free Software Foundation. -' -' OpenOffice.org is distributed in the hope that it will be useful, -' but WITHOUT ANY WARRANTY; without even the implied warranty of -' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -' GNU Lesser General Public License version 3 for more details -' (a copy is included in the LICENSE file that accompanied this code). -' -' You should have received a copy of the GNU Lesser General Public License -' version 3 along with OpenOffice.org. If not, see -' <http://www.openoffice.org/license.html> -' for a copy of the LGPLv3 License. -' -'/****************************************************************************** -'* -'* owner : gregor.hartmann@oracle.com -'* -'* short description : Tools (1) -'* -'\****************************************************************************** - -private SLEEP_TIME_REQUESTED as integer -private SLEEP_CALLS_SUM as integer -private SLEEP_TIME_USED as integer - -function GetClipboardText as string - - '/// Returns the correct clipboard text (also if there is a 'RETURN' at it's end. - Dim i% : Dim CBText$ - Dim Zwischen$ - - wait 500 - GetClipboardText = "" - CBText$ = GetClipboard - - if CBText$ = "" then - GetClipboardText = "" - exit function - end if - - if asc ( Right( CBText$, 1 )) = 10 then - Zwischen$ = Mid( CBText$, 1, len(CBText$)-1 ) - if Zwischen$ <> "" then - if asc ( Right( Zwischen$, 1 )) = 13 then - GetClipboardText = Mid( Zwischen$, 1, len(Zwischen$)-1 ) - else - GetClipboardText = Zwischen$ - end if - else - GetClipboardText = Zwischen$ - end if - else - if asc ( Right( CBText$, 1 )) = 13 then - Zwischen$ = Mid( CBText$, 1, len(CBText$)-1 ) - if asc ( Right( Zwischen$, 1 )) = 10 then - GetClipboardText = Mid( Zwischen$, 1, len(Zwischen$)-1 ) - else - GetClipboardText = Zwischen$ - end if - else - GetClipboardText = CBText$ - end if - end if - -end function - -'******************************************************************************* - -function hDoubleClickInList ( window, Selektion as String, optional bFocus as boolean ) as Boolean - - '/// hDoubleClickInList - '///+ Makes a double click onto an entry in a list (tested only in <i>style lists</i>) - '///+ window: name of list ///' - '///+ selektion: string to find in list ///' - '///+ bFocus: TRUE: activate the window with mouseclick before leaving ///' - '///+ ReturnValue: if found: TRUE; else FALSE ///' - - Dim i as Integer - Dim AlterWert as String - Dim NeuerWert as String - - NeuerWert = "!=! !=!" ' init with dummy value - window.TypeKeys "<Home>" - if window.gettext <> Selektion then - for i=1 to 100 step 2 - - window.MouseDown 5, i +1 - window.MouseUp 5, i +1 - AlterWert = window.GetText - window.TypeKeys "<Down>" - NeuerWert = Window.GetText - window.TypeKeys "<Up>" - - if AlterWert = Selektion then - - window.MouseDown 5, i +1 - window.MouseUp 5, i +1 - - ' catch if <down> had any effects - if Window.GetText = Selektion then - - window.MouseDoubleClick 5, i +1 - - ' if optional parameter provided - if (isMissing (bFocus) = FALSE) then - window.MouseDown 5, i +1 - window.MouseUp 5, i +1 - endif - - i = 202 - else - i=0 ' start at top of list - end if - else - - if AlterWert = NeuerWert then - Warnlog "'" + Selektion + "' wasn't found in list!" - i = 202 - else - - if i > 98 then - i=40 ' list not at end, but scrolled - endif - - end if - - end if - - next i - - if i < 200 OR i > 100 then - hDoubleClickInList = FALSE - else - hDoubleClickInList = TRUE - end if - - else - window.TypeKeys "<Return>" - hDoubleClickInList = TRUE - endif - -end function - -'******************************************************************************* - -sub hMouseClick ( window, xPos, yPos ) - - ' Author: Thorsten Ziehm (26.09.2000) - '/// hMouseClick - '///+ Do a mouse click on a named window. - '/// <i>Input</i>: - '///+ window : The object on which the mouse click should be make (document, listbox, window) - '///+ xPos : x-position (relativ to the size of the window (1:100) - '///+ yPos : y-position (relativ to the size of the window (1:100) - window.MouseDown ( xPos, yPos ) - window.MouseUp ( xPos, yPos ) - -end sub - -'******************************************************************************* - -function wielange (StrtTime, optional iFormat as integer) as String - - ' Author: Michael Friedrichs - '/// wielange - '///+ Returns the time between a start- and an end timeframe. - '///+ iFormat: 0: default; 1: mysql ///' - - Dim Zeitspanne - Dim Zeitspannesek - Dim Zeitspannemin - Dim Zeitspanneh - dim sTemp as string - - if isMissing(iFormat) then - 'dim iFormat as integer - iFormat = 0 - endif - - Zeitspanne = Now() - StrtTime - Zeitspannesek = Zeitspanne / 1.15741E-05 + 1 - Zeitspanneh = Fix(Zeitspannesek / 3600) - Zeitspannesek = Zeitspannesek - Zeitspanneh * 3600 - Zeitspannemin = Fix(Zeitspannesek / 60) - Zeitspannesek = Zeitspannesek - Zeitspannemin * 60 - Zeitspannesek = Fix(Zeitspannesek) - select case iFormat - case 0 - sTemp = "" & Zeitspanneh & "h " & Zeitspannemin & "m " & Zeitspannesek & "s" - case 1 - ' mysql format for status.inc - if Zeitspanneh < 10 then - sTemp = "0" & Zeitspanneh & ":" - else - sTemp = "" & Zeitspanneh & ":" - end if - - if Zeitspannemin < 10 then - sTemp = "" & sTemp & "0" & Zeitspannemin & ":" - else - sTemp = "" & sTemp & Zeitspannemin & ":" - end if - - if Zeitspannesek < 10 then - sTemp = "" & sTemp & "0" & Zeitspannesek - else - sTemp = "" & sTemp & Zeitspannesek - end if - - case default: - qaErrorLog "t_tools1.inc::wielange: optional parameter iFormat out of range!" - sTemp = "" - end select - - wielange = sTemp - -end function - -'******************************************************************************* - -function Sleep( optional _iSeconds as integer ) as integer - - const CFN = "global::tools::includes::required::Sleep(...): " - - const STATUS_NO_DELAY = 0 - const STATUS_TIMEOUT_EXCEEDED = 1 - const STATUS_WAITSLOT_CRASHED = 2 - const STATUS_CLASSIC_WAIT_USED = 3 - - ' This is the "classic" behavior of the sleep function. If you did not set - ' GLOBAL_USE_NEW_SLEEP to TRUE in your .bas file, this will be used. - if ( not GLOBAL_USE_NEW_SLEEP ) then - if ( IsMissing( _iSeconds ) ) then - wait( 1000 ) - else - wait( _iSeconds * 1000 ) - endif - sleep() = STATUS_CLASSIC_WAIT_USED - exit function - endif - - ' This is an extended and accelerated version of the "classic" sleep() - ' subroutine which used to call Wait( n ) with a given number of - ' milliseconds. This function uses WaitSlot( n ) and is dynamic. - ' The try...catch block is necessary because WaitSlot() can - under certain - ' yet unknown conditions - make the office application crash. - ' When called with 0 seconds we return 0 (dynamic sleep statements within - ' test initialization can actually call the function with a Zero parameter) - ' A negative number forces the function to use the classic behavior. - ' If no time is given the function defaults to 5 seconds. - ' The function now provides returnvalues: - ' 0 = Normal WaitSlot() used, this is the preferred method. - ' 1 = WaitSlot() timeout reached, one extra second was added. - ' This is bad and the script developer should try to fix it. - ' 2 = Wait() was used (classic method, fallback). - ' 3 = Wait() was used (forced old behavior) - - dim iMilliseconds as integer - dim iStatus as integer : iStatus = 0 - dim lBegin as long : lBegin = GetSystemTicks - dim iSeconds as integer : iSeconds = 5 - dim iSystemDelay as integer : iSystemDelay = 1000 - dim iTimeDiff as long : iTimeDiff = 0 - - ' On Solaris we are a little slower, so we increase the system delay a little - if ( instr( lcase( gtSysName ) , "solaris" ) > 0 ) then - iSystemDelay = 1500 - endif - - ' Override default wait time (5 seconds) if parameter is given - if ( not IsMissing( _iSeconds ) ) then - iSeconds = _iSeconds - endif - - ' Do exit directly if no wait requested - if ( iSeconds = 0 ) then - Sleep() = STATUS_NO_DELAY - exit function - endif - - ' We need the time in ms and absolute (parameter can be negative) - iMilliseconds = abs( iSeconds * 1000 ) - - ' Here we actually do the delay and generate return values - ' If WaitSlot() times out, we give an extra second (wait(1000)) - if ( iSeconds > 0 ) then - try - if ( WaitSlot( iMilliseconds ) <> WSFinished ) then - wait( iSystemDelay ) - iStatus = STATUS_TIMEOUT_EXCEEDED - endif - catch - wait( iMilliseconds ) - iStatus = STATUS_WAITSLOT_CRASHED - endcatch - else - Wait( iMilliseconds ) - iStatus = STATUS_CLASSIC_WAIT_USED - endif - - ' Find out how long it took, warn if time was zero (sleep most likely not required) - iTimeDiff = GetSystemTicks - lBegin - if ( iTimeDiff = 0 ) then - printlog( CFN & "Zero time. Please consider removing Sleep() statement" ) - endif - - if ( GVERBOSE ) then - SLEEP_CALLS_SUM = SLEEP_CALLS_SUM + 1 - SLEEP_TIME_USED = SLEEP_TIME_USED + iTimeDiff / 1000 ' good enough - SLEEP_TIME_REQUESTED = SLEEP_TIME_REQUESTED + iSeconds - printlog( CFN & "--------------------- New call ---------------------" ) - printlog( CFN & "Total Sleep()-Time requested (seconds): " & SLEEP_TIME_REQUESTED ) - printlog( CFN & "Total Sleep()-Time used (seconds).....: " & SLEEP_TIME_USED ) - printlog( CFN & "Total number of Sleep()-Calls.........: " & SLEEP_CALLS_SUM ) - endif - - ' Try to make something useful out of the status - if ( iStatus <> 0 ) then - printlog( CFN & "Sleep(" & abs( iSeconds ) & "), took " _ - & iTimeDiff & " ms, rc=" & iStatus ) - select case iStatus - case STATUS_TIMEOUT_EXCEEDED : - printlog( CFN & "Timeout exceeded." ) - case STATUS_WAITSLOT_CRASHED : - printlog( CFN & "Used Wait(n). WaitSlot() failed." ) - case STATUS_CLASSIC_WAIT_USED : - printlog( CFN & "Used Wait(n). Classic behavior forced" ) - end select - endif - Sleep() = iStatus - -end function - -'******************************************************************************* - -sub DialogTest( Window, optional iNumber as integer) - - '/// DialogTest - '///+ Make <i>SnapShots</i> - '/// <b>Window</b> : the name of the window as declared in qa/qatesttool/global/win/* - '/// <i>Optional Parameter</i> <b>iNumber</b> : Number to distinguish windows which dynamical change their content but not their ID///' - '///+ the number has to be provided by the testscript creator ///' - Dim Ergebnis as Integer - Dim Ausgabe as String - Dim UndRaus as Boolean - Dim sCount as string - - ' evaluate optional parameter - if isMissing(iNumber) then - 'just one picture - sCount = "" - else - 'there will be more pictures with the same ID - sCount = "_"+iNumber - endif - - if gDasNicht=0 then - ' In Place Translation Feature: not used anymore; - ' The matching of the strings on the later migration step never worked. - ' Just kept here for historical reasons - Ausgabe = "" - UndRaus = FALSE - while UndRaus = FALSE - Ausgabe = translate - if Ausgabe <> "" OR Ausgabe <> "1" then - if Left ( Ausgabe, 1 ) = "0" then - Ausgabe = Right ( Ausgabe, Len( Ausgabe )- 2 ) - AnhaengenAnDatei ( gOfficePath + "trans_output.txt", Ausgabe ) - end if - end if - if Ausgabe = "1" then - UndRaus = TRUE - endif - wend - else - ' Usual window check - try - if Not window.Exists(2) then - Warnlog " - Window nicht existent:" + window.Name + " " + window.ID - exit sub - end if - 'To get a history, of what windows are covered, use the following line - ' AnhaengenAnDatei ( ConvertPath (gOfficePath + "user\work\wieviel.txt"), window.Name + " " + sCount + " : " + window.ID ) - catch - ExceptLog - endcatch - end if - - if gbSnapShot = TRUE then - 'Make Screenshot from dialog and save as HelpID.bmp - Dim Dummy as String, sName as String, sPicName as String - - 'get window ID - Dummy = Window - 'set filename - sName = Dummy + sCount + ".bmp" - - 'save with respect to application and language - sCapturePath = ConvertPath (gOfficePath + "user\work\screenshots"+iSprache+"\") - sPicName = sCapturePath + lCase(gApplication) - - 'create directory if it doesn't exist - if ( not FileExists(sPicName) ) then mkdir sPicName - - sPicName = sPicName + sName - try - sleep 1 - window.SnapShot( sPicName ) - catch - warnlog "t_tools1.inc::DialogTest Failed to save screenshot: '" + sPicName + "'" - endcatch - printlog sPicName - end if - -end sub - -'******************************************************************************* - -function hFindeImDokument ( Passage$ , Optional A, optional bRegEx ) as boolean - - ' Author: Joerg Sievers (13.11.2001) - '/// hFindeImDokument - '/// Searches via 'Search&Replace'-Dlg in StarOffice Writer, -Clac, - '///+ -HTML, -GlobalDoc for the string <b>EXACT MATCH</b>. - '///+ Only ONE TIME and THE FIRST search phrase will be found! - '/// <i>Optional Parameter</i> <b>a</b> : If you do not want a warnlog message - '/// <i>Optional Parameter</i> <b>bRegEx</b> : if you look fort an regular expression - Dim WhatIsIn as string - Dim bSilent as boolean - - bSilent = NOT isMissing(a) - gApplication = UCase ( gApplication ) - hFindeImDokument = FALSE - - select case gApplication - - case "CALC" : - Kontext "DocumentCalc" - DocumentCalc.TypeKeys "<MOD1 HOME>" - - case "WRITER" : - Kontext "DocumentWriter" - DocumentWriter.TypeKeys "<MOD1 HOME>" - - case "HTMLDOKUMENT": - Kontext "DocumentWriterWeb" - DocumentWriterWeb.TypeKeys "<MOD1 HOME>" - - case "GLOBALDOC" : - Kontext "DocumentMasterDoc" - DocumentMasterDoc.TypeKeys "<MOD1 HOME>" - end select - - SetClipboard "" - EditSearchAndReplace - - Kontext "FindAndReplace" - if SimilaritySearch.IsVisible = False then - More.Click - end if - - if MatchCase.IsChecked = False then - MatchCase.Check - end if - - if SimilaritySearch.IsChecked = TRUE then - SimilaritySearch.UnCheck - if NOT bSilent then - warnlog "'Similarity search' checkbox was enabled! It shouldn't be the default!" - endif - end if - - if IsMissing(bRegEx) <> TRUE then - RegularExpressions.Check - end if - - SearchFor.Settext Passage$ - SearchNow.Click - - Kontext - if NOT Active.Exists(2) then - - Kontext "FindAndReplace" - More.Click - FindAndReplace.Cancel - EditCopy - WhatIsIn = GetClipboardText - - if WhatIsIn <> Passage$ then - if NOT bSilent then - warnlog "The search-request for '" & Passage$ & "' has been fault! (Found: '"& WhatIsIn & "')" - end if - else - hFindeImDokument = TRUE - end if - - else - try - Kontext - if Active.Exists(1) then - Active.OK - end if - - if NOT bSilent then - warnlog "The search-request for '" & Passage$ & "' has been fault! (Found: '"& WhatIsIn & "')" - end if - - Kontext "FindAndReplace" - if SimilaritySearch.IsVisible = False then - More.Click - endif - - if MatchCase.IsChecked then - MatchCase.UnCheck - endif - - if SimilaritySearch.IsChecked = TRUE then - - SimilaritySearch.UnCheck - if NOT bSilent then - warnlog "'Similarity search' checkbox was enabled! It shouldn't be the default!" - endif - end if - - if IsMissing(bRegEx) <> TRUE then - RegularExpressions.UnCheck - endif - - More.Click - FindAndReplace.Cancel - catch - Active.Yes - - Kontext - if bSilent then - if Active.Exists then - printlog "> "+Active.GetText - endif - endif - - if Active.Exists then - Active.OK - endif - - if NOT bSilent then - warnlog "The search-request for '" & Passage$ & "' has been fault! (Found: '"& WhatIsIn & "')" - endif - - Kontext "FindAndReplace" - if SimilaritySearch.IsVisible = False then - More.Click - endif - - if MatchCase.IsChecked then - MatchCase.UnCheck - endif - - if SimilaritySearch.IsChecked = TRUE then - - SimilaritySearch.UnCheck - if NOT bSilent then - warnlog "'Similarity search' checkbox was enabled! It shouldn't be the default!" - endif - end if - - if IsMissing(bRegEx) <> TRUE then - RegulaererAusdruck.UnCheck - endif - - More.Click - FindAndReplace.Cancel - - endcatch - end if - -end function - -'******************************************************************************* - -function hFindeMehrImDokument ( Passage as string , WieOft as integer ) as boolean - - ' Author: Joerg Sievers (26.07.2000) - '/// hFindeMehrImDokument - '/// Searches per 'Search&Replace'-Dlg in StarOffice Writer, -Clac, - '///+-HTML, -GlobalDoc for the string <b>EXACT MATCH</b>. - '/// You have to give the function the number how often the phrase - '///+should be found in the document as an additional parameter (as integer). - '/// Only when exact the number of the phrase will be found correctly - '///+the function gives back TRUE. - '/// <i>see also</i> : hFindeImDokument (TOOLS.INC) - Dim i as integer - gApplication = UCase ( gApplication ) - - hFindeMehrImDokument = FALSE - - select case gApplication - - case "CALC" : - Kontext "DocumentCalc" - DocumentCalc.TypeKeys "<MOD1 HOME>" - - case "WRITER" : - Kontext "DocumentWriter" - DocumentWriter.TypeKeys "<MOD1 HOME>" - - case "HTMLDOKUMENT": - Kontext "DocumentWriter" - DocumentWriter.TypeKeys "<MOD1 HOME>" - - case "GLOBALDOC" : - Kontext "DocumentMasterDoc" - DocumentMasterDoc.TypeKeys "<MOD1 HOME>" - - end select - - SetClipboard "" - EditSearchAndReplace - - For i = 1 to WieOft - - Kontext "FindAndReplace" - if NOT MatchCase.IsChecked then - MatchCase.Check - endif - SearchFor.Settext Passage - SearchNow.Click - - Kontext - if NOT Active.Exists(2) then - - FindAndReplace.Cancel - EditCopy - - if GetClipboardText <> Passage then - warnlog "The search-request for '" & Passage & "' has been fault!" - i = WieOft - else - if i = WieOft then - hFindeImDokument = TRUE - printlog "Searchphrase found " & i & " time(s)." - end if - end if - else - try - Active.OK - - Kontext - if Active.Exists then - Active.OK - endif - warnlog "The search-request for '" & Passage & "' has been fault!" - i = WieOft - Kontext "FindAndReplace" - - if MatchCase.IsChecked then - MatchCase.UnCheck - endif - FindAndReplace.Cancel - catch - Active.Yes - - Kontext - if Active.Exists then - Active.OK - endif - warnlog "The search-request for '" & Passage & "' has been fault!" - i = WieOft - - Kontext "FindAndReplace" - if MatchCase.IsChecked then - MatchCase.UnCheck - endif - FindAndReplace.Cancel - endcatch - end if - Next i - Kontext "FindAndReplace" - if FindAndReplace.Exists(2) then - FindAndReplace.Cancel - end if - -end function - -'******************************************************************************* - -sub TextInDatei ( TextText$, Datei$ ) - - '/// TextInDatei - - Dim FileNum% - - FileNum% = FreeFile - Open Datei$ for Append as #FileNum% - Print #FileNum%, TextText$ - Close #FileNum% - -end sub - -'******************************************************************************* - -function TrimTab ( sTrimmer as String ) as String - - '/// TrimTab - '/// <u>Input</u>: the original text - '/// Returns the string without <tab>s at the beginning and the end of a string. - - Dim sInterim as String - - sInterim = sTrimmer - sInterim = lTrimTab ( sInterim ) - TrimTab = rTrimTab ( sInterim ) - -end function - -'******************************************************************************* - -function lTrimTab ( slTrimmer as String ) as String - - '/// lTrimTab - '/// <u>Input</u>: the original text - '/// Returns the string without <tab>s at the beginning. - '/// Cuts <Tab's> at the beginning of a string ( left ) - - Dim i, iLen as Integer - Dim sInterim as String - - iLen = len ( slTrimmer ) - sInterim = slTrimmer - - for i=1 to iLen - if Asc ( left ( sInterim, 1 ) ) = 9 then - sInterim = Right ( sInterim, len ( sInterim ) - 1 ) - else - i=iLen+1 - end if - next i - lTrimTab = sInterim -end function - -'******************************************************************************* - -function rTrimTab ( srTrimmer as String ) as String - - '/// rTrimTab - '/// Input: the original text - '/// Returns the string without <tab>s at the end. - '/// Cuts <Tab's> at the beginning of a string ( right ) - - Dim i, iLen as Integer - Dim sInterim as String - - iLen = len ( srTrimmer ) - sInterim = srTrimmer - - for i=1 to iLen - if Asc ( right ( sInterim, 1 ) ) = 9 then - sInterim = left ( sInterim, len ( sInterim ) - 1 ) - else - i=iLen+1 - end if - next i - rTrimTab = sInterim - - end function - -'******************************************************************************* - -function TrimString (Content as String, delim as integer) as String - - ' Author: Frank Heitbrock (26.07.2002) - '/// TrimString - '/// <u>Input</u>: The String, the delimiter which should be cut from the string. - '/// Returns the String without the delimiter. - '/// <u>Example</u>: - '///+ Content = " H a l l o ", delim = 32 (ascii for space character) - '///+ Return = "Hallo" - dim strlen as integer, i as integer, k as integer - dim CharBuff(1 to 100) as String - dim ResultStr as String - ' at first cut the empty strings left and right of the String - Content = lTrim(Content) - Content = rTrim(Content) - ' now we search for all appropriate ascii characters in the middle of the String and delete them - strlen = len(Content) - k = 1 - for i = 1 to strlen - if mid(Content, i, 1) <> chr(delim) then - CharBuff(k) = mid(Content, i, 1) - k = k +1 - end if - next i - for i = 1 to k - ResultStr = ResultStr + CharBuff(i) - next i - TrimString = ResultStr - -end function - -'******************************************************************************* - -function ActiveDeactivateAsianSupport ( WhatState as Boolean ) as Boolean - - ' Author: Thorsten Ziehm - '/// ActiveDeactivateAsianSupport - '/// <u>Input</u>: TRUE or FALSE - '///+ TRUE: The Asian support will be enabled. - '///+ FALSE: The Asian support will be disabled. - '/// <u>Return:</u> - '///+ TRUE/FALSE for the last state of the checkbox in the office UI. - ToolsOptions - hToolsOptions ( "LanguageSettings", "Languages" ) - - IF Aktivieren.IsEnabled then 'the checkbox is disabled in asian versions - ActiveDeactivateAsianSupport = Aktivieren.IsChecked ' the function gets the old state of the checkbox - - if WhatState = TRUE then - try - Aktivieren.Check - catch - endcatch - else - Aktivieren.UnCheck - end if - gAsianSup = WhatState ' Set the global variable - - Kontext "ExtrasOptionenDlg" - hCloseDialog( ExtrasOptionenDlg, "ok" ) - else - ActiveDeactivateAsianSupport = TRUE - If WhatState = FALSE then - warnlog "Deactivating of asian language support is not possible, because it is disabled in cjk versions" - end if - Kontext "ExtrasOptionenDlg" - hCloseDialog( ExtrasOptionenDlg, "ok" ) - end if - -end function - -'******************************************************************************* - -function ActiveDeactivateCTLSupport ( WhatState as Boolean ) as Boolean - - ' Author: Hercule Li (March 2004) - '/// ActiveDeactivateCTLSupport - '/// <u>Input</u>: TRUE or FALSE - '/// TRUE : The CTL will be enabled. - '/// FALSE: The CTL will be disabled. - '/// <u>Return:</u> - '/// TRUE/FALSE for the last state of the checkbox in the office UI. - ToolsOptions - hToolsOptions ( "LanguageSettings", "Languages" ) - - IF ComplexScriptEnabled.IsEnabled then 'the checkbox is disabled in CTL versions - ActiveDeactivateCTLSupport = ComplexScriptEnabled.IsChecked ' the function gets the old state of the checkbox - - if WhatState = TRUE then - ComplexScriptEnabled.Check - else - ComplexScriptEnabled.UnCheck - end if - gCTLSup = WhatState ' Set the global variable - - Kontext "ExtrasOptionenDlg" - hCloseDialog( ExtrasOptionenDlg, "ok" ) - else - ActiveDeactivateCTLSupport = TRUE - If WhatState = FALSE then - warnlog "Deactivating of CTL language support is not possible, because it is disabled in ctl versions" - end if - Kontext "ExtrasOptionenDlg" - hCloseDialog( ExtrasOptionenDlg, "ok" ) - end if - -end function - -'******************************************************************************* - -function GetDecimalSeperator ( optional sDummy$ ) as String - - '/// <u>Precondition</u>: Measuring unit has to be set to centimeter (cm) before using this function. (see: fSetMeasurementToCM()) - '///+ <u>Input</u>: Number with fractionmark from <i>NumericField</i> as string - '///+ <u>Output</u>: A dot (.) or a comma (,) as string - Dim sCheckForSeparator as string - Const cWhereIsThisFunction = "qa::qatesttool::global::tools::inc::t_tools1.inc::GetDecimalSeperator: " - Dim bDotOrCommaIncluded as boolean - - 'Setting the determination of a dot or a comma to FALSE until it was successfull. - bDotOrCommaIncluded = FALSE - - if IsMissing(sDummy$) then - '/// Opening a new document depending on <i>gApplication</i> value and closing it at the end. - Call hNewDocument - '/// Tools / Options / (Modul: gApplication) / General tabpage. - ToolsOptions - '///+ <ol><li>Reading the string of the tabulator numeric field</li> - select case gApplication - case "WRITER" - Call hToolsOptions("WRITER","GENERAL") - sCheckForSeparator = Tabulatorenabstand.GetText - case "CALC" - Call hToolsOptions("CALC","GENERAL") - sCheckForSeparator = Tabulator.GetText - case "IMPRESS" - Call hToolsOptions("IMPRESS","GENERAL") - sCheckForSeparator = Tabulatorenabstand.GetText - case "DRAW" - Call hToolsOptions("DRAW","GENERAL") - sCheckForSeparator = Tabulatorenabstand.GetText - case "MASTERDOCUMENT" - Call hToolsOptions("WRITER","GENERAL") - sCheckForSeparator = Tabulatorenabstand.GetText - case "HTML" - Call hToolsOptions("WRITER","GENERAL") - sCheckForSeparator = Tabulatorenabstand.GetText - case else - warnlog cWhereIsThisFunction & "For this module ("& gApplication &") no decimal seperator setting exists." - end select - Kontext "ExtrasOptionenDlg" - ExtrasOptionenDlg.OK - if Instr(sCheckForSeparator, ",") > 0 then - GetDecimalSeperator = "," - bDotOrCommaIncluded = TRUE - endif - if Instr(sCheckForSeparator, ".") > 0 then - GetDecimalSeperator = "." - bDotOrCommaIncluded = TRUE - endif - Call hCloseDocument - else - '///+ <li>or determining the seperator depending on the OPTIONAL value (string).</li></ol> - 'Get position of fraction mark / get IT - if InStr (sDummy$, ",") > 0 then - GetDecimalSeperator = "," - bDotOrCommaIncluded = TRUE - endif - if InStr (sDummy$, ".") > 0 then - GetDecimalSeperator = "." - bDotOrCommaIncluded = TRUE - endif - endif - - '/// If the determination failed the dot will be used (default) as decimal seperator. - if bDotOrCommaIncluded = FALSE then - warnlog cWhereIsThisFunction & "Unable to determine decimal separator. Setting dot (.) as default." - GetDecimalSeperator = "." - endif - printlog "Info: Decimal Seperator is a '" & GetDecimalSeperator & "'." - -end function - -'******************************************************************************* - -sub sResetTheOffice as boolean - - Dim uno - Dim ap - Dim xViewRoot - Dim apara(1) As new com.sun.star.beans.PropertyValue - Dim temp() - Dim i,x as integer - Dim sString as string - Dim fDeleteList(32000) as string - Dim sLanguage as string - Dim bError as boolean - Dim sDefaultLocale as string - Dim sDefaultLocaleCJK as string - Dim sDefaultLocaleCTL as string - Dim sfgetL10Nvalue as string - Dim sLanOutIni as string - - sString = "qa:qatesttool:calc:options:inc:coption1.inc:: " - sResetTheOffice = TRUE - - ' only run on UNIX platforms; there is a problem with the quickstarter on win32 - if ("unx" = gPlatgroup) then - try - sLanOutIni = fgetL10Nvalue() - catch - warnlog sString & "can't get the correct Office-Language!." - sResetTheOffice = FALSE - Exit sub - endcatch - - uno=hGetUnoService() - - 'Get UI language - try - ap=uno.createInstance("com.sun.star.configuration.ConfigurationProvider") - apara(0).Name="nodepath" - apara(0).Value="/org.openoffice.Office.Linguistic/General" - apara(1).Name="lazywrite" - apara(1).Value=False - xViewRoot=ap.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPara()) - sLanguage = sfgetL10Nvalue - sDefaultLocale = xViewRoot.getPropertyValue("DefaultLocale") - sDefaultLocaleCJK = xViewRoot.getPropertyValue("DefaultLocale_CJK") - sDefaultLocaleCTL = xViewRoot.getPropertyValue("DefaultLocale_CTL") - printlog "Old UI language: '" + sLanOutIni + "'" - printlog "Old default locale: '" + sDefaultLocale + "'" - printlog "Old default locale CJK: '" + sDefaultLocaleCJK + "'" - printlog "Old default locale CTL: '" + sDefaultLocaleCTL + "'" - xViewRoot.dispose() - bError = FALSE - catch - warnlog sString + "Failed to read UI language." - bError = TRUE - endcatch - - if NOT bError then - 'Close OOo - try - ' To prevent restarting of OOo, the try/catch is around this and - ' to prevent messages about communication errors - printlog ResetApplication - FileExit "SynchronMode", TRUE - try - ' It is no error, if this fails - so it gets its own try/catch - kontext - if active.exists(5) then - active.no 'discard changes - endif - catch - endcatch - bError = FALSE - catch - warnlog sString + "Failed to close OOo." - bError = TRUE - endcatch - sleep 10 'To wait until OOo is realy away - endif - - 'only act, if no error and if language <> '' - if (NOT bError AND sLanguage <> "") then - 'Remove user directory - try - if (right(gOfficePath,1)=gPathSigne) then - 'Dir doesn't work, is a path singe is at the end - gOfficePath = left(gOfficePath,len(gOfficePath)-1) - endif - printlog "Going to delete directory: '" + gOfficePath + "'" - if (dir(gOfficePath) = "") then - qaErrorlog "Directory is already deleted." - else - rmDir (gOfficePath) - if (dir(gOfficePath) <> "") then - warnlog "Directory wasn't deleted." - endif - endif - bError = FALSE - catch - warnlog sString + "Failed to delete user directory." - bError = TRUE - endcatch - endif - - 'Start OOo and restore language - 'Needs only to be done, if UI language wasn't the default (!= "") - if ((sLanguage & sDefaultLocale & sDefaultLocaleCJK & sDefaultLocaleCTL) <> "") then - try - hStartTheOffice - Call hDisableQuickstarter - 'Here we need the Exit from a running Quickstarter... - Call ExitRestartTheOffice - uno=hGetUnoService() - ap=uno.createInstance("com.sun.star.configuration.ConfigurationProvider") - apara(0).Name="nodepath" - apara(0).Value="/org.openoffice.Office.Linguistic/General" - apara(1).Name="lazywrite" - apara(1).Value=False - xViewRoot=ap.createInstanceWithArguments("com.sun.star.configuration.ConfigurationUpdateAccess",aPara()) - if (sLanOutIni <> "") then - printlog "Old UI language: '" + sLanOutIni + "'" - xViewRoot.setPropertyValue("UILocale", sLanOutIni) - xViewRoot.commitChanges() - endif - if (sDefaultLocale <> "") then - printlog "Old default locale: '" + sDefaultLocale + "'" - xViewRoot.setPropertyValue("DefaultLocale", sDefaultLocale) - xViewRoot.commitChanges() - endif - if (sDefaultLocaleCJK <> "") then - printlog "Old default locale CJK: '" + sDefaultLocaleCJK + "'" - xViewRoot.setPropertyValue("DefaultLocale_CJK", sDefaultLocaleCJK) - xViewRoot.commitChanges() - endif - if (sDefaultLocaleCTL <> "") then - printlog "Old default locale CTL: '" + sDefaultLocaleCTL + "'" - xViewRoot.setPropertyValue("DefaultLocale_CTL", sDefaultLocaleCTL) - xViewRoot.commitChanges() - endif - if xViewRoot.hasPendingChanges() then - warnlog(sFileFunction+"Changes still pending...") - endif - xViewRoot.dispose() - catch - warnlog sString + "Failed to set UI language." - exit sub - endcatch - endif - - Call ExitRestartTheOffice - endif -end sub - -'******************************************************************************* - -sub raiseApplication - - ' Try to solve focus problem on MacOS X; After calling this function, OOo should be most front; - dim iCurrentDir as integer - dim iNumberOfHits as integer : iNumberOfHits = 0 - dim iDirPosition as integer - dim tBundle as string - dim aPath ' string array with dynamic itemcount, intended. - - ' Calling just the .app with open on MacOS X via shell command - if ( lcase( gPlatform ) = "osx" ) then - - ' Split the path into its components - aPath = split(gNetzOfficePath, gPathSigne) - - ' make sure 'Contents' is just one time in path - for iCurrentDir = 0 to uBound(aPath) - if "Contents" = aPath( iCurrentDir ) then iNumberOfHits = iNumberOfHits + 1 - next iCurrentDir - - ' exit if not - if ( iNumberOfHits <> 1 ) then exit sub - - iDirPosition = inStr( gNetzOfficePath, "Contents" ) - tBundle = left( gNetzOfficePath, iDirPosition - 2 ) - - shell( "open", 1, tBundle, true ) - - end if -end sub |