def create
add_item("Change node", ?n, &method(:change_node))
add_separator
add_item("Cut node", ?X, &method(:cut_node))
add_item("Copy node", ?C, &method(:copy_node))
add_item("Paste node (appending)", ?A, &method(:paste_node_appending))
add_item("Paste node (inserting before)", ?I,
&method(:paste_node_inserting_before))
add_separator
add_item("Append new node", ?a, &method(:append_new_node))
add_item("Insert new node before", ?i, &method(:insert_new_node))
add_separator
add_item("Collapse/Expand node (recursively)", ?e,
&method(:collapse_expand))
menu.show_all
signal_connect(:button_press_event) do |widget, event|
if event.kind_of? Gdk::EventButton and event.button == 3
menu.popup(nil, nil, event.button, event.time)
end
end
signal_connect(:popup_menu) do
menu.popup(nil, nil, 0, Gdk::Event::CURRENT_TIME)
end
end