Version 1.0b2: Made moving- code reusable. Rework skin, fixed fonts- bug
authorTorsten Link <tode@users.schwerkraft.elitedvb.net>
Wed, 25 Nov 2009 23:52:30 +0000 (23:52 +0000)
committerTorsten Link <tode@users.schwerkraft.elitedvb.net>
Wed, 25 Nov 2009 23:52:30 +0000 (23:52 +0000)
ac3lipsync/CONTROL/control
ac3lipsync/img/AC3LipSyncBar.png
ac3lipsync/img/AC3LipSyncBarBG.png
ac3lipsync/img/BGTable.png
ac3lipsync/img/BGTableTabDark.png
ac3lipsync/img/BGTableTabLight.png
ac3lipsync/src/AC3Positioner.py [deleted file]
ac3lipsync/src/AC3main.py
ac3lipsync/src/AC3utils.py
ac3lipsync/src/MovableScreen.py [new file with mode: 0644]

index 13fae0c..00419cf 100644 (file)
@@ -1,5 +1,5 @@
 Package: enigma2-plugin-extensions-audiosync
-Version: 1.0b1-20091118-r0
+Version: 1.0b2-20091118-r0
 Description: Set Audio delay
 Architecture: mipsel
 Section: extra
index e21bffe..0550d8b 100644 (file)
Binary files a/ac3lipsync/img/AC3LipSyncBar.png and b/ac3lipsync/img/AC3LipSyncBar.png differ
index 1f51835..5fe81c7 100644 (file)
Binary files a/ac3lipsync/img/AC3LipSyncBarBG.png and b/ac3lipsync/img/AC3LipSyncBarBG.png differ
index 69f804c..6a822d8 100644 (file)
Binary files a/ac3lipsync/img/BGTable.png and b/ac3lipsync/img/BGTable.png differ
index 71860eb..4102068 100644 (file)
Binary files a/ac3lipsync/img/BGTableTabDark.png and b/ac3lipsync/img/BGTableTabDark.png differ
index b45f9b0..ccd88f9 100644 (file)
Binary files a/ac3lipsync/img/BGTableTabLight.png and b/ac3lipsync/img/BGTableTabLight.png differ
diff --git a/ac3lipsync/src/AC3Positioner.py b/ac3lipsync/src/AC3Positioner.py
deleted file mode 100644 (file)
index 629a670..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-from AC3utils import AC3, PCM, AC3GLOB, PCMGLOB, AC3PCM, SKIN, MOVEPOSITIONSTEP
-from HelpableNumberActionMap import HelpableNumberActionMap
-from Components.Label import Label,MultiColorLabel
-from Components.Pixmap import MultiPixmap
-from Components.ProgressBar import ProgressBar
-from Components.config import config
-from Screens.HelpMenu import HelpableScreen
-from Screens.Screen import Screen
-from __init__ import _
-from enigma import ePoint, eTimer, getDesktop
-
-class AC3Positioner(Screen, HelpableScreen):
-    def __init__(self, session, plugin_path):
-        Screen.__init__(self, session)
-        self.skin = SKIN
-
-        self.skin_path = plugin_path
-
-        self.screenSize_x = 600
-        self.screenSize_y = 100
-        self.minMargin = 30
-
-        #Delay information
-        for sAudio in AC3PCM:
-            self[sAudio+"DelayInfoLabel"] = Label( _("%s:")%sAudio)
-            self[sAudio+"DelayInfo"] = Label(_("%i ms")%0)
-
-        #Tabbed table labels
-        self["AC3TableTab"] = MultiPixmap()
-        self["AC3GLOBTableTab"] = MultiPixmap()
-        self["PCMTableTab"] = MultiPixmap()
-        self["PCMGLOBTableTab"] = MultiPixmap()
-        
-        self["AC3TableTabLabel"] = MultiColorLabel( _("Passthrough"))
-        self["AC3GLOBTableTabLabel"] = MultiColorLabel( _("Global Passthr."))
-        self["PCMTableTabLabel"] = MultiColorLabel( _("PCM"))
-        self["PCMGLOBTableTabLabel"] = MultiColorLabel( _("Global PCM"))
-
-        # Slider
-        self["AudioSliderBar"] = ProgressBar()
-        self["AudioSlider"] = Label(_("%i ms")%0)
-        self["AudioSliderLabel"] = MultiColorLabel( _("Delay:"))
-        
-        #Service Information
-        self["ServiceInfoLabel"] = Label(_("Channel audio:"))
-        self["ServiceInfo"] = Label()
-
-        # Buttons
-        self["key_red"] = Label(_("Cancel"))
-        self["key_green"] = Label(_("OK"))
-        self["key_yellow"] = Label(_("Switch audio"))
-        self["key_blue"] = Label("Save to key")
-
-        self["actions"] = HelpableNumberActionMap(self, "PluginAudioSyncActions",
-        {
-            "ok":       (self.keyOk,                   _("Save values and close screen")),
-            "cancel":   (self.keyCancel,            _("Discard changes and close screen")),
-            "left":     (self.keyLeft,              _("Move screen to the left")),
-            "right":    (self.keyRight,             _("Move screen to the right")),
-            "up":       (self.keyUp,                _("Move screen up")),
-            "down":     (self.keyDown,              _("Move screen down")),
-            "red":      (self.keyCancel,            _("Discard changes and close screen")),
-            "green":    (self.keyOk,                _("Save values and close screen")),
-            "1":        (self.keyNumber,            _("Move screen to the upper left corner")),
-            "2":        (self.keyNumber,            _("Center screen at the upper border")),
-            "3":        (self.keyNumber,            _("Move screen to the upper right corner")),
-            "4":        (self.keyNumber,            _("Move screen to the middle of the left border")),
-            "5":        (self.keyNumber,            _("Move screen to the center of your TV")),
-            "6":        (self.keyNumber,            _("Move screen to the middle of the right border")),
-            "7":        (self.keyNumber,            _("Move screen to the lower left corner")),
-            "8":        (self.keyNumber,            _("Center screen at the lower border")),
-            "9":        (self.keyNumber,            _("Move screen to the lower right corner")),
-            "0":        (self.keyNumber,            _("Reset saved position"))
-        }, -1)
-        
-        HelpableScreen.__init__(self)
-        
-        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):
-        if config.plugins.AC3LipSync.position_x.value == 0 and config.plugins.AC3LipSync.position_y.value == 0:
-            config.plugins.AC3LipSync.position_x.value = (self.desktopWidth - self.screenSize_x)/2
-            config.plugins.AC3LipSync.position_y.value = self.minMargin
-        self.instance.move(ePoint(config.plugins.AC3LipSync.position_x.value, config.plugins.AC3LipSync.position_y.value))
-            
-        self.moveTimer.start(50, 1)
-
-    def keyLeft(self):
-        value = config.plugins.AC3LipSync.position_x.value
-        value -= MOVEPOSITIONSTEP
-        if value < 0:
-            value = 0
-        config.plugins.AC3LipSync.position_x.value = value
-
-    def keyUp(self):
-        value = config.plugins.AC3LipSync.position_y.value
-        value -= MOVEPOSITIONSTEP
-        if value < 0:
-            value = 0
-        config.plugins.AC3LipSync.position_y.value = value
-
-    def keyRight(self):
-        value = config.plugins.AC3LipSync.position_x.value
-        value += MOVEPOSITIONSTEP
-        if value > self.desktopWidth:
-            value = self.desktopWidth
-        config.plugins.AC3LipSync.position_x.value = value
-
-    def keyDown(self):
-        value = config.plugins.AC3LipSync.position_y.value
-        value += MOVEPOSITIONSTEP
-        if value > self.desktopHeight:
-            value = self.desktopHeight
-        config.plugins.AC3LipSync.position_y.value = value
-
-    def keyNumber(self, number):
-        #x- Positioning
-        if number in (1,4,7):
-            iPosX = self.minMargin
-        elif number in (2,5,8,0):
-            iPosX = (self.desktopWidth - self.screenSize_x)/2
-        else:
-            iPosX = self.desktopWidth - self.minMargin - self.screenSize_x
-        
-        config.plugins.AC3LipSync.position_x.value = iPosX
-
-        #y- positioning
-        if number in (0,1,2,3):
-            iPosY = self.minMargin
-        elif number in (4,5,6):
-            iPosY = (self.desktopHeight - self.screenSize_y)/2
-        elif number in (7,8,9):    
-            iPosY = self.desktopHeight - self.minMargin - self.screenSize_y
-            
-        config.plugins.AC3LipSync.position_y.value = iPosY
-            
-    def keyOk(self):
-        config.plugins.AC3LipSync.position_x.save()
-        config.plugins.AC3LipSync.position_y.save()
-        self.close()
-
-    def keyCancel(self):
-        config.plugins.AC3LipSync.position_x.cancel()
-        config.plugins.AC3LipSync.position_y.cancel()
-        self.close()
index f8fdc8c..2d80775 100644 (file)
@@ -7,6 +7,7 @@ from Components.Label import Label,MultiColorLabel
 from Components.Pixmap import MultiPixmap
 from Components.ProgressBar import ProgressBar
 from Components.config import config
