Package libavg :: Module AVGAppStarterHelp

Source Code for Module libavg.AVGAppStarterHelp

  1  #!/usr/bin/env python 
  2  # -*- coding: utf-8 -*- 
  3   
  4  # libavg - Media Playback Engine. 
  5  # Copyright (C) 2003-2008 Ulrich von Zadow 
  6  # 
  7  # This library is free software; you can redistribute it and/or 
  8  # modify it under the terms of the GNU Lesser General Public 
  9  # License as published by the Free Software Foundation; either 
 10  # version 2 of the License, or (at your option) any later version. 
 11  # 
 12  # This library is distributed in the hope that it will be useful, 
 13  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
 14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
 15  # Lesser General Public License for more details. 
 16  # 
 17  # You should have received a copy of the GNU Lesser General Public 
 18  # License along with this library; if not, write to the Free Software 
 19  # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
 20  # 
 21  # Current versions can be found at www.libavg.de 
 22  # 
 23  # Original author of this file is Sebastian Maulbeck  
 24  # <sm (at) archimedes-solutions (dot) de> 
 25   
 26  """ 
 27  this class is for displaying all active keys.  
 28   
 29          '?'     -->      on/off.  
 30  """ 
 31   
 32  from libavg import avg 
 33   
 34  g_player = avg.Player.get() 
 35   
36 -class MThelp():
37
38 - def __init__(self, appStarter):
39 self.__appstarter = appStarter 40 self.__stackOfBackups = [] 41 self.__stackKeyDown = [] 42 self.__stackKeyUp = [] 43 self.__stackUnicodeDown = [] 44 self.__stackUnicodeUp = [] 45 46 self.__rectNode = g_player.createNode(""" 47 <div id="RectNode" opacity="0" sensitive="False" x="5" y="10" size="(450,450)"> 48 <rect id="rectWhite" strokewidth="0" fillopacity="0.1" 49 fillcolor="FFFFFF" pos="(5,5)" size="(450,450)"/> 50 <rect id="rectBlack" strokewidth="0" fillopacity="0.6" 51 fillcolor="000000" pos="(6,6)" size="(451,451)"/> 52 </div> 53 """) 54 self.__keysNode = g_player.createNode(""" 55 <words x="10" y="10" fontsize="18" opacity="1" 56 color="DDDDDD" text=""/> 57 """) 58 rootNode = g_player.getRootNode() 59 rootNode.appendChild(self.__rectNode) 60 self.__rectNode.appendChild(self.__keysNode)
61
62 - def showHelp(self):
63 show = self.__appstarter.showingHelp 64 65 self.__keyBindDown = self.__appstarter.getKeys('key', 'down') 66 self.__keyBindUp = self.__appstarter.getKeys('key', 'up') 67 self.__keycodeBindDown = self.__appstarter.getKeys('unicode', 'down') 68 self.__keycodeBindUp = self.__appstarter.getKeys('unicode', 'up') 69 70 71 TextHelp = '' 72 if show == True: 73 TextHelp = TextHelp + "<span><b> ACTIVE KEYS </b><br/></span>" 74 for key in sorted(self.__keyBindDown.iterkeys()): 75 funcName = self.__keyBindDown[key][1] 76 TextHelp = TextHelp + \ 77 "<span><b>%s</b> <small>%s</small><br/></span>"% (key, funcName) 78 79 for key in sorted(self.__keycodeBindDown.iterkeys()): 80 funcName = self.__keycodeBindDown[key][1] 81 TextHelp = TextHelp + \ 82 "<span><b>%s</b> <small>%s</small><br/></span>"% (key, funcName) 83 84 self.__keysNode.text = TextHelp 85 self.__rectNode.opacity = 1 86 g_player.getElementByID('rectWhite').size = self.__keysNode.getMediaSize() 87 g_player.getElementByID('rectBlack').size = self.__keysNode.getMediaSize() 88 89 self.__rectNode.getParent().reorderChild( 90 self.__rectNode.getParent().indexOf(self.__rectNode), 91 self.__rectNode.getParent().getNumChildren()-1) 92 93 elif show == False: 94 self.__keysNode.text = '' 95 self.__rectNode.opacity = 0
96
97 - def backupKeys(self):
98 # backup keybindings if you change active app. 99 # keys will be stored in a dict. keybindings from new function can be loaded 100 # and conflicts by double keybindings are reduced to only the active app. 101 102 self.__appstarter.showingHelp = False 103 self.showHelp() 104 105 self.__stackKeyDown.append(self.__appstarter.getKeys('key', 'down')) 106 self.__stackKeyUp.append(self.__appstarter.getKeys('key', 'up')) 107 self.__stackUnicodeDown.append(self.__appstarter.getKeys('unicode','down')) 108 self.__stackUnicodeUp.append(self.__appstarter.getKeys('unicode','up')) 109 110 self.__appstarter.setKeys({}, 'key', 'down') 111 self.__appstarter.setKeys({}, 'key', 'up') 112 self.__appstarter.setKeys({}, 'unicode', 'down') 113 self.__appstarter.setKeys({}, 'unicode', 'up') 114 self.__appstarter.bindUnicode('?', self.__appstarter.activateHelp, 'HELP')
115
116 - def restoreKeys(self):
117 # restore keybindings if last active app will be active again. 118 # stored keys will be restored in the keybindings. 119 120 self.__appstarter.showingHelp = False 121 self.showHelp() 122 123 self.__appstarter.setKeys(self.__stackKeyDown.pop(), 'key', 'down') 124 self.__appstarter.setKeys(self.__stackKeyUp.pop(), 'key', 'up') 125 self.__appstarter.setKeys(self.__stackUnicodeDown.pop(), 'unicode', 'down') 126 self.__appstarter.setKeys(self.__stackUnicodeUp.pop(), 'unicode', 'up')
127