[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [MiNT] [Mint-cvs] [FreeMiNT CVS] lib/gemlib
Hello,
Back to "open discussion" ? :)
"think about the USER"
Don't you think it's a good remark ? If a new feature mainly introduce  
incompatibility and nothing for the user, then it's a bad feature... and  
it's my feeling about WCOWORK.
and "Dont make
new things as they wont work on other AES's".
This has never been one of my arguments.
If we need to break backward compatibility to introduce usefull new  
feature, then go ahead !
This is not a problem of backward compatibility, this is a problem of
death of the ongoing hudge work we started since years now in order to
have a modularity approach of programming for *futur* AES applications.
 Enlighten me!
modularity approach. AES Application = a kernel (.app) and a lot of  
dynamical libraries, each specialized in one thing. For example a library  
to manage a text editor box, a lib to display an image, a lib to  
reorganise the workspace, and so on... A lib may use other libraries...  
It's a kind of puzzle game to develop an application.
Then, if one want to develop an "internet suite" for example, he just have  
to "assemble" internet protocol lib, HTML viewer lib, text editor lib...  
If one want to develop a "help guide viewer", he just have to assemble  
"html render" lib, "1st guide render" lib, and so on... That's the idea of  
modularity. We call it COMPONENT in windom. For example, a form in a  
window may contain a COMPONENT "html render" which may use the "image  
viewer" COMPONENT, and so on...
This is the idea of the modularity approach.
This modularity feature mechanism is still under construct. The first  
piece was gemlib 43. Now, we're working on COMPONENT stuff and MT-windom.
All these libraries are independant and don't know what other libraries  
do. If one piece of code enable the WCOWORK feature, then all the  
libraries will get into trouble because values returned by some AES  
functions depend on that mode.
So, when a lib call wind_set(WF_CURRXYWH) to set the FULL area, maybe this  
will change the WORK area... when a lib (workspace reorganiser) will send  
to the application some AES messages to move windows, some of the window  
will interpret the values as WORK area and other as FULL area...
The *only* problem is that some data may now have two differents meanings  
depending on the WCOWORK mode. Without this mode, the meaning of the data  
is clearly defined and may be safely used by any piece of code.
About the benefit of WCOWORK, i'm still waiting for the aim of that  
solution.
the snap stuff is clearly not a serious benefit IMHO.
Second biggest advantage, again from
an application authors point of view, no need to worry about what goes
on around its windows WORK area.
WHY is that an advantage ? Please explain ! And what about windows that  
want to control their FULL area ?
In combo with VDI support, WCOWORK will
allow for the AES to keep WORK areas of windows as offscreen buffers,
excellent for future stuff.
At least one serious argument :)
You'd like to have a kind of virtual workstation per window. It's fine. No  
argument against that feature... Now we can take the question in the right  
order :
"we want application to control a "virtual workstation", wich will be  
displayed in the work area of a window, and we don't want the application  
to care about the borders of the window."
I have correctly understood ? Please correct me if needed.
If so, we can discuss about the best way to reach this goal, and i really  
don't think we need to break the backward compatibility (meaning of data  
of AES API) for that purpose.
Before you post, WCOWORK seemed to be a very bad feature to me.
Now, WCOWORK seems to be a very bad temporary intermediate state in the  
developpement of new feature.
I stop here. The post is long enough and i've learned that long post are  
not carefully read.
best regards,
Arnaud.