+from MovableScreen import MovableScreen
 from Screens.ChoiceBox import ChoiceBox
 from Screens.HelpMenu import HelpableScreen
 from Screens.MessageBox import MessageBox
@@ -14,7 +15,7 @@ from Screens.Screen import Screen
 from Screens.InfoBarGenerics import InfoBarAudioSelection
 from __init__ import _
 
-class AC3LipSync(Screen, HelpableScreen, InfoBarAudioSelection):
+class AC3LipSync(Screen, HelpableScreen, MovableScreen, InfoBarAudioSelection):
 
     def __init__(self, session, plugin_path):
         Screen.__init__(self, session)
@@ -109,6 +110,7 @@ class AC3LipSync(Screen, HelpableScreen, InfoBarAudioSelection):
         }, -1)
 
         HelpableScreen.__init__(self)
+        MovableScreen.__init__(self, config.plugins.AC3LipSync, 600, 100)
         
     def __onShow(self):
         for sAudio in AC3PCM:
@@ -127,11 +129,6 @@ class AC3LipSync(Screen, HelpableScreen, InfoBarAudioSelection):
             
         self.movePosition()
 
-    def movePosition(self):
-        if config.plugins.AC3LipSync.position_x.value != 0 or config.plugins.AC3LipSync.position_y.value != 0:
-            self.instance.move(ePoint(config.plugins.AC3LipSync.position_x.value, config.plugins.AC3LipSync.position_y.value))
-
-
     def keyUp(self):
         if self.AC3delay.whichAudio == PCMGLOB:
             self.AC3delay.whichAudio = PCM
