Ticket #46: verbosity.patch

File verbosity.patch, 21.8 KB (added by jteh, 4 years ago)

Aleksey's original patch

  • appModules/_default.py

     
    2727import appModuleHandler 
    2828import winKernel 
    2929import ctypes 
     30import verbosity 
    3031 
    3132class appModule(appModuleHandler.appModule): 
    3233 
     
    4344                else: 
    4445                        state=_("off") 
    4546                        globalVars.keyboardHelp=False 
    46                 speech.speakMessage(_("keyboard help %s")%state) 
     47                if verbosity.getLevel() < verbosity.v_low: message = _("keyboard help %s")%state  
     48                else: message = state 
     49                speech.speakMessage(message) 
    4750        script_keyboardHelp.__doc__=_("Turns keyboard help on and off. When on, pressing a key on the keyboard will tell you what script is associated with it, if any.") 
    4851 
    4952        def script_reportCurrentLine(self,keyPress,nextScript): 
     
    7073                if info.isCollapsed: 
    7174                        speech.speakMessage(_("no selection")) 
    7275                else: 
    73                         speech.speakMessage(_("selected %s")%info.text) 
     76                        if verbosity.getLevel() < verbosity.v_low: message = _("selected %s")%info.text 
     77                        else: message = info.text 
     78                        speech.speakMessage(message) 
    7479 
    7580        def script_dateTime(self,keyPress,nextScript): 
    7681                if keyboardHandler.lastKeyCount == 1: 
     
    8489                rate=min(getSynth().rate+5, 100) 
    8590                getSynth().rate=rate 
    8691                config.conf["speech"][getSynth().name]["rate"]=rate 
    87                 speech.speakMessage(_("rate %d%%")%rate) 
     92                if verbosity.getLevel() < verbosity.v_low: message = _("rate %d%%")%rate 
     93                else: message = "%d" %rate 
     94                speech.speakMessage(message) 
    8895        script_increaseRate.__doc__=_("Increases the speech rate by 5 percent") 
    8996 
    9097        def script_decreaseRate(self,keyPress,nextScript): 
    9198                rate=max(0, getSynth().rate-5) 
    9299                getSynth().rate=rate 
    93100                config.conf["speech"][getSynth().name]["rate"]=rate 
    94                 speech.speakMessage(_("rate %d%%")%rate) 
     101                if verbosity.getLevel() < verbosity.v_low: message = _("rate %d%%")%rate 
     102                else: message = "%d" %rate 
     103                speech.speakMessage(message) 
    95104        script_decreaseRate.__doc__=_("decreases the speech rate by 5 percent") 
    96105 
    97106        def script_increaseSetting(self,keyPress,nextScript): 
    98                 #val = globalVars.settingsRing.increase() 
    99                 speech.speakMessage("%s %s" % (globalVars.settingsRing.currentSettingName, globalVars.settingsRing.increase())) 
     107                if verbosity.getLevel() < verbosity.v_low: message = "%s %s" % (globalVars.settingsRing.currentSettingName, globalVars.settingsRing.increase()) 
     108                else: message = "%s" %globalVars.settingsRing.increase() 
     109                speech.speakMessage(message) 
    100110        script_increaseSetting.__doc__=_("Increases currently active setting in the synth settings ring") 
    101111 
    102112        def script_decreaseSetting(self,keyPress,nextScript): 
    103                 #val = globalVars.settingsRing.decrease() 
    104                 speech.speakMessage("%s %s" % (globalVars.settingsRing.currentSettingName, globalVars.settingsRing.decrease())) 
     113                if verbosity.getLevel() < verbosity.v_low: message = "%s %s" % (globalVars.settingsRing.currentSettingName, globalVars.settingsRing.decrease()) 
     114                else: message = "%s" %globalVars.settingsRing.decrease() 
     115                speech.speakMessage(message) 
    105116        script_decreaseSetting.__doc__=_("Decreases currently active setting in the synth settings ring") 
    106117 
    107118        def script_nextSetting(self,keyPress,nextScript): 
     
    121132                else: 
    122133                        onOff=_("on") 
    123134                        config.conf["keyboard"]["speakTypedCharacters"]=True 
    124                 speech.speakMessage(_("speak typed characters")+" "+onOff) 
     135                if verbosity.getLevel() < verbosity.v_low: message = _("speak typed characters")+" "+onOff 
     136                else: message = onOff 
     137                speech.speakMessage(message) 
    125138        script_toggleSpeakTypedCharacters.__doc__=_("Toggles on and off the speaking of typed characters") 
    126139 
    127140        def script_toggleSpeakTypedWords(self,keyPress,nextScript): 
     
    131144                else: 
    132145                        onOff=_("on") 
    133146                        config.conf["keyboard"]["speakTypedWords"]=True 
    134                 speech.speakMessage(_("speak typed words")+" "+onOff) 
     147                if verbosity.getLevel() < verbosity.v_low: message = _("speak typed words")+" "+onOff 
     148                else: message = onOff 
     149                speech.speakMessage(message) 
    135150        script_toggleSpeakTypedWords.__doc__=_("Toggles on and off the speaking of typed words") 
    136151 
    137152        def script_toggleSpeakCommandKeys(self,keyPress,nextScript): 
     
    141156                else: 
    142157                        onOff=_("on") 
    143158                        config.conf["keyboard"]["speakCommandKeys"]=True 
    144                 speech.speakMessage(_("speak command keys")+" "+onOff) 
     159                if verbosity.getLevel() < verbosity.v_low: message = _("speak command keys")+" "+onOff 
     160                else: message = onOff 
     161                speech.speakMessage(message) 
    145162        script_toggleSpeakCommandKeys.__doc__=_("Toggles on and off the speaking of typed keys, that are not specifically characters") 
    146163 
    147164        def script_toggleSpeakPunctuation(self,keyPress,nextScript): 
     
    151168                else: 
    152169                        onOff=_("on") 
    153170                        config.conf["speech"]["speakPunctuation"]=True 
    154                 speech.speakMessage(_("speak punctuation")+" "+onOff) 
     171                if verbosity.getLevel() < verbosity.v_low: message = _("speak punctuation")+" "+onOff 
     172                else: message = onOff 
     173                speech.speakMessage(message) 
    155174        script_toggleSpeakPunctuation.__doc__=_("Toggles on and off the speaking of punctuation. When on NVDA will say the names of punctuation symbols, when off it will be up to the synthesizer as to how it speaks punctuation") 
    156175 
    157176        def script_moveMouseToNavigatorObject(self,keyPress,nextScript): 
    158                 speech.speakMessage(_("Move mouse to navigator")) 
     177                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("Move mouse to navigator")) 
    159178                obj=api.getNavigatorObject() 
    160179                try: 
    161180                        (left,top,width,height)=obj.location 
     
    166185        script_moveMouseToNavigatorObject.__doc__=_("Moves the mouse pointer to the current navigator object.") 
    167186 
    168187        def script_moveNavigatorObjectToMouse(self,keyPress,nextScript): 
    169                 speech.speakMessage(_("Move navigator object to mouse")) 
     188                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("Move navigator object to mouse")) 
    170189                obj=api.getMouseObject() 
    171190                api.setNavigatorObject(obj) 
    172191                speech.speakObject(obj) 
     
    196215                                        speech.speakSpelling(text) 
    197216                                else: 
    198217                                        if api.copyToClip(text): 
    199                                                 speech.speakMessage(_("%s copied to clipboard")%text) 
     218                                                if verbosity.getLevel() < verbosity.v_low: message = _("%s copied to clipboard")%text 
     219                                                else: message = _("Copied to clipboard") 
     220                                                speech.speakMessage(message) 
    200221                else: 
    201222                        speech.speakObject(curObject,reason=speech.REASON_QUERY) 
    202223                return False 
     
    218239                if not isinstance(obj,NVDAObject): 
    219240                        speech.speakMessage(_("no focus")) 
    220241                api.setNavigatorObject(obj) 
    221                 speech.speakMessage(_("move to focus")) 
     242                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("move to focus")) 
    222243                speech.speakObject(obj,reason=speech.REASON_QUERY) 
    223244        script_navigatorObject_toFocus.__doc__=_("Sets the navigator object to the current focus") 
    224245 
     
    346367                info=globalVars.reviewPosition.obj.makeTextInfo(textHandler.POSITION_FIRST) 
    347368                globalVars.reviewPosition=info.copy() 
    348369                info.expand(textHandler.UNIT_LINE) 
    349                 speech.speakMessage(_("top")) 
     370                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("top")) 
    350371                speech.speakFormattedText(info) 
    351372        script_review_top.__doc__=_("Moves the review cursor to the top line of the current navigator object") 
    352373 
     
    358379                globalVars.reviewPosition=info.copy() 
    359380                info.expand(textHandler.UNIT_LINE) 
    360381                if res==0: 
    361                         speech.speakMessage(_("top")) 
     382                        if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("top")) 
    362383                speech.speakFormattedText(info) 
    363384        script_review_previousLine.__doc__=_("Moves the review cursor to the previous line of the current navigator object") 
    364385 
     
    380401                globalVars.reviewPosition=info.copy() 
    381402                info.expand(textHandler.UNIT_LINE) 
    382403                if res==0: 
    383                         speech.speakMessage(_("bottom")) 
     404                                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("bottom")) 
    384405                speech.speakFormattedText(info) 
    385406        script_review_nextLine.__doc__=_("Moves the review cursor to the next line of the current navigator object") 
    386407 
     
    388409                info=globalVars.reviewPosition.obj.makeTextInfo(textHandler.POSITION_LAST) 
    389410                globalVars.reviewPosition=info.copy() 
    390411                info.expand(textHandler.UNIT_LINE) 
    391                 speech.speakMessage(_("bottom")) 
     412                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("bottom")) 
    392413                speech.speakFormattedText(info) 
    393414        script_review_bottom.__doc__=_("Moves the review cursor to the bottom line of the current navigator object") 
    394415 
     
    400421                globalVars.reviewPosition=info.copy() 
    401422                info.expand(textHandler.UNIT_WORD) 
    402423                if res==0: 
    403                         speech.speakMessage(_("top")) 
     424                        if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("top")) 
    404425                speech.speakFormattedText(info) 
    405426        script_review_previousWord.__doc__=_("Moves the review cursor to the previous word of the current navigator object") 
    406427 
     
    422443                globalVars.reviewPosition=info.copy() 
    423444                info.expand(textHandler.UNIT_WORD) 
    424445                if res==0: 
    425                         speech.speakMessage(_("bottom")) 
     446                        if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("bottom")) 
    426447                speech.speakFormattedText(info) 
    427448        script_review_nextWord.__doc__=_("Moves the review cursor to the next word of the current navigator object") 
    428449 
     
    432453                info.collapse() 
    433454                globalVars.reviewPosition=info.copy() 
    434455                info.expand(textHandler.UNIT_CHARACTER) 
    435                 speech.speakMessage(_("left")) 
     456                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("left")) 
    436457                speech.speakFormattedText(info,handleSymbols=True) 
    437458        script_review_startOfLine.__doc__=_("Moves the review cursor to the start of the line where it is situated, in the current navigator object") 
    438459 
     
    444465                charInfo.collapse() 
    445466                res=charInfo.move(textHandler.UNIT_CHARACTER,-1) 
    446467                if res==0 or charInfo.compareEndPoints(lineInfo,"startToStart")<0: 
    447                         speech.speakMessage(_("left")) 
     468                        if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("left")) 
    448469                        reviewInfo=globalVars.reviewPosition.copy() 
    449470                        reviewInfo.expand(textHandler.UNIT_CHARACTER) 
    450471                        speech.speakSpelling(reviewInfo.text) 
     
    477498                charInfo.collapse() 
    478499                res=charInfo.move(textHandler.UNIT_CHARACTER,1) 
    479500                if res==0 or charInfo.compareEndPoints(lineInfo,"endToEnd")>=0: 
    480                         speech.speakMessage(_("right")) 
     501                        if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("right")) 
    481502                        reviewInfo=globalVars.reviewPosition.copy() 
    482503                        reviewInfo.expand(textHandler.UNIT_CHARACTER) 
    483504                        speech.speakSpelling(reviewInfo.text) 
     
    494515                info.move(textHandler.UNIT_CHARACTER,-1) 
    495516                globalVars.reviewPosition=info.copy() 
    496517                info.expand(textHandler.UNIT_CHARACTER) 
    497                 speech.speakMessage(_("right")) 
     518                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("right")) 
    498519                speech.speakFormattedText(info,handleSymbols=True) 
    499520        script_review_endOfLine.__doc__=_("Moves the review cursor to the end of the line where it is situated, in the current navigator object") 
    500521 
     
    523544                elif newMode==speech.speechMode_talk: 
    524545                        name=_("talk") 
    525546                speech.cancelSpeech() 
    526                 speech.speakMessage(_("speech mode %s")%name) 
     547                if verbosity.getLevel() < verbosity.v_low: message = _("speech mode %s")%name 
     548                else: message = name 
     549                speech.speakMessage(message) 
    527550                speech.speechMode=newMode 
    528551        script_speechMode.__doc__=_("Toggles between the speech modes of off, beep and talk. When set to off NVDA will not speak anything. If beeps then NVDA will simply beep each time it its supposed to speak something. If talk then NVDA wil just speak normally.") 
    529552 
     
    591614                        speech.speakMessage(_("no status bar found")) 
    592615                        return 
    593616                if keyboardHandler.lastKeyCount == 1: 
    594                         speech.speakObject(statusBarObject,reason=speech.REASON_QUERY) 
     617                        if verbosity.getLevel() < verbosity.v_low: speech.speakObject(statusBarObject,reason=speech.REASON_QUERY) 
     618                        else: speech.speakMessage(statusBarObject.value) 
    595619                else: 
    596620                        speech.speakSpelling(statusBarObject.value) 
    597621                api.setNavigatorObject(statusBarObject) 
     
    604628                else: 
    605629                        onOff=_("on") 
    606630                        config.conf["mouse"]["reportObjectUnderMouse"]=True 
    607                 speech.speakMessage(_("Report object under mouse")+" "+onOff) 
     631                if verbosity.getLevel() < verbosity.v_low: message = _("Report object under mouse")+" "+onOff 
     632                else: message = onOff 
     633                speech.speakMessage(message) 
    608634        script_toggleReportObjectUnderMouse.__doc__=_("Toggles on and off the reporting of objects under the mouse") 
    609635 
    610636        def script_title(self,keyPress,nextScript): 
     
    646672                else: 
    647673                        onOff=_("on") 
    648674                        config.conf["presentation"]["beepOnProgressBarUpdates"]=True 
    649                 speech.speakMessage(_("Beep on progress bar updates")+" "+onOff) 
     675                if verbosity.getLevel() < verbosity.v_low: message = _("Beep on progress bar updates")+" "+onOff 
     676                else: message = onOff 
     677                speech.speakMessage(message) 
    650678        script_toggleBeepOnProgressBarUpdates.__doc__=_("Toggles on and off the beeping on progress bar updates") 
    651679 
    652680        def script_toggleReportDynamicContentChanges(self,keyPress,nextScript): 
     
    656684                else: 
    657685                        onOff=_("on") 
    658686                        globalVars.reportDynamicContentChanges=True 
    659                 speech.speakMessage(_("report dynamic content changes")+" "+onOff) 
     687                if verbosity.getLevel() < verbosity.v_low: message = _("report dynamic content changes")+" "+onOff 
     688                else: message = onOff 
     689                speech.speakMessage(message) 
    660690        script_toggleReportDynamicContentChanges.__doc__=_("Toggles on and off the reporting of dynamic content changes, such as new text in dos console windows") 
    661691 
    662692        def script_toggleCaretMovesReviewCursor(self,keyPress,nextScript): 
     
    666696                else: 
    667697                        onOff=_("on") 
    668698                        globalVars.caretMovesReviewCursor=True 
    669                 speech.speakMessage(_("caret moves review cursor")+" "+onOff) 
     699                if verbosity.getLevel() < verbosity.v_low: message = _("caret moves review cursor")+" "+onOff 
     700                else: message = onOff 
     701                speech.speakMessage(message) 
    670702        script_toggleCaretMovesReviewCursor.__doc__=_("Toggles on and off the movement of the review cursor due to the caret moving.") 
    671703 
    672704        def script_toggleFocusMovesNavigatorObject(self,keyPress,nextScript): 
     
    676708                else: 
    677709                        onOff=_("on") 
    678710                        globalVars.focusMovesNavigatorObject=True 
    679                 speech.speakMessage(_("focus moves navigator object")+" "+onOff) 
     711                if verbosity.getLevel() < verbosity.v_low: message = _("focus moves navigator object")+" "+onOff 
     712                else: message = onOff 
     713                speech.speakMessage(message) 
    680714        script_toggleFocusMovesNavigatorObject.__doc__=_("Toggles on and off the movement of the navigator object due to focus changes")  
    681715 
    682716        #added by Rui Batista<ruiandrebatista@gmail.com> to implement a battery status script 
     
    700734 
    701735        def script_passNextKeyThrough(self,keyPress,nextScript): 
    702736                keyboardHandler.passNextKeyThrough() 
    703                 speech.speakMessage(_("Pass next key through")) 
     737                if verbosity.getLevel() < verbosity.v_low: speech.speakMessage(_("Pass next key through")) 
    704738        script_passNextKeyThrough.__doc__=_("The next key that is pressed will not be handled at all by NVDA, it will be passed directly through to Windows.") 
    705739 
    706740        def script_speakApplicationName(self,keyPress,nextScript): 
    707741                s=appModuleHandler.getAppName(api.getForegroundObject().windowHandle,True) 
    708                 speech.speakMessage(_("Currently running application is %s.")%s) 
     742                if verbosity.getLevel() < verbosity.v_low: message = _("Currently running application is %s.")%s 
     743                else: message = s 
     744                speech.speakMessage(message) 
    709745                speech.speakSpelling(s) 
    710746                if appModuleHandler.moduleExists(appModuleHandler.activeModule.appName): 
    711747                        mod = appModuleHandler.activeModule.appName 
    712748                else: 
    713749                        mod = _("default module") 
    714                 speech.speakMessage(_("and currently loaded module is %s") % mod) 
     750                if verbosity.getLevel() < verbosity.v_low: message = _("and currently loaded module is %s") % mod 
     751                else: message = mod 
     752                speech.speakMessage(message) 
    715753        script_speakApplicationName.__doc__ = _("Speaks filename of the active application along with name of the currently loaded appmodule") 
  • config/__init__.py

     
    2626        askToExit = boolean(default=true) 
    2727        #log levels are DEBUG, INFO, WARN, ERROR, CRITICAL 
    2828        loggingLevel = string(default="WARN") 
     29        verbosity = integer(default=1,min=1) 
    2930 
    3031# Speech settings 
    3132[speech] 
  • gui/settingsDialogs.py

     
    1717from ctypes.wintypes import * 
    1818import userDictHandler 
    1919import scriptUI 
     20import verbosity 
    2021 
    2122MAXPNAMELEN=32 
    2223 
     
    6162                self.askToExitCheckBox=wx.CheckBox(self,wx.NewId(),label=_("&Warn before exiting NVDA")) 
    6263                self.askToExitCheckBox.SetValue(config.conf["general"]["askToExit"]) 
    6364                settingsSizer.Add(self.askToExitCheckBox,border=10,flag=wx.BOTTOM) 
     65                verbosityLevelSizer=wx.BoxSizer(wx.HORIZONTAL) 
     66                verbosityLevelLabel=wx.StaticText(self,-1,label=_("Verbosity Level")) 
     67                verbosityLevelSizer.Add(verbosityLevelLabel) 
     68                verbosityLevelListID=wx.NewId() 
     69                self.verbosityLevelNames = verbosity.v_labels.values() 
     70                self.verbosityLevelList = wx.Choice(self, verbosityLevelListID, name = _("Verbosity Level"), choices = self.verbosityLevelNames) 
     71                try: 
     72                        index = self.verbosityLevelNames.index(verbosity.v_labels[config.conf["general"]["verbosity"]]) 
     73                        self.verbosityLevelList.SetSelection(index) 
     74                except: 
     75                        globalVars.log.warn("Could not set verbosity level list to current verbositylevel") 
     76                verbosityLevelSizer.Add(self.verbosityLevelList) 
     77                settingsSizer.Add(verbosityLevelSizer,border=10,flag=wx.BOTTOM) 
    6478                logLevelSizer=wx.BoxSizer(wx.HORIZONTAL) 
    6579                logLevelLabel=wx.StaticText(self,-1,label=_("L&ogging level")) 
    6680                logLevelSizer.Add(logLevelLabel) 
    6781                logLevelListID=wx.NewId() 
    6882                self.logLevelNames=[logging._levelNames[x] for x in sorted([x for x in logging._levelNames.keys() if isinstance(x,int) and x>0],reverse=True)] 
    69                 self.logLevelList=wx.Choice(self,languageListID,name=_("Log level"),choices=self.logLevelNames) 
     83                self.logLevelList=wx.Choice(self,logLevelListID,name=_("Log level"),choices=self.logLevelNames) 
    7084                try: 
    7185                        index=self.logLevelNames.index(logging._levelNames[globalVars.log.getEffectiveLevel()]) 
    7286                        self.logLevelList.SetSelection(index) 
     
    95109                config.conf["general"]["hideInterfaceOnStartup"]=self.hideInterfaceCheckBox.IsChecked() 
    96110                config.conf["general"]["saveConfigurationOnExit"]=self.saveOnExitCheckBox.IsChecked() 
    97111                config.conf["general"]["askToExit"]=self.askToExitCheckBox.IsChecked() 
     112                verbosity.setLevel(self.verbosityLevelList.GetSelection() +1) 
    98113                logLevelName=self.logLevelNames[self.logLevelList.GetSelection()] 
    99114                globalVars.log.setLevel(logging._levelNames[logLevelName]) 
    100115                config.conf["general"]["loggingLevel"]=logLevelName 
  • keyboardHandler.py

     
    2020import config 
    2121import _winreg 
    2222import api 
     23import verbosity 
    2324 
    2425keyUpIgnoreSet=set() 
    2526passKeyThroughCount=-1 #If 0 or higher then key downs and key ups will be passed straight through 
     
    7475        else: 
    7576                s = _winreg.QueryValueEx(key, "Layout Text")[0] 
    7677        key.Close() 
    77         queueHandler.queueFunction(queueHandler.interactiveQueue,speech.speakMessage,_("%s keyboard layout")%s) 
     78        if verbosity.getLevel() < verbosity.v_low: message = _("%s keyboard layout")%s 
     79        else: message = s 
     80        queueHandler.queueFunction(queueHandler.interactiveQueue,speech.speakMessage, message) 
    7881 
    7982@ctypes.CFUNCTYPE(ctypes.c_int,ctypes.c_int,ctypes.c_int,ctypes.c_int,ctypes.c_int) 
    8083def internal_keyDownEvent(vkCode,scanCode,extended,injected): 
  • verbosity.py

     
     1#verbosity.py 
     2#A part of NonVisual Desktop Access (NVDA) 
     3#Copyright (C) 2006-2007 NVDA Contributors <http://www.nvda-project.org/> 
     4#This file is covered by the GNU General Public License. 
     5#See the file COPYING for more details. 
     6 
     7import config 
     8import globalVars 
     9 
     10v_high = 1 
     11v_medium = 2 
     12v_low = 3 
     13v_labels = { 
     14v_high : _("high"),  
     15v_medium : _("medium"),  
     16v_low : _("low")} 
     17 
     18def setLevel(l): 
     19        if (l < v_high) or (l > v_low):  
     20                globalVars.log.warn("Verbosity level %d is not in range" % l) 
     21                exit 
     22        config.conf["general"]["verbosity"] = l 
     23        if l == v_high: 
     24                config.conf["general"]["hideInterfaceOnStartup"] = False 
     25                config.conf["general"]["askToExit"] = True 
     26                config.conf["speech"]["speakPunctuation"] = False 
     27                config.conf["presentation"]["reportKeyboardShortcuts"] = True 
     28                config.conf["presentation"]["reportObjectPositionInformation"] = True 
     29                config.conf["presentation"]["reportTooltips"] = True 
     30                config.conf["presentation"]["reportObjectDescriptions"] = True 
     31                config.conf["keyboard"]["speakCommandKeys"] = True 
     32                exit 
     33        if l == v_medium: 
     34                config.conf["general"]["hideInterfaceOnStartup"] = True 
     35                config.conf["general"]["askToExit"] = True 
     36                config.conf["presentation"]["reportKeyboardShortcuts"] = True 
     37                config.conf["presentation"]["reportObjectPositionInformation"] = False 
     38                config.conf["presentation"]["reportTooltips"] = False 
     39                config.conf["presentation"]["reportObjectDescriptions"] = True 
     40                config.conf["keyboard"]["speakCommandKeys"] = False 
     41                exit 
     42        if l == v_low: 
     43                config.conf["general"]["saveConfigurationOnExit"] = True 
     44                config.conf["general"]["hideInterfaceOnStartup"] = True 
     45                config.conf["general"]["askToExit"] = False 
     46                config.conf["presentation"]["reportKeyboardShortcuts"] = False 
     47                config.conf["presentation"]["reportObjectPositionInformation"] = False 
     48                config.conf["presentation"]["reportTooltips"] = False 
     49                config.conf["keyboard"]["speakCommandKeys"] = False 
     50                exit 
     51 
     52def getLevel(): 
     53        return config.conf["general"]["verbosity"] 
     54 No newline at end of file