def attach_widgets(text_view)
buffer = text_view.buffer;
iter = buffer.start_iter
i = 0;
while find_anchor(iter) do
anchor = iter.child_anchor
if i == 0
widget = Gtk::Button.new("Click Me")
widget.signal_connect('clicked') { |button|
if @@nest_window and ! @@nest_window.destroyed?
@@nest_window.present
break
end
buffer = Gtk::TextBuffer.new
iter = buffer.start_iter
buffer.insert(iter, "This buffer is shared by a set of nested text views.\n Nested view:\n")
anchor = buffer.create_child_anchor(iter)
buffer.insert(iter, "\nDon't do this in real applications, please.\n")
view = Gtk::TextView.new(buffer)
recursive_attach_view(0, view, anchor)
@@nest_window = Gtk::Window.new(Gtk::Window::TOPLEVEL)
sw = Gtk::ScrolledWindow.new(nil, nil)
sw.set_policy(Gtk::POLICY_AUTOMATIC,
Gtk::POLICY_AUTOMATIC)
@@nest_window.add(sw)
sw.add(view)
@@nest_window.set_default_size(300, 400)
@@nest_window.show_all
}
elsif i == 1
menu = Gtk::Menu.new
widget = Gtk::OptionMenu.new
menu_item = Gtk::MenuItem.new("Option 1")
menu.append(menu_item)
menu_item = Gtk::MenuItem.new("Option 2")
menu.append(menu_item)
menu_item = Gtk::MenuItem.new("Option 3")
menu.append(menu_item)
widget.menu = menu
elsif i == 2
widget = Gtk::HScale.new
widget.set_range(0, 100)
widget.set_size_request(70, -1)
elsif i == 3
filename = Demo.find_file("floppybuddy.gif")
widget = Gtk::Image.new(filename)
elsif i == 4
widget = Gtk::Entry.new
else
end
text_view.add_child_at_anchor(widget,
anchor)
widget.show_all
i += 1
end
end