poniedziałek, stycznia 11, 2010

Prolog, XPCE, pce_main_loop

SWI-Prolog w wersji 5.9.5-121-gcd55e6b

Jest bardzo dobry podręcznik do XPCE. Jest w nim opisane, jak konstruować okna, ramki, menu i całą resztę okienkowego szyku. Jednak trudno jest znaleźć schemat, szablon standardowego punktu startowego aplikacji. Dokumentacja wspomina predykat pce_main_loop/1, jednak nie ma z nim wielu przykładów (help też milczy na jego temat), poniżej jest przykład jego użycia.

:- [load]. main :- pce_main_loop(main). main(Argv):-    new(W, mainwindow),    send(W, status, full_screen).

Pierwsza linia ładuje plik load.pl, standardowo dołączający wszystkie pliki potrzebne do uruchomienia programu. Predykat main/0 służy do uruchomienia aplikacji przy wykorzystaniu kompilatora:

pl --goal=main --stand_alone=true -o bin/application -c application.pl

To polecenie można umieścić w pliku Makefile, po to by wyprodukować samodzielną zdolną do uruchomienia binarną wersję aplikacji.

Uruchomiona przy pomocy main. aplikacja będzie działała tak długo, jak długo będą działały jakiekolwiek utworzone okienka. Wraz z zamknięciem ostatniego z nich XPCE wyda polecenie halt które zakończy sesję Prologa. Chcąc testowo uruchomić nasz program wystarczy wydać polecenie main(_)., uruchomi to aplikację, jednak nie zamknie środowiska wraz z zamknięciem ostatniego utworzonego okienka.

SWI-Prolog version 5.9.5-121-gcd55e6b

There is a very good manual for XPCE. It has very descriptive in place where their describe creating windows, frames, menus and all this visual stuff, but there is hard to find a schema for standard entry point for XPCE application. Manual mention pce_main_loop/1, but there is no example usage (help is missing description for it too). Here is an example of usage:

:- [load]. main :- pce_main_loop(main). main(Argv):-    new(W, mainwindow),    send(W, status, full_screen).

First line consults load.pl, it is a standard file which will load all files required for program startup. main/0 predicate is used for compilator as a standard entry point:

pl --goal=main --stand_alone=true -o bin/application -c application.pl

This command may be a part of Makefile, and may be used to create standalone, executable binary program version.

Application started with main. will be working as long as there will be any XPCE object existing which has been created inside of main/1. When last of it will be closed XPCE will call halt and whole Prolog session will be over. To run application in test mode you have to just call main(_)., it will run application, but Prolog session will remain after close of last window.

Brak komentarzy:

Publikowanie komentarza