1 from HelpableNumberActionMap import HelpableNumberActionMap
2 from Components.config import config
4 from enigma import ePoint, eTimer, getDesktop
7 def __init__(self, configRoot, screenSize_x, screenSize_y, moveMinMargin=30, moveStepSize=10):
8 self.configRoot = configRoot
9 self.screenSize_x = screenSize_x
10 self.screenSize_y = screenSize_y
11 self.moveMinMargin = moveMinMargin
12 self.moveStepSize = moveStepSize
14 self["MovableScreenActions"] = HelpableNumberActionMap(self, "PluginAudioSyncActions",
16 "ok": (self.moveKeyOk, _("Save values and close screen")),
17 "cancel": (self.moveKeyCancel, _("Discard changes and close screen")),
18 "left": (self.moveKeyLeft, _("Move screen to the left")),
19 "right": (self.moveKeyRight, _("Move screen to the right")),
20 "up": (self.moveKeyUp, _("Move screen up")),
21 "down": (self.moveKeyDown, _("Move screen down")),
22 "red": (self.moveKeyCancel, _("Discard changes and close screen")),
23 "green": (self.moveKeyOk, _("Save values and close screen")),
24 "1": (self.moveKeyNumber, _("Move screen to the upper left corner")),
25 "2": (self.moveKeyNumber, _("Center screen at the upper border")),
26 "3": (self.moveKeyNumber, _("Move screen to the upper right corner")),
27 "4": (self.moveKeyNumber, _("Move screen to the middle of the left border")),
28 "5": (self.moveKeyNumber, _("Move screen to the center of your TV")),
29 "6": (self.moveKeyNumber, _("Move screen to the middle of the right border")),
30 "7": (self.moveKeyNumber, _("Move screen to the lower left corner")),
31 "8": (self.moveKeyNumber, _("Center screen at the lower border")),
32 "9": (self.moveKeyNumber, _("Move screen to the lower right corner")),
33 "0": (self.moveKeyNumber, _("Reset saved position"))
36 self["MovableScreenActions"].setEnabled(False)
38 desktop = getDesktop(0)
39 self.desktopWidth = desktop.size().width()
40 self.desktopHeight = desktop.size().height()
43 def startMoving(self,disableKeymaps):
44 self.disableKeymaps = disableKeymaps
45 self.switchKeymaps(False)
47 self.moveTimer = eTimer()
48 self.moveTimer.callback.append(self.movePositionTimer)
49 self.moveTimer.start(50, 1)
51 def movePositionTimer(self):
52 if self.configRoot.position_x.value == 0 and self.configRoot.position_y.value == 0:
53 self.configRoot.position_x.value = (self.desktopWidth - self.screenSize_x)/2
54 self.configRoot.position_y.value = self.moveMinMargin
55 self.instance.move(ePoint(self.configRoot.position_x.value, self.configRoot.position_y.value))
57 self.moveTimer.start(50, 1)
59 def movePosition(self):
60 if self.configRoot.position_x.value != 0 or self.configRoot.position_y.value != 0:
61 self.instance.move(ePoint(self.configRoot.position_x.value, self.configRoot.position_y.value))
63 def moveKeyLeft(self):
64 value = self.configRoot.position_x.value
65 value -= self.moveStepSize
68 self.configRoot.position_x.value = value
71 value = self.configRoot.position_y.value
72 value -= self.moveStepSize
75 self.configRoot.position_y.value = value
77 def moveKeyRight(self):
78 value = self.configRoot.position_x.value
79 value += self.moveStepSize
80 if value > self.desktopWidth:
81 value = self.desktopWidth
82 self.configRoot.position_x.value = value
84 def moveKeyDown(self):
85 value = self.configRoot.position_y.value
86 value += self.moveStepSize
87 if value > self.desktopHeight:
88 value = self.desktopHeight
89 self.configRoot.position_y.value = value
91 def moveKeyNumber(self, number):
94 iPosX = self.moveMinMargin
95 elif number in (2,5,8,0):
96 iPosX = (self.desktopWidth - self.screenSize_x)/2
98 iPosX = self.desktopWidth - self.moveMinMargin - self.screenSize_x
100 self.configRoot.position_x.value = iPosX
103 if number in (0,1,2,3):
104 iPosY = self.moveMinMargin
105 elif number in (4,5,6):
106 iPosY = (self.desktopHeight - self.screenSize_y)/2
107 elif number in (7,8,9):
108 iPosY = self.desktopHeight - self.moveMinMargin - self.screenSize_y
110 self.configRoot.position_y.value = iPosY
113 self.configRoot.position_x.save()
114 self.configRoot.position_y.save()
115 self.switchKeymaps(True)
117 def moveKeyCancel(self):
118 self.configRoot.position_x.cancel()
119 self.configRoot.position_y.cancel()
120 self.switchKeymaps(True)
122 def switchKeymaps(self,enabled):
123 for keymap in self.disableKeymaps:
124 keymap.setEnabled(enabled)
125 self["MovableScreenActions"].setEnabled(not(enabled))