Wanted to fix this one for some time. Basically, this allows multiple file filters to be set for the dialog. The sample script explains all.
15mins later....
Urgh, something always goes wrong. It looks like the destruction of the dialog window also results in the destuction of the file filters object too! I'll rework the code so that the filters are maintained as a list on the Tcl side; something along the lines of:
set filters {Filter1Name {*.A *.B *.C} Filter2Name {*.D *.E *.F} }
15mins later....
Ok, rework the code and all now appears ok. In fact the core is much slimmer now as the code overhead for making the gnocl::fileFilter command was too much. So, the following script works. I'll upload a nightly build today.
set myFilters {Source {*.c *.tcl} Text {*.txt *.odt} Graphics {*.png *.jpg *.tif} }
gnocl::window -child [gnocl::button -text click-me -onClicked {
gnocl::fileChooserDialog \
-fileFilters $myFilters \
-currentFolder [pwd] \
-title "Open Jiumoluo Project File -1"
}]
# basic Tcl/Gnocl Script
#!/bin/sh \
exec tclsh "$0" "$@"
package require Gnocl
set ff1 [gnocl::fileFilter -name "Source Code" -pattern {*.tcl *.c} ]
set ff2 [gnocl::fileFilter -name "Text Files" -pattern {*.odt *.doc *.rtf *.abw} ]
set ff3 [gnocl::fileFilter -name "Image Files" -pattern {*.png *.jpg *.bmp *.tif} ]
gnocl::fileChooserDialog \
-fileFilters [list $ff1 $ff2 $ff3]
-currentFolder [pwd] \
-title "Open Jiumoluo Project File"
15mins later....
Urgh, something always goes wrong. It looks like the destruction of the dialog window also results in the destuction of the file filters object too! I'll rework the code so that the filters are maintained as a list on the Tcl side; something along the lines of:
set filters {Filter1Name {*.A *.B *.C} Filter2Name {*.D *.E *.F} }
15mins later....
Ok, rework the code and all now appears ok. In fact the core is much slimmer now as the code overhead for making the gnocl::fileFilter command was too much. So, the following script works. I'll upload a nightly build today.
set myFilters {Source {*.c *.tcl} Text {*.txt *.odt} Graphics {*.png *.jpg *.tif} }
gnocl::window -child [gnocl::button -text click-me -onClicked {
gnocl::fileChooserDialog \
-fileFilters $myFilters \
-currentFolder [pwd] \
-title "Open Jiumoluo Project File -1"
}]
Comments