Import LinuxCNC source tree
This commit is contained in:
89
configs/apps/gladevcp/by-widget/radio.py
Normal file
89
configs/apps/gladevcp/by-widget/radio.py
Normal file
@@ -0,0 +1,89 @@
|
||||
'''
|
||||
gladevcp radiobutton example
|
||||
lifted from http://old.nabble.com/glade-and-radio-buttons.-td28793060.html
|
||||
|
||||
Michael Haberler 12/2010
|
||||
'''
|
||||
|
||||
import gi
|
||||
gi.require_version('Gtk', '3.0')
|
||||
from gi.repository import Gtk
|
||||
from gi.repository import Gdk
|
||||
from gi.repository import GObject
|
||||
from gi.repository import Pango
|
||||
|
||||
debug = 0
|
||||
|
||||
class HandlerClass:
|
||||
|
||||
def print_radiobutton_state(self, widget):
|
||||
if widget.get_active():
|
||||
state = 'active'
|
||||
if self.builder.get_object('showoutput_btn').get_active():
|
||||
self.set_color_label(widget.get_label())
|
||||
else:
|
||||
self.color_lbl.set_label('Unknown')
|
||||
|
||||
else:
|
||||
state = 'inactive'
|
||||
print(' %s button toggled - now %s ' % ( widget.get_label(), state))
|
||||
|
||||
def on_red_rbtn_toggled(self, widget, data=None):
|
||||
print('on_red_rbtn_toggled')
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_blue_rbtn_toggled(self, widget, data=None):
|
||||
print('on_blue_rbtn_toggled')
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_green_rbtn_toggled(self, widget, data=None):
|
||||
print('on_green_rbtn_toggled')
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_yellow_rbtn_toggled(self, widget, data=None):
|
||||
print('on_yellow_rbtn_toggled')
|
||||
self.print_radiobutton_state(widget)
|
||||
|
||||
def on_showoutput_btn_toggled(self, widget, data=None):
|
||||
if widget.get_active():
|
||||
self.color_lbl.set_sensitive(True)
|
||||
else:
|
||||
self.color_lbl.set_sensitive(False)
|
||||
|
||||
def set_color_label(self, color):
|
||||
self.color_lbl.set_label(color)
|
||||
mycolor = self.color_lookup[color.lower()]
|
||||
self.color_lbl.modify_fg(Gtk.StateFlags.NORMAL, mycolor)
|
||||
|
||||
def on_destroy(self,obj,data=None):
|
||||
print("on_destroy")
|
||||
self.halcomp.exit() # avoid lingering HAL component
|
||||
Gtk.main_quit()
|
||||
|
||||
def __init__(self, halcomp,builder,useropts):
|
||||
self.halcomp = halcomp
|
||||
self.builder = builder
|
||||
self.useropts = useropts
|
||||
|
||||
self.window = self.builder.get_object('window1')
|
||||
self.color_lbl = self.builder.get_object('color_lbl')
|
||||
|
||||
fontdesc = Pango.FontDescription("Sans 20")
|
||||
self.color_lbl.modify_font(fontdesc)
|
||||
|
||||
self.color_lookup = {
|
||||
'red': Gdk.color_parse('red'),
|
||||
'blue': Gdk.color_parse('blue'),
|
||||
'green': Gdk.color_parse('green'),
|
||||
'yellow': Gdk.color_parse('yellow')
|
||||
}
|
||||
self.on_showoutput_btn_toggled(self.builder.get_object('showoutput_btn'))
|
||||
|
||||
def get_handlers(halcomp,builder,useropts):
|
||||
|
||||
global debug
|
||||
for cmd in useropts:
|
||||
exec(cmd, globals())
|
||||
|
||||
return [HandlerClass(halcomp,builder,useropts)]
|
||||
|
||||
Reference in New Issue
Block a user