Hello Viktor

<<<
If you don't mind I'd remove the symbol based
methods, as it doesn't seem to be std core
language way to control such things. It causes
problems where other libs define this symbol for
example.
>>>

I do not mind. But "HB_NOSTARTUPWINDOW" is a must as there is no way to
force it at the time of initialization of GT. It serves a great purpose.
Rest no other symbol is required, so you removed them.
Please readd "HB_NOSTARTUPWINDOW".

<<<
Since IMO the whole point of GTs is to give an
abstraction level above the very different terminal
types, we should apply this level of abstraction
to the callback event, too. Meaning that I think
we should remove any "wparam", "lparam" refs,
as the beauty of core Harbour is that it doesn't
deal with this level of system specific stuff
diirectly. This stuff is to be implemented outside
of the scope of the GT core. I'm also not sure
if this is a good way to pass mouse/keyboard events
in a generic way, some GTs may not work like this,
plus we'd rather need a core key/mouse pipeline,
I think there has been discussion about this, but
it's still not implemented (I'm not sure).
>>>

It is matter of terminology. We can give generic names to them and generic
names to parameters. How a method is implemented is local to the GT in
question. One can find a way to simulate the same behavior another may not. 
But we need SLOTS in the core, otherwise it becomes impossible to extract
full power of a protocol.

<<<
So the idea is: Let's pass _abstracted_, _high level_
and platform neutral messages to these callbacks
to notify about these the underlying app. And we
need only one notifier block. Any user data may
be passed through the callback, so IMO we don't
need a duplicate way to do this.

hb_gtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, xPar|  
myEventCatcher( nEvent, xPar, myappdata ) })
>>>

I agree on the _abstracted_, _high level_ concept. But to achieve this we
also need a mechanism.
Per your example:
hb_gtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, xPar|  myEventCatcher( nEvent,
xPar, myappdata ) })
Under this construct how do GT will know about <nEvent> and will fire this
slot at what point of execution ?

The body of the GT execution is different with each implementation. In one
GT some event, e.g. HB_GTE_CLOSE needs to be executed where Key Press is
processed and in some other (GTWVT) when X button is clicked. How you will
know that GT is advised to react to this event?

I agree with abstraction, so we can provide generic names, but slots and
dispatching needs to be in the core.

I implemented all these methods in GTWVG but from outside the core. My
viewpoint is to enrich GT. In the past many methods were introduced which
belonged to a particular GT only and they still exist in the core. 
All we need is to define symbology and its behavior and forget about how a
GT will implement them. It will lift a lot of restrictions.

Regards
Pritpal Bedi

-- 
View this message in context: 
http://www.nabble.com/2008-06-08-16%3A03-UTC%2B0800-Pritpal-Bedi-%28pritpal%40vouchcac.com-tp17724278p17726667.html
Sent from the Harbour - Dev mailing list archive at Nabble.com.

_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to