popup-context-menu
This signal is emitted when the user right-clicked the toolbar or used the key bound to display the popup menu.
You should use this if you want to display a popup menu for the toolbar. If the signal was triggered by the keyboard, button is -1.
The signal is emitted only if the right-click happens on the toolbar, not on a tool item.
Example 125. Adding a popup menu to the toolbar
<?php //Popup menu for the toolbar //You need to make the window wider to get the context menu //The context menu is not shown when right-clicking on the items //Create a new toolbar widget $tb = new GtkToolbar(); //Let the toolbar take the space it needs $tb->set_show_arrow(false); //Add some dummy symbols foreach (array(Gtk::STOCK_NEW, Gtk::STOCK_OPEN, Gtk::STOCK_SAVE) as $id) { $item = GtkToolButton::new_from_stock($id); $tb->insert($item, -1); } //Create the menu $menu = new GtkMenu(); $styles = array( array('_Icons only', Gtk::TOOLBAR_ICONS), array('_Text only', Gtk::TOOLBAR_TEXT), array('Icons _and text', Gtk::TOOLBAR_BOTH) ); foreach ($styles as &$style) { $item = new GtkMenuItem($style[0], true); $item->connect_simple('activate', array($tb, 'set_style'), $style[1]); $menu->append($item); } //Connect the callback and pass $menu as optional parameter $tb->connect('popup-context-menu', 'onPopup', $menu); function onPopup($tb, $x, $y, $button, $menu) { //set all items to visible $menu->show_all(); $menu->popup(); } //Standard window that has the toolbar as only child $window = new GtkWindow(); $window->add($tb); $window->connect_simple('destroy', array('Gtk', 'main_quit')); $window->show_all(); Gtk::main(); ?> |
Callback function
bool callback(GtkToolbar toolbar, int x, int y, int button);