@@ -241,7 +238,7 @@ class AC3LipSync(Screen, HelpableScreen, InfoBarAudioSelection):
     def DoShowMenu(self, answer):
         if answer is not None:
             if answer[1] == "1":
-                self.session.openWithCallback(self.positionerCallback,AC3Positioner,self.skin_path)    
+                self.startMoving([self["actions"]])
             else:
                 sResponse = _("Invalid selection")
                 iType = MessageBox.TYPE_ERROR
@@ -252,10 +249,7 @@ class AC3LipSync(Screen, HelpableScreen, InfoBarAudioSelection):
         iDelay = self["AudioSliderBar"].getValue()+self.lowerBound
 
         AC3SetCustomValue(self.session,iDelay,self.keyStep)
-    
-    def positionerCallback(self):
-        self.movePosition()
-    
+        
     def setSliderInfo(self, iDelay):
         sAudio = self.AC3delay.whichAudio
         self.currentValue[sAudio] = iDelay + self.lowerBound
index d5becb8..dc6f7d3 100644 (file)
@@ -5,41 +5,41 @@ PCMGLOB = "PCMGLOB"
 AC3PCM = (AC3,PCM,AC3GLOB,PCMGLOB)
 
 PLUGIN_BASE = "AudioSync"
-PLUGIN_VERSION = "1.0b1"
+PLUGIN_VERSION = "1.0b2"
 
 MOVEPOSITIONSTEP = 10
 
 SKIN = """
         <screen flags="wfNoBorder" position="center,30" size="600,100" title="AC3 Lip Sync" zPosition="1" backgroundColor="#ff000000">
             <ePixmap pixmap="~/img/BGTable.png" zPosition="1" position="5,20" size="590,80" alphatest="on" transparent="1" />
-            <widget name="AC3TableTabLabel" zPosition="2" position="10,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" foregroundColors="#00000000,#00000000"/>
-            <widget name="AC3TableTab" pixmaps="~/img/BGTableTabDark.png,~/img/BGTableTabLight.png" position="10,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
-            <widget name="AC3GLOBTableTabLabel" zPosition="2" position="150,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" foregroundColors="#00000000,#00000000"/>
-            <widget name="AC3GLOBTableTab" pixmaps="~/img/BGTableTabDark.png,~/img/BGTableTabLight.png" position="150,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
-            <widget name="PCMTableTabLabel" zPosition="2" position="290,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" foregroundColors="#00000000,#00000000"/>
-            <widget name="PCMTableTab" pixmaps="~/img/BGTableTabDark.png,~/img/BGTableTabLight.png" position="290,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
-            <widget name="PCMGLOBTableTabLabel" zPosition="2" position="430,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" foregroundColors="#00000000,#00000000"/>
-            <widget name="PCMGLOBTableTab" pixmaps="~/img/BGTableTabDark.png,~/img/BGTableTabLight.png" position="430,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
+            <widget name="AC3TableTabLabel" zPosition="2" position="10,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" backgroundColor="#232323" foregroundColors="#dddddd,#ffffff"/>
+            <widget name="AC3TableTab" pixmaps="~/img/BGTableTabLight.png,~/img/BGTableTabDark.png" position="10,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
+            <widget name="AC3GLOBTableTabLabel" zPosition="2" position="150,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" backgroundColor="#232323" foregroundColors="#dddddd,#ffffff"/>
+            <widget name="AC3GLOBTableTab" pixmaps="~/img/BGTableTabLight.png,~/img/BGTableTabDark.png" position="150,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
+            <widget name="PCMTableTabLabel" zPosition="2" position="290,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" backgroundColor="#232323" foregroundColors="#dddddd,#ffffff"/>
+            <widget name="PCMTableTab" pixmaps="~/img/BGTableTabLight.png,~/img/BGTableTabDark.png" position="290,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
+            <widget name="PCMGLOBTableTabLabel" zPosition="2" position="430,0" size="140,26" font="Regular;14" halign="center" valign="center" transparent="1" backgroundColor="#232323" foregroundColors="#dddddd,#ffffff"/>
+            <widget name="PCMGLOBTableTab" pixmaps="~/img/BGTableTabLight.png,~/img/BGTableTabDark.png" position="430,0" zPosition="1" size="140,26" transparent="1" alphatest="on" />
             <ePixmap pixmap="~/img/AC3LipSyncBarBG.png" zPosition="2" position="180,26" size="370,21" alphatest="on" transparent="1" />
-            <widget name="AudioSliderLabel" zPosition="2" position="12,26" size="150,21" font="Regular;18" foregroundColor="#00222222" transparent="1" />
-            <widget name="AudioSliderBar" pixmap="~/img/AC3LipSyncBar.png" zPosition="2" position="180,26" size="370,21" transparent="1" />
-            <widget name="AudioSlider" zPosition="3" position="180,26" size="370,21" font="Regular;18" halign="center" valign="center" transparent="1"/>
-            <widget name="ServiceInfoLabel" zPosition="4" position="12,51" size="180,21" font="Regular;18" foregroundColor="#00222222" transparent="1" />
-            <widget name="ServiceInfo" zPosition="4" position="197,51" size="180,21" font="Regular;18" foregroundColor="#00000000" transparent="1" />
-            <widget name="AC3DelayInfoLabel" zPosition="4" position="387,51" size="48,21" font="Regular;18" foregroundColor="#00222222" transparent="1" />
-            <widget name="AC3DelayInfo" zPosition="4" position="437,51" size="50,21" font="Regular;18" foregroundColor="#00000000" transparent="1" />
-            <widget name="PCMDelayInfoLabel" zPosition="4" position="497,51" size="48,21" font="Regular;18" foregroundColor="#00222222" transparent="1" />
-            <widget name="PCMDelayInfo" zPosition="4" position="547,51" size="50,21" font="Regular;18" foregroundColor="#00000000" transparent="1" />
+            <widget name="AudioSliderLabel" zPosition="2" position="12,26" size="150,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#cccccc" transparent="1" />
+            <widget name="AudioSliderBar" pixmap="~/img/AC3LipSyncBar.png" zPosition="3" position="180,26" size="370,21" transparent="1" />
+            <widget name="AudioSlider" zPosition="4" position="180,26" size="370,21" font="Regular;18" halign="center" valign="center" transparent="1"/>
+            <widget name="ServiceInfoLabel" zPosition="4" position="12,51" size="180,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#cccccc" transparent="1" />
+            <widget name="ServiceInfo" zPosition="4" position="197,51" size="180,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1" />
+            <widget name="AC3DelayInfoLabel" zPosition="4" position="387,51" size="48,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#cccccc" transparent="1" />
+            <widget name="AC3DelayInfo" zPosition="4" position="437,51" size="50,21" font="Regular;18" foregroundColor="#ffffff" transparent="1" />
+            <widget name="PCMDelayInfoLabel" zPosition="4" position="497,51" size="48,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#cccccc" transparent="1" />
+            <widget name="PCMDelayInfo" zPosition="4" position="547,51" size="50,21" font="Regular;18" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1" />
             <ePixmap pixmap="~/img/key-red.png" position="25,77" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <ePixmap pixmap="~/img/key-green.png" position="160,77" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <ePixmap pixmap="~/img/key-yellow.png" position="295,77" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <ePixmap pixmap="~/img/key-blue.png" position="430,77" zPosition="5" size="20,20" transparent="1" alphatest="on" />
             <widget name="key_red" position="50,77" zPosition="4" size="110,21"
-                font="Regular;16" valign="center" halign="left" foregroundColor="#00000000" transparent="1"/>
+                font="Regular;16" valign="center" halign="left" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1"/>
             <widget name="key_green" position="185,77" zPosition="4" size="110,21"
-                font="Regular;16" valign="center" halign="left" foregroundColor="#00000000" transparent="1"/>
+                font="Regular;16" valign="center" halign="left" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1"/>
             <widget name="key_yellow" position="320,77" zPosition="4" size="110,21"
-                font="Regular;16" valign="center" halign="left" foregroundColor="#00000000" transparent="1" />
+                font="Regular;16" valign="center" halign="left" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1" />
             <widget name="key_blue" position="455,77" zPosition="4" size="110,21"
-                font="Regular;16" valign="center" halign="left" foregroundColor="#00000000" transparent="1" />
+                font="Regular;16" valign="center" halign="left" backgroundColor="#232323" foregroundColor="#ffffff" transparent="1" />
         </screen>"""
