Files
php-gtk-src/demos/components/buttonbox.php

105 lines
2.6 KiB
PHP

<?php
if( !class_exists('gtk')) {
die('Please load the php-gtk2 module in your php.ini' . "\r\n");
}
class ButtonBox extends GtkWindow
{
function __construct($parent = null)
{
parent::__construct();
if (@$GLOBALS['framework']) {
return;
}
if ($parent)
$this->set_screen($parent->get_screen());
else
$this->connect_simple('destroy', array('gtk', 'main_quit'));
$this->set_title(__CLASS__);
$this->set_position(Gtk::WIN_POS_CENTER);
$this->set_default_size(-1, 500);
$this->set_border_width(8);
$this->add($this->__create_box());
$this->show_all();
}
function __create_box()
{
$box = new GtkVBox();
$frame_horiz = new GtkFrame("Horizontal Button Boxes");
$box->pack_start($frame_horiz, true, true, 10);
$vbox = new GtkVBox();
$vbox->set_border_width(10);
$frame_horiz->add($vbox);
$vbox->pack_start($this->create_framedbox(true, "Spread", 40, Gtk::BUTTONBOX_SPREAD));
$vbox->pack_start($this->create_framedbox(true, "Edge" , 40, Gtk::BUTTONBOX_EDGE));
$vbox->pack_start($this->create_framedbox(true, "Start" , 40, Gtk::BUTTONBOX_START));
$vbox->pack_start($this->create_framedbox(true, "End" , 40, Gtk::BUTTONBOX_END));
$frame_vert = new GtkFrame("Vertical Button Boxes");
$box->pack_start($frame_vert, true, true, 10);
$hbox = new GtkHBox();
$hbox->set_border_width(10);
$frame_vert->add($hbox);
$hbox->pack_start($this->create_framedbox(false, "Spread" , 40, Gtk::BUTTONBOX_SPREAD));
$hbox->pack_start($this->create_framedbox(false, "Edge" , 40, Gtk::BUTTONBOX_EDGE));
$hbox->pack_start($this->create_framedbox(false, "Start" , 40, Gtk::BUTTONBOX_START));
$hbox->pack_start($this->create_framedbox(false, "End" , 40, Gtk::BUTTONBOX_END));
return $box;
}
function create_framedbox($horizontal, $title, $spacing, $layout)
{
$frame = new GtkFrame($title);
if ($horizontal) {
$box = new GtkHButtonBox();
} else {
$box = new GtkVButtonBox();
}
$box->set_border_width(5);
$box->set_layout($layout);
$box->set_spacing($spacing);
$frame->add($box);
$button = GtkButton::new_from_stock(Gtk::STOCK_OK);
$box->add($button);
$button = GtkButton::new_from_stock(Gtk::STOCK_CANCEL);
$box->add($button);
$button = GtkButton::new_from_stock(Gtk::STOCK_HELP);
$box->add($button);
return $frame;
}
}
$GLOBALS['class'] = 'ButtonBox';
$GLOBALS['description'] = 'This demo shows various button box configurations available. It also
uses stock buttons, and use of mnemonics for navigation.';
if (!@$GLOBALS['framework']) {
new ButtonBox();
Gtk::main();
}
?>