class Gtk::ContextMenu
Public Class Methods
new(*context)
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 5 def initialize(*context) reset(context) end
Public Instance Methods
build!(widget, optional, menu = temporary_menu)
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 37 def build!(widget, optional, menu = temporary_menu) @contextmenu.each{ |param| label, cond, proc, icon = param if cond.call(*[optional, widget][0, (cond.arity == -1 ? 1 : cond.arity)]) if label label_text = defined?(label.call) ? label.call(*[optional, widget][0, (label.arity == -1 ? 1 : label.arity)]) : label if icon.is_a? Proc icon = icon.call(*[optional, widget][0, (icon.arity == -1 ? 1 : icon.arity)]) end if icon item = Gtk::ImageMenuItem.new(label_text) item.set_image(Gtk::WebIcon.new(icon, 16, 16)) else item = Gtk::MenuItem.new(label_text) end if proc item.ssc('activate') { |w| proc.call(*[optional, widget][0...proc.arity]) false } end menu.append(item) else menu.append(Gtk::MenuItem.new) end end } menu end
line() { |*a| ... }
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 17 def line if block_given? register(nil, lambda{ |*a| yield(*a) }){ |a,b| } else register(nil){ |a,b| } end end
Also aliased as: registline
popup(widget, optional)
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 61 def popup(widget, optional) menu = build!(widget, optional) if not menu.children.empty? menu.show_all.popup(nil, nil, 0, 0) end end
register(label, condition=ret_nth(), &callback)
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 12 def register(label, condition=ret_nth(), &callback) @contextmenu = @contextmenu.push([label, condition, callback]) end
Also aliased as: registmenu
reset(context)
click to toggle source
# File core/mui/gtk_contextmenu.rb, line 8 def reset(context) @contextmenu = context end