mainwindow.glade
secondwindow.glade
napisałem dwie klasy
<?php class mainwindow extends GladeXML{ public function __construct($gladefile){ parent::__construct($gladefile); } public function __get($property){ parent::get_widget($property); } public function onOpen(){ new secondwindow('secondwindow.glade'); } } ?>
i druga klasa
<?php class secondwindow extends GladeXML{ public function __construct($gladefile){ parent::__construct($gladefile); } public function __get($property){ parent::get_widget($property); } public function onClose(){ include_once('secondwindow.php'); $this->window2->destroy(); } } ?>
gdzie window2 to obiekt GtkWindow
wszystko startuje ze skruptu
<?php $aplication = new mainwindow('mainwindow.glade'); Gtk::Main(); ?>
takie działanie powinno zamknąć drugie okno p kliknięciu na btnClose a zamyka oba i nie wiem w czym problem. Dodam że okna robiłem jako oddzielne projekty w glade
://////EDIT///////
Znalazłem rozwiązanie
w construktorze obu klas dodawałem polecenie:
<?php ?>
i druga klasa
<?php ?>
i to był błąd ponieważ polecenie to nie powinno znaleźć się w drugiej klasie ponieważ
gdy wywoływałem
<?php $this->window2->destroy(); ?>
reakcją na sygnał 'destroy' było zamknięcie wszystkich okien, takie działania powinno być możliwe tylko w przypadku pierwszego okna.