Skip to content

Commit 8bcef84

Browse files
authored
Merge pull request #2798 from phillc54/phillc54/pncconf
pncconf: use CSS for coloring stepscale and encoderscale widgets
2 parents a94f732 + 769d1d7 commit 8bcef84

6 files changed

Lines changed: 25 additions & 8 deletions

File tree

src/emc/usr_intf/pncconf/a_motor.glade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2148,6 +2148,7 @@
21482148
</child>
21492149
<child>
21502150
<object class="GtkSpinButton" id="aencoderscale">
2151+
<property name="name">aencoderscale</property>
21512152
<property name="visible">True</property>
21522153
<property name="can_focus">True</property>
21532154
<property name="invisible_char">●</property>
@@ -2176,6 +2177,7 @@
21762177
</child>
21772178
<child>
21782179
<object class="GtkSpinButton" id="astepscale">
2180+
<property name="name">astepscale</property>
21792181
<property name="visible">True</property>
21802182
<property name="can_focus">True</property>
21812183
<property name="invisible_char">●</property>

src/emc/usr_intf/pncconf/pages.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,10 +205,6 @@ def initialize(self):
205205
self.a.fill_pintype_model()
206206

207207
self.intro_prepare()
208-
# get the original background color, must realize the widget first to get the true color.
209-
# we use this later to high light missing axis info
210-
self.w.xencoderscale.realize()
211-
self.a.origbg = self.w.xencoderscale.get_style_context().get_property("background-color", Gtk.StateFlags.NORMAL)
212208
# TODO TODO cannot set size correctly, try in pncconf.py L289
213209
# self.w.window1.set_geometry_hints(min_width=750)
214210
self.w.button_save.set_visible(False)

src/emc/usr_intf/pncconf/pncconf.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,13 @@ def __init__(self, dbgstate=0):
273273
self.widgets.createshortcut.set_active(short)
274274
self.widgets.advancedconfig.set_active(show_pages)
275275

276+
# setup stylesheet for widget coloring
277+
# we use this later to highlight missing axis and encoder info
278+
self.css_provider = Gtk.CssProvider()
279+
context = Gtk.StyleContext()
280+
screen = Gdk.Screen.get_default()
281+
context.add_provider_for_screen(screen, self.css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
282+
276283
tempfile = os.path.join(self._p.DISTDIR, "configurable_options/ladder/TEMP.clp")
277284
if os.path.exists(tempfile):
278285
os.remove(tempfile)
@@ -4899,16 +4906,22 @@ def motor_encoder_sanity_check(self,widgets,axis):
48994906
if self.findsignal(axis+"-encoder-a"): encoder = True
49004907
if self.findsignal(axis+"-resolver"): resolver = True
49014908
if self.findsignal(axis+"-pot-outpot"): pot = True
4909+
css = ""
49024910
if encoder or resolver:
49034911
if self.widgets[axis+"encoderscale"].get_value() < 1:
4904-
self.widgets[axis+"encoderscale"].override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA.from_color(Gdk.color_parse('red')))
4912+
css += f'#{axis}encoderscale'
49054913
dbg('encoder resolver scale bad %f'%self.widgets[axis+"encoderscale"].get_value())
49064914
bad = True
49074915
if stepdrive:
49084916
if self.widgets[axis+"stepscale"].get_value() < 1:
4909-
self.widgets[axis+"stepscale"].override_background_color(Gtk.StateFlags.NORMAL, Gdk.RGBA.from_color(Gdk.color_parse('red')))
4917+
if css:
4918+
css += ", "
4919+
css += f'#{axis}stepscale'
49104920
dbg('step scale bad')
49114921
bad = True
4922+
if css:
4923+
css += '{background-color: red}'
4924+
self.css_provider.load_from_data(css.encode())
49124925
if not (encoder or resolver) and not stepdrive and not axis == "s":
49134926
dbg('encoder %s resolver %s stepper %s axis %s'%(encoder,resolver,stepdrive,axis))
49144927
bad = True
@@ -4925,8 +4938,8 @@ def motor_encoder_sanity_check(self,widgets,axis):
49254938
self.widgets[axis + "axistest"].set_sensitive(0)
49264939
else:
49274940
dbg('motor %s_encoder sanity check - good'%axis)
4928-
self.widgets[axis+"encoderscale"].override_background_color(Gtk.StateFlags.NORMAL, self.origbg)
4929-
self.widgets[axis+"stepscale"].override_background_color(Gtk.StateFlags.NORMAL, self.origbg)
4941+
css = f'#{axis}stepscale, #{axis}encoderscale {{background-color: @theme_bg_color;}}'
4942+
self.css_provider.load_from_data(css.encode())
49304943
self.p.set_buttons_sensitive(1,1)
49314944
self.widgets[axis + "axistune"].set_sensitive(1)
49324945
self.widgets[axis + "axistest"].set_sensitive(1)

src/emc/usr_intf/pncconf/x_motor.glade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2248,6 +2248,7 @@
22482248
</child>
22492249
<child>
22502250
<object class="GtkSpinButton" id="xencoderscale">
2251+
<property name="name">xencoderscale</property>
22512252
<property name="visible">True</property>
22522253
<property name="can_focus">True</property>
22532254
<property name="invisible_char">●</property>
@@ -2278,6 +2279,7 @@
22782279
</child>
22792280
<child>
22802281
<object class="GtkSpinButton" id="xstepscale">
2282+
<property name="name">xstepscale</property>
22812283
<property name="visible">True</property>
22822284
<property name="can_focus">True</property>
22832285
<property name="invisible_char">●</property>

src/emc/usr_intf/pncconf/y_motor.glade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,6 +2242,7 @@
22422242
</child>
22432243
<child>
22442244
<object class="GtkSpinButton" id="yencoderscale">
2245+
<property name="name">yencoderscale</property>
22452246
<property name="visible">True</property>
22462247
<property name="can_focus">True</property>
22472248
<property name="invisible_char">●</property>
@@ -2272,6 +2273,7 @@
22722273
</child>
22732274
<child>
22742275
<object class="GtkSpinButton" id="ystepscale">
2276+
<property name="name">ystepscale</property>
22752277
<property name="visible">True</property>
22762278
<property name="can_focus">True</property>
22772279
<property name="invisible_char">●</property>

src/emc/usr_intf/pncconf/z_motor.glade

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2242,6 +2242,7 @@
22422242
</child>
22432243
<child>
22442244
<object class="GtkSpinButton" id="zencoderscale">
2245+
<property name="name">zencoderscale</property>
22452246
<property name="visible">True</property>
22462247
<property name="can_focus">True</property>
22472248
<property name="invisible_char">●</property>
@@ -2272,6 +2273,7 @@
22722273
</child>
22732274
<child>
22742275
<object class="GtkSpinButton" id="zstepscale">
2276+
<property name="name">zstepscale</property>
22752277
<property name="visible">True</property>
22762278
<property name="can_focus">True</property>
22772279
<property name="invisible_char">●</property>

0 commit comments

Comments
 (0)