Index: [thread] [date] [subject] [author]
  From: Marcus Sundberg <mackan@stacken.kth.se>
  To  : ggi-develop@eskimo.com
  Date: Sat, 19 Sep 1998 21:27:24 +0200

Re: Gii integration (was shmem integration)

becka@rz.uni-duesseldorf.de wrote:
> 
> Hi folks !
> 
> > So - is it possible to control how memvisual handles keyboard/mouse/etc?
> > as in - if some environment value is set (or a parameter), read from a
> > pipe (of some kind) or set of pipes [keyboard, mouse, ...]
> 
> No. You bring up a very valid point here. We didn't do much about input
> handling, and I think there is room for improvement, and we should do it
> now (it's easy) to avoid bringing something out that brings back trouble
> later.
> 
> The idea is the following :
> 
> Have a gii_input_t that describes _all_ attached input systems.
> This is done by making it a linked list, what allows to attach/detach
> event sources as required.
> 
> To keep compatibility, I suggest to add an entry
> 
>         gii_input_t visinput;
> 
> to ggi_visual_t and replace the stubs for the input handling by
> 
> ggiSomeInputFunc(vis,...)
> {
>         return giiSomeInputFunc(vis->visinput,...);
> }
> 
> This "general input interface" functions should be integrated with LibGGI,
> as they will be rather simplistic.
> 
> The idea is, that going this path allows for seamless integration with the
> current implementation.
> 
> Current target will override the ggi-input functions, thus giving old
> behaviour.

[snip]

> Would be nice, wouldn't it ?
> 
> Comments, please !

I like the general ideas, but not the gii/libggi relation you
propose.

Everyone is not interrested in advanced input, and everyone might
not be interrested in libggi graphics either. And we should really
keep libggi _small_, so it can be used for embeded systems and the
like.

What i propose will really show the greatness of libggi - libggi
and libgii will be separate libraries, and noone will be linked
to each other, yet they will interract seamlessly.

We will achieve this by having a giiAttachGGI() function in libgii,
which will load a dynamic module that is linked to libggi and uses
the libggi extension mechanism. This libgiimodule/libggiextension
can override libggi's event handling functions, and generally do
everything needed to let libgii take over event handling from libggi.

This will require little changes to libggi and give us two great
libraries that may be used together or independently.

Comments?

//Marcus

PS. I doublechecked the text for typos, so if you feel confused by
    the above text it's not because I mixed gii/ggi up. ;-) DS.
-- 
-------------------------------+------------------------------------
        Marcus Sundberg        | http://www.stacken.kth.se/~mackan
 Royal Institute of Technology |       Phone: +46 707 295404
       Stockholm, Sweden       |   E-Mail: mackan@stacken.kth.se

Index: [thread] [date] [subject] [author]