rendered paste body<?php
$menuwin = new gtkwindow();
$menuwin->set_icon_name('gtk-directory');
$menuwin->set_title('Logistor');
$menuwin->set_uposition(0,0);
$menuhbox = new gtkhbox();
$menuhbox->pack_start(GtkImage::new_from_stock(Gtk::STOCK_DIRECTORY,Gtk::ICON_SIZE_MENU),false,false);
//$menuwin->set_keep_above(true);
$screen = GdkScreen::get_default();
$width = $screen->get_width();
$menu = new gtkmenubar();
$menuhbox->pack_start($menu);
$menu_definition = array(
'Logistor' => array('Log out','Quit'),
'Search' => array('Close'),
'Tasks' => array('Search','Requests','Reports'),
'Maintinace' => array('Users', '<hr>', 'Backup Database','Server Stats')
);
setup_menu($menu, $menu_definition); // note 1
$menuwin->add($menuhbox);
$menuwin->set_size_request($width,-1);
//$menuwin->set_position(Gtk::WIN_POS_CENTER);
$menuwin->set_resizable(false);
$menuwin->set_decorated(false);
//$menuwin->set_border_width(0);
//$menuwin->set_skip_taskbar_hint(true);
//$menuwin->set_skip_pager_hint(true);
$menuwin->show_all();
$main = new gtkwindow();
$main->set_title('Logistor');
$text = new gtkentry();
$label = new gtklabel('search');
$labeltype = new gtklabel('Advanced >>');
$button = new gtkbutton('Go');
$hbox = new gtkhbox();
$vbox = new gtkvbox();
$vbox->pack_start($hbox,false,false);
$vbox->pack_start($labeltype);
$hbox->pack_start($label,false,false);
$hbox->pack_start($text);
$hbox->pack_start($button,false,false);
$main->add($vbox);
$main->set_icon_name('gtk-find');
$main->show_all();
$main->set_skip_taskbar_hint(true);
$main->set_skip_pager_hint(true);
Gtk::main();
// setup menu
function setup_menu($menubar, $menus) { // note 1
// $menubar = new GtkMenuBar();
// $vbox->pack_start($menubar, 0, 0);
foreach($menus as $toplevel => $sublevels) {
$menubar->append($top_menu = new GtkMenuItem($toplevel));
$menu = new GtkMenu();
$top_menu->set_submenu($menu);
foreach($sublevels as $submenu) {
if (is_array($submenu)) { // set up radio menus
$i=0;
$radio[0] = null;
foreach($submenu as $radio_item) {// note 3
$radio[$i] = new GtkRadioMenuItem($radio[0], $radio_item);
$radio[$i]->connect('toggled', "on_toggle");
$menu->append($radio[$i]);
++$i;
}
$radio[0]->set_active(1); // select the first item
} else {
if ($submenu=='<hr>') {
$menu->append(new GtkSeparatorMenuItem());
} else {
$menu->append($menu_item = new GtkMenuItem($submenu));
$menu_item->connect('activate', 'on_menu_select');
}
}
}
}
}
// process radio menu selection
function on_toggle($radio) { // note 3
$label = $radio->child->get_label();
$active = $radio->get_active();
echo("radio menu selected: $label\n");
}
// process menu item selection
function on_menu_select($menu_item) {
$item = $menu_item->child->get_label();
echo "menu selected: $item\n";
if ($item=='Quit') Gtk::main_quit();
global $main;
if ($item=='Close') $main->hide_all();
if ($item=='Search') $main->show_all();
}