Description
## project chooser dialog
# @param wid
# @returns none
# @notes Uses global array ::app to store restrieved values
proc conze_project_chooser_dialog { wid } {
set dir $::app(dirs,projects)
set vbox [gnocl::vBox -data 0]
set lst [gnocl::list -columns 2 -types "string string" -headersVisible 0 ]
$lst columnConfigure 1 -visible 0
$vbox add $lst -fill {1 1} -expand 1
# create list of available projects
foreach d [lsort [glob -type d -directory $dir *]] {
$lst add [list [list [file tail $d] $d]]
}
# to right align completely, set expand and fill to 0
set hbox [gnocl::hBox]
set b1 [gnocl::button -text Select \
-data "$lst $wid" \
-onClicked {
set ::app(project) [lindex [[lindex %d 0] getRow \
[[lindex %d 0] getSelection]] 1]
%t delete
$::app(statusBar) push "Project [file tail $::app(project)] selected"
conze_set_title
conze_open [lindex %d 1]
} ]
set b2 [gnocl::button -text Cancel -onClicked { %t delete } ]
$vbox add $hbox -expand 0 -fill 0 -align right
$hbox add $b1
$hbox add $b2
$lst configure -data $b1 -onButtonRelease { if { "%t" == "button2Press" } { %d clicked } }
# create custom dialog
set win [gnocl::window \
-visible 0 \
-title "Select Conze Project" \
-child $vbox \
-height 480 \
-width 320 \
-data $lst \
-typeHint dialog \
-modal 1]
$win centre
$win configure -visible 1
}
Comments