An application
object defines a collection of cooperating frame
objects. Applications are new as of XPCE version 4.9,
and therefore do not yet have a stable definition. It is however assumed
that the current implementation will only be enhanced with new,
compatible, features.
Applications are designed to deal with the following issues:
<-member
method, frames that constitute an application can find each other. See
also
frame<->name
and graphical<-application.
modal frames Frames may be defined
modal over the other frames in the application. See frame->modal.
<-kind:
service to realise the programming environment, and avoid the
environment from tracing and debugging itself.
Normally, applications are created explicitely, often as global named objects. Frames are attached to it using the application initialisation argument application:
:- pce_global(@my_application, make_my_application).
make_my_application(App) :-
new(App, application(mine)),
...
...
new(F, frame('My title',
application := @my_application)),
...
user, (default), the methods and predicates called as a
result of event-handling by windows and frames of the application can be
debugged. If service, all Prolog and XPCE activity will be
run in system mode to avoid debugging the XPCE environments
tools, while trying to debug the user application.
Timer objects are
not covered by this flag as they do not belong to an application. They
provide the timer->service
method to turn them into a service.
->delete
and application->append.->modal.->application,
and the application argument of frame->initialise.<-member
of. This method may be redefined to keep track of the applications, but must
call the super-implementation.<-reset. Removes
any possible
application<-modal frame
object.->destroy
on all
application<-members.
<-contains,
returning application<-members.<-name.