Author: esr
Date: Thu Oct 16 05:43:18 2008
New Revision: 30193
URL: http://svn.gna.org/viewcvs/wesnoth?rev=30193&view=rev
Log:
trackplacer: add radiobuttons for selecting the editable track.
Modified:
trunk/data/tools/trackplacer
Modified: trunk/data/tools/trackplacer
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/trackplacer?rev=30193&r1=30192&r2=30193&view=diff
==============================================================================
--- trunk/data/tools/trackplacer (original)
+++ trunk/data/tools/trackplacer Thu Oct 16 05:43:18 2008
@@ -63,7 +63,7 @@
The Properties button pops up a list of track properties - key/value pairs
associated with the track. All tracks have the property "map" with their
associated map name as the value.
-The Tracks button pops up a list of checkboxes, one for each track. You can
shange the state of the checkboxes to control which tracks are visible.
+The Tracks button pops up a list of checkboxes, one for each track. You can
shange the state of the checkboxes to control which tracks are visible. The
radiobuttons can be used to select a track for editing.
The Help button displays this message.
@@ -750,23 +750,45 @@
self.visibility.vbox.pack_start(label)
self.visibility_toggles = {}
label.show()
+ label = gtk.Label("(Radiobuttons select a track for editing.)")
+ self.visibility.vbox.pack_start(label)
+ self.visibility_toggles = {}
+ label.show()
+ basebutton = None
for (i, track_id) in enumerate(self.journey.track_list):
- button = gtk.CheckButton(track_id)
- button.set_active(track_id in self.visible_set)
- button.connect("toggled", self.track_visibility_callback, track_id)
- button.show()
- self.visibility.vbox.add(button)
- self.visibility_toggles[track_id] = lambda x: button.set_active(x)
+ h = gtk.HBox()
+ self.visibility.vbox.add(h)
+ h.show()
+ radiobutton = gtk.RadioButton(basebutton)
+ if basebutton == None:
+ basebutton = radiobutton
+ radiobutton.set_active(track_id == self.journey.selected_id)
+ radiobutton.connect("toggled", self.track_activity_callback,
track_id)
+ radiobutton.show()
+ h.add(radiobutton)
+ checkbox = gtk.CheckButton(track_id)
+ checkbox.set_active(track_id in self.visible_set)
+ checkbox.connect("toggled",
self.track_visibility_callback,track_id)
+ h.add(checkbox)
+ checkbox.show()
+ self.visibility_toggles[track_id] = checkbox
self.visibility.show()
self.visibility.connect("response", self.track_visibility_revert)
- #self.visibility.connect("destroy", self.track_visibility_revert)
+ def track_activity_callback(self, w, track_id):
+ if w.get_active():
+ self.journey.set_selected_track(track_id)
+ self.visibility_toggles[track_id].set_active(True)
+ if track_id not in self.visible_set:
+ self.track_visibility_callback(w, track_id)
+ else:
+ self.redraw(self.drawing_area, delay=0.05)
def track_visibility_callback(self, w, track_id):
if len(self.visible_set) <= 1 and track_id in self.visible_set:
w = gtk.MessageDialog(type=gtk.MESSAGE_INFO,
flags=gtk.DIALOG_DESTROY_WITH_PARENT,
buttons=gtk.BUTTONS_OK)
w.set_markup("At least one track must remain visible.")
- self.visibility_toggles[track_id](True)
+ self.visibility_toggles[track_id].set_active(True)
w.run()
w.destroy()
return
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits