------------------------------------------------------------------- --# GtkMenuButton ------------------------------------------------------------------- include GtkEngine.e constant docs = `MenuButton Pops up (or down, right or left) Click the arrow button. ` requires("3.6","GtkMenuButton") constant win = create(GtkWindow,{ {"default size",200,100}, {"border width",5}, {"position",GTK_WIN_POS_CENTER}, {"signal","destroy","Quit"}}) constant group = create(GtkAccelGroup) set(win,"add accel group",group) constant panel = create(GtkBox,VERTICAL) add(win,panel) constant lbl = create(GtkLabel,{{"markup",docs}}) add(panel,lbl) constant btn1 = create(GtkButton,"gtk-quit","Quit"), mbtn = create(GtkMenuButton), box = create(GtkButtonBox) add(box,btn1) pack_end(box,mbtn) set(box,"child non_homogeneous",mbtn) pack(panel,-box) constant menu = create(GtkMenu), fopen = create(GtkMenuItem,"gtk-open"), fclose = create(GtkMenuItem,"gtk-close"), fsep = create(GtkSeparatorMenuItem), fexit = create(GtkMenuItem,"gtk-quit","Quit",0,{group,"Q"}), fhelp = create(GtkMenuItem,"gtk-about","Help") set(fopen,"sensitive",FALSE) set(fclose,"sensitive",FALSE) set(menu,"append",{fopen,fclose,fhelp,fsep,fexit}) set(menu,"title","Popup menu") show_all(menu) set(mbtn,{ {"tooltip text","Menu Button"}, {"direction",GTK_ARROW_RIGHT}, {"size request",30,30}, {"relief",GTK_RELIEF_NONE}, -- try other GTK_RELIEF_ enums {"popup",menu}}) show_all(win) main() ----------------------- global function Help() ----------------------- Info(,"About", "The GtkMenuButton", `A widget used to display a popup when clicked on. This popup can be provided either as a GtkMenu, a GtkPopover or an abstract GMenuModel. The GtkMenuButton widget can hold any valid child widget. That is, it can hold almost any other standard GtkWidget. The most commonly used child is GtkImage. If no widget is explicitely added to the GtkMenuButton, a GtkImage is automatically created, using an arrow image oriented according to "direction" or the generic "view-context-menu" icon if the direction is not set. The positioning of the popup is determined by the "direction" property of the menu button.`) return 1 end function