Beispiel #1
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)
        list = []
        menuID = None
        for x in parent:
            if not x.tag:
                continue
            if x.tag == 'item':
                item_level = int(x.get('level', 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(list, x)
                    count += 1
            elif x.tag == 'menu':
                self.addMenu(list, x)
                count += 1
            elif x.tag == 'id':
                menuID = x.get('val')
                count = 0
            if menuID is not None:
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            list.append(
                                (x[0],
                                 boundFunction(self.runScreen,
                                               (x[2], x[3] + ', ')), x[4]))
                            count += 1

        self.menuID = menuID
        if config.ParentalControl.configured.value:
            ProtectedScreen.__init__(self)
        if menuID is not None:
            for l in plugins.getPluginsForMenu(menuID):
                plugin_menuid = l[2]
                for x in list:
                    if x[2] == plugin_menuid:
                        list.remove(x)
                        break

                if len(l) > 4 and l[4]:
                    list.append(
                        (l[0], boundFunction(l[1], self.session,
                                             self.close), l[2], l[3] or 50))
                else:
                    list.append((l[0], boundFunction(l[1],
                                                     self.session), l[2], l[3]
                                 or 50))

        self.skinName = []
        if menuID is not None:
            self.skinName.append('menu_' + menuID)
        self.skinName.append('Menu')
        self.menuID = menuID
        ProtectedScreen.__init__(self)
        if config.usage.sort_menus.value:
            list.sort()
        else:
            list.sort(key=lambda x: int(x[3]))
        self['menu'] = List(list)
        self['actions'] = NumberActionMap(
            ['OkCancelActions', 'MenuActions', 'NumberActions'], {
                'ok': self.okbuttonClick,
                'cancel': self.closeNonRecursive,
                'menu': self.closeRecursive,
                '1': self.keyNumberGlobal,
                '2': self.keyNumberGlobal,
                '3': self.keyNumberGlobal,
                '4': self.keyNumberGlobal,
                '5': self.keyNumberGlobal,
                '6': self.keyNumberGlobal,
                '7': self.keyNumberGlobal,
                '8': self.keyNumberGlobal,
                '9': self.keyNumberGlobal
            })
        a = parent.get('title', '').encode('UTF-8') or None
        a = a and _(a)
        if a is None:
            a = _(parent.get('text', '').encode('UTF-8'))
        self['title'] = StaticText(a)
        Screen.setTitle(self, a)
        self.menu_title = a
        return
Beispiel #2
0
 def __init__(self, session, infobar):
     Screen.__init__(self, session)
     self.infobar = infobar or self.session.infobar
     self.wait = eTimer()
     self.wait.timeout.get().append(self.resyncSubtitles)
     self['videofps'] = Label('')
     sub = self.infobar.selected_subtitle
     if sub[0] == 0:
         menu = [
             getConfigMenuItem('config.subtitles.dvb_subtitles_yellow'),
             getConfigMenuItem('config.subtitles.dvb_subtitles_centered'),
             getConfigMenuItem('config.subtitles.dvb_subtitles_backtrans'),
             getConfigMenuItem(
                 'config.subtitles.dvb_subtitles_original_position'),
             getConfigMenuItem('config.subtitles.subtitle_position'),
             getConfigMenuItem(
                 'config.subtitles.subtitle_bad_timing_delay'),
             getConfigMenuItem(
                 'config.subtitles.subtitle_noPTSrecordingdelay')
         ]
     elif sub[0] == 1:
         menu = [
             getConfigMenuItem('config.subtitles.ttx_subtitle_colors'),
             getConfigMenuItem(
                 'config.subtitles.ttx_subtitle_original_position'),
             getConfigMenuItem('config.subtitles.subtitle_fontsize'),
             getConfigMenuItem('config.subtitles.subtitle_position'),
             getConfigMenuItem('config.subtitles.subtitle_rewrap'),
             getConfigMenuItem('config.subtitles.subtitle_borderwidth'),
             getConfigMenuItem('config.subtitles.subtitle_alignment'),
             getConfigMenuItem(
                 'config.subtitles.subtitle_bad_timing_delay'),
             getConfigMenuItem(
                 'config.subtitles.subtitle_noPTSrecordingdelay')
         ]
     else:
         menu = [
             getConfigMenuItem('config.subtitles.pango_subtitles_delay'),
             getConfigMenuItem('config.subtitles.pango_subtitle_colors'),
             getConfigMenuItem(
                 'config.subtitles.pango_subtitle_fontswitch'),
             getConfigMenuItem('config.subtitles.colourise_dialogs'),
             getConfigMenuItem('config.subtitles.subtitle_fontsize'),
             getConfigMenuItem('config.subtitles.subtitle_position'),
             getConfigMenuItem('config.subtitles.subtitle_alignment'),
             getConfigMenuItem('config.subtitles.subtitle_rewrap'),
             getConfigMenuItem('config.subtitles.pango_subtitle_removehi'),
             getConfigMenuItem('config.subtitles.subtitle_borderwidth'),
             getConfigMenuItem('config.subtitles.pango_subtitles_fps')
         ]
         self['videofps'].setText(
             _('Video: %s fps') % self.getFps().rstrip('.000'))
     ConfigListScreen.__init__(self,
                               menu,
                               self.session,
                               on_change=self.changedEntry)
     self['actions'] = NumberActionMap(['SetupActions'], {
         'cancel': self.cancel,
         'ok': self.ok
     }, -2)
     self.onLayoutFinish.append(self.layoutFinished)
    def __init__(self, session, title="", **kwargs):
        Screen.__init__(self, session)
        self.setTitle(_(title))
        self.keys_list = []
        self.shiftkeys_list = []
        self.lang = language.getLanguage()
        self.nextLang = None
        self.shiftMode = False
        self.selectedKey = 0
        self.smsChar = None
        self.sms = NumericalTextInput(self.smsOK)

        self.key_bg = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_bg.png"))
        self.key_sel = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_sel.png"))
        self.key_backspace = LoadPixmap(path=resolveFilename(
            SCOPE_ACTIVE_SKIN, "buttons/vkey_backspace.png"))
        self.key_all = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_all.png"))
        self.key_clr = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_clr.png"))
        self.key_esc = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_esc.png"))
        self.key_ok = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_ok.png"))
        self.key_shift = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_shift.png"))
        self.key_shift_sel = LoadPixmap(path=resolveFilename(
            SCOPE_ACTIVE_SKIN, "buttons/vkey_shift_sel.png"))
        self.key_space = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_space.png"))
        self.key_left = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_left.png"))
        self.key_right = LoadPixmap(
            path=resolveFilename(SCOPE_ACTIVE_SKIN, "buttons/vkey_right.png"))

        self.keyImages = {
            "BACKSPACE": self.key_backspace,
            "ALL": self.key_all,
            "EXIT": self.key_esc,
            "OK": self.key_ok,
            "SHIFT": self.key_shift,
            "SPACE": self.key_space,
            "LEFT": self.key_left,
            "RIGHT": self.key_right
        }
        self.keyImagesShift = {
            "BACKSPACE": self.key_backspace,
            "CLEAR": self.key_clr,
            "EXIT": self.key_esc,
            "OK": self.key_ok,
            "SHIFT": self.key_shift_sel,
            "SPACE": self.key_space,
            "LEFT": self.key_left,
            "RIGHT": self.key_right
        }

        self["country"] = StaticText("")
        self["header"] = Label()
        self["text"] = Input(currPos=len(
            kwargs.get("text", "").decode("utf-8", 'ignore')),
                             allMarked=False,
                             **kwargs)
        self["list"] = VirtualKeyBoardList([])

        self["actions"] = NumberActionMap(
            [
                "OkCancelActions", "WizardActions", "ColorActions",
                "KeyboardInputActions", "InputBoxActions", "InputAsciiActions"
            ], {
                "gotAsciiCode": self.keyGotAscii,
                "ok": self.okClicked,
                "cancel": self.exit,
                "left": self.left,
                "right": self.right,
                "up": self.up,
                "down": self.down,
                "red": self.exit,
                "green": self.ok,
                "yellow": self.switchLang,
                "blue": self.shiftClicked,
                "deleteBackward": self.backClicked,
                "deleteForward": self.forwardClicked,
                "back": self.exit,
                "pageUp": self.cursorRight,
                "pageDown": self.cursorLeft,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
            }, -2)
        self.setLang()
        self.onExecBegin.append(self.setKeyboardModeAscii)
        self.onLayoutFinish.append(self.buildVirtualKeyBoard)
        self.onClose.append(self.__onClose)
Beispiel #4
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)
        list = []

        menuID = None
        for x in parent:  #walk through the actual nodelist
            if not x.tag:
                continue
            if x.tag == 'item':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(list, x)
                    count += 1
            elif x.tag == 'menu':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addMenu(list, x)
                    count += 1
            elif x.tag == "id":
                menuID = x.get("val")
                count = 0

            if menuID is not None:
                # menuupdater?
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            list.append(
                                (x[0],
                                 boundFunction(self.runScreen,
                                               (x[2], x[3] + ", ")), x[4]))
                            count += 1

        self.menuID = menuID
        if config.ParentalControl.configured.value:
            ProtectedScreen.__init__(self)

        if menuID is not None:
            # plugins
            for l in plugins.getPluginsForMenu(menuID):
                # check if a plugin overrides an existing menu
                plugin_menuid = l[2]
                for x in list:
                    if x[2] == plugin_menuid:
                        list.remove(x)
                        break
                if len(l) > 4 and l[4]:
                    list.append(
                        (l[0], boundFunction(l[1], self.session,
                                             self.close), l[2], l[3] or 50))
                else:
                    list.append((l[0], boundFunction(l[1],
                                                     self.session), l[2], l[3]
                                 or 50))

        # for the skin: first try a menu_<menuID>, then Menu
        self.skinName = []
        if menuID is not None:
            self.skinName.append("menu_" + menuID)
        self.skinName.append("Menu")
        self.menuID = menuID
        ProtectedScreen.__init__(self)

        # Sort by Weight
        if config.usage.sort_menus.value:
            list.sort()
        else:
            list.sort(key=lambda x: int(x[3]))

        self["menu"] = List(list)

        self["actions"] = NumberActionMap(
            ["OkCancelActions", "MenuActions", "NumberActions"], {
                "ok": self.okbuttonClick,
                "cancel": self.closeNonRecursive,
                "menu": self.closeRecursive,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal
            })

        a = parent.get("title", "").encode("UTF-8") or None
        a = a and _(a)
        if a is None:
            a = _(parent.get("text", "").encode("UTF-8"))
        self["title"] = StaticText(a)
        Screen.setTitle(self, a)
        self.menu_title = a
Beispiel #5
0
	def __init__(self, session, text = "", filename = "", currDir = None, bookmarks = None, userMode = False, windowTitle = _("Select Location"), minFree = None, autoAdd = False, editDir = False, inhibitDirs = [], inhibitMounts = []):
		# Init parents
		Screen.__init__(self, session)
		NumericalTextInput.__init__(self, handleTimeout = False)
		HelpableScreen.__init__(self)

		# Set useable chars
		self.setUseableChars(u'1234567890abcdefghijklmnopqrstuvwxyz')

		# Quickselect Timer
		self.qs_timer = eTimer()
		self.qs_timer.callback.append(self.timeout)
		self.qs_timer_type = 0

		# Initialize Quickselect
		self.curr_pos = -1
		self.quickselect = ""

		# Set Text
		self["text"] = Label(text)
		self["textbook"] = Label(_("Bookmarks"))

		# Save parameters locally
		self.text = text
		self.filename = filename
		self.minFree = minFree
		self.realBookmarks = bookmarks
		self.bookmarks = bookmarks and bookmarks.value[:] or []
		self.userMode = userMode
		self.autoAdd = autoAdd
		self.editDir = editDir
		self.inhibitDirs = inhibitDirs

		# Initialize FileList
		self["filelist"] = FileList(currDir, showDirectories = True, showFiles = False, inhibitMounts = inhibitMounts, inhibitDirs = inhibitDirs)

		# Initialize BookList
		self["booklist"] = MenuList(self.bookmarks)

		# Buttons
		self["key_green"] = Button(_("OK"))
		self["key_yellow"] = Button(_("Rename"))
		self["key_blue"] = Button(_("Remove Bookmark"))
		self["key_red"] = Button(_("Cancel"))

		# Background for Buttons
		self["green"] = Pixmap()
		self["yellow"] = Pixmap()
		self["blue"] = Pixmap()
		self["red"] = Pixmap()

		# Initialize Target
		self["target"] = Label()

		if self.userMode:
			self.usermodeOn()

		# Custom Action Handler
		class LocationBoxActionMap(HelpableActionMap):
			def __init__(self, parent, context, actions = { }, prio=0):
				HelpableActionMap.__init__(self, parent, context, actions, prio)
				self.box = parent

			def action(self, contexts, action):
				# Reset Quickselect
				self.box.timeout(force = True)

				return HelpableActionMap.action(self, contexts, action)

		# Actions that will reset quickselect
		self["WizardActions"] = LocationBoxActionMap(self, "WizardActions",
			{
				"left": self.left,
				"right": self.right,
				"up": self.up,
				"down": self.down,
				"ok": (self.ok, _("select")),
				"back": (self.cancel, _("Cancel")),
			}, -2)

		self["ColorActions"] = LocationBoxActionMap(self, "ColorActions",
			{
				"red": self.cancel,
				"green": self.select,
				"yellow": self.changeName,
				"blue": self.addRemoveBookmark,
			}, -2)

		self["EPGSelectActions"] = LocationBoxActionMap(self, "EPGSelectActions",
			{
				"prevBouquet": (self.switchToBookList, _("switch to bookmarks")),
				"nextBouquet": (self.switchToFileList, _("switch to filelist")),
			}, -2)

		self["MenuActions"] = LocationBoxActionMap(self, "MenuActions",
			{
				"menu": (self.showMenu, _("menu")),
			}, -2)

		# Actions used by quickselect
		self["NumberActions"] = NumberActionMap(["NumberActions"],
		{
			"1": self.keyNumberGlobal,
			"2": self.keyNumberGlobal,
			"3": self.keyNumberGlobal,
			"4": self.keyNumberGlobal,
			"5": self.keyNumberGlobal,
			"6": self.keyNumberGlobal,
			"7": self.keyNumberGlobal,
			"8": self.keyNumberGlobal,
			"9": self.keyNumberGlobal,
			"0": self.keyNumberGlobal
		})

		# Run some functions when shown
		self.onShown.extend((
			boundFunction(self.setTitle, windowTitle),
			self.updateTarget,
			self.showHideRename,
		))

		self.onLayoutFinish.append(self.switchToFileListOnStart)
 
		# Make sure we remove our callback
		self.onClose.append(self.disableTimer)
    def __init__(self, session, infobar):
        Screen.__init__(self, session)
        self.skin = QuickSubtitlesConfigMenu.skin
        self.infobar = infobar or self.session.infobar
        self.wait = eTimer()
        self.wait.timeout.get().append(self.resyncSubtitles)
        self.resume = eTimer()
        self.resume.timeout.get().append(self.resyncSubtitlesResume)
        self.service = self.session.nav.getCurrentlyPlayingServiceReference()
        servicepath = self.service and self.service.getPath()
        if servicepath and servicepath.startswith(
                "/") and self.service.toString().startswith("1:"):
            info = eServiceCenter.getInstance().info(self.service)
            self.service_string = info and info.getInfoString(
                self.service, iServiceInformation.sServiceref)
        else:
            self.service_string = self.service.toString()
        self.center_dvb_subs = ConfigYesNo(
            default=(eDVBDB.getInstance().getFlag(
                eServiceReference(self.service_string))
                     & self.FLAG_CENTER_DVB_SUBS) and True)
        self.center_dvb_subs.addNotifier(self.setCenterDvbSubs)
        self["videofps"] = Label("")

        sub = self.infobar.selected_subtitle
        if sub[0] == 0:  # dvb
            menu = [
                getConfigMenuItem("config.subtitles.dvb_subtitles_yellow"),
                getConfigMenuItem("config.subtitles.dvb_subtitles_backtrans"),
                getConfigMenuItem(
                    "config.subtitles.dvb_subtitles_original_position"),
                (_("Center DVB subtitles"), self.center_dvb_subs),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        elif sub[0] == 1:  # teletext
            menu = [
                getConfigMenuItem("config.subtitles.ttx_subtitle_colors"),
                getConfigMenuItem(
                    "config.subtitles.ttx_subtitle_original_position"),
                getConfigMenuItem("config.subtitles.ttx_subtitle_position"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem("config.subtitles.subtitle_borderwidth"),
                getConfigMenuItem("config.subtitles.showbackground"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        else:  # pango
            menu = [
                getConfigMenuItem("config.subtitles.pango_subtitles_delay"),
                getConfigMenuItem("config.subtitles.pango_subtitle_colors"),
                getConfigMenuItem(
                    "config.subtitles.pango_subtitle_fontswitch"),
                getConfigMenuItem("config.subtitles.colourise_dialogs"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem("config.subtitles.pango_subtitle_removehi"),
                getConfigMenuItem("config.subtitles.subtitle_borderwidth"),
                getConfigMenuItem("config.subtitles.showbackground"),
                getConfigMenuItem("config.subtitles.pango_subtitles_fps"),
            ]
            self["videofps"].setText(
                _("Video: %s fps") % (self.getFps().rstrip(".000")))

        ConfigListScreen.__init__(self,
                                  menu,
                                  self.session,
                                  on_change=self.changedEntry)

        self["actions"] = NumberActionMap(["SetupActions"], {
            "cancel": self.cancel,
            "ok": self.ok,
        }, -2)

        self.onLayoutFinish.append(self.layoutFinished)
Beispiel #7
0
    def __init__(self, session):
        self.session = session
        Screen.__init__(self, self.session)
        ProtectedScreen.__init__(self)

        # Lets get a list of elements for the config list
        self.list = [
            getConfigListEntry(_("Enabled"),
                               config.plugins.KiddyTimer.enabled),
            getConfigListEntry(_("PIN"), config.plugins.KiddyTimer.pin),
            getConfigListEntry(_("Don't monitor TV started before"),
                               config.plugins.KiddyTimer.monitorStartTime),
            getConfigListEntry(_("Don't monitor TV started after"),
                               config.plugins.KiddyTimer.monitorEndTime),
            getConfigListEntry(_("Style of timer"),
                               config.plugins.KiddyTimer.timerStyle),
            getConfigListEntry(
                _("Timeout for activation dialog"),
                config.plugins.KiddyTimer.activationDialogTimeout)
        ]
        for i in range(0, 7):
            self.list.append(
                getConfigListEntry(
                    KTglob.DAYNAMES[i],
                    config.plugins.KiddyTimer.dayTimes[i].timeValue))

        ConfigListScreen.__init__(self, self.list)

        self["config"].list = self.list

        self.skin_path = KTglob.plugin_path
        self.kiddyTimerStopped = False

        # Temporarily stop timer as long as we are in the setup screen
        if kiddyTimer.active:
            self.kiddyTimerStopped = True
            kiddyTimer.stopTimer()

        # Plugin Information
        self.remainingTime = config.plugins.KiddyTimer.remainingTime.value
        sRemainingTime = KTglob.getTimeFromSeconds(self.remainingTime, True)

        self["PluginInfo"] = Label(
            _("Plugin: %(plugin)s , Version: %(version)s") %
            dict(plugin=KTglob.PLUGIN_BASE, version=KTglob.PLUGIN_VERSION))
        self["RemainingTime"] = Label(_("Remaining time: %s") % sRemainingTime)
        self["LastDayStarted"] = Label(
            _("Last day started: %s") %
            config.plugins.KiddyTimer.lastStartDay.getValue())

        # BUTTONS
        self["key_red"] = Button(_("Cancel"))
        self["key_green"] = Button(_("Save"))
        self["key_yellow"] = Button(_("Reset clock"))
        self["key_blue"] = Button(_("Move clock"))

        self["setupActions"] = NumberActionMap(
            ["SetupActions", "ColorActions"], {
                "save": self.save,
                "cancel": self.cancel,
                "green": self.save,
                "red": self.cancel,
                "ok": self.save,
                "blue": self.keyPositioner,
                "yellow": self.resetTimer
            }, -2)
Beispiel #8
0
	def __init__(self, session):
		Screen.__init__(self, session)
		self.skinName = ["DmmBlindscanScreen", "Blindscan", "Setup"]
		Screen.setTitle(self, _("Blind scan for DVB-S2 tuners"))
		self.updateSatList()
		self.service = session.nav.getCurrentService()
		self.feinfo = None
		self.is_c_band_scan = False
		self.is_Ku_band_scan = False
		self.user_defined_lnb_scan = False
		self.user_defined_lnb_lo_freq = 0
		frontendData = None

		# make config
		self.legacy = True
		for slot in nimmanager.nim_slots:
			if slot.canBeCompatible("DVB-S"):
				try:
					slot.config.dvbs
					self.legacy = False
				except:
					self.legacy = True
				break

		if self.service is not None:
			self.feinfo = self.service.frontendInfo()
			frontendData = self.feinfo and self.feinfo.getAll(True)
		self.createConfig(frontendData)
		del self.feinfo
		del self.service
		try:
			self.session.postScanService = self.session.nav.getCurrentlyPlayingServiceOrGroup()
		except:
			self.session.postScanService = self.session.nav.getCurrentlyPlayingServiceReference()

		self["actions"] = NumberActionMap(["SetupActions"],
		{
			"cancel": self.keyCancel,
		}, -2)

		self["actions2"] = NumberActionMap(["SetupActions"],
		{
			"ok": self.keyGo,
			"save": self.keyGo,
		}, -2)
		self["actions2"].setEnabled(False)

		self["key_red"] = StaticText(_("Exit"))
		self["key_green"] = StaticText("")
		self["description"] = Label("")

		self.list = []
		ConfigListScreen.__init__(self, self.list)
		if self.scan_nims.value == "": # no usable nims were found (handled in createConfig())
			self["introduction"] = Label(_("Please setup your tuner configuration."))
		else:
			self.createSetup()
			self["introduction"] = Label(_("Press OK to start the scan."))

		if not self.selectionChanged in self["config"].onSelectionChanged:
			self["config"].onSelectionChanged.append(self.selectionChanged)
		self.selectionChanged()
    def __init__(self, session, title="", text=""):
        #VirtualKeyBoard.__init__(self, session, title, text) Changed by Topfi, added parameter names
        VirtualKeyBoard.__init__(self, session, title=title, text=text)
        NumericalTextInput.__init__(self, nextFunc=self.nextFunc)
        SkinResolutionHelper.__init__(self)
        self.configText = None
        if config.AdvancedMovieSelection.keyboard.value == "virtual":
            use = self.KEYBOARD
        elif config.AdvancedMovieSelection.keyboard.value == "numerical":
            use = self.NUM_KEYB
        else:
            use = self.BOTH
        if not use & self.KEYBOARD:
            # hide the keyboard
            self["list"].hide()
            # overwrite VirtualKeyBoard actions
            # make sure not overwrite any action of base class
            self["actions"] = ActionMap(
                [
                    "OkCancelActions", "WizardActions", "ColorActions",
                    "KeyboardInputActions", "InputBoxActions",
                    "InputAsciiActions"
                ], {
                    "ok": self.__ok,
                    "cancel": self.__cancel,
                    "left": self.dummy,
                    "right": self.dummy,
                    "up": self.dummy,
                    "down": self.dummy,
                    "red": self.__cancel,
                    "green": self.__ok,
                    "yellow": self.dummy,
                    "deleteBackward": self.dummy,
                    "back": self.dummy
                }, -2)

        if use & self.NUM_KEYB:
            self.timer = eTimer()
            self.timer.callback.append(self.timeout)
            self.configText = ConfigText("", False)
            if text:
                self.configText.text = text
                self.configText.marked_pos = len(text)
            self["config_actions"] = NumberActionMap(
                ["SetupActions", "InputAsciiActions", "KeyboardInputActions"],
                {
                    "1": self.keyNumberGlobal,
                    "2": self.keyNumberGlobal,
                    "3": self.keyNumberGlobal,
                    "4": self.keyNumberGlobal,
                    "5": self.keyNumberGlobal,
                    "6": self.keyNumberGlobal,
                    "7": self.keyNumberGlobal,
                    "8": self.keyNumberGlobal,
                    "9": self.keyNumberGlobal,
                    "0": self.keyNumberGlobal
                }, -1)  # to prevent left/right overriding the listbox
            if use & self.KEYBOARD:
                self.selectedKey = self.getKeyIndex(u"OK")

        self.onLayoutFinish.append(self.__onLayoutFinish)
        self.onClose.append(self.__onClose)
Beispiel #10
0
    def __init__(self, session, infobar=None, page=PAGE_AUDIO):
        Screen.__init__(self, session)

        self["streams"] = List([], enableWrapAround=True)
        self["key_red"] = Boolean(False)
        self["key_green"] = Boolean(False)
        self["key_yellow"] = Boolean(True)
        self["key_blue"] = Boolean(False)
        self["key_left"] = Pixmap()
        self["key_right"] = Pixmap()
        self["switchdescription"] = Label(
            _("Switch between Audio-, Subtitlepage"))
        self["summary_description"] = StaticText("")

        self.protectContextMenu = True

        ConfigListScreen.__init__(self, [])
        self.infobar = infobar or self.session.infobar

        self.__event_tracker = ServiceEventTracker(
            screen=self,
            eventmap={iPlayableService.evUpdatedInfo: self.__updatedInfo})
        self.cached_subtitle_checked = False
        self.__selected_subtitle = None

        self["actions"] = NumberActionMap(
            [
                "ColorActions", "OkCancelActions", "DirectionActions",
                "MenuActions", "InfobarAudioSelectionActions",
                "InfobarSubtitleSelectionActions"
            ], {
                "red": self.keyRed,
                "green": self.keyGreen,
                "yellow": self.keyYellow,
                "subtitleSelection": self.keyAudioSubtitle,
                "audioSelection": self.keyAudioSubtitle,
                "blue": self.keyBlue,
                "ok": self.keyOk,
                "cancel": self.cancel,
                "up": self.keyUp,
                "down": self.keyDown,
                "volumeUp": self.volumeUp,
                "volumeDown": self.volumeDown,
                "volumeMute": self.volumeMute,
                "menu": self.openAutoLanguageSetup,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
            }, -2)

        self.settings = ConfigSubsection()
        choicelist = [(PAGE_AUDIO, ""), (PAGE_SUBTITLES, "")]
        self.settings.menupage = ConfigSelection(choices=choicelist,
                                                 default=page)
        self.onLayoutFinish.append(self.__layoutFinished)
Beispiel #11
0
    def __init__(self, session, infobar):
        Screen.__init__(self, session)
        self.infobar = infobar or self.session.infobar

        self.wait = eTimer()
        self.wait.timeout.get().append(self.resyncSubtitles)

        self.resume = eTimer()
        self.resume.timeout.get().append(self.resyncSubtitlesResume)

        self["videofps"] = Label("")

        sub = self.infobar.selected_subtitle
        if sub[0] == 0:  # dvb
            menu = [
                getConfigMenuItem("config.subtitles.dvb_subtitles_yellow"),
                getConfigMenuItem("config.subtitles.dvb_subtitles_backtrans"),
                getConfigMenuItem(
                    "config.subtitles.dvb_subtitles_original_position"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        elif sub[0] == 1:  # teletext
            menu = [
                getConfigMenuItem("config.subtitles.ttx_subtitle_colors"),
                getConfigMenuItem(
                    "config.subtitles.ttx_subtitle_original_position"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem("config.subtitles.subtitle_borderwidth"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        else:  # pango
            menu = [
                getConfigMenuItem("config.subtitles.pango_subtitles_delay"),
                getConfigMenuItem("config.subtitles.pango_subtitle_colors"),
                getConfigMenuItem(
                    "config.subtitles.pango_subtitle_fontswitch"),
                getConfigMenuItem("config.subtitles.colourise_dialogs"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem("config.subtitles.pango_subtitle_removehi"),
                getConfigMenuItem("config.subtitles.subtitle_borderwidth"),
                getConfigMenuItem("config.subtitles.pango_subtitles_fps"),
            ]
            self["videofps"].setText(
                _("Video: %s fps") % (self.getFps().rstrip(".000")))

        ConfigListScreen.__init__(self,
                                  menu,
                                  self.session,
                                  on_change=self.changedEntry)

        self["actions"] = NumberActionMap(
            ["SetupActions"], {
                "cancel": self.cancel,
                "ok": self.ok,
                "1": self.keyNumber,
                "3": self.keyNumber,
                "4": self.keyNumber,
                "6": self.keyNumber,
                "7": self.keyNumber,
                "9": self.keyNumber,
                "0": self.keyNumber,
            }, -2)

        self.onLayoutFinish.append(self.layoutFinished)
Beispiel #12
0
    def __init__(self,
                 session,
                 title="",
                 list=[],
                 keys=None,
                 selection=0,
                 skin_name=[],
                 reorderConfig="",
                 windowTitle=None):
        Screen.__init__(self, session)

        if isinstance(skin_name, str):
            skin_name = [skin_name]
        self.skinName = skin_name + ["ChoiceBox"]

        self.reorderConfig = reorderConfig
        self["autoresize"] = Label("")  # do not remove, used for autoResize()
        self["description"] = Label()
        self["text"] = Label(title)
        self.list = []
        self.summarylist = []
        if keys is None:
            self.__keys = [
                "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red",
                "green", "yellow", "blue"
            ] + (len(list) - 14) * [""]
        else:
            self.__keys = keys + (len(list) - len(keys)) * [""]

        self.keymap = {}
        pos = 0
        if self.reorderConfig:
            self.config_type = eval("config.misc.pluginlist." +
                                    self.reorderConfig)
            if self.config_type.value:
                prev_list = zip(list, self.__keys)
                new_list = []
                for x in self.config_type.value.split(","):
                    for entry in prev_list:
                        if entry[0][0] == x:
                            new_list.append(entry)
                            prev_list.remove(entry)
                list = zip(*(new_list + prev_list))
                list, self.__keys = list[0], list[1]
                number = 1
                new_keys = []
                for x in self.__keys:
                    if (not x or x.isdigit()) and number <= 10:
                        new_keys.append(str(number % 10))
                        number += 1
                    else:
                        new_keys.append(not x.isdigit() and x or "")
                self.__keys = new_keys
        for x in list:
            strpos = str(self.__keys[pos])
            self.list.append(ChoiceEntryComponent(key=strpos, text=x))
            if self.__keys[pos] != "":
                self.keymap[self.__keys[pos]] = list[pos]
            self.summarylist.append((self.__keys[pos], x[0]))
            pos += 1

        self["list"] = ChoiceList(list=self.list, selection=selection)
        self["summary_list"] = StaticText()
        self["summary_selection"] = StaticText()
        self.updateSummary(selection)

        self["actions"] = NumberActionMap(
            [
                "WizardActions", "InputActions", "ColorActions",
                "DirectionActions", "MenuActions"
            ], {
                "ok": self.go,
                "back": self.cancel,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
                "red": self.keyRed,
                "green": self.keyGreen,
                "yellow": self.keyYellow,
                "blue": self.keyBlue,
                "up": self.up,
                "down": self.down,
                "moveUp": self.additionalMoveUp,
                "moveDown": self.additionalMoveDown,
                "menu": self.setDefaultChoiceList
            }, -1)
        self.setTitle(windowTitle or _("Select"))
Beispiel #13
0
    def __init__(self, session, args=0):
        global x, y
        self.skin = dreamIRCMainMenu.skin
        Screen.__init__(self, session)

        self.menu = args
        self.pipe = MessagePipe()
        self.account = AccountManager(self.session)

        self.list = []
        self.menuList = []

        self.connected = False

        self["buddy"] = BuddyWindow("")
        self["chat"] = ChatWindow("")
        self["input"] = Input("")

        self["buddy.desc"] = Label(_("User Online"))
        self["input.desc"] = Label(
            _("Type your text here and press OK to send:"))
        self["chat.desc"] = ChanName(_("ChatBox"))
        self["connect.desc"] = Label(_("Connect"))
        self["disconnect.desc"] = Label(_("Disconnect"))
        self["settings.desc"] = Label(_("Settings"))
        if y >= 720:
            self["blue.desc"] = Label(_("virtual Keyboard"))
        else:
            self["blue.desc"] = Label(_("virtual Keyb."))
        self["green.pic"] = Pixmap()
        self["red.pic"] = Pixmap()
        self["yellow.pic"] = Pixmap()
        self["blue.pic"] = Pixmap()

        self["actions"] = NumberActionMap(
            [
                "dreamIRCActions", "InputBoxActions", "InputAsciiActions",
                "KeyboardInputActions"
            ], {
                "gotAsciiCode": self.gotAsciiCode,
                "red": self.redPressed,
                "green": self.greenPressed,
                "yellow": self.yellowPressed,
                "blue": self.bluePressed,
                "ok": self.go,
                "cancel": self.closePlugin,
                "back": self.closePlugin,
                "right": self.keyRight,
                "left": self.keyLeft,
                "up": self["chat"].pageUp,
                "down": self["chat"].pageDown,
                "buddyUp": self["buddy"].pageUp,
                "buddyDown": self["buddy"].pageDown,
                "home": self.keyHome,
                "end": self.keyEnd,
                "delete": self.keyDelete,
                "deleteForward": self.keyDeleteForward,
                "deleteBackward": self.keyDeleteBackward,
                "tab": self.keyTab,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal
            }, -1)
        rcinput = eRCInput.getInstance()
        rcinput.setKeyboardMode(rcinput.kmAscii)

        self.checkStatus()
Beispiel #14
0
    def __init__(self, session):
        Screen.__init__(self, session)
        self.setTitle(_("Plugin Browser"))
        ProtectedScreen.__init__(self)

        self.firsttime = True

        self["key_red"] = self["red"] = Label(_("Remove plugins"))
        self["key_green"] = self["green"] = Label(_("Download plugins"))
        self["key_blue"] = self["blue"] = Label(_("Hold plugins"))

        self.list = []
        self["list"] = PluginList(self.list)
        if config.usage.sort_pluginlist.getValue():
            self["list"].list.sort()

        self["actions"] = ActionMap(
            ["SetupActions", "WizardActions", "EPGSelectActions"], {
                "ok": self.save,
                "back": self.close,
                "menu": self.menu,
            })
        self["PluginDownloadActions"] = ActionMap(["ColorActions"], {
            "red": self.delete,
            "green": self.download,
            "blue": self.toogle
        })
        self["DirectionActions"] = ActionMap(["DirectionActions"], {
            "moveUp": self.moveUp,
            "moveDown": self.moveDown
        })
        self["NumberActions"] = NumberActionMap(
            ["NumberActions"], {
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal
            })
        self["HelpActions"] = ActionMap(["HelpActions"], {
            "displayHelp": self.showHelp,
        })
        self.help = False

        self.number = 0
        self.nextNumberTimer = eTimer()
        self.nextNumberTimer.callback.append(self.okbuttonClick)

        self.onFirstExecBegin.append(self.checkWarnings)
        self.onShown.append(self.updateList)
        self.onChangedEntry = []
        self["list"].onSelectionChanged.append(self.selectionChanged)
        self.onLayoutFinish.append(self.saveListsize)
        if config.pluginfilter.userfeed.getValue() != "http://":
            if not os.path.exists("/etc/opkg/user-feed.conf"):
                CreateFeedConfig()
Beispiel #15
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)
        list = []

        menuID = None
        count = 0
        for x in parent:  #walk through the actual nodelist
            if x.tag == 'item':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(list, x)
                    count += 1
            elif x.tag == 'menu':
                self.addMenu(list, x)
                count += 1
            elif x.tag == "id":
                menuID = x.get("val")
                count = 0

            if menuID is not None:
                # menuupdater?
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            description = x.get("description",
                                                "").encode("UTF-8") or None
                            description = description and _(description)
                            menupng = MenuEntryPixmap(menuID, self.png_cache,
                                                      lastMenuID)
                            list.append((x[0],
                                         boundFunction(self.runScreen,
                                                       (x[2], x[3] + ", ")),
                                         x[4], description, menupng))
                            count += 1

        if menuID is not None:
            # plugins
            for l in plugins.getPluginsForMenu(menuID):
                # check if a plugin overrides an existing menu
                plugin_menuid = l[2]
                for x in list:
                    if x[2] == plugin_menuid:
                        list.remove(x)
                        break
                description = plugins.getDescriptionForMenuEntryID(
                    menuID, plugin_menuid)
                menupng = MenuEntryPixmap(l[2], self.png_cache, lastMenuID)
                list.append((l[0], boundFunction(l[1],
                                                 self.session), l[2], l[3]
                             or 50, description, menupng))

        # for the skin: first try a menu_<menuID>, then Menu
        self.skinName = []
        if menuID is not None:
            self.skinName.append("menu_" + menuID)
        self.skinName.append("Menu")

        # Sort by Weight
        list.sort(key=lambda x: int(x[3]))

        self._list = List(list)
        self._list.onSelectionChanged.append(self._onSelectionChanged)
        self["menu"] = self._list
        self["pixmap"] = Pixmap()
        self["description"] = StaticText()

        self["actions"] = NumberActionMap(
            ["OkCancelActions", "MenuActions", "NumberActions"], {
                "ok": self.okbuttonClick,
                "cancel": self.closeNonRecursive,
                "menu": self.closeRecursive,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal
            })

        a = parent.get("title", "").encode("UTF-8") or None
        a = a and _(a)
        if a is None:
            a = _(parent.get("text", "").encode("UTF-8"))
        self["title"] = StaticText(a)
        self.menu_title = a
        self.onLayoutFinish.append(self._onLayoutFinish)
 def __init__(self, session, params={}):
     
     # Skin generator
     maxWidth = 0
     pX = 40
     pY = 60
     dY = 10
     skinItems = ''
     self.icons = []
     self.list = params['list']
     self.withAcceptButton = params.get('with_accept_button', False)
     self.statusText = params.get('status_text', '')
     statusTextHight = params.get('status_text_hight', 80)
     # calcl maxWidth size
     for idx in range(len(self.list)):
         item = self.list[idx]
         if item['label_size'][0] > maxWidth: maxWidth = item['label_size'][0]
         if item['input_size'][0] > maxWidth: maxWidth = item['input_size'][0]
     maxWidth += pX*2
     
     if len(self.statusText):
         skinItems = '<widget name="statustext"   position="10,%d"  zPosition="2" size="%d,%d"  valign="center" halign="center" font="Regular;22" transparent="1" />' % (pY+dY, maxWidth-20, statusTextHight)
         pY += statusTextHight + dY*2
         
     
     for idx in range(len(self.list)):
         item = self.list[idx]
         if 'icon_path' in item:
             self["cover_%d"%idx] = Cover2()
             self.icons.append({'name':"cover_%d"%idx, 'path':item['icon_path']})
         else:
             self["text_%d"%idx] = Label(item.get('title', ''))
         self["input_%d"%idx] = Input(**item['input'])
         self["border_%d"%idx] = Label("")
         if item.get('useable_chars', None) is not None:
             self["input_%d"%idx].setUseableChars(item['useable_chars'])
         
         if 'icon_path' in item:
             skinItems +=  '<widget name="cover_%d" position="%d,%d" size="%d,%d" zPosition="8" />' % (idx, (maxWidth - item['label_size'][0]) / 2, pY, item['label_size'][0], item['label_size'][1])
         else:
             skinItems +=  '<widget name="text_%d" position="%d,%d" size="%d,%d" font="%s" zPosition="2" />' % (idx, 10, pY, item['label_size'][0], item['label_size'][1], item['label_font'])
         
         pY += dY + item['label_size'][1]
         skinItems +=  '<widget name="input_%d" position="%d,%d" size="%d,%d" font="%s" zPosition="2" />' % (idx, pX, pY, item['input_size'][0], item['input_size'][1], item['input_font'])
         skinItems +=  '<widget name="border_%d" position="%d,%d" size="%d,%d" font="%s" zPosition="1" transparent="0" backgroundColor="#331F93B9" />' % (idx, pX-5, pY-5, item['input_size'][0]+10, item['input_size'][1]+10, item['input_font'])
         if 0 == idx: 
             self['marker'] = Cover3()
             skinItems +=  '<widget name="marker" zPosition="2" position="10,%d" size="16,16" transparent="1" alphatest="blend" />' % (pY + (item['input_size'][1]-16) / 2)
         skinItems +=  '<widget name="marker_%d" zPosition="1" position="10,%d" size="16,16" transparent="1" alphatest="blend" />' % (idx, pY + (item['input_size'][1]-16) / 2)
         self['marker_%d'%idx] = Cover3()
         pY += dY*2 + item['input_size'][1]
         
     if self.withAcceptButton:
         skinItems += '<widget name="accept_button"  position="10,%d"  zPosition="2" size="%d,50"  valign="center" halign="center" font="Regular;22" foregroundColor="#00FFFFFF" backgroundColor="#320F0F0F" />' % (pY, maxWidth-20)
         pY += dY*2 + 50
     self.skin = """
     <screen name="IPTVMultipleInputBox" position="center,center" size="%d,%d" title="%s">
         <widget name="key_red"   position="10,10" zPosition="2" size="%d,35" valign="center" halign="left"   font="Regular;22" transparent="1" foregroundColor="red" />
         <widget name="key_ok"    position="10,10" zPosition="2" size="%d,35" valign="center" halign="center" font="Regular;22" transparent="1" foregroundColor="white" />
         <widget name="key_green" position="10,10" zPosition="2" size="%d,35" valign="center" halign="right"  font="Regular;22" transparent="1" foregroundColor="green" />
         %s
     </screen>
     """ % (maxWidth, pY, params.get('title', _("Input")), maxWidth-20, maxWidth-20, maxWidth-20, skinItems)
     
     self["key_green"] = Label(params.get('accep_label', _("Save")))
     self["key_ok"]    = Label(_("OK"))
     self["key_red"]   = Label(_("Cancel"))
     if len(self.statusText):
         self["statustext"] = Label(str(self.statusText))
     if self.withAcceptButton:
         self["accept_button"] = Label(params.get('accep_label', _("Verify")))
     
     self.params = params
     
     Screen.__init__(self, session)
     self.onShown.append(self.onStart)
     self.onClose.append(self.__onClose)
     
     self["actions"] = NumberActionMap(["ColorActions", "WizardActions", "InputBoxActions", "InputAsciiActions", "KeyboardInputActions"], 
     {
         "gotAsciiCode": self.gotAsciiCode,
         "green" : self.keySave,
         "ok"    : self.keyOK,
         "red"   : self.keyCancel,
         "back"  : self.keyCancel,
         "left"  : self.keyLeft,
         "right" : self.keyRight,
         "up"    : self.keyUp,
         "down"  : self.keyDown,
         "right" : self.keyRight,
         "home"  : self.keyHome,
         "end"   : self.keyEnd,
         "deleteForward" : self.keyDelete,
         "deleteBackward": self.keyBackspace,
         "tab": self.keyTab,
         "toggleOverwrite": self.keyInsert,
         "1": self.keyNumberGlobal,
         "2": self.keyNumberGlobal,
         "3": self.keyNumberGlobal,
         "4": self.keyNumberGlobal,
         "5": self.keyNumberGlobal,
         "6": self.keyNumberGlobal,
         "7": self.keyNumberGlobal,
         "8": self.keyNumberGlobal,
         "9": self.keyNumberGlobal,
         "0": self.keyNumberGlobal
     }, -1)
     
     self.idx   = 0
     self.activeInput = "input_0"
     self.markerPixmap = [LoadPixmap(GetIconDir('radio_button_on.png')), LoadPixmap(GetIconDir('radio_button_off.png'))]
     
     self.started = False
Beispiel #17
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)

        self.sort_mode = False
        self.selected_entry = None
        self.sub_menu_sort = None

        self["green"] = Label()
        self["yellow"] = Label()
        self["blue"] = Label()

        m_list = []

        menuID = None
        for x in parent:  #walk through the actual nodelist
            if not x.tag:
                continue
            if x.tag == 'item':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(m_list, x)
                    count += 1
            elif x.tag == 'menu':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addMenu(m_list, x)
                    count += 1
            elif x.tag == "id":
                menuID = x.get("val")
                count = 0

            if menuID is not None:
                # menuupdater?
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            m_list.append(
                                (x[0],
                                 boundFunction(self.runScreen,
                                               (x[2], x[3] + ", ")), x[4]))
                            count += 1
        self.menuID = menuID

        if menuID is not None:
            # plugins
            for l in plugins.getPluginsForMenu(menuID):
                # check if a plugin overrides an existing menu
                plugin_menuid = l[2]
                for x in m_list:
                    if x[2] == plugin_menuid:
                        m_list.remove(x)
                        break
                if len(l) > 4 and l[4]:
                    m_list.append(
                        (l[0], boundFunction(l[1], self.session,
                                             self.close), l[2], l[3] or 50))
                else:
                    m_list.append(
                        (l[0], boundFunction(l[1], self.session), l[2], l[3]
                         or 50))

        # for the skin: first try a menu_<menuID>, then Menu
        self.skinName = []
        if menuID is not None:
            self.skinName.append("menu_" + menuID)
        self.skinName.append("Menu")
        self.menuID = menuID
        ProtectedScreen.__init__(self)

        if config.plugins.infopanel_usermenus is not None and menuID == "mainmenu":
            plugin_list = []
            id_list = []
            for l in plugins.getPlugins([
                    PluginDescriptor.WHERE_PLUGINMENU,
                    PluginDescriptor.WHERE_EXTENSIONSMENU,
                    PluginDescriptor.WHERE_EVENTINFO
            ]):
                l.id = (l.name.lower()).replace(' ', '_')
                if l.id not in id_list:
                    id_list.append(l.id)
                    plugin_list.append(
                        (l.name, boundFunction(l.__call__,
                                               session), l.id, 200))
            addlist = config.plugins.infopanel_usermenus.value
            addlist = addlist.split(',')
            for entry in plugin_list:
                if entry[2] in addlist:
                    list.append(entry)

        self.list = list

        # Sort by Weight
        #if config.usage.sort_menus.value:
        #	list.sort()
        #else:
        if config.usage.menu_sort_mode.value == "user" and menuID == "mainmenu":
            plugin_list = []
            id_list = []
            for l in plugins.getPlugins([
                    PluginDescriptor.WHERE_PLUGINMENU,
                    PluginDescriptor.WHERE_EXTENSIONSMENU,
                    PluginDescriptor.WHERE_EVENTINFO
            ]):
                l.id = (l.name.lower()).replace(' ', '_')
                if l.id not in id_list:
                    id_list.append(l.id)
                    plugin_list.append(
                        (l.name, boundFunction(l.__call__,
                                               session), l.id, 200))

        self.list = m_list

        if menuID is not None and config.usage.menu_sort_mode.value == "user":
            self.sub_menu_sort = NoSave(ConfigDictionarySet())
            self.sub_menu_sort.value = config.usage.menu_sort_weight.getConfigValue(
                self.menuID, "submenu") or {}
            idx = 0
            for x in self.list:
                entry = list(self.list.pop(idx))
                m_weight = self.sub_menu_sort.getConfigValue(
                    entry[2], "sort") or entry[3]
                entry.append(m_weight)
                self.list.insert(idx, tuple(entry))
                self.sub_menu_sort.changeConfigValue(entry[2], "sort",
                                                     m_weight)
                idx += 1
            self.full_list = list(m_list)

        if config.usage.menu_sort_mode.value == "a_z":
            # Sort by Name
            m_list.sort(key=self.sortByName)
        elif config.usage.menu_sort_mode.value == "user":
            self["blue"].setText(_("Edit mode on"))
            self.hide_show_entries()
            m_list = self.list
        else:
            # Sort by Weight
            m_list.sort(key=lambda x: int(x[3]))

        self["menu"] = List(m_list)
        self["menu"].enableWrapAround = True
        if config.usage.menu_sort_mode.value == "user":
            self["menu"].onSelectionChanged.append(self.selectionChanged)

        self["actions"] = NumberActionMap(
            ["OkCancelActions", "MenuActions", "NumberActions"], {
                "ok": self.okbuttonClick,
                "cancel": self.closeNonRecursive,
                "menu": self.closeRecursive,
                "0": self.resetSortOrder,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal
            })
        if config.usage.menu_sort_mode.value == "user":
            self["MoveActions"] = ActionMap(
                ["WizardActions"], {
                    "left": self.keyLeft,
                    "right": self.keyRight,
                    "up": self.keyUp,
                    "down": self.keyDown,
                }, -1)

            self["EditActions"] = ActionMap(
                ["ColorActions"], {
                    "green": self.keyGreen,
                    "yellow": self.keyYellow,
                    "blue": self.keyBlue,
                })

        a = six.ensure_str(parent.get("title", "")) or None
        a = a and _(a)
        if a is None:
            a = _(six.ensure_str(parent.get("text", "")))
        else:
            t_history.reset()
        self["title"] = StaticText(a)
        Screen.setTitle(self, a)
        self.menu_title = a
        self["thistory"] = StaticText(t_history.thistory)
        history_len = len(t_history.thistory)
        self["title0"] = StaticText('')
        self["title1"] = StaticText('')
        self["title2"] = StaticText('')
        if history_len < 13:
            self["title0"] = StaticText(a)
        elif history_len < 21:
            self["title0"] = StaticText('')
            self["title1"] = StaticText(a)
        else:
            self["title0"] = StaticText('')
            self["title1"] = StaticText('')
            self["title2"] = StaticText(a)

        if (t_history.thistory == ''):
            t_history.thistory = str(a) + ' > '
        else:
            t_history.thistory = t_history.thistory + str(a) + ' > '
    def __init__(self, session):
        Screen.__init__(self, session)

        self["red"] = Pixmap()
        self["green"] = Pixmap()
        self["yellow"] = Pixmap()
        self["blue"] = Pixmap()
        self["red_text"] = Label()
        self["green_text"] = Label()
        self["yellow_text"] = Label()
        self["blue_text"] = Label()
        self["current_status"] = Label()
        self.is_active = self.session.nav.SleepTimer.isActive()
        if self.is_active:
            self["current_status"].setText(
                _("Timer status:") + " " + _("Enabled"))
        else:
            self["current_status"].setText(
                _("Timer status:") + " " + _("Disabled"))

        if self.is_active:
            self.time = self.session.nav.SleepTimer.getCurrentSleepTime()
        else:
            self.time = config.SleepTimer.defaulttime.value
        self["input"] = Input(text=str(self.time),
                              maxSize=False,
                              type=Input.NUMBER)

        self.status = True
        self.updateColors()

        self["pretext"] = Label(_("Shutdown STB after"))
        self["aftertext"] = Label(_("minutes"))

        self["actions"] = NumberActionMap(
            [
                "SleepTimerEditorActions", "TextEntryActions",
                "KeyboardInputActions"
            ], {
                "exit": self.cancel,
                "select": self.select,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
                "selectLeft": self.selectLeft,
                "selectRight": self.selectRight,
                "left": self.selectLeft,
                "right": self.selectRight,
                "home": self.selectHome,
                "end": self.selectEnd,
                "deleteForward": self.deleteForward,
                "deleteBackward": self.deleteBackward,
                "disableTimer": self.disableTimer,
                "toggleAction": self.toggleAction,
                "toggleAsk": self.toggleAsk,
                "useServiceTime": self.useServiceTime
            }, -1)
Beispiel #19
0
    def __init__(self,
                 session,
                 showSteps=True,
                 showStepSlider=True,
                 showList=True,
                 showConfig=True):
        Screen.__init__(self, session)

        self.isLastWizard = False  # can be used to skip a "goodbye"-screen in a wizard

        self.stepHistory = []

        self.wizard = {}
        parser = make_parser()
        if not isinstance(self.xmlfile, list):
            self.xmlfile = [self.xmlfile]
# 		print "Reading ", self.xmlfile
        wizardHandler = self.parseWizard(self.wizard)
        parser.setContentHandler(wizardHandler)
        for xmlfile in self.xmlfile:
            if xmlfile[0] != '/':
                parser.parse(eEnv.resolve('${datadir}/enigma2/') + xmlfile)
            else:
                parser.parse(xmlfile)

        self.showSteps = showSteps
        self.showStepSlider = showStepSlider
        self.showList = showList
        self.showConfig = showConfig
        self.doingVKeyCallback = False

        self.numSteps = len(self.wizard)
        self.currStep = self.getStepWithID("start") + 1

        self.timeoutTimer = eTimer()
        self.timeoutTimer.callback.append(self.timeoutCounterFired)

        self["text"] = Label()

        if showConfig:
            self["config"] = ConfigList([], session=session)

        if self.showSteps:
            self["step"] = Label()

        if self.showStepSlider:
            self["stepslider"] = Slider(1, self.numSteps)

        if self.showList:
            self.list = []
            self["list"] = List(self.list, enableWrapAround=True)
            self["list"].onSelectionChanged.append(self.selChanged)
            #self["list"] = MenuList(self.list, enableWrapAround = True)

        self.onShown.append(self.updateValues)

        self.configInstance = None
        self.currentConfigIndex = None

        Wizard.instance = self

        self.lcdCallbacks = []

        self.disableKeys = False

        self["actions"] = NumberActionMap(
            [
                "WizardActions", "DirectionActions", "NumberActions",
                "ColorActions", "SetupActions", "InputAsciiActions",
                "KeyboardInputActions"
            ], {
                "gotAsciiCode": self.keyGotAscii,
                "ok": self.ok,
                "back": self.back,
                "left": self.left,
                "right": self.right,
                "up": self.up,
                "down": self.down,
                "red": self.red,
                "green": self.green,
                "yellow": self.yellow,
                "blue": self.blue,
                "deleteBackward": self.deleteBackward,
                "deleteForward": self.deleteForward,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal
            }, -1)

        self["VirtualKB"] = NumberActionMap(
            ["VirtualKeyboardActions"], {
                "showVirtualKeyboard": self.KeyText,
            }, -2)

        self["VirtualKB"].setEnabled(False)
	def __init__(self, session):
		Screen.__init__(self, session)
		if config.ParentalControl.configured.value:
			ProtectedScreen.__init__(self)
		Screen.setTitle(self, _("Plugin Browser"))
		ProtectedScreen.__init__(self)

		self.firsttime = True

		self.sort_mode = False
		self.selected_plugin = None

		self["key_red"] = self["red"] = Label(_("Remove plugins"))
		self["key_green"] = self["green"] = Label(_("Download plugins"))
		self["key_yellow"] = self["yellow"] = Label(_("PluginInstallWizard"))
		self["key_blue"] = self["blue"] = Label(_("PluginDeinstallWizard"))
		self["key_info"] = self["key_Info"] = Label(_(""))

		self.list = []
		self["list"] = PluginList(self.list)

		self["actions"] = ActionMap(["SetupActions", "WizardActions"],
		{
			"ok": self.keyOk,
			"back": self.keyCancel,
			"menu": self.menu,
		})
		self["PluginDownloadActions"] = ActionMap(["SetupActions", "ColorActions"],
		{
			"red": self.delete,
			"green": self.download,
			"blue": self.keyBlue,
			"yellow": self.wizardinstall,
			"info": self.keyInfo,	
		})
		self["SoftwareActions"] = ActionMap(["SetupActions", "ColorActions"],
		{
			"red": self.keyRed,
			"green": self.keyGreen,
			"yellow": self.keyYellow,
			"blue": self.keyBlue,
			"info": self.keyInfo,
		})
		self["MoveActions"] = ActionMap(["WizardActions"],
			{
				"left": self.keyLeft,
				"right": self.keyRight,
				"up": self.keyUp,
				"down": self.keyDown,
			}, -1
		)

		self["NumberAction"] = NumberActionMap(["NumberActions"],
			{
				"0": self.resetSortOrder,
			}, -1
		)

		self["PluginDownloadActions"].setEnabled(True)
		self["SoftwareActions"].setEnabled(False)
		self.onFirstExecBegin.append(self.checkWarnings)
		self.onShown.append(self.updateList)
		self.onChangedEntry = []
		self["list"].onSelectionChanged.append(self.selectionChanged)
		self.onLayoutFinish.append(self.saveListsize)
		if config.pluginfilter.userfeed.value != "http://":
				if not os.path.exists("/etc/opkg/user-feed.conf"):
					CreateFeedConfig()
Beispiel #21
0
    def __init__(self,
                 session,
                 slotid,
                 action,
                 handler=eDVBCI_UI.getInstance(),
                 wait_text="",
                 screen_data=None):
        Screen.__init__(self, session)

        print "MMIDialog with action" + str(action)

        self.mmiclosed = False
        self.tag = None
        self.slotid = slotid

        self.timer = eTimer()
        self.timer.callback.append(self.keyCancel)

        #else the skins fails
        self["title"] = Label("")
        self["subtitle"] = Label("")
        self["bottom"] = Label("")
        self["entries"] = ConfigList([])

        self["actions"] = NumberActionMap(
            ["SetupActions", "MenuActions"],
            {
                "ok": self.okbuttonClick,
                "cancel": self.keyCancel,
                "menu": self.forceExit,
                #for PIN
                "left": self.keyLeft,
                "right": self.keyRight,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal
            },
            -1)

        self.action = action
        self.screen_data = screen_data

        self.is_pin_list = -1
        self.handler = handler
        if wait_text == "":
            self.wait_text = _("wait for ci...")
        else:
            self.wait_text = wait_text

        if action == 2:  #start MMI
            handler.startMMI(self.slotid)
            self.showWait()
        elif action == 3:  #mmi already there (called from infobar)
            self.showScreen()
Beispiel #22
0
    def __init__(self, session, infobar):
        Screen.__init__(self, session)
        self.infobar = infobar or self.session.infobar

        self.wait = eTimer()
        self.wait.timeout.get().append(self.resyncSubtitles)

        self["videofps"] = Label("")

        sub = self.infobar.selected_subtitle
        if sub[0] == 0:  # dvb
            menu = [
                getConfigListEntry(
                    findSetupText("config.subtitles.dvb_subtitles_yellow"),
                    config.subtitles.dvb_subtitles_yellow),
                getConfigListEntry(
                    findSetupText("config.subtitles.dvb_subtitles_centered"),
                    config.subtitles.dvb_subtitles_centered),
                getConfigListEntry(
                    findSetupText("config.subtitles.dvb_subtitles_backtrans"),
                    config.subtitles.dvb_subtitles_backtrans),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.dvb_subtitles_original_position"),
                    config.subtitles.dvb_subtitles_original_position),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_position"),
                    config.subtitles.subtitle_position),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.subtitle_bad_timing_delay"),
                    config.subtitles.subtitle_bad_timing_delay),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.subtitle_noPTSrecordingdelay"),
                    config.subtitles.subtitle_noPTSrecordingdelay),
            ]
        elif sub[0] == 1:  # teletext
            menu = [
                getConfigListEntry(
                    findSetupText("config.subtitles.ttx_subtitle_colors"),
                    config.subtitles.ttx_subtitle_colors),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.ttx_subtitle_original_position"),
                    config.subtitles.ttx_subtitle_original_position),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_fontsize"),
                    config.subtitles.subtitle_fontsize),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_position"),
                    config.subtitles.subtitle_position),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_rewrap"),
                    config.subtitles.subtitle_rewrap),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_borderwidth"),
                    config.subtitles.subtitle_borderwidth),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_alignment"),
                    config.subtitles.subtitle_alignment),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.subtitle_bad_timing_delay"),
                    config.subtitles.subtitle_bad_timing_delay),
                getConfigListEntry(
                    findSetupText(
                        "config.subtitles.subtitle_noPTSrecordingdelay"),
                    config.subtitles.subtitle_noPTSrecordingdelay),
            ]
        else:  # pango
            menu = [
                getConfigListEntry(
                    findSetupText("config.subtitles.pango_subtitles_delay"),
                    config.subtitles.pango_subtitles_delay),
                getConfigListEntry(
                    findSetupText("config.subtitles.pango_subtitles_yellow"),
                    config.subtitles.pango_subtitles_yellow),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_fontsize"),
                    config.subtitles.subtitle_fontsize),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_position"),
                    config.subtitles.subtitle_position),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_alignment"),
                    config.subtitles.subtitle_alignment),
                getConfigListEntry(
                    findSetupText("config.subtitles.subtitle_rewrap"),
                    config.subtitles.subtitle_rewrap),
            ]
            self["videofps"].setText(
                _("Video: %s fps") % (self.getFps().rstrip(".000")))

        ConfigListScreen.__init__(self,
                                  menu,
                                  self.session,
                                  on_change=self.changedEntry)

        self["actions"] = NumberActionMap(["SetupActions"], {
            "cancel": self.finish,
            "ok": self.finish,
        }, -2)
