::namespace eval ::qw::canvas {}; ::namespace eval ::qw::canvasutils {}; ::proc ::qw::canvasutils::canvas_dump_options {sargs} { ::set Item [::sargs::get $sargs .item]; ::set Canvas [::sargs::get $sargs .canvas]; ::if {$Item eq ""} { ::set Tag [::sargs::get $sargs .tag]; ::if {$Tag eq ""} { ::set Tag all; } ::if {$Canvas eq ""} { ::qw::bug 314120091120142908 "[::namespace current]::[::qw::procname] - no .canvas argument."; } ::foreach Item [$Canvas find $Tag] { canvas_dump_options $sargs .item $Item; } ::return; } ::puts "$Item [$Canvas type $Item] --------------------------------"; ::set Options [$Canvas itemconfigure $Item]; ::set IS ""; # argvName, dbName, dbClass, defValue, and current value. ::sargs::var::set IS .item $Item; ::sargs::var::set IS .type [$Canvas type $Item]; ::foreach Option $Options { ::set Field .[::string map [::list "-" {}] [::lindex $Option 0]]; ::set Value [::lindex $Option 4]; ::sargs::var::set IS $Field $Value; ::continue; ::sargs::var::set Struct .name [::lindex $Option 0]; #::sargs::var::set Struct .database_name [::lindex $Option 1]; #::sargs::var::set Struct .database_value [::lindex $Option 2]; ::sargs::var::set Struct .default [::lindex $Option 3]; ::sargs::var::set Struct .value [::lindex $Option 4]; } ::puts [::sargs::format .structure $IS]; } ::proc ::qw::canvasutils::dump_contents {sargs} { ::set Canvas [::sargs::get $s_args .canvas]; ::if {$Canvas eq ""} { ::qw::bug 314120091118093143 "[::namespace current]::[::qw::procname] - no .canvas argument."; } ::set All [$Canvas find all]; ::foreach Item $All { # IS==ItemStructure; ::set IS ""; ::set Type [$Canvas type $Item]; ::sargs::var::set IS .item $Item; ::sargs::var::set IS .type $Type; ::sargs::var::set IS .coords [$Canvas coords $Item]; ::set OptionList { fill activefill disabledfill state tags width } # ::sargs::var::set IS .coords [$Canvas coords $Item]; ::set List ""; ::switch -- $Type { arc { ::set List { dash activedash disableddash dashoffset outline activeoutline disabledoutline offset outlinestipple stipple activestipple disabledstipple activeoutlinestipple disabledoutlinestipple extent start style activewidth disabledwidth }; } bitmap { ::set List { anchor background activebackground extent start style }; } image { } line { ::set List { dash activedash disableddash dashoffset stipple activestipple disabledstipple offset arrow arrowshape capstyle joinstyle smooth splinesteps activewidth disabledwidth }; } oval { ::set List { dash activedash disableddash dashoffset outline activeoutline disabledoutline offset outlinestipple stipple activestipple disabledstipple activeoutlinestipple disabledoutlinestipple activewidth disabledwidth }; } polygon { ::set List { dash activedash disableddash dashoffset outline activeoutline disabledoutline offset outlinestipple stipple activestipple disabledstipple activeoutlinestipple disabledoutlinestipple joinstyle smooth splinesteps activewidth disabledwidth }; } rectangle { } text { ::set List { anchor font justify text width }; ::if {$::tcl_version >= 8.5} { ::lappend List underline; } } window { } default { ::qw::throw 314120091119100339 "Encountered unknown canvas item type \"$Type\"."; } } ::set OptionList [::concat $OptionList $List]; ::foreach Option $OptionList { ::sargs::var::set IS .$Option [$Canvas itemcget $Item -$Option]; } ::puts "[::sargs::format .structure [::sargs /$Item $IS]]"; } }