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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| <?php $window = new GtkWindow(); $window->connect_simple('destroy', array( 'Gtk', 'main_quit')); $window->set_size_request(400,150);
$window->add($vbox = new GtkVBox());
// display title
$title = new GtkLabel("Setup a pulldown calendar for date selection"); $title->modify_font(new PangoFontDescription("Times New Roman Italic 10")); $title->modify_fg(Gtk::STATE_NORMAL, GdkColor::parse("#0000ff")); $title->set_size_request(-1, 40); $title->set_justify(Gtk::JUSTIFY_CENTER); $alignment = new GtkAlignment(0.5, 0, 0, 0); $alignment->add($title); $vbox->pack_start($alignment, 0, 0); $vbox->pack_start(new GtkLabel(), 0, 0);
$vbox->pack_start($hbox=new GtkHBox(), 0, 0); $hbox->pack_start(new GtkLabel('Select: '), 0, 0);
// Setup combobox
$combobox = new ComboBox1($window); $hbox->pack_start($combobox, 0, 0); $hbox->pack_start(new GtkLabel(' '), 0, 0); $hbox->pack_start($button = new GtkButton('Submit'), 0, 0); $button->set_size_request(60, 24); $button->connect('clicked', "on_submit_button", $combobox);
$window->show_all(); Gtk::main();
class ComboBox1 extends GtkHBox {
function __construct($parent_window) { parent::__construct(); $this->parent_window = $parent_window; $this->entry = new GtkEntry(); $this->pack_start($this->entry, 0, 0); $this->pack_start($this->button = new GtkButton('V'), 0, 0);
$this->button->connect('clicked', array(&$this, 'on_button')); $this->entry->connect('key-press-event', array(&$this, 'on_key_or_button_press')); $this->entry->connect('button-press-event', array(&$this, 'on_key_or_button_press')); }
function on_key_or_button_press($widget, $event) { $this->button->clicked(); }
function on_button($button) { // process button click
$win_pos=$this->parent_window->get_position(); $x_field_pos=$this->entry->allocation->x; $y_field_pos=$this->entry->allocation->y; $x_shift=4; $y_shift=23+$this->entry->allocation->height;
$x_win=$win_pos[0]+$x_field_pos+$x_shift; $y_win=$win_pos[1]+$y_field_pos+$y_shift;
$this->dialog = new GtkDialog(null, null, Gtk::DIALOG_MODAL|Gtk::DIALOG_NO_SEPARATOR); $this->dialog->set_decorated(false); $this->dialog->set_uposition($x_win,$y_win); $top_area = $this->dialog->vbox;
$this->calendar = new GtkCalendar(); // note 1
$this->dialog->vbox->pack_start($this->calendar, 0, 0);
$this->calendar->connect('day-selected', array(&$this, 'on_select'), 'day-selected'); $this->calendar->connect('month-changed', array(&$this, 'on_select'), 'month-changed'); $this->dialog->connect('button-press-event', array(&$this, 'on_buttonpress'));
|
August 06, 2007 1:01am
I'm a PHP newbie. I copied & pasted the above code in dater2.php & when I run it, this msg appeared:
"Fatal error: Class 'GtkWindow' not found in C:\xampp\htdocs\coe\includes\dater2.php on line 2"
What do I do?
August 06, 2007 9:03am
Guess you're looking for PHP sample codes. My site is entirely focused on PHP-GTK2, which is an extension of PHP. PHP is often used for web applications, while PHP-GTK2 is used to develop desktop applications using PHP. If you're still keen to explore PHP-GTK2, you have to install the application first. You can find the setup instructions for both linux and window in the home page of this site.