Beispiel #23
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)

        list = []

        menuID = None
        for x in parent:  #walk through the actual nodelist
            if x.tag == 'item':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(list, x)
                    count += 1
            elif x.tag == 'menu':
                self.addMenu(list, x)
                count += 1
            elif x.tag == "id":
                menuID = x.get("val")
                count = 0

            if menuID is not None:
                # menuupdater?
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            list.append(
                                (x[0],
                                 boundFunction(self.runScreen,
                                               (x[2], x[3] + ", ")), x[4]))
                            count += 1

        if menuID is not None:
            # plugins
            bhorder = []
            if fileExists(resolveFilename(SCOPE_SKIN, 'menuorder.bh')):
                file = open(resolveFilename(SCOPE_SKIN, 'menuorder.bh'), 'r')
                for line in file.readlines():
                    parts = line.strip().split()
                    res = (parts[0], parts[1])
                    bhorder.append(res)
                    file.close()

            for l in plugins.getPluginsForMenu(menuID):
                # check if a plugin overrides an existing menu
                plugin_menuid = l[2]
                weight = l[3]
                for x in list:
                    if x[2] == plugin_menuid:
                        list.remove(x)
                        break
                    for y in bhorder:
                        if y[0] == plugin_menuid:
                            weight = int(y[1])

                list.append((l[0], boundFunction(l[1],
                                                 self.session), l[2], weight
                             or 50))

        # for the skin: first try a menu_<menuID>, then Menu
        self.skinName = []
        if menuID is not None:
            self.skinName.append("menu_" + menuID)
        self.skinName.append("Menu")

        # Sort by Weight
        list.sort(key=lambda x: int(x[3]))

        self["menu"] = List(list)

        self["actions"] = NumberActionMap(
            ["OkCancelActions", "MenuActions", "NumberActions"], {
                "ok": self.okbuttonClick,
                "cancel": self.closeNonRecursive,
                "menu": self.closeRecursive,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal
            })

        a = parent.get("title", "").encode("UTF-8") or None
        a = a and _(a)
        if a is None:
            a = _(parent.get("text", "").encode("UTF-8"))
        self["title"] = StaticText(a)
        self.menu_title = a
