A short tutorial showing how to build a submenu in GtkMenubar. You can refer to the complete GtkMenubar tutorial for full explanations.
To build a submenu, first create (see note numbers on source code):
GtkMenu and object tree,
see tutorial about this),GtkMenuItem supporting the submenu
($view_zoom_item),GtkMenu with associated menu items,set_submenu() method.Notes :
menubar:
...
View
Line
Border
Toolbar
---
Zoom
50
100
150
---
Scrollbar
0 - $window (GtkWindow) -> add()
1 - $menubar (GtkMenubar) -> append() or add()
2 - $view_item (GtkMenuItem) -> set_submenu($view_menu)
3 - $view_menu (GtkMenu) -> append() or add()
4 - $view_zoom_item (GtkMenuItem)
5 - $zoom_menu (GtkMenu) -> append()
6 - $view_zoom_50_item (GtkMenuItem)
6 - $view_zoom_100_item (GtkMenuItem)
6 - $view_zoom_150_item (GtkMenuItem)
Here is the relevant part of the source code ; the full source is available as an attachment.
<?php
$menubar = new GtkMenuBar(); // 1 - note 1
$menubar->append($view_item = new GtkMenuItem('_View')); // 2
$view_item->set_submenu($view_menu = new GtkMenu()); // 3
$view_menu->append($view_line_item = new GtkMenuItem('_Line')); // 4
$view_menu->append($view_border_item = new GtkMenuItem('_Border')); // 4
$view_menu->append($view_toolbar_item = new GtkMenuItem('_Toolbar')); // 4
$view_menu->append(new GtkSeparatorMenuItem()); // 4
$view_menu->append($view_zoom_item = new GtkMenuItem('_Zoom')); // 4 - note 2
$view_zoom_item->set_submenu($zoom_menu = new GtkMenu()); // 5 - note 3, 4
$zoom_menu->append($view_zoom_50_item = new GtkMenuItem('_50')); // 6
$zoom_menu->append($view_zoom_100_item = new GtkMenuItem('_100')); // 6
$zoom_menu->append($view_zoom_150_item = new GtkMenuItem('15_0')); // 6
$view_menu->append(new GtkSeparatorMenuItem());
$view_menu->append($radio3 = new GtkRadioMenuItem(null, 'Scrollbar'));
?>| Attachment | Size |
|---|---|
| gtk-menubar-overview-submenu.php_.txt | 3.61 KB |
Recent comments
47 weeks 3 days ago
48 weeks 3 days ago
48 weeks 6 days ago
51 weeks 3 days ago
1 year 19 weeks ago
1 year 23 weeks ago
1 year 27 weeks ago
1 year 27 weeks ago
1 year 27 weeks ago
1 year 44 weeks ago