I gues that the gnocl::fixed widget is almost complete now. There is one last annoying issue that needs resolving but I can't see how using the Gtk/Gdk libraries and thats adjusting the z-depth of the widgets. They remain layered in the order in which they are applied to the stack. Its possible to raise/lower the window that contains the widgets but there's no apparent way of manipulating the stack itself. What might be needed in a func to specifically 'twiddle' around with the stack.
Here's the script:
Here's the script:
# basic Tcl/Gnocl Script
#!/bin/sh \
exec tclsh "$0" "$@"
package require Gnocl
set but(1) 10
set but(2) 30
set but(3) 50
set but(4) 70
set but1 [gnocl::button -text "APPLE"]
set but2 [gnocl::button -text "BANANA"]
set but3 [gnocl::button -text "CHERRY"]
set but4 [gnocl::button -text "DAMSON"]
set lab [gnocl::label ]
set fx [gnocl::fixed ]
gnocl::window -child $fx -width 200 -height 130
$fx add $but1 -x $but(1) -y 10 -width 80 -height 40
$fx add $but2 -x $but(2) -y 30 -width 80 -height 40
$fx add $but3 -x $but(3) -y 50 -width 80 -height 40
$fx add $but4 -x $but(4) -y 70 -width 80 -height 40
$but1 configure -onClicked {
if {$but(1) == 10} {set but(1) 110} else {set but(1) 10}
$fx toTop %w
$fx move %w -x $but(1) -y 10 -width 80 -height 40
puts [$fx children ]
}
$but2 configure -onClicked {
if {$but(2) == 30} {set but(2) 110} else {set but(2) 30}
$fx toBottom %w
$fx move %w -x $but(2) -y 30 -width 80 -height 40
puts [$fx children ]
}
$but3 configure -onClicked {
if {$but(3) == 50} {set but(3) 110} else {set but(3) 50}
$fx lower %w
$fx move %w -x $but(3) -y 50 -width 80 -height 40
puts [$fx children ]
}
$but4 configure -onClicked {
if {$but(4) == 70} {set but(4) 110} else {set but(4) 70}
$fx move %w -x $but(4) -y 70 -width 80 -height 40
$fx raise %w
}
foreach item [$fx children ] {
#$fx move $item -x 0 -y 0
}
puts size=[$fx size $but3 ]
puts position=[$fx position $but3 ]
gnocl::mainLoop
Comments