From 595bb6d9cd8cd071bc0afd7a4af3538a40989f5d Mon Sep 17 00:00:00 2001 From: "Chang.H.S" Date: Fri, 30 Sep 2011 20:40:38 +0900 Subject: [PATCH] UIPositionSetup : Add new plugin --- configure.ac | 2 + lib/python/Plugins/SystemPlugins/Makefile.am | 2 +- .../SystemPlugins/UIPositionSetup/Makefile.am | 7 ++ .../SystemPlugins/UIPositionSetup/__init__.py | 0 .../SystemPlugins/UIPositionSetup/meta/Makefile.am | 3 + .../meta/plugin_uipositionsetup.xml | 16 +++ .../SystemPlugins/UIPositionSetup/plugin.py | 135 +++++++++++++++++++++ 7 files changed, 164 insertions(+), 1 deletion(-) create mode 100755 lib/python/Plugins/SystemPlugins/UIPositionSetup/Makefile.am create mode 100644 lib/python/Plugins/SystemPlugins/UIPositionSetup/__init__.py create mode 100755 lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/Makefile.am create mode 100755 lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/plugin_uipositionsetup.xml create mode 100755 lib/python/Plugins/SystemPlugins/UIPositionSetup/plugin.py diff --git a/configure.ac b/configure.ac index 90ed9c5..2726be0 100644 --- a/configure.ac +++ b/configure.ac @@ -217,6 +217,8 @@ lib/python/Plugins/SystemPlugins/RemoteControlCode/Makefile lib/python/Plugins/SystemPlugins/RemoteControlCode/meta/Makefile lib/python/Plugins/SystemPlugins/OSD3DSetup/Makefile lib/python/Plugins/SystemPlugins/OSD3DSetup/meta/Makefile +lib/python/Plugins/SystemPlugins/UIPositionSetup/Makefile +lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/Makefile lib/python/Tools/Makefile lib/service/Makefile lib/components/Makefile diff --git a/lib/python/Plugins/SystemPlugins/Makefile.am b/lib/python/Plugins/SystemPlugins/Makefile.am index d31990d..3d9e4b4 100755 --- a/lib/python/Plugins/SystemPlugins/Makefile.am +++ b/lib/python/Plugins/SystemPlugins/Makefile.am @@ -5,7 +5,7 @@ SUBDIRS = SoftwareManager FrontprocessorUpgrade PositionerSetup Satfinder \ DefaultServicesScanner NFIFlash DiseqcTester CommonInterfaceAssignment \ CrashlogAutoSubmit CleanupWizard VideoEnhancement WirelessLan NetworkWizard \ TempFanControl FactoryTest Fancontrol FPGAUpgrade WirelessLanSetup ManualFancontrol \ - Blindscan RemoteControlCode OSD3DSetup + Blindscan RemoteControlCode OSD3DSetup UIPositionSetup install_PYTHON = \ __init__.py diff --git a/lib/python/Plugins/SystemPlugins/UIPositionSetup/Makefile.am b/lib/python/Plugins/SystemPlugins/UIPositionSetup/Makefile.am new file mode 100755 index 0000000..44132bb --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/UIPositionSetup/Makefile.am @@ -0,0 +1,7 @@ +installdir = $(pkglibdir)/python/Plugins/SystemPlugins/UIPositionSetup + +SUBDIRS = meta + +install_PYTHON = \ + __init__.py \ + plugin.py diff --git a/lib/python/Plugins/SystemPlugins/UIPositionSetup/__init__.py b/lib/python/Plugins/SystemPlugins/UIPositionSetup/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/Makefile.am b/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/Makefile.am new file mode 100755 index 0000000..0aa214b --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/Makefile.am @@ -0,0 +1,3 @@ +installdir = $(datadir)/meta + +dist_install_DATA = plugin_uipositionsetup.xml diff --git a/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/plugin_uipositionsetup.xml b/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/plugin_uipositionsetup.xml new file mode 100755 index 0000000..603880c --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/UIPositionSetup/meta/plugin_uipositionsetup.xml @@ -0,0 +1,16 @@ + + + + + + hschang + UIPositionSetup + enigma2-plugin-systemplugins-uipositionsetup + Adjust screen position + Adjust screen position + + + + + + diff --git a/lib/python/Plugins/SystemPlugins/UIPositionSetup/plugin.py b/lib/python/Plugins/SystemPlugins/UIPositionSetup/plugin.py new file mode 100755 index 0000000..0ad18d0 --- /dev/null +++ b/lib/python/Plugins/SystemPlugins/UIPositionSetup/plugin.py @@ -0,0 +1,135 @@ +from Screens.Screen import Screen +from Components.ConfigList import ConfigListScreen +from Components.config import config, getConfigListEntry, ConfigSubsection, ConfigSelection, ConfigInteger, ConfigSlider +from Components.ActionMap import ActionMap +from Screens.MessageBox import MessageBox +from Components.Sources.StaticText import StaticText +from Plugins.Plugin import PluginDescriptor +from Tools.Directories import fileExists +from enigma import eTimer +from Plugins.Plugin import PluginDescriptor + +config.plugins.UIPositionSetup = ConfigSubsection() +config.plugins.UIPositionSetup.dst_left = ConfigInteger(default = 0) +config.plugins.UIPositionSetup.dst_width = ConfigInteger(default = 720) +config.plugins.UIPositionSetup.dst_top = ConfigInteger(default = 0) +config.plugins.UIPositionSetup.dst_height = ConfigInteger(default = 576) + +class UIPositionSetupInit: + def __init__(self): + self.setPosition(int(config.plugins.UIPositionSetup.dst_left.value), int(config.plugins.UIPositionSetup.dst_width.value), int(config.plugins.UIPositionSetup.dst_top.value), int(config.plugins.UIPositionSetup.dst_height.value)) + + def setPosition(self,dst_left, dst_width, dst_top, dst_height): + if dst_left + dst_width > 720: + dst_width = 720 - dst_left + if dst_top + dst_height > 576: + dst_height = 576 - dst_top + print "[UIPositionSetup] write dst_left : ",dst_left + print "[UIPositionSetup] write dst_width : ",dst_width + print "[UIPositionSetup] write dst_top : ",dst_top + print "[UIPositionSetup] write dst_height : ",dst_height + try: + file = open("/proc/stb/fb/dst_left", "w") + file.write('%X' % dst_left) + file.close() + file = open("/proc/stb/fb/dst_width", "w") + file.write('%X' % dst_width) + file.close() + file = open("/proc/stb/fb/dst_top", "w") + file.write('%X' % dst_top) + file.close() + file = open("/proc/stb/fb/dst_height", "w") + file.write('%X' % dst_height) + file.close() + except: + return + +uipositionsetupinit = UIPositionSetupInit() + +class UIPositionSetup(Screen, ConfigListScreen, UIPositionSetupInit): + def __init__(self,session): + size_w = session.desktop.size().width() + size_h = session.desktop.size().height() + xpos = (size_w-500)/2 + ypos = (size_h-300)/2 + self.skin="" + self.skin += "" + self.skin += "" + self.skin += "" + self.skin += "" + self.skin += "" + self.skin += "" + self.skin += "" + + Screen.__init__(self,session) + self.session = session + self["shortcuts"] = ActionMap(["ShortcutActions", "SetupActions" ], + { + "ok": self.keyOk, + "cancel": self.keyCancel, + "red": self.keyCancel, + "green": self.keyOk, + }, -2) + self.list = [] + ConfigListScreen.__init__(self, self.list,session = self.session) + self["key_red"] = StaticText(_("Cancel")) + self["key_green"] = StaticText(_("Save")) + self["current"] = StaticText(_(" ")) + self.createSetup() + + def createSetup(self): + self.list = [] + + left = config.plugins.UIPositionSetup.dst_left.value + width = config.plugins.UIPositionSetup.dst_width.value + top = config.plugins.UIPositionSetup.dst_top.value + height = config.plugins.UIPositionSetup.dst_height.value + + self.dst_left = ConfigSlider(default = left, increment = 5, limits = (0, 720)) + self.dst_width = ConfigSlider(default = width, increment = 5, limits = (0, 720)) + self.dst_top = ConfigSlider(default = top, increment = 5, limits = (0, 576)) + self.dst_height = ConfigSlider(default = height, increment = 5, limits = (0, 576)) + + self.list.append(getConfigListEntry(_("left"), self.dst_left)) + self.list.append(getConfigListEntry(_("width"), self.dst_width)) + self.list.append(getConfigListEntry(_("top"), self.dst_top)) + self.list.append(getConfigListEntry(_("height"), self.dst_height)) + + self["config"].list = self.list + self["config"].l.setList(self.list) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + self.setPosition(int(self.dst_left.value), int(self.dst_width.value), int(self.dst_top.value), int(self.dst_height.value)) + + def keyRight(self): + ConfigListScreen.keyRight(self) + self.setPosition(int(self.dst_left.value), int(self.dst_width.value), int(self.dst_top.value), int(self.dst_height.value)) + + def keyOk(self): + config.plugins.UIPositionSetup.dst_left.value = self.dst_left.value + config.plugins.UIPositionSetup.dst_width.value = self.dst_width.value + config.plugins.UIPositionSetup.dst_top.value = self.dst_top.value + config.plugins.UIPositionSetup.dst_height.value = self.dst_height.value + config.plugins.UIPositionSetup.save() + self.close() + + def keyCancel(self): + if self["config"].isChanged(): + self.session.openWithCallback(self.cancelConfirm, MessageBox, _("Really close without saving settings?")) + else: + self.close() + + def cancelConfirm(self,ret): + if ret: + self.setPosition(int(config.plugins.UIPositionSetup.dst_left.value), int(config.plugins.UIPositionSetup.dst_width.value), int(config.plugins.UIPositionSetup.dst_top.value), int(config.plugins.UIPositionSetup.dst_height.value)) + self.close() + +def main(session, **kwargs): + session.open(UIPositionSetup) + +def Plugins(**kwargs): + if fileExists("/proc/stb/fb/dst_left"): + return [PluginDescriptor(name = "UI position setup", description = "Adjust screen position", where = PluginDescriptor.WHERE_PLUGINMENU, fnc = main)] + return [] + -- 2.7.4