Index: tests/parameters.tcl =================================================================== diff -u -r51725aa434e18e9e3ce656897011c4f40c98d8dd -r7d7f47ce5d7b7c2d252af5d4499b50996f6475ff --- tests/parameters.tcl (.../parameters.tcl) (revision 51725aa434e18e9e3ce656897011c4f40c98d8dd) +++ tests/parameters.tcl (.../parameters.tcl) (revision 7d7f47ce5d7b7c2d252af5d4499b50996f6475ff) @@ -230,7 +230,7 @@ # # ::nx::Attribute -superclass ::xotcl::Slot { # {value_check once} -# initcmd +# defaultcmd # valuecmd # valuechangedcmd # arg @@ -1152,6 +1152,48 @@ ? {f1 metaclassarg ::Foo} {expected metaclass but got "::Foo" for parameter x} } +Test case slot-traces { + ::nx::Object create o { + :attribute a {set :defaultcmd { puts ...init; set _ 4 } } + :attribute b {set :valuecmd { puts ...get-value; set _ 44 } } + :attribute c {set :valuechangedcmd { puts ...changed; ::nsf::setvar $obj $var 999 }} + } + + ? {o a} 4 + ? {o b} 44 + ? {o c 5} 999 + + o copy o2 + + ? {o a} 4 + ? {o b} 44 + ? {o c 5} 999 + + ::nx::Class create C { + :attribute a {set :defaultcmd { puts ...init; set _ 4 } } + :attribute b {set :valuecmd { puts ...get-value; set _ 44 } } + :attribute c {set :valuechangedcmd { ::nsf::setvar $obj $var 999 }} + :create c1 + } + + ? {c1 a} 4 + ? {c1 b} 44 + ? {c1 c 5} 999 + + c1 copy c2 + + ? {c2 a} 4 + ? {c2 b} 44 + ? {c2 c 5} 999 + + C copy D + D create d1 + + ? {d1 a} 4 + ? {d1 b} 44 + ? {d1 c 5} 999 +} + ::nsf::configure checkarguments off Test case check-arguments-nocheck {