nanogui: Re: Ideas on Nano-X event handeling and API (was: Re: Nano-X on X )
Subject:
Re: Ideas on Nano-X event handeling and API (was: Re: Nano-X on X)
From:
"Greg Haerr" ####@####.####
Date:
25 Nov 1999 20:13:04 -0000
Message-Id: <006301bf376f$f9f2ce00$15320cd0@gregh>
: I think making it possible to use nano-X as a "passive" library would be
: very nice, in addition to the current method (which needs less coding but
: provides less flexibility and is less orthogonal).
Morten -
I think I missed your original point about what you're trying to do.
Basically, I'll restate it here. What you want is to allow Nano-X to be used
in applications where, instead of modelling the application around Nano-X's
event loop, you call some Nano-X functions from your application, and
the Nano-X gui functionality works. This is what you called a "passive"
library approach.
Basically, all this requires is that some of the sections of Nano-X's
main loop be placed in procedures, and those procedures be callable
as a standard API. The application then has it's own main loop and
select(). This should be fairly easy. Following your suggestion, the
following routines could be created:
GrPrepareSelect() - prepare Nano-X fd_set and timeout values
GrServiceSelect() - service Nano-X fd_set fd's or timeouts
GrDoSelect() - perform Nano-X select (not used for your
stuff)
I believe that, as you mentioned, the GrRegisterInput should remain (enhanced
for multiple file descriptors) as the standard method of adding file descriptors
to Nano-X when used as an active library.
I'll add these routines in the next cut, which I expect to get out this weekend.
Greg