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.