SharkyEXE
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: # -*- coding: utf-8 -*- from Components.ActionMap import ActionMap from Components.config import config, ConfigInteger, ConfigSubsection, ConfigYesNo, configfile from Components.MenuList import MenuList from enigma import ePoint, eTimer, getDesktop from os import environ from Plugins.Plugin import PluginDescriptor from Screens.Screen import Screen from Tools.Directories import resolveFilename, SCOPE_LANGUAGE, SCOPE_PLUGINS from Components.Label import Label ############################################################################## config.plugins.NewYear = ConfigSubsection() config.plugins.NewYear.enabled = ConfigYesNo(default=True) config.plugins.NewYear.position_x = ConfigInteger(default=336) config.plugins.NewYear.position_y = ConfigInteger(default=30) ############################################################################## SKIN = """ <screen position="0,0" size="610,90" zPosition="-7" backgroundColor="#ff000000" title="New Year" flags="wfNoBorder"> <ePixmap position="0,0" zPosition="1" size="40,40" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/NewYear_SyEXE/calendar.png" alphatest="on" /> <widget name="title_text" position="0,0" size="610,45" font="Regular;30" backgroundColor="#ff000000" transparent="1" halign="center"> </widget> <widget source="global.CurrentTime" render="Label" position="0,45" size="610,45" font="Regular;30" backgroundColor="#ff000000" transparent="1" halign="center"> <convert type="ClockToText">NewYear</convert> </widget> </screen>""" class NewYearNewScreen(Screen): def __init__(self, session): Screen.__init__(self, session) self.skin = SKIN self.onShow.append(self.movePosition) self['title_text'] = Label(_('До Нового , 2019 Года , осталось :')) def movePosition(self): if self.instance: self.instance.move(ePoint(config.plugins.NewYear.position_x.value, config.plugins.NewYear.position_y.value)) ############################################################################## class NewYear(): def __init__(self): self.dialog = None def gotSession(self, session): self.dialog = session.instantiateDialog(NewYearNewScreen) self.showHide() def changeVisibility(self): if config.plugins.NewYear.enabled.value: config.plugins.NewYear.enabled.value = False else: config.plugins.NewYear.enabled.value = True config.plugins.NewYear.enabled.save() self.showHide() def showHide(self): if config.plugins.NewYear.enabled.value: self.dialog.show() else: self.dialog.hide() pClockk = NewYear() ############################################################################## class NewYearPositioner(Screen): def __init__(self, session): Screen.__init__(self, session) self.skin = SKIN self["actions"] = ActionMap(["WizardActions"], { "left": self.left, "up": self.up, "right": self.right, "down": self.down, "ok": self.ok, "back": self.exit }, -1) desktop = getDesktop(0) self.desktopWidth = desktop.size().width() self.desktopHeight = desktop.size().height() self.moveTimer = eTimer() self.moveTimer.callback.append(self.movePosition) self.moveTimer.start(50, 1) def movePosition(self): self.instance.move(ePoint(config.plugins.NewYear.position_x.value, config.plugins.NewYear.position_y.value)) self.moveTimer.start(50, 1) def left(self): value = config.plugins.NewYear.position_x.value value -= 1 if value < 0: value = 0 config.plugins.NewYear.position_x.value = value def up(self): value = config.plugins.NewYear.position_y.value value -= 1 if value < 0: value = 0 config.plugins.NewYear.position_y.value = value def right(self): value = config.plugins.NewYear.position_x.value value += 1 if value > self.desktopWidth: value = self.desktopWidth config.plugins.NewYear.position_x.value = value def down(self): value = config.plugins.NewYear.position_y.value value += 1 if value > self.desktopHeight: value = self.desktopHeight config.plugins.NewYear.position_y.value = value def ok(self): config.plugins.NewYear.position_x.save() config.plugins.NewYear.position_y.save() configfile.save() self.close() def exit(self): config.plugins.NewYear.position_x.cancel() config.plugins.NewYear.position_y.cancel() self.close() ############################################################################## class NewYearMenu(Screen): skin = """ <screen position="center,center" size="400,145" title="New Year Setup"> <widget name="list" position="10,10" size="390,135" /> </screen>""" def __init__(self, session): Screen.__init__(self, session) self.session = session self["list"] = MenuList([]) self.setTitle(_("Новый Год Настройки")) self["actions"] = ActionMap(["OkCancelActions"], {"ok": self.okClicked, "cancel": self.close}, -1) self.onLayoutFinish.append(self.showMenu) def showMenu(self): list = [] if config.plugins.NewYear.enabled.value: list.append(_("Деактивировать новый год")) list.append(_("Изменить позицию нового года")) else: list.append(_("Активировать новый год")) self["list"].setList(list) def okClicked(self): sel = self["list"].getCurrent() if pClockk.dialog is None: pClockk.gotSession(self.session) if sel == _("Деактивировать новый год") or sel == _("Активировать новый год"): pClockk.changeVisibility() self.showMenu() if sel == _("Изменить позицию нового года") : pClockk.dialog.hide() self.session.openWithCallback(self.positionerCallback, NewYearPositioner) def positionerCallback(self, callback=None): pClockk.showHide() ############################################################################## def sessionstart(reason, **kwargs): if reason == 0: pClockk.gotSession(kwargs["session"]) def main(session, **kwargs): session.open(NewYearMenu) ############################################################################## def Plugins(**kwargs): return [ PluginDescriptor(where=[PluginDescriptor.WHERE_SESSIONSTART], fnc=sessionstart), PluginDescriptor(name=_("Новый год"), description=_("Show the 'Countdown to New Year' on the screen"), where=PluginDescriptor.WHERE_PLUGINMENU, icon = 'plugin.png', fnc=main)] | | Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 18:59 08-06-2018 | Исправлено: SharkyEXE, 19:04 08-06-2018 |
|