Checkboxy w NGCGUI

Zmiany robimy w pliku: usr/lib/tcltk/linuxcnc/ngcgui.tcl

Najpierw zmiana opcjonalna – wyłączenie numerków przed ptaszkami i przyciągnięcie ptaszków do lewej:

Szukamy (w okolicy linii 1574, dla wersji 2.7.x to będzie w okolicy linii 1610):

set l [label $fdata.[qid] -text [format %#2d $onum] -anchor e \
 -takefocus 0 -relief ridge -width 2]
pack $l -side left -fill x -expand 0

i wstawiamy w to w ifa – czyli zastępujemy tym:

if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] == -1} {
 set l [label $fdata.[qid] -text [format %#2d $onum] -anchor e \
 -takefocus 0 -relief ridge -width 2]
 pack $l -side left -fill x -expand 0
}

A teraz zmiana obowiązkowa – czyli podmiana pola tekstowego na ptaszka:

Wyszukujemy tego kawałka w okolicy linii 1588 (dla 2.7.x w okolicy 1624):

set e [entry $fdata.[qid] \
-width $ew \
-font $::ngc(any,font) \
-textvariable $tvar\
-validate all\
-validatecommand \
[list ::ngcgui::validateNumber $hdl $tvar %W %s %P]]

i też dodajemy ifa – ale z generowaniem ptaszka – czyli zamieniamy na cos takiego:

if {[string first "<> " $::ngc($hdl,arg,comment,$num02)] != -1} {
set ::ngc($hdl,arg,comment,$num02) [string range $::ngc($hdl,arg,comment,$num02) 3 1000]
set e [checkbutton $fdata.[qid] -anchor w -font $::ngc(any,font) \
-variable ::ngc($hdl,arg,value,$num)]
} else {
set e [entry $fdata.[qid] \
-width $ew \
-font $::ngc(any,font) \
-textvariable $tvar\
-validate all\
-validatecommand \
[list ::ngcgui::validateNumber $hdl $tvar %W %s %P]]
}

 

I już.