Beispiel #24
0
	def __init__(self, session, menu_path = ""):
		Screen.__init__(self, session)
		self.menu_path = menu_path
		screentitle = _("Plugin Browser")
		if config.usage.show_menupath.value == 'large':
			self.menu_path += screentitle
			title = self.menu_path
			self["menu_path_compressed"] = StaticText("")
			self.menu_path += ' / '
		elif config.usage.show_menupath.value == 'small':
			title = screentitle
			condtext = ""
			if self.menu_path and not self.menu_path.endswith(' / '):
				condtext = self.menu_path + " >"
			elif self.menu_path:
				condtext = self.menu_path[:-3] + " >"
			self["menu_path_compressed"] = StaticText(condtext)
			self.menu_path += screentitle + ' / '
		else:
			title = screentitle
			self["menu_path_compressed"] = StaticText("")
		Screen.setTitle(self, title)
		ProtectedScreen.__init__(self)

		self.firsttime = True

		self["key_red"] = Button(_("Remove plugins"))
		self["key_green"] = Button(_("Download plugins"))

		self.list = []
		self["list"] = PluginList(self.list)
		if config.usage.sort_pluginlist.value:
			self["list"].list.sort()

		self["actions"] = ActionMap(["WizardActions", "MenuActions"],
		{
			"ok": self.save,
			"back": self.close,
			"menu": self.openSetup,
		})
		self["PluginDownloadActions"] = ActionMap(["ColorActions"],
		{
			"red": self.delete,
			"green": self.download
		})
		self["DirectionActions"] = ActionMap(["DirectionActions"],
		{
			"shiftUp": self.moveUp,
			"shiftDown": self.moveDown
		})
		self["NumberActions"] = NumberActionMap(["NumberActions"],
		{
			"1": self.keyNumberGlobal,
			"2": self.keyNumberGlobal,
			"3": self.keyNumberGlobal,
			"4": self.keyNumberGlobal,
			"5": self.keyNumberGlobal,
			"6": self.keyNumberGlobal,
			"7": self.keyNumberGlobal,
			"8": self.keyNumberGlobal,
			"9": self.keyNumberGlobal,
			"0": self.keyNumberGlobal
		})

		self.number = 0
		self.nextNumberTimer = eTimer()
		self.nextNumberTimer.callback.append(self.okbuttonClick)

		self.onFirstExecBegin.append(self.checkWarnings)
		self.onShown.append(self.updateList)
		self.onChangedEntry = []
		self["list"].onSelectionChanged.append(self.selectionChanged)
		self.onLayoutFinish.append(self.saveListsize)
