# File gtk/sample/testgtk/reparent.rb, line 36
  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