diff options
author | Erik Troan <ewt@redhat.com> | 1999-08-25 23:29:31 +0000 |
---|---|---|
committer | Erik Troan <ewt@redhat.com> | 1999-08-25 23:29:31 +0000 |
commit | aabf3800ac1be00fd6acfe57780e4858d9eddb56 (patch) | |
tree | 29f91afa7c6d03ce1489bb173b0b3f2364a6f645 /iw/mouse.py | |
parent | 4334b258c742b99f789d6619168fbc7d49d535ad (diff) | |
download | anaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.tar.gz anaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.tar.xz anaconda-aabf3800ac1be00fd6acfe57780e4858d9eddb56.zip |
updated mouse support
Diffstat (limited to 'iw/mouse.py')
-rw-r--r-- | iw/mouse.py | 126 |
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 |