Beispiel #25
0
    def __init__(self, session, dvd_device=None, dvd_filelist=None, args=None):
        if not dvd_filelist: dvd_filelist = []
        Screen.__init__(self, session)
        InfoBarBase.__init__(self)
        InfoBarNotifications.__init__(self)
        InfoBarCueSheetSupport.__init__(self,
                                        actionmap="MediaPlayerCueSheetActions")
        InfoBarShowHide.__init__(self)
        InfoBarAudioSelection.__init__(self)
        InfoBarSubtitleSupport.__init__(self)
        HelpableScreen.__init__(self)
        self.save_infobar_seek_config()
        self.change_infobar_seek_config()
        InfoBarSeek.__init__(self)
        InfoBarPVRState.__init__(self)

        self.oldService = self.session.nav.getCurrentlyPlayingServiceOrGroup()
        self.session.nav.stopService()
        self["audioLabel"] = Label("n/a")
        self["subtitleLabel"] = Label("")
        self["angleLabel"] = Label("")
        self["chapterLabel"] = Label("")
        self["anglePix"] = Pixmap()
        self["anglePix"].hide()
        self.last_audioTuple = None
        self.last_subtitleTuple = None
        self.last_angleTuple = None
        self.totalChapters = 0
        self.currentChapter = 0
        self.totalTitles = 0
        self.currentTitle = 0

        self.__event_tracker = ServiceEventTracker(
            screen=self,
            eventmap={
                iPlayableService.evStopped: self.__serviceStopped,
                iPlayableService.evUser: self.__timeUpdated,
                iPlayableService.evUser + 1: self.__statePlay,
                iPlayableService.evUser + 2: self.__statePause,
                iPlayableService.evUser + 3: self.__osdFFwdInfoAvail,
                iPlayableService.evUser + 4: self.__osdFBwdInfoAvail,
                iPlayableService.evUser + 5: self.__osdStringAvail,
                iPlayableService.evUser + 6: self.__osdAudioInfoAvail,
                iPlayableService.evUser + 7: self.__osdSubtitleInfoAvail,
                iPlayableService.evUser + 8: self.__chapterUpdated,
                iPlayableService.evUser + 9: self.__titleUpdated,
                iPlayableService.evUser + 11: self.__menuOpened,
                iPlayableService.evUser + 12: self.__menuClosed,
                iPlayableService.evUser + 13: self.__osdAngleInfoAvail
            })

        self["DVDPlayerDirectionActions"] = ActionMap(
            ["DirectionActions"],
            {
                #MENU KEY DOWN ACTIONS
                "left": self.keyLeft,
                "right": self.keyRight,
                "up": self.keyUp,
                "down": self.keyDown,

                #MENU KEY REPEATED ACTIONS
                "leftRepeated": self.doNothing,
                "rightRepeated": self.doNothing,
                "upRepeated": self.doNothing,
                "downRepeated": self.doNothing,

                #MENU KEY UP ACTIONS
                "leftUp": self.doNothing,
                "rightUp": self.doNothing,
                "upUp": self.doNothing,
                "downUp": self.doNothing,
            })

        self["OkCancelActions"] = ActionMap(["OkCancelActions"], {
            "ok": self.keyOk,
            "cancel": self.keyCancel,
        })

        self["DVDPlayerPlaybackActions"] = HelpableActionMap(
            self,
            "DVDPlayerActions",
            {
                #PLAYER ACTIONS
                "dvdMenu": (self.enterDVDMenu, _("show DVD main menu")),
                "toggleInfo":
                (self.toggleInfo,
                 _("toggle time, chapter, audio, subtitle info")),
                "nextChapter":
                (self.nextChapter, _("forward to the next chapter")),
                "prevChapter":
                (self.prevChapter, _("rewind to the previous chapter")),
                "nextTitle":
                (self.nextTitle, _("jump forward to the next title")),
                "prevTitle":
                (self.prevTitle, _("jump back to the previous title")),
                "tv": (self.askLeavePlayer,
                       _("exit DVD player or return to file browser")),
                "dvdAudioMenu":
                (self.enterDVDAudioMenu, _("(show optional DVD audio menu)")),
                "AudioSelection":
                (self.enterAudioSelection, _("Select audio track")),
                "nextAudioTrack":
                (self.nextAudioTrack, _("switch to the next audio track")),
                "nextSubtitleTrack":
                (self.nextSubtitleTrack,
                 _("switch to the next subtitle language")),
                "nextAngle": (self.nextAngle, _("switch to the next angle")),
                "seekBeginning":
                self.seekBeginning,
            },
            -2)

        self["NumberActions"] = NumberActionMap(
            ["NumberActions"], {
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
            })

        self.onClose.append(self.__onClose)

        try:
            from Plugins.SystemPlugins.Hotplug.plugin import hotplugNotifier
            hotplugNotifier.append(self.hotplugCB)
        except:
            pass

        self.autoplay = dvd_device or dvd_filelist

        if dvd_device:
            self.physicalDVD = True
        else:
            self.scanHotplug()

        self.dvd_filelist = dvd_filelist
        self.onFirstExecBegin.append(self.opened)
        self.service = None
        self.in_menu = False
