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):

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:

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ż.