36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
#
|
|
# Python GUI - Radio buttons - Gtk
|
|
#
|
|
|
|
from gi.repository import Gtk
|
|
from GUI.GRadioButtons import RadioButton as GRadioButton
|
|
|
|
class RadioButton(GRadioButton):
|
|
|
|
def __init__(self, title = "New Control", **kwds):
|
|
gtk_radiobutton = Gtk.RadioButton(None, title)
|
|
gtk_radiobutton.show()
|
|
self._gtk_connect(gtk_radiobutton, 'toggled', self._gtk_toggled_signal)
|
|
GRadioButton.__init__(self, _gtk_outer = gtk_radiobutton, **kwds)
|
|
|
|
def _value_changed(self):
|
|
group = self._group
|
|
if group:
|
|
if self._value == group._value:
|
|
self._turn_on()
|
|
else:
|
|
group._turn_all_off()
|
|
|
|
def _turn_on(self):
|
|
self._gtk_outer_widget.set_active(1)
|
|
|
|
def _is_on(self):
|
|
return self._gtk_outer_widget.get_active()
|
|
|
|
def _gtk_toggled_signal(self):
|
|
if self._is_on():
|
|
group = self._group
|
|
if group and group._value <> self._value:
|
|
group._value = self._value
|
|
group.do_action()
|