mirror of
https://github.com/php/php-gtk-src.git
synced 2026-03-24 17:22:10 +01:00
105 lines
2.6 KiB
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();
|
|
}
|
|
|
|
?>
|