def initialize
super("reparent")
vbox = Gtk::VBox.new(false, 0)
add(vbox)
box2 = Gtk::HBox.new(false, 5)
box2.set_border_width(10)
vbox.pack_start(box2, true, true, 0)
label = Gtk::Label.new("Hello World")
frame = Gtk::Frame.new("Frame 1")
box2.pack_start(frame, true, true, 0)
framebox1 = Gtk::VBox.new(false, 5)
framebox1.border_width = 5
frame.add(framebox1)
button = Gtk::Button.new("switch")
button.signal_connect("clicked"){
label.reparent(framebox1)
}
framebox1.pack_start(button, false, true, 0)
framebox1.add(label)
label.signal_connect("parent_set"){ |child, old_parent|
puts "set_parent for \"#{child.class}\":"
puts " new parent: \"#{if child.parent then child.parent.class else 'NULL' end}\","
puts " old parent: \"#{if old_parent then old_parent.class else 'NULL' end}\","
puts " data: 42\n"
}
frame = Gtk::Frame.new("Frame 2")
box2.pack_start(frame, true, true, 0)
framebox2 = Gtk::VBox.new(false, 5)
framebox2.border_width = 5
frame.add(framebox2)
button = Gtk::Button.new("switch")
button.signal_connect("clicked"){
label.reparent(framebox2)
}
framebox2.pack_start(button, false, true, 0)
vbox.pack_start(Gtk::HSeparator.new, false, true)
button = Gtk::Button.new("close")
button.signal_connect("clicked"){destroy}
vbox.pack_start(button, false, true, 10)
button.can_default = true
button.grab_default
end