V. Annexes▲
V-A. Code objet▲
Comme dit plus haut, voici le même script en pseudo objet PHP 4. Nous l'avons mis en annexe pour ne pas perturber la lecture.
Nous vous le proposons car il existe une différence essentielle entre le code procedural et l'objet.
Nous voyons que nous n'utilisons plus la méthode connect(), mais connect_object() qui prend deux paramètres. Le premier est le rappel (comme dans connect()), mais le deuxième est un tableau contenant le widget (&$this == GtkWindow) et la fonction associée.
<?php
if (!class_exists("gtk")) {
if (strtoupper(substr(PHP_OS,0,3) == "WIN")) { dl("php_gtk.dll"); }
else { dl("php_gtk.so"); }
}
class dvp_obj {
var $window;
var $button;
var $tt;
//Constructeur
function dvp_obj() {
//creation de la GtkWindow
$this->window = &new GtkWindow();
$this->window->connect_object("destroy",array(&$this,"destroy"));
$this->window->set_border_width(10);
//creation du GtkButton
$this->button = &new GtkButton("Dvp");
$this->button->connect_object("clicked",array(&$this,"hello_dvp"));
$this->window->add($this->button);
//creation du GtkTooltips
$this->tt = &new GtkTooltips();
$this->tt->set_delay(200);
$this->tt->set_tip($this->button,"Donnez votre avis sur le site de dvp","");
$this->tt->enable();
//affichage de la fenetre
$this->window->show_all();
}
//fonction destroy
function destroy() {
Gtk::main_quit();
}
//fonction hello_dvp
function hello_dvp() {
print "Dvp, c'est drolement bien!\n";
$this->window->destroy();
}
}
$win = new dvp_obj();
Gtk::main();
?>V-B. Quelques liens sur PHP-GTK▲
V-C. Remerciements▲
- BWP-Necromance pour son aide, sa patience et sa disponibilité ;
- Yogui pour sa patience, sa relecture ainsi que son aide à la mise en forme de cet article ;
- Titoumimi pour la filiation de Yiannis.

