PHP-GTK2 Newsletter
PHP-GTK2 Tips & Techniques
FREE Newsletter
by kksou
Sample Code 91: How to display a popup menu for GtkNotebook tab - Part 1? |
|
Written by kksou
|
|
Monday, 13 November 2006 |
|
Problem You want to display a popup menu when user right-click on the tab of GtkNotebook as shown below:

Solution
Sample Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| <?php $window = new GtkWindow(); $window->set_size_request(400, 240); $window->connect_simple('destroy', array('Gtk','main_quit')); $window->add($vbox = new GtkVBox());
// setup notebook
$notebook = new GtkNotebook(); $notebook->popup_enable(); // note 1
$vbox->pack_start($notebook);
// add two tabs of GtkLabel
add_new_tab($notebook, new GtkLabel('Notebook 1'), 'Label #1'); add_new_tab($notebook, new GtkLabel('Notebook 2'), 'Label #2');
// add a third tab of GtkTextView
$buffer = new GtkTextBuffer(); $view = new GtkTextView(); $view->set_buffer($buffer); $view->set_wrap_mode(Gtk::WRAP_WORD); add_new_tab($notebook, $view, 'Tab 3 - TextView');
$window->show_all(); Gtk::main();
// add new tab
function add_new_tab($notebook, $widget, $tab_label) { $eventbox = new GtkEventBox(); $label = new GtkLabel($tab_label); $eventbox->add($label); $label->show(); $eventbox->connect('button-press-event', 'on_tab', $tab_label);
|
- Note that this is only 70% of the sample code. You have to be a registered member to see the entire sample code. Please login or register.
- Registration is free and immediate.
- Have some doubt about the registration? Please read this forum article.
Explanation We make use of the code in How to know which tab of GtkNotebook is being clicked on? to setup a tabbed GtkNotebook.
What's new here:
- Enable popup.
- Set the menu label.
- Align the menu label to the left. Try commenting this line, and you will know what I mean.
- Only process left mouse click.
Related Links
User reviews There are no user reviews yet. Note: You have to be a registered member to leave a comment. Free registration here. |
|