Beispiel #26
0
    def __init__(self, session, parent):
        Screen.__init__(self, session)
        list = []

        menuID = None
        for x in parent:  #walk through the actual nodelist
            if not x.tag:
                continue
            if x.tag == 'item':
                item_level = int(x.get("level", 0))
                if item_level <= config.usage.setup_level.index:
                    self.addItem(list, x)
                    count += 1
            elif x.tag == 'menu':
                self.addMenu(list, x)
                count += 1
            elif x.tag == "id":
                menuID = x.get("val")
                count = 0

            if menuID is not None:
                # menuupdater?
                if menuupdater.updatedMenuAvailable(menuID):
                    for x in menuupdater.getUpdatedMenu(menuID):
                        if x[1] == count:
                            list.append(
                                (x[0],
                                 boundFunction(self.runScreen,
                                               (x[2], x[3] + ", ")), x[4]))
                            count += 1

        if menuID is not None:
            # plugins
            for l in plugins.getPluginsForMenu(menuID):
                # check if a plugin overrides an existing menu
                plugin_menuid = l[2]
                for x in list:
                    if x[2] == plugin_menuid:
                        list.remove(x)
                        break
                if len(l) > 4 and l[4]:
                    list.append(
                        (l[0], boundFunction(l[1], self.session,
                                             self.close), l[2], l[3] or 50))
                else:
                    list.append((l[0], boundFunction(l[1],
                                                     self.session), l[2], l[3]
                                 or 50))

        # for the skin: first try a menu_<menuID>, then Menu
        self.skinName = []
        if menuID is not None:
            self.skinName.append("menu_" + menuID)
        self.skinName.append("Menu")
        self.menuID = menuID
        ProtectedScreen.__init__(self)

        # Sort by Weight
        if config.usage.sort_menus.value:
            list.sort()
        else:
            list.sort(key=lambda x: int(x[3]))

        if config.usage.menu_show_numbers.value:
            list = [(str(x[0] + 1) + "  " + x[1][0], x[1][1], x[1][2])
                    for x in enumerate(list)]

        self["menu"] = List(list)

        self["actions"] = NumberActionMap(
            ["OkCancelActions", "MenuActions", "NumberActions"], {
                "ok": self.okbuttonClick,
                "cancel": self.closeNonRecursive,
                "menu": self.closeRecursive,
                "0": self.keyNumberGlobal,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal
            })

        a = parent.get("title", "").encode("UTF-8") or None
        a = a and _(a) or _(parent.get("text", "").encode("UTF-8"))
        self.menu_title = a
        global menu_path
        self.menu_path_compressed = menu_path
        if menu_path == "":
            menu_path += a
        elif not menu_path.endswith(a):
            menu_path += " / " + a
        global full_menu_path
        full_menu_path = menu_path + ' / '
        if config.usage.show_menupath.value == 'large':
            Screen.setTitle(self, menu_path)
            self["title"] = StaticText(menu_path)
            self["menu_path_compressed"] = StaticText("")
        elif config.usage.show_menupath.value == 'small':
            Screen.setTitle(self, a)
            self["title"] = StaticText(a)
            self["menu_path_compressed"] = StaticText(
                self.menu_path_compressed and self.menu_path_compressed + " >"
                or "")
        else:
            Screen.setTitle(self, a)
            self["title"] = StaticText(a)
            self["menu_path_compressed"] = StaticText("")

        self.number = 0
        self.nextNumberTimer = eTimer()
        self.nextNumberTimer.callback.append(self.okbuttonClick)
