+class OperaBrowserSetting:
+ def __init__(self):
+ self._settingFileName = '/usr/local/hbb-browser/home/setting.ini'
+ self._start = None
+ self._read()
+ def _read(self):
+ f = open(self._settingFileName)
+ for line in f.readlines():
+ if line.startswith('start='):
+ self._start = line[6:len(line)-1]
+ f.close()
+ def _write(self):
+ tmpstr = []
+ tmpstr.append('start=%s\n' % (self._start))
+ f = open(self._settingFileName, 'w')
+ f.writelines(tmpstr)
+ f.close()
+ def setData(self, start):
+ self._start = start
+ self._write()
+ def getData(self):
+ return {
+ 'start':self._start
+ }
+
+class OperaBrowserPreferenceWindow(ConfigListScreen, Screen):
+ skin= """
+ <screen position="center,center" size="600,350" title="Proference">
+ <widget name="url" position="5,0" size="590,100" valign="center" font="Regular;20" />
+ <widget name="config" position="0,100" size="600,200" scrollbarMode="showOnDemand" />
+
+ <ePixmap pixmap="skin_default/buttons/red.png" position="310,310" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/green.png" position="150,310" size="140,40" alphatest="on" />
+
+ <widget source="key_red" render="Label" position="310,310" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_green" render="Label" position="150,310" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
+ </screen>
+ """
+ def __init__(self, session, currentUrl):
+ self.session = session
+ Screen.__init__(self, session)
+
+ self.menulist = []
+ ConfigListScreen.__init__(self, self.menulist)
+
+ self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions", "WizardActions", "ColorActions", "SetupActions", ], {
+ "red" : self.keyRed,
+ "green" : self.keyGreen,
+ "ok" : self.keyOK,
+ "cancel" : self.keyRed
+ }, -2)
+ self["key_red"] = StaticText(_("Cancel"))
+ self["key_green"] = StaticText(_("Save"))
+ self["url"] = Label()
+
+ self._currentPageUrl = currentUrl
+ if self._currentPageUrl is None:
+ self._currentPageUrl = ''
+ self._startPageUrl = None
+
+ self.makeMenuEntry()
+ self.onLayoutFinish.append(self.layoutFinished)
+
+ def layoutFinished(self):
+ try:
+ self._startPageUrl = OperaBrowserSetting().getData()['start']
+ except: self._startPageUrl = 'http://vuplus.com'
+ self.updateStartPageUrl()
+
+ def updateStartPageUrl(self):
+ if self.menuItemStartpage.value == "startpage":
+ self["url"].setText(self._startPageUrl)
+ elif self.menuItemStartpage.value == "current":
+ self["url"].setText(self._currentPageUrl)
+ elif self.menuItemStartpage.value == "direct":
+ self["url"].setText('')
+
+ def keyGreen(self):
+ url = self["url"].getText()
+ if strIsEmpty(url):
+ self.session.open(MessageBox, 'Invalid URL!!(Empty)\nPlease, Input to the URL.', type = MessageBox.TYPE_INFO)
+ return
+ OperaBrowserSetting().setData(url)
+ self.close()
+
+ def keyRed(self):
+ self.close()
+
+ def keyOK(self):
+ def _cb_directInputUrl(data):
+ if strIsEmpty(data):
+ return
+ self["url"].setText(data)
+ if self.menuItemStartpage.value == "direct":
+ self.session.openWithCallback(_cb_directInputUrl, VirtualKeyBoard, title=("Please enter URL here"), text='http://')
+
+ def keyLeft(self):
+ ConfigListScreen.keyLeft(self)
+ self.updateStartPageUrl()
+
+ def keyRight(self):
+ ConfigListScreen.keyRight(self)
+ self.updateStartPageUrl()
+
+ def makeMenuEntry(self):
+ l = []
+ l.append(("startpage", _("Start Page")))
+ if not strIsEmpty(self._currentPageUrl):
+ l.append(("current", _("Current Page")))
+ l.append(("direct", _("Direct Input")))
+ self.menuItemStartpage = ConfigSelection(default="startpage", choices = l)
+ self.menuEntryStartpage = getConfigListEntry(_("Startpage"), self.menuItemStartpage)
+ self.resetMenuList()
+
+ def resetMenuList(self):
+ self.menulist = []
+ self.menulist.append(self.menuEntryStartpage)
+
+ self["config"].list = self.menulist
+ self["config"].l.setList(self.menulist)
+
+class BookmarkEditWindow(ConfigListScreen, Screen):
+ CATEGORY,BOOKMARK = 0,1
+ skin= """
+ <screen position="center,center" size="600,140" title="Bookmark Edit">
+ <widget name="config" position="0,0" size="600,100" scrollbarMode="showOnDemand" />
+
+ <ePixmap pixmap="skin_default/buttons/red.png" position="310,100" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/green.png" position="150,100" size="140,40" alphatest="on" />
+
+ <widget source="key_red" render="Label" position="310,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_green" render="Label" position="150,100" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
+
+ <widget name="VKeyIcon" pixmap="skin_default/buttons/key_text.png" position="0,100" zPosition="10" size="35,25" transparent="1" alphatest="on" />
+
+ </screen>
+ """
+ def __init__(self, session, _mode, _type, _data, _bm):
+ self.mMode = _mode
+ self.mType = _type
+ self.mData = _data
+ self.mSession = session
+ self.mBookmarkManager = _bm
+
+ if _data is not None:
+ print _data.mId
+
+ Screen.__init__(self, session)
+
+ self.menulist = []
+ ConfigListScreen.__init__(self, self.menulist)
+
+ self["actions"] = ActionMap(["OkCancelActions", "ColorActions",], {
+ "ok" : self.keyGreen,
+ "green" : self.keyGreen,
+ "red" : self.keyRed,
+ "cancel" : self.keyRed,
+ }, -2)
+
+ self["VKeyIcon"] = Pixmap()
+ self["key_red"] = StaticText(_("Cancel"))
+ self["key_green"] = StaticText(_("Save"))
+
+ self.menuItemTitle = None
+ self.menuItemUrl = None
+ self.menuItemName = None
+
+ self.menuEntryName = None
+ self.menuEntryTitle = None
+ self.menuEntryUrl = None
+
+ self.makeConfigList()
+ self.onLayoutFinish.append(self.layoutFinished)
+
+ def layoutFinished(self):
+ self.setTitle('Bookmark ' + self.mMode)
+
+ def selectedItem(self):
+ currentPosition = self["config"].getCurrent()
+ if self.mType == BookmarkEditWindow.CATEGORY:
+ return ("Name", self.menuItemName)
+ else:
+ if currentPosition == self.menuEntryTitle:
+ return ("Title", self.menuItemTitle)
+ elif currentPosition == self.menuEntryUrl:
+ return ("Url", self.menuItemUrl)
+ return None
+
+ def showMessageBox(self, text):
+ msg = "Invalid " + text + "!!(Empty)\nPlease, Input to the " + text + "."
+ self.mSession.openWithCallback(self.showVKeyWindow, MessageBox, msg, MessageBox.TYPE_INFO)
+ return False
+
+ def showVKeyWindow(self, data=None):
+ itemTitle = ""
+ itemValue = ""
+ selected = self.selectedItem()
+ if selected is not None:
+ itemValue = selected[1].value
+ if strIsEmpty(itemValue):
+ itemValue = ""
+ itemTitle = selected[0]
+
+ self.session.openWithCallback(self.cbVKeyWindow, VirtualKeyBoard, title=itemTitle, text=itemValue)
+
+ def cbVKeyWindow(self, data=None):
+ if data is not None:
+ selected = self.selectedItem()
+ if selected is not None:
+ selected[1].setValue(data)
+
+ def saveData(self):
+ if self.mType == BookmarkEditWindow.CATEGORY:
+ if self.mMode == 'Add':
+ categoryName = self.menuItemName.value
+ if strIsEmpty(categoryName):
+ return self.showMessageBox("Category Name")
+ self.mBookmarkManager.addCategory(categoryName)
+ else:
+ if strIsEmpty(self.menuItemName.value):
+ return self.showMessageBox("Category Name")
+ self.mData.mName = self.menuItemName.value
+ self.mBookmarkManager.updateCategory(self.mData)
+ else:
+ if self.mMode == 'Add':
+ bookmarkTitle = self.menuItemTitle.value
+ bookmarkUrl = self.menuItemUrl.value
+ if strIsEmpty(bookmarkTitle):
+ self["config"].setCurrentIndex(0)
+ return self.showMessageBox("Bookmark Title")
+ if strIsEmpty(bookmarkUrl):
+ self["config"].setCurrentIndex(1)
+ return self.showMessageBox("Bookmark URL")
+ self.mBookmarkManager.addBookmark(bookmarkTitle, bookmarkUrl, self.mData.mParent)
+ else:
+ if strIsEmpty(self.menuItemTitle.value):
+ self["config"].setCurrentIndex(0)
+ return self.showMessageBox("Bookmark Title")
+ if strIsEmpty(self.menuItemUrl.value):
+ self["config"].setCurrentIndex(1)
+ return self.showMessageBox("Bookmark URL")
+ self.mData.mTitle = self.menuItemTitle.value
+ self.mData.mUrl = self.menuItemUrl.value
+ self.mBookmarkManager.updateBookmark(self.mData)
+ return True
+
+ def keyGreen(self):
+ if not self.saveData():
+ return
+ self.close(True)
+ def keyRed(self):
+ self.close(False)
+ def keyLeft(self):
+ ConfigListScreen.keyLeft(self)
+ def keyRight(self):
+ ConfigListScreen.keyRight(self)
+ def makeConfigList(self):
+ self.menulist = []
+
+ if self.mType == BookmarkEditWindow.CATEGORY:
+ self.menuItemName = ConfigText(default=self.mData.mName, visible_width=65, fixed_size=False)
+
+ self.menuEntryName = getConfigListEntry(_("Name"), self.menuItemName)
+
+ self.menulist.append(self.menuEntryName)
+ else:
+ self.menuItemTitle = ConfigText(default=self.mData.mTitle, visible_width=65, fixed_size=False)
+ self.menuItemUrl = ConfigText(default=self.mData.mUrl, visible_width=65, fixed_size=False)
+
+ self.menuEntryTitle = getConfigListEntry(_("Title"), self.menuItemTitle)
+ self.menuEntryUrl = getConfigListEntry(_("Url"), self.menuItemUrl)
+
+ self.menulist.append(self.menuEntryTitle)
+ self.menulist.append(self.menuEntryUrl)
+
+ self["config"].list = self.menulist
+ self["config"].l.setList(self.menulist)
+
+class OperaBrowserBookmarkWindow(Screen):
+ skin = """
+ <screen name="HbbTVBrowserBookmarkWindow" position="center,center" size="600,400" title="Bookmark" >
+ <widget name="bookmarklist" position="0,0" size="600,200" zPosition="10" scrollbarMode="showOnDemand" />
+
+ <ePixmap pixmap="skin_default/buttons/key_0.png" position="556,330" size="35,30" alphatest="on" />
+ <widget source="key_0" render="Label" position="258,330" zPosition="1" size="300,30" font="Regular;20" halign="right" valign="center"/>
+
+ <ePixmap pixmap="skin_default/buttons/red.png" position="5,360" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/green.png" position="155,360" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/yellow.png" position="305,360" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/blue.png" position="450,360" size="140,40" alphatest="on" />
+
+ <widget source="key_red" render="Label" position="5,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_green" render="Label" position="155,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_yellow" render="Label" position="305,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_blue" render="Label" position="450,360" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" foregroundColor="#ffffff" transparent="1" />
+ </screen>
+ """
+
+ def __init__(self, _session, _url=None, _title=None):
+ self.mUrl = _url
+ self.mTitle = _title
+ self.mBookmarkManager = BookmarkManager.getInstance()
+ self.mSession = _session
+ Screen.__init__(self, _session)
+ self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","ColorActions", "NumberActions"], {
+ "ok" : self.keyOK,
+ "cancel": self.keyCancel,
+ "red" : self.keyRed,
+ "green" : self.keyGreen,
+ "yellow": self.keyYellow,
+ "blue" : self.keyBlue,
+ "0" : self.keyNumber,
+ },-2)
+
+ self["key_red"] = StaticText(_("Exit"))
+ self["key_green"] = StaticText(_("Add"))
+ self["key_yellow"] = StaticText(_("Edit"))
+ self["key_blue"] = StaticText(_("Delete"))
+ self["key_0"] = StaticText(_("Set as Startpage"))
+
+ self.mBookmarkList = self.setBookmarkList()
+ self["bookmarklist"] = MenuList(self.mBookmarkList)
+
+ def setBookmarkList(self):
+ l = []
+ #self.mBookmarkManager.dump()
+ cd = self.mBookmarkManager.getBookmarkRoot()
+ for ck in cd.iterkeys():
+ l.append(('# ' + cd[ck].mName, cd[ck]))
+ bd = cd[ck].mBookmarks
+ for bk in bd.iterkeys():
+ l.append((' - ' + bd[bk].mTitle, bd[bk]))
+ return l
+ def updateBookmarkList(self):
+ self.mBookmarkList = self.setBookmarkList()
+ self["bookmarklist"].setList(self.mBookmarkList)
+ def cbEditWindow(self, ret=False):
+ if not ret:
+ return
+ self.updateBookmarkList()
+ def getParentCategory(self):
+ idx = self["bookmarklist"].getSelectedIndex()
+ try:
+ while idx >= 0:
+ data = self.mBookmarkList[idx][0].strip()
+ if data[0] == '#':
+ return self.mBookmarkList[idx][1]
+ idx -= 1
+ except: pass
+ return None
+ def isCategoryItem(self):
+ try:
+ head = self["bookmarklist"].getCurrent()[0].strip()
+ if head[0] == '#':
+ return True
+ except: pass
+ return False
+ def keyNumber(self):
+ data = self["bookmarklist"].getCurrent()[1]
+ if strIsEmpty(data.mUrl):
+ msg = "Invalid URL. Please check again!!"
+ self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
+ return
+ def cbSetStartpage(ret=None):
+ if ret is None: return
+ if ret:
+ data = self["bookmarklist"].getCurrent()[1]
+ OperaBrowserSetting().setData(data.mUrl)
+ msg = "Do you want to set selected url to the Startpage?"
+ self.mSession.openWithCallback(cbSetStartpage, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
+
+ def keyGreen(self):
+ def cbGreen(data):
+ if data is None:
+ return
+ if data[1] == 1:
+ parent = self.getParentCategory()
+ if parent is None:
+ return
+ if strIsEmpty(self.mTitle):
+ return
+ retAdd = self.mBookmarkManager.addBookmark(self.mTitle, self.mUrl, parent.mId)
+ if not retAdd:
+ msg = "Current page is already exist."
+ self.mSession.open(MessageBox, msg, MessageBox.TYPE_INFO)
+ self.cbEditWindow(True)
+ elif data[1] == 2:
+ parent = self.getParentCategory()
+ if parent is None:
+ return
+ b = BookmarkData(0, '', '', parent.mId)
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.BOOKMARK, b, self.mBookmarkManager)
+ elif data[1] == 3:
+ c = CategoryData(0, '')
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Add', BookmarkEditWindow.CATEGORY, c, self.mBookmarkManager)
+ if strIsEmpty(self.mUrl):
+ l = [('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
+ else: l = [('Currentpage(Bookmark)',1,), ('Direct Input(Bookmark)',2,), ('Direct Input(Category)',3,)]
+ self.mSession.openWithCallback(cbGreen, ChoiceBox, title=_("Please choose."), list=l)
+ def keyYellow(self):
+ data = self["bookmarklist"].getCurrent()[1]
+ if self.isCategoryItem():
+ self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.CATEGORY, data, self.mBookmarkManager)
+ else: self.mSession.openWithCallback(self.cbEditWindow, BookmarkEditWindow, 'Edit', BookmarkEditWindow.BOOKMARK, data, self.mBookmarkManager)
+ def keyBlue(self):
+ def cbBlue(ret=None):
+ if not ret: return
+ data = self["bookmarklist"].getCurrent()[1]
+ if self.isCategoryItem():
+ self.mBookmarkManager.deleteCategory(data.mId)
+ else: self.mBookmarkManager.deleteBookmark(data.mId)
+ self.updateBookmarkList()
+ if self.isCategoryItem():
+ msg = "Do you want to delete the category and the bookmarks?"
+ else: msg = "Do you want to delete the bookmark?"
+ self.mSession.openWithCallback(cbBlue, MessageBox, msg, MessageBox.TYPE_YESNO, default=True)
+ def keyOK(self):
+ if self.isCategoryItem(): return
+
+ data = self["bookmarklist"].getCurrent()[1]
+ url = data.mUrl.strip()
+ if len(url) == 0:
+ self.session.open(MessageBox, "Can't open selected bookmark.\n - URL data is empty!!", type = MessageBox.TYPE_INFO)
+ return
+ self.close(url)
+ def keyRed(self):
+ self.keyCancel()
+ def keyCancel(self):
+ self.close()
+
+
+class BrowserHelpWindow(Screen, HelpableScreen):
+ MODE_GLOBAL,MODE_KEYBOARD,MODE_MOUSE = 1,2,3
+ skin = """
+ <screen name="BrowserHelpWindow" position="center,center" size="600,40" title="Browser Help" >
+ <ePixmap pixmap="skin_default/buttons/red.png" position="5,0" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/green.png" position="155,0" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/yellow.png" position="305,0" size="140,40" alphatest="on" />
+ <ePixmap pixmap="skin_default/buttons/blue.png" position="450,0" size="140,40" alphatest="on" />
+
+ <widget source="key_red" render="Label" position="5,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_green" render="Label" position="155,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_yellow" render="Label" position="305,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" foregroundColor="#ffffff" transparent="1" />
+ <widget source="key_blue" render="Label" position="450,0" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" foregroundColor="#ffffff" transparent="1" />
+ </screen>
+ """
+ def __init__(self, session):
+ Screen.__init__(self, session)
+ HelpableScreen.__init__(self)
+
+ self["key_red"] = StaticText(_("Exit"))
+ self["key_green"] = StaticText(_("Global"))
+ self["key_yellow"] = StaticText(_("Mouse"))
+ self["key_blue"] = StaticText(_("Keyboard"))
+
+ self["actions"] = ActionMap(["DirectionActions", "OkCancelActions","ColorActions"], {
+ "ok" : self.keyRed,
+ "cancel": self.keyRed,
+ "red" : self.keyRed,
+ "green" : self.keyGreen,
+ "yellow": self.keyYellow,
+ "blue" : self.keyBlue,
+ },-2)
+
+ self.showHelpTimer = eTimer()
+ self.showHelpTimer.callback.append(self.cbShowHelpTimerClosed)
+ self.showHelpTimer.start(500)
+
+ def cbShowHelpTimerClosed(self):
+ self.showHelpTimer.stop()
+ self.setHelpModeActions(self.MODE_GLOBAL)
+
+ def setHelpModeActions(self, _mode=0):
+ self.helpList = []
+ if _mode == self.MODE_GLOBAL:
+ self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", {
+ "cancel" : (self.keyPass, _("Exit the Opera browser.")),
+ })
+ self["MenuActions"] = HelpableActionMap(self, "MenuActions", {
+ "menu" : (self.keyPass, _("Show the Menu window.")),
+ })
+ self["ColorActions"] = HelpableActionMap(self, "ColorActions", {
+ "green" : (self.keyPass, _("Enter Key")),
+ "yellow" : (self.keyPass, _("Show the Virtual keyboard window.")),
+ "blue" : (self.keyPass, _("Backspace Key")),
+ })
+ self["EPGSelectActions"] = HelpableActionMap(self, "EPGSelectActions", {
+ "info" : (self.keyPass, _("Switch to keyboard/mouse mode.")),
+ })
+
+ elif _mode == self.MODE_MOUSE:
+ self["DirectionActions"] = HelpableActionMap(self, "DirectionActions", {
+ "up" : (self.keyPass, _("It will move the mouse pointer up.")),
+ "down" : (self.keyPass, _("It will move the mouse pointer down.")),
+ "left" : (self.keyPass, _("It will move the mouse pointer left.")),
+ "right" : (self.keyPass, _("It will move the mouse pointer right.")),
+ })
+ self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", {
+ "ok" : (self.keyPass, _("Left Mouse Button")),
+ })
+ self["EPGSelectActions"] = HelpableActionMap(self, "EPGSelectActions", {
+ "nextBouquet" : (self.keyPass, _("Right Mouse Button")),
+ "nextService" : (self.keyPass, _("Left Key")),
+ "prevService" : (self.keyPass, _("Right Key")),
+ })
+ elif _mode == self.MODE_KEYBOARD:
+ self["DirectionActions"] = HelpableActionMap(self, "DirectionActions", {
+ "up" : (self.keyPass, _("Up Key")),
+ "down" : (self.keyPass, _("Down Key")),
+ "left" : (self.keyPass, _("Left Key")),
+ "right" : (self.keyPass, _("Right Key")),
+ })
+ self["OkCancelActions"] = HelpableActionMap(self, "OkCancelActions", {
+ "ok" : (self.keyPass, _("Enter Key")),
+ })
+ self["EPGSelectActions"] = HelpableActionMap(self, "EPGSelectActions", {
+ "nextBouquet" : (self.keyPass, _("PageUp Key")),
+ "prevBouquet" : (self.keyPass, _("PageDown Key")),
+ "nextService" : (self.keyPass, _("Go to previous page.")),
+ "prevService" : (self.keyPass, _("Go to next page.")),
+ })
+
+ if _mode > 0:
+ self.showHelp()
+
+ def keyPass(self):
+ pass
+
+ def keyRed(self):
+ self.close()
+ def keyGreen(self):
+ self.setHelpModeActions(self.MODE_GLOBAL)
+ def keyYellow(self):
+ self.setHelpModeActions(self.MODE_MOUSE)
+ def keyBlue(self):
+ self.setHelpModeActions(self.MODE_KEYBOARD)
+