summaryrefslogtreecommitdiffstats
path: root/iw/mouse.py
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>1999-08-25 23:29:31 +0000
committerErik Troan <ewt@redhat.com>1999-08-25 23:29:31 +0000
commitaabf3800ac1be00fd6acfe57780e4858d9eddb56 (patch)
tree29f91afa7c6d03ce1489bb173b0b3f2364a6f645 /iw/mouse.py
parent4334b258c742b99f789d6619168fbc7d49d535ad (diff)
downloadanaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.tar.gz
anaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.tar.xz
anaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.zip
updated mouse support
Diffstat (limited to 'iw/mouse.py')
-rw-r--r--iw/mouse.py126
1 files changed, 67 insertions, 59 deletions
diff --git a/iw/mouse.py b/iw/mouse.py
index 1ec371b10..33f65aa9e 100644
--- a/iw/mouse.py
+++ b/iw/mouse.py
@@ -30,8 +30,10 @@ class MouseWindow (InstallWindow):
def build_ctree (self, list, cur_parent = None, prev_node = None):
if (list == ()): return
- if (len (list) > 1 and isinstance (list[1], type (()))): leaf = FALSE
- else: leaf = TRUE
+ if (len (list) > 1 and isinstance (list[1], type (()))):
+ leaf = FALSE
+ else:
+ leaf = TRUE
if isinstance (list[0], type (())):
self.build_ctree (list[0], prev_node, None)
@@ -64,61 +66,65 @@ class MouseWindow (InstallWindow):
if node:
name = " - " + name
- dev = self.locList.get_text (self.locList.selection[0], 1)
- if not find (dev, "psaux"):
- name = name + " (PS/2)"
- elif not find (dev, "ttyS"):
- name = name + " (serial)"
+ 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):
- self.todo.mouse.set (self.getCurrentKey ())
+ cur = self.getCurrentKey()
+ (gpm, xdev, device, emulate) = self.availableMice[cur]
+
+ def set (self, mouse, emulateThreeButtons):
+ self.todo.mouse.set (cur, 0)
+ if (device == "ttyS"):
+ self.todo.mouse.setDevice(self.serialDevice)
+ else:
+ self.todo.mouse.setDevice(device)
return None
- def locSelect (self, widget, row, *args):
- if self.todo.mouse.available ().has_key (self.getCurrentKey ()):
- self.ics.setNextEnabled (TRUE)
- else:
- self.ics.setNextEnabled (FALSE)
+ def selectDeviceType(self, *args):
+ self.ics.setNextEnabled (TRUE)
- def select (self, widget, node, *args):
- if node.is_leaf and self.todo.mouse.available ().has_key (self.getCurrentKey ()):
- self.ics.setNextEnabled (TRUE)
- else:
+ def selectMouseType (self, widget, node, *args):
+ if not node.is_leaf:
self.ics.setNextEnabled (FALSE)
+ return
+ cur = self.getCurrentKey()
+ if (not self.availableMice.has_key(cur)):
+ self.ics.setNextEnabled (FALSE)
+ return
+
+ (gpm, xdev, device, emulate) = self.availableMice[cur]
+ if device == "ttyS":
+ print "device is", self.serialDevice
+ if (self.serialDevice):
+ self.locList.select_row(int(self.serialDevice[4]), 1)
+ self.ics.setNextEnabled (TRUE)
+ else:
+ self.locList.unselect_all()
+ print "disabling next"
+ self.ics.setNextEnabled (FALSE)
+
+ self.locList.set_sensitive(TRUE)
+ else:
+ self.locList.unselect_all()
+ self.locList.set_sensitive(FALSE)
+ self.ics.setNextEnabled (TRUE)
+
def getScreen (self):
- sorted_mice_keys = self.todo.mouse.available ().keys ()
+ self.availableMice = self.todo.mouse.available()
+ sorted_mice_keys = self.availableMice.keys()
sorted_mice_keys.sort ()
- # build a dictionary of device : device name
- devs = {}
- for x in map (lambda x, dict=self.todo.mouse.available (): (dict[x][2], x),
- self.todo.mouse.available ().keys ()):
- if not devs.has_key (x[0]):
- devs[x[0]] = x[1]
-
- devNames = { "psaux" : (0, "PS/2"),
- "ttyS" : (1, "COM"),
- "atibm" : (2, "ATI Bus"),
- "logibm" : (2, "Logitech Bus"),
- "inportbm" : (2, "Microsoft Bus") }
-
- devList = []
- for x in devs.keys ():
- # handle the special case of COM ports
- if x == "ttyS":
- for i in range (0, 4):
- devList.append ((devNames[x][0], "%s %i" % (devNames[x][1], i+1), "%s%i" % (x, i)))
- continue
-
- if devNames.has_key (x):
- devList.append ((devNames[x][0], devNames[x][1], x))
- else:
- devList.append ((999, "Unknown Port", x))
+ (currentMouse, currentDev) = self.todo.mouse.get()
- devList.sort ()
+ deviceList = [ ("/dev/ttyS0 (COM1 under DOS)", "ttyS0" ),
+ ("/dev/ttyS1 (COM2 under DOS)", "ttyS1" ),
+ ("/dev/ttyS2 (COM3 under DOS)", "ttyS2" ),
+ ("/dev/ttyS3 (COM4 under DOS)", "ttyS3" ) ]
box = GtkVBox (FALSE, 5)
@@ -126,9 +132,10 @@ class MouseWindow (InstallWindow):
sw.set_border_width (5)
sw.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC)
self.locList = GtkCList (2, ("Port", "Device"))
- self.locList.set_selection_mode (SELECTION_BROWSE)
+ self.locList.set_selection_mode (SELECTION_SINGLE)
- map (lambda x, self=self: self.locList.append (x[1:]), devList)
+ for (descrip, dev) in deviceList:
+ self.locList.append((dev, descrip))
self.locList.columns_autosize ()
self.locList.set_column_resizeable (0, FALSE)
@@ -136,33 +143,34 @@ class MouseWindow (InstallWindow):
self.locList.column_title_passive (1)
self.locList.set_border_width (5)
- box.pack_start (self.locList, FALSE)
-
sw = GtkScrolledWindow ()
sw.set_border_width (5)
sw.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC)
self.ctree = GtkCTree (1)
- self.typeList = GtkList ()
- self.typeList.set_selection_mode (SELECTION_BROWSE)
-
- mice = []
- for x in sorted_mice_keys:
- value = strip (sub ("\(.*\)", "", x))
- if not value in mice:
- mice.append (value)
groups = ()
- for x in mice:
+ for x in sorted_mice_keys:
groups = self.merge (groups, string.split (x, " - ", 1))
groups = self.reduce_leafs (groups)
self.build_ctree (groups)
self.ctree.set_selection_mode (SELECTION_BROWSE)
self.ctree.columns_autosize ()
- self.ctree.connect ("tree_select_row", self.select)
- self.locList.connect ("select_row", self.locSelect)
+ self.ctree.connect ("tree_select_row", self.selectMouseType)
+ self.locList.connect ("select_row", self.selectDeviceType)
+ self.locList.set_sensitive(FALSE)
+
sw.add (self.ctree)
+
+ if (currentDev and currentDev[0:3] == "ttyS"):
+ self.serialDevice = currentDev
+ self.locList.select_row(int(self.serialDevice[4]), 1)
+ else:
+ self.locList.unselect_all();
+ self.serialDevice = None
+
box.pack_start (sw)
+ box.pack_start (self.locList, FALSE)
return box