Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/toolkit/radiopalette.py
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/radiopalette.py')
-rw-r--r--toolkit/radiopalette.py37
1 files changed, 26 insertions, 11 deletions
diff --git a/toolkit/radiopalette.py b/toolkit/radiopalette.py
index 9c902b1..ccbaa6e 100644
--- a/toolkit/radiopalette.py
+++ b/toolkit/radiopalette.py
@@ -15,16 +15,18 @@
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.
-import gtk
+import gi
+from gi.repository import Gtk
-from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics.palette import Palette
+from sugar3.graphics.toolbutton import ToolButton
+from sugar3.graphics.palette import Palette
class RadioMenuButton(ToolButton):
- def __init__(self, **kwargs):
- ToolButton.__init__(self, **kwargs)
+ def __init__(self):
+
+ ToolButton.__init__(self)
self.selected_button = None
if self.props.palette:
@@ -34,18 +36,23 @@ class RadioMenuButton(ToolButton):
self.connect('notify::palette', self.__palette_cb)
def _do_clicked(self):
+
if self.palette is None:
return
+
if self.palette.is_up() and \
self.palette.palette_state == Palette.SECONDARY:
self.palette.popdown(immediate=True)
+
else:
self.palette.popup(immediate=True)
self.palette.props.invoker.emit('right-click')
def __palette_cb(self, widget, pspec):
+
if not isinstance(self.props.palette, RadioPalette):
return
+
self.props.palette.update_button()
def __clicked_cb(self, button):
@@ -54,10 +61,12 @@ class RadioMenuButton(ToolButton):
class RadioToolsButton(RadioMenuButton):
- def __init__(self, **kwargs):
- RadioMenuButton.__init__(self, **kwargs)
+ def __init__(self):
+
+ RadioMenuButton.__init__(self)
def _do_clicked(self):
+
if not self.selected_button:
return
self.selected_button.emit('clicked')
@@ -65,14 +74,16 @@ class RadioToolsButton(RadioMenuButton):
class RadioPalette(Palette):
- def __init__(self, **kwargs):
- Palette.__init__(self, **kwargs)
+ def __init__(self):
+
+ Palette.__init__(self)
- self.button_box = gtk.HBox()
+ self.button_box = Gtk.HBox()
self.button_box.show()
self.set_content(self.button_box)
def append(self, button, label):
+
children = self.button_box.get_children()
if button.palette is not None:
@@ -80,17 +91,19 @@ class RadioPalette(Palette):
button.show()
button.connect('clicked', self.__clicked_cb)
- self.button_box.pack_start(button, fill=False)
+ self.button_box.pack_start(button, False, False, 0)
button.palette_label = label
if not children:
self.__clicked_cb(button)
def update_button(self):
+
for i in self.button_box.get_children():
self.__clicked_cb(i)
def __clicked_cb(self, button):
+
if not button.get_active():
return
@@ -99,8 +112,10 @@ class RadioPalette(Palette):
if self.props.invoker is not None:
parent = self.props.invoker.parent
+
else:
parent = None
+
if not isinstance(parent, RadioMenuButton):
return