Beispiel #27
0
 def __init__(self, session, servicelist=None):
     Screen.__init__(self, session)
     self.session = session
     if SystemInfo.get(
             "NumVideoDecoders", 1
     ) > 1 and config.plugins.virtualzap.usepip.value and config.plugins.virtualzap.showpipininfobar.value:
         self.skinName = "VirtualZap"
         self.pipAvailable = True
     else:
         self.skinName = "VirtualZapNoPiP"
         self.pipAvailable = (
             SystemInfo.get("NumVideoDecoders", 1) > 1
         ) and config.plugins.virtualzap.usepip.value and not config.plugins.virtualzap.showpipininfobar.value
     self.epgcache = eEPGCache.getInstance()
     self.CheckForEPG = eTimer()
     self.CheckForEPG_conn = self.CheckForEPG.timeout.connect(
         self.CheckItNow)
     self["NowChannel"] = Label()
     self["NowEPG"] = Label()
     self["NextEPG"] = Label()
     self["NowTime"] = Label()
     self["NextTime"] = Label()
     self["actions"] = ActionMap(
         [
             "OkCancelActions", "DirectionActions",
             "ChannelSelectBaseActions", "ChannelSelectEPGActions",
             "ColorActions"
         ], {
             "ok": self.ok,
             "cancel": self.closing,
             "right": self.nextService,
             "left": self.prevService,
             "nextBouquet": self.showFavourites,
             "prevBouquet": self.openServiceList,
             "showEPGList": self.openEventView,
             "blue": self.standardPiP,
             "yellow": self.switchAndStandardPiP,
             "down": self.switchChannelDown,
             "up": self.switchChannelUp,
         }, -2)
     self["actions2"] = NumberActionMap(
         ["NumberActions"], {
             "0": self.swap,
             "1": self.keyNumberGlobal,
             "2": self.keyNumberGlobal,
             "3": self.keyNumberGlobal,
             "4": self.keyNumberGlobal,
             "5": self.keyNumberGlobal,
             "6": self.keyNumberGlobal,
             "7": self.keyNumberGlobal,
             "8": self.keyNumberGlobal,
             "9": self.keyNumberGlobal,
         }, -1)
     self.onLayoutFinish.append(self.onLayoutReady)
     # PiP
     if self.pipAvailable:
         # activate PiP support
         if config.plugins.virtualzap.usepip.value and not config.plugins.virtualzap.showpipininfobar.value:
             # activate standard PiP
             self["video"] = VideoWindow()
         else:
             # show PiP in Infobar
             self["video"] = VideoWindow(
                 fb_width=getDesktop(0).size().width(),
                 fb_height=getDesktop(0).size().height())
         self.currentPiP = ""
     else:
         # no PiP
         self["video"] = Label()
     # this is the servicelist from ChannelSelectionBase
     self.servicelist = servicelist
     # save orig. method of zap in servicelist
     self.servicelist_orig_zap = self.servicelist.zap
     # when displaying ChannelSelection, do not zap when pressing "ok", so new method is needed
     self.servicelist.zap = self.servicelist_overwrite_zap
     # overwrite the actionmap of ChannelSelection
     self.servicelist["actions"] = ActionMap(
         ["OkCancelActions"], {
             "cancel": self.cancelChannelSelection,
             "ok": self.servicelist.channelSelected,
         })
     # temp. vars, needed when pressing cancel in ChannelSelection
     self.curSelectedRef = None
     self.curSelectedBouquet = None
     # needed, because if we won't zap, we have to go back to the current bouquet and service
     self.curRef = ServiceReference(self.servicelist.getCurrentSelection())
     self.curBouquet = self.servicelist.getRoot()
     # start with last used service
     if config.plugins.virtualzap.saveLastService.value:
         # get service and bouquet ref
         ref = eServiceReference(config.plugins.virtualzap.curref.value)
         bouquet = eServiceReference(
             config.plugins.virtualzap.curbouquet.value)
         if ref.valid() and bouquet.valid():
             # select bouquet and ref in servicelist
             self.setServicelistSelection(bouquet, ref)
     # prepare exitTimer
     self.exitTimer = eTimer()
     self.exitTimer_conn = self.exitTimer.timeout.connect(self.standardPiP)
     # reverse changes of ChannelSelection when closing plugin
     self.onClose.append(self.__onClose)
     # if PiPServiceRelation is installed, get relation dict
     if plugin_PiPServiceRelation_installed:
         self.pipServiceRelation = getRelationDict()
     else:
         self.pipServiceRelation = {}
