Update ooo320-m1
[ooovba.git] / testautomation / global / tools / includes / optional / t_accels.inc
blobccaf5d5ba9cee62d008c3f9d0aab10edc7504c8a
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: t_accels.inc,v $
11 '* $Revision: 1.1 $
13 '* last change: $Author: jsk $ $Date: 2008-06-20 07:57:02 $
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 : joerg.skottke@sun.com
36 '*  short description : handle accelerators
38 '*******************************************************************************
39 '**
40 ' #1 hGetAccel    ' function to retrieve a language specific accelerator 
41 '**
42 '\******************************************************************************
44 function hGetAccel( cCommand as string ) as string
46     '///<h3>Retrieve a keyboard accelerator for a specific function</h3>
47     '///<i>Uses: global/input/accelerators.txt</i><br>
48     '///<i>NOTE: Accelerator is language dependent</i><br>
49     '///<u>Input</u>:
50     '///<ol>
51     '///+<li>Name of the action to be executed (string). Valid options are:</li>
52     '///<ul>
53     '///+<li>&quot;FileOpen&quot;</li>
54     '///+<li>&quot;FileSave&quot;</li>
55     '///+<li>&quot;Print&quot;</li>
56     '///+<li>&quot;SelectAll&quot;</li>
57     '///+<li>&quot;Copy&quot;</li>
58     '///+<li>&quot;DocumentConverter_ShowLog&quot;</li>
59     '///+<li>&quot;IDE_SWITCH_TAB+&quot;</li>
60     '///+<li>&quot;IDE_SWITCH_TAB-&quot;</li>    
61     '///</ul>
62     '///</ol>
63     '///<u>Returns</u>:
64     '///<ol>
65     '///+<li>Accelerator (string)</li>
66     '///<ul>
67     '///+<li>A string ready to use by .typeKeys(...) method</li>
68     '///+<li>&quot;Error&quot; if the requested Accelerator is unknown</li>
69     '///</ul>
70     '///</ol>
71     '///<u>Description</u>:
72     '///<ul>
73     const CFN = "hGetAccel::"
74     const DEFAULT_LANGUAGE = "en-us"
76     dim cAccel as string
77     dim lsAccelerators( 1000 ) as string
78     dim cFile as string
79         cFile = gTesttoolpath & "global/input/accelerators.txt"
80         cFile = convertpath( cFile )
81         
82     dim cProximityLocale as string
83         
84     dim iLang as integer
86     printlog( CFN & "Enter with option: " & cCommand )
87     'printlog( CFN & "Current Language.: <" & gISOLang & ">" )
89     '///+<li>Get the section from the accelerators file</li>
90     hGetDatafileSection( cFile , lsAccelerators() , cCommand , "" , "" )
92     '///+<li>Find the matching string for the current language</li>
93     cAccel = hGetValueForKeyAsString( lsAccelerators() , gISOLang )
95     '///+<li>In case of a miss we retry with a modified string</li> 
96     '///<ul>
97     if ( instr( cAccel , "Error" ) <> 0 ) then
98     
99         iLang = len( gISOLang )
100         
101         select case iLang
102         case 2 :
103             '///+<li>Try xx-XX</li>
104             cProximityLocale = gISOLang & "-" & ucase( gISOLang )
105             printlog( CFN & "Trying alternative locale: " & cProximityLocale )
106             cAccel = hGetValueForKeyAsString( lsAccelerators() , cProximityLocale )
107         case 5 :
108             '///+<li>Try xx</li>
109             cProximityLocale = mid( cUpperCaseLocale , 1, 2 )
110             printlog( CFN & "Trying alternative locale: " & cProximityLocale )
111             cAccel = hGetValueForKeyAsString( lsAccelerators() , cProximityLocale )
112         case else :        
113             '///+<li>Try en-US</li>
114             cProximityLocale = "en-US"
115             printlog( CFN & "Trying default locale: " & cProximityLocale )
116             cAccel = hGetValueForKeyAsString( lsAccelerators() , DEFAULT_LANGUAGE )
117         end select            
118             
119     endif
120     '///</ul>
122     '///+<li>Build the complete accelerator-string so it can be used by "TypeKeys"</li>
123     '///+<li>Print it to the log and return the string to the calling function</li>
124     
125     cAccel = "<" & cAccel & ">"
126     printlog( CFN & "Requested accelerator: " & cAccel & " for language: " & gISOLang  )
127     hGetAccel() = cAccel
128     '///</ul>
130 end function