\ No newline at end of file
diff --git a/ac3lipsync/src/MovableScreen.py b/ac3lipsync/src/MovableScreen.py
new file mode 100644 (file)
index 0000000..ce54989
--- /dev/null
@@ -0,0 +1,125 @@
+from HelpableNumberActionMap import HelpableNumberActionMap
+from Components.config import config
+from __init__ import _
+from enigma import ePoint, eTimer, getDesktop
+
+class MovableScreen():
+    def __init__(self, configRoot, screenSize_x, screenSize_y, moveMinMargin=30, moveStepSize=10):
+        self.configRoot = configRoot
+        self.screenSize_x = screenSize_x
+        self.screenSize_y = screenSize_y
+        self.moveMinMargin = moveMinMargin
+        self.moveStepSize = moveStepSize
+
+        self["MovableScreenActions"] = HelpableNumberActionMap(self, "PluginAudioSyncActions",
+        {
+            "ok":       (self.moveKeyOk,                   _("Save values and close screen")),
+            "cancel":   (self.moveKeyCancel,            _("Discard changes and close screen")),
+            "left":     (self.moveKeyLeft,              _("Move screen to the left")),
+            "right":    (self.moveKeyRight,             _("Move screen to the right")),
+            "up":       (self.moveKeyUp,                _("Move screen up")),
+            "down":     (self.moveKeyDown,              _("Move screen down")),
+            "red":      (self.moveKeyCancel,            _("Discard changes and close screen")),
+            "green":    (self.moveKeyOk,                _("Save values and close screen")),
+            "1":        (self.moveKeyNumber,            _("Move screen to the upper left corner")),
+            "2":        (self.moveKeyNumber,            _("Center screen at the upper border")),
+            "3":        (self.moveKeyNumber,            _("Move screen to the upper right corner")),
+            "4":        (self.moveKeyNumber,            _("Move screen to the middle of the left border")),
+            "5":        (self.moveKeyNumber,            _("Move screen to the center of your TV")),
+            "6":        (self.moveKeyNumber,            _("Move screen to the middle of the right border")),
+            "7":        (self.moveKeyNumber,            _("Move screen to the lower left corner")),
+            "8":        (self.moveKeyNumber,            _("Center screen at the lower border")),
+            "9":        (self.moveKeyNumber,            _("Move screen to the lower right corner")),
+            "0":        (self.moveKeyNumber,            _("Reset saved position"))
+        }, -1)
+             
+        self["MovableScreenActions"].setEnabled(False)
+      
+        desktop = getDesktop(0)
+        self.desktopWidth = desktop.size().width()
+        self.desktopHeight = desktop.size().height()
+        
+
+    def startMoving(self,disableKeymaps):
+        self.disableKeymaps = disableKeymaps
+        self.switchKeymaps(False)
+
+        self.moveTimer = eTimer()
+        self.moveTimer.callback.append(self.movePositionTimer)
+        self.moveTimer.start(50, 1)
+
+    def movePositionTimer(self):
+        if self.configRoot.position_x.value == 0 and self.configRoot.position_y.value == 0:
+            self.configRoot.position_x.value = (self.desktopWidth - self.screenSize_x)/2
+            self.configRoot.position_y.value = self.moveMinMargin
+        self.instance.move(ePoint(self.configRoot.position_x.value, self.configRoot.position_y.value))
+            
+        self.moveTimer.start(50, 1)
+
+    def movePosition(self):
+        if self.configRoot.position_x.value != 0 or self.configRoot.position_y.value != 0:
+            self.instance.move(ePoint(self.configRoot.position_x.value, self.configRoot.position_y.value))
+            
+    def moveKeyLeft(self):
+        value = self.configRoot.position_x.value
+        value -= self.moveStepSize
+        if value < 0:
+            value = 0
+        self.configRoot.position_x.value = value
+
+    def moveKeyUp(self):
+        value = self.configRoot.position_y.value
+        value -= self.moveStepSize
+        if value < 0:
+            value = 0
+        self.configRoot.position_y.value = value
+
+    def moveKeyRight(self):
+        value = self.configRoot.position_x.value
+        value += self.moveStepSize
+        if value > self.desktopWidth:
+            value = self.desktopWidth
+        self.configRoot.position_x.value = value
+
+    def moveKeyDown(self):
+        value = self.configRoot.position_y.value
+        value += self.moveStepSize
+        if value > self.desktopHeight:
+            value = self.desktopHeight
+        self.configRoot.position_y.value = value
+
+    def moveKeyNumber(self, number):
+        #x- Positioning
+        if number in (1,4,7):
+            iPosX = self.moveMinMargin
+        elif number in (2,5,8,0):
+            iPosX = (self.desktopWidth - self.screenSize_x)/2
+        else:
+            iPosX = self.desktopWidth - self.moveMinMargin - self.screenSize_x
+        
+        self.configRoot.position_x.value = iPosX
+
+        #y- positioning
+        if number in (0,1,2,3):
+            iPosY = self.moveMinMargin
+        elif number in (4,5,6):
+            iPosY = (self.desktopHeight - self.screenSize_y)/2
+        elif number in (7,8,9):    
+            iPosY = self.desktopHeight - self.moveMinMargin - self.screenSize_y
+            
+        self.configRoot.position_y.value = iPosY
+            
+    def moveKeyOk(self):
+        self.configRoot.position_x.save()
+        self.configRoot.position_y.save()
+        self.switchKeymaps(True)
+
+    def moveKeyCancel(self):
+        self.configRoot.position_x.cancel()
+        self.configRoot.position_y.cancel()
+        self.switchKeymaps(True)
+
+    def switchKeymaps(self,enabled):
+        for keymap in self.disableKeymaps:
+            keymap.setEnabled(enabled)
+        self["MovableScreenActions"].setEnabled(not(enabled))
\ No newline at end of file