from gtk import *
from iw import *
from string import *
from re import *
import tree
from gui import _
class MouseWindow (InstallWindow):
def reduce_leafs (self, a):
if a == (): return a
if len (a) > 1 and isinstance (a[1], type (())) and len (a[1]) == 1:
return ("%s - %s" % (a[0], a[1][0]),) + self.reduce_leafs (a[2:])
return (a[0],) + self.reduce_leafs (a[1:])
def getCurrentKey (self):
if not len (self.ctree.selection): return
name = ""
node = self.ctree.selection[0]
while node:
name = self.ctree.node_get_row_data (node) + name
node = node.parent
if node:
name = " - " + name
if self.locList.selection:
self.serialDevice = self.locList.get_text (self.locList.selection[0], 0)
# otherwise, just leave the old selection in place
return name
def getNext (self):
if not self.__dict__.has_key("availableMice"): return
cur = self.getCurrentKey()
(gpm, xdev, device, emulate) = self.availableMice[cur]
self.todo.mouse.set (cur, self.emulate3.get_active ())
if (device == "ttyS"):
self.todo.mouse.setDevice(self.serialDevice)
else:
self.todo.mouse.setDevice(device)
return None
if (currentDev and currentDev[0:4] == "ttyS"):
self.serialDevice = currentDev
self.locList.select_row(int(self.serialDevice[4]), 1)
else:
self.locList.unselect_all();
self.serialDevice = None
splitv = string.split (currentMouse, " - ", 1)
nodes = self.ctree.base_nodes ()
# do a simple search on the root nodes, since leaf reduction creates
# a special case
found = 0
for x in nodes:
if self.ctree.get_node_info (x)[0] == "%s %s" % tuple (splitv):
found = 1
self.ctree.select (x)
break
if not found:
self.selectMouse (nodes, splitv)