From ad96915f0eacda8080606a28b9a68c191137b5ea Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Mon, 20 Jan 2014 00:17:44 +0000 Subject: work-around radio button selection issue --- (limited to 'activity.py') diff --git a/activity.py b/activity.py index 2c01ed4..bde2e81 100644 --- a/activity.py +++ b/activity.py @@ -270,6 +270,7 @@ class PhysicsActivity(activity.Activity): if tool.palette_mode == tools.PALETTE_MODE_ICONS: grid = Gtk.Grid() for s, settings in enumerate(tool.palette_settings): + self.game.toolList[tool.name].buttons.append([]) firstButton = None for i, icon_value in enumerate(settings['icon_values']): if i == 0: @@ -281,19 +282,33 @@ class PhysicsActivity(activity.Activity): button.connect('clicked', self._palette_icon_clicked, tool.name, + s, settings['name'], icon_value) grid.attach(button, i, s, 1, 1) + self.game.toolList[tool.name].buttons[s].append(button) button.show() - if settings['active'] == icon_value: - button.set_active(True) + # Radio buttons are not highlighting in the palette + # so adding highlight by hand + if settings['active'] == settings['icons'][i]: + button.set_icon_name(settings['icons'][i] + \ + '-selected') + button.set_active(True) # Why doesn't this work? return grid + else: + return None - return None - - def _palette_icon_clicked(self, button, toolname, value_name, value): + def _palette_icon_clicked(self, widget, toolname, s, value_name, value): for tool in tools.allTools: if tool.name == toolname: + setting = self.game.toolList[tool.name].palette_settings[s] + for i, button in enumerate( + self.game.toolList[tool.name].buttons[s]): + icon_name = setting['icons'][i] + if button == widget: + button.set_icon_name(icon_name + '-selected') + else: + button.set_icon_name(icon_name) if hasattr(tool, 'palette_data_type'): tool.palette_data_type = value else: -- cgit v0.9.1