Beispiel #28
0
    def __init__(self, session, infobar):
        Screen.__init__(self, session)
        self.skin = QuickSubtitlesConfigMenu.skin
        self.infobar = infobar or self.session.infobar

        self.wait = eTimer()
        self.wait.timeout.get().append(self.resyncSubtitles)

        self["videofps"] = Label("")

        sub = self.infobar.selected_subtitle
        if sub[0] == 0:  # dvb
            menu = [
                getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
                getConfigMenuItem("config.subtitles.dvb_subtitles_centered"),
                getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_original_position"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        elif sub[0] == 1:  # teletext
            menu = [
                getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_opacity"),
                getConfigMenuItem("config.subtitles.subtitle_bgcolor"),
                getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
                getConfigMenuItem("config.subtitles.subtitle_edgestyle"),
                getConfigMenuItem("config.subtitles.subtitle_edgestyle_level"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_original_position"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_bad_timing_delay"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_noPTSrecordingdelay"),
            ]
        else:  # pango
            menu = [
                getConfigMenuItem("config.subtitles.subtitle_fontcolor"),
                getConfigMenuItem("config.subtitles.subtitle_fontsize"),
                getConfigMenuItem("config.subtitles.subtitle_opacity"),
                getConfigMenuItem("config.subtitles.subtitle_bgcolor"),
                getConfigMenuItem("config.subtitles.subtitle_bgopacity"),
                getConfigMenuItem("config.subtitles.subtitle_edgestyle"),
                getConfigMenuItem("config.subtitles.subtitle_edgestyle_level"),
                getConfigMenuItem(
                    "config.subtitles.subtitle_original_position"),
                getConfigMenuItem("config.subtitles.subtitle_alignment"),
                getConfigMenuItem("config.subtitles.subtitle_position"),
                getConfigMenuItem(
                    "config.subtitles.pango_subtitle_fontswitch"),
                getConfigMenuItem("config.subtitles.colourise_dialogs"),
                getConfigMenuItem("config.subtitles.subtitle_rewrap"),
                getConfigMenuItem("config.subtitles.pango_subtitles_delay"),
                getConfigMenuItem("config.subtitles.pango_subtitles_fps"),
            ]
            self["videofps"].setText(
                _("Video: %s fps") % (self.getFps().rstrip(".000")))

        ConfigListScreen.__init__(self,
                                  menu,
                                  self.session,
                                  on_change=self.changedEntry)

        self["actions"] = NumberActionMap(["SetupActions"], {
            "cancel": self.cancel,
            "ok": self.ok,
        }, -2)

        self.onLayoutFinish.append(self.layoutFinished)
Beispiel #29
0
    def __init__(self,
                 session,
                 title="",
                 list=None,
                 keys=None,
                 selection=0,
                 skin_name=None,
                 text="",
                 reorderConfig="",
                 windowTitle=None,
                 var="",
                 callbackList=None):
        # list is in the format (<display text>, [<parameters to pass to close callback>,])
        # callbackList is in the format (<display text>, <callback func>, [<parameters>,])
        self.isCallbackList = bool(callbackList)
        list = list or callbackList
        if not list: list = []
        if not skin_name: skin_name = []
        Screen.__init__(self, session)

        if isinstance(skin_name, str):
            skin_name = [skin_name]
        self.skinName = skin_name + ["ChoiceBox"]

        self.reorderConfig = reorderConfig
        self["text"] = Label()
        self.var = ""
        if reorderConfig:
            self["key_menu"] = StaticText(_("MENU"))
            self["key_previous"] = StaticText(_("PREVIOUS"))
            self["key_next"] = StaticText(_("NEXT"))

        if title:
            title = _(title)
            if len(title) < 55 and title.find('\n') == -1:
                self.setTitle(title)
            elif title.find('\n') != -1:
                temptext = title.split('\n')
                if len(temptext[0]) < 55:
                    self.setTitle(temptext[0])
                    count = 2
                    labeltext = ""
                    while len(temptext) >= count:
                        if labeltext:
                            labeltext += '\n'
                        labeltext = labeltext + temptext[count - 1]
                        count += 1
                    self["text"].setText(labeltext)
                else:
                    self["text"].setText(title)
            else:
                self["text"].setText(title)
        elif text:
            self["text"].setText(_(text))
        self["description"] = Label()
        self.list = []
        self.summarylist = []
        if keys is None:
            self.__keys = [
                "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red",
                "green", "yellow", "blue"
            ] + (len(list) - 14) * [""]
        else:
            self.__keys = keys + (len(list) - len(keys)) * [""]

        self.keymap = {}
        pos = 0
        if self.reorderConfig:
            self.config_type = getattr(config.misc.pluginlist,
                                       self.reorderConfig)
            if self.config_type.value:
                prev_list = zip(list, self.__keys)
                new_list = []
                for x in self.config_type.value.split(","):
                    for entry in prev_list:
                        if entry[0][0] == x:
                            new_list.append(entry)
                            prev_list.remove(entry)
                list = zip(*(new_list + prev_list))
                list, self.__keys = list[0], list[1]
                number = 1
                new_keys = []
                for x in self.__keys:
                    if (not x or x.isdigit()) and number <= 10:
                        new_keys.append(str(number % 10))
                        number += 1
                    else:
                        new_keys.append(not x.isdigit() and x or "")
                self.__keys = new_keys
        for x in list:
            if x:
                strpos = str(self.__keys[pos])
                self.list.append(ChoiceEntryComponent(key=strpos, text=x))
                if self.__keys[pos] != "":
                    self.keymap[self.__keys[pos]] = list[pos]
                self.summarylist.append((self.__keys[pos], x[0]))
                pos += 1

        self["list"] = ChoiceList(list=self.list, selection=selection)
        self["summary_list"] = StaticText()
        self["summary_selection"] = StaticText()
        self.updateSummary(selection)

        self["actions"] = NumberActionMap(
            [
                "WizardActions", "InputActions", "ColorActions",
                "DirectionActions", "MenuActions"
            ], {
                "ok": self.go,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
                "red": self.keyRed,
                "green": self.keyGreen,
                "yellow": self.keyYellow,
                "blue": self.keyBlue,
                "up": self.up,
                "down": self.down,
                "left": self.left,
                "right": self.right,
                "shiftUp": self.additionalMoveUp,
                "shiftDown": self.additionalMoveDown,
                "menu": self.setDefaultChoiceList,
                "back": self.cancel
            },
            prio=-2)
Beispiel #30
0
    def __init__(self,
                 session,
                 title="",
                 list=None,
                 keys=None,
                 selection=0,
                 skin_name=None,
                 text=""):
        self.setTitle(_("Choice Box"))
        if not list: list = []
        if not skin_name: skin_name = []
        Screen.__init__(self, session)

        if isinstance(skin_name, str):
            skin_name = [skin_name]
        self.skinName = skin_name + ["ChoiceBox"]
        self["text"] = Label()
        if title:
            title = _(title)
            if len(title) < 55 and title.find('\n') == -1:
                Screen.setTitle(self, title)
            elif title.find('\n') != -1:
                temptext = title.split('\n')
                if len(temptext[0]) < 55:
                    Screen.setTitle(self, temptext[0])
                    count = 2
                    labeltext = ""
                    while len(temptext) >= count:
                        if labeltext:
                            labeltext += '\n'
                        labeltext = labeltext + temptext[count - 1]
                        count += 1
                        print 'count', count
                    self["text"].setText(labeltext)
                else:
                    self["text"] = Label(title)
            else:
                self["text"] = Label(title)
        elif text:
            self["text"] = Label(_(text))
        self.list = []
        self.summarylist = []
        if keys is None:
            self.__keys = [
                "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "red",
                "green", "yellow", "blue"
            ] + (len(list) - 10) * ["dummy"]
        else:
            self.__keys = keys + (len(list) - len(keys)) * ["dummy"]

        self.keymap = {}
        pos = 0
        for x in list:
            strpos = str(self.__keys[pos])
            self.list.append(ChoiceEntryComponent(key=strpos, text=x))
            if self.__keys[pos] != "":
                self.keymap[self.__keys[pos]] = list[pos]
            self.summarylist.append((self.__keys[pos], x[0]))
            pos += 1
        self["list"] = ChoiceList(list=self.list, selection=selection)
        self["summary_list"] = StaticText()
        self["summary_selection"] = StaticText()
        self.updateSummary(selection)

        self["actions"] = NumberActionMap(
            ["WizardActions", "InputActions", "ColorActions"], {
                "ok": self.go,
                "1": self.keyNumberGlobal,
                "2": self.keyNumberGlobal,
                "3": self.keyNumberGlobal,
                "4": self.keyNumberGlobal,
                "5": self.keyNumberGlobal,
                "6": self.keyNumberGlobal,
                "7": self.keyNumberGlobal,
                "8": self.keyNumberGlobal,
                "9": self.keyNumberGlobal,
                "0": self.keyNumberGlobal,
                "red": self.keyRed,
                "green": self.keyGreen,
                "yellow": self.keyYellow,
                "blue": self.keyBlue,
                "up": self.up,
                "down": self.down,
                "left": self.left,
                "right": self.right
            }, -1)

        self["cancelaction"] = NumberActionMap(
            ["WizardActions", "InputActions", "ColorActions"], {
                "back": self.cancel,
            }, -1)