www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - about harmonia

reply ns <dummy dummy.com> writes:
The harmonia wiki does not seem to have much content.

http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

Except for the packages and forum links on left, no other links seem to 
work.

Is there any documentation/tutorials on harmonia where I can get to know 
  it better ?

Thanks in advance.
NS
Oct 01 2006
next sibling parent Hasan Aljudy <hasan.aljudy gmail.com> writes:
ns wrote:
 The harmonia wiki does not seem to have much content.
 
 http://harmonia.terrainformatica.com/pmwiki.php/Harmonia
 
 Except for the packages and forum links on left, no other links seem to 
 work.
 
 Is there any documentation/tutorials on harmonia where I can get to know 
  it better ?
 
 Thanks in advance.
 NS

There used to be something there .. but I don't why the pages got reset to the default wiki page or something. Unfortunately there doesn't seem to be much documentation for Harmonia, which is a shame because it seems to have a really great potential; it's not getting the attention it deserves.
Oct 02 2006
prev sibling parent reply Hasan Aljudy <hasan.aljudy gmail.com> writes:
ns wrote:
 The harmonia wiki does not seem to have much content.
 
 http://harmonia.terrainformatica.com/pmwiki.php/Harmonia
 

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/
Oct 06 2006
next sibling parent reply Kristian <kjkilpi gmail.com> writes:
On Sat, 07 Oct 2006 04:38:39 +0300, Hasan Aljudy <hasan.aljudy gmail.com>  
wrote:
 ns wrote:
 The harmonia wiki does not seem to have much content.
  http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/

Looks promising. :) I like very much the sinking/bubbling event dispatching. IMHO, that's the correct order to deliver event messages. E.g. when the mouse is clicked, the topmost widget (the application object, actually) will get the event message first, and finally the bottommost widget. For instance, Qt sends the event message directly to the bottommost widget. If you like to catch the message, then you have to create an event handler and install it for the widget. Not good. However, sinking/bubbling does not make signals/slots needless. Sinking/bubbling is great when building 'solid constructs', e.g. windows (internal messaging). Signals/slots are great when linking widgets to your functions and other widgets (external messaging). For example, there is a container C. Inside it are widgets A and B. When the user presses the right mouse button inside the container C, a context menu should open. Sinking/bubbling makes this easy to implement: just catch the event before A or B gets it. Now, when the user presses left mouse button over the widget A, a function X should be called. Signals/slots make things breeze here: simply connect the 'pressed()' signal (or something similar) to the function X.
Oct 07 2006
parent reply Josh Stern <josh_usenet phadd.net> writes:
On Sat, 07 Oct 2006 12:28:42 +0300, Kristian wrote:

 On Sat, 07 Oct 2006 04:38:39 +0300, Hasan Aljudy <hasan.aljudy gmail.com>  
 wrote:
 ns wrote:
 The harmonia wiki does not seem to have much content.
  http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/

Looks promising. :) I like very much the sinking/bubbling event dispatching. IMHO, that's the correct order to deliver event messages. E.g. when the mouse is clicked, the topmost widget (the application object, actually) will get the event message first, and finally the bottommost widget. For instance, Qt sends the event message directly to the bottommost widget. If you like to catch the message, then you have to create an event handler and install it for the widget. Not good.

Hi, I'm not familiar with Harmonia, but it sounds like you are implying some limitations for Qt that are not really there. Have a look at the docs for QCoreApplication::notify() http://doc.trolltech.com/4.2/qcoreapplication.html#notify and QObject::installEventFilter() http://doc.trolltech.com/4.2/qobject.html#installEventFilter and see if you agree.
Oct 09 2006
parent reply Kristian <kjkilpi gmail.com> writes:
On Tue, 10 Oct 2006 06:17:06 +0300, Josh Stern <josh_usenet phadd.net>  
wrote:

 On Sat, 07 Oct 2006 12:28:42 +0300, Kristian wrote:

 On Sat, 07 Oct 2006 04:38:39 +0300, Hasan Aljudy  
 <hasan.aljudy gmail.com>
 wrote:
 ns wrote:
 The harmonia wiki does not seem to have much content.
  http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/

Looks promising. :) I like very much the sinking/bubbling event dispatching. IMHO, that's the correct order to deliver event messages. E.g. when the mouse is clicked, the topmost widget (the application object, actually) will get the event message first, and finally the bottommost widget. For instance, Qt sends the event message directly to the bottommost widget. If you like to catch the message, then you have to create an event handler and install it for the widget. Not good.

Hi, I'm not familiar with Harmonia, but it sounds like you are implying some limitations for Qt that are not really there. Have a look at the docs for QCoreApplication::notify() http://doc.trolltech.com/4.2/qcoreapplication.html#notify and QObject::installEventFilter() http://doc.trolltech.com/4.2/qobject.html#installEventFilter and see if you agree.

Well, I don't know if it's a limitation, but a feature. And yes, you can catch events by the 'QCoreApplication::notify()' function also. Please tell me if I am wrong, but one cannot catch events of another widget without using 'QCoreApplication::notify()' or event handlers. For example: class Button { virtual bool event(QEvent *e); }; class Container { virtual bool event(QEvent *e); }; Button B; Container C; C.add(B); The container 'C' contains the button 'B'. When the user clicks a mouse button over 'B', the mouse click event will be delivered to 'B' and only to it. That is, 'Container::event()' will not be called. So, if 'C' wants to know if a mouse button has been clicked inside it, even if the click happens over some of its subitems, you have to redirect events from 'C's subitems (i.e. 'B') to 'C' somehow. One way is to create an event handler and install it to all the 'C's subitems ('B'). The event filter then calls 'Container::event()' (or some other function) when necessary. In sinking/bubbling first 'Container::event()' will be called, then 'Button::event()' if 'Container::event()' allows it (i.e. it didn't catch the event). So, no need to do any 'tricks' with event filters, etc.
Oct 10 2006
parent Josh Stern <josh_usenet phadd.net> writes:
On Tue, 10 Oct 2006 11:45:30 +0300, Kristian wrote:

 On Tue, 10 Oct 2006 06:17:06 +0300, Josh Stern <josh_usenet phadd.net>  
 wrote:
 
 On Sat, 07 Oct 2006 12:28:42 +0300, Kristian wrote:

 On Sat, 07 Oct 2006 04:38:39 +0300, Hasan Aljudy  
 <hasan.aljudy gmail.com>
 wrote:
 ns wrote:
 The harmonia wiki does not seem to have much content.
  http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/

Looks promising. :) I like very much the sinking/bubbling event dispatching. IMHO, that's the correct order to deliver event messages. E.g. when the mouse is clicked, the topmost widget (the application object, actually) will get the event message first, and finally the bottommost widget. For instance, Qt sends the event message directly to the bottommost widget. If you like to catch the message, then you have to create an event handler and install it for the widget. Not good.

Hi, I'm not familiar with Harmonia, but it sounds like you are implying some limitations for Qt that are not really there. Have a look at the docs for QCoreApplication::notify() http://doc.trolltech.com/4.2/qcoreapplication.html#notify and QObject::installEventFilter() http://doc.trolltech.com/4.2/qobject.html#installEventFilter and see if you agree.

Well, I don't know if it's a limitation, but a feature. And yes, you can catch events by the 'QCoreApplication::notify()' function also. Please tell me if I am wrong, but one cannot catch events of another widget without using 'QCoreApplication::notify()' or event handlers.

Yes, I think "cannot" is wrong. If the the most spatially specific widget doesn't want to handle the event in the general case, the event is normally propaged to the spatial parent (this is traditional for all X11 toolkits based on the way Xlib itself works, and Qt's notify follows that), but if you want to intervene in a special case then Qt allows you to install an EventFilter. That's what my two links above are describing - first how the general case is handled, and then how EventFilters work.
Oct 10 2006
prev sibling parent Hasan Aljudy <hasan.aljudy gmail.com> writes:
Hasan Aljudy wrote:
 
 
 ns wrote:
 The harmonia wiki does not seem to have much content.

 http://harmonia.terrainformatica.com/pmwiki.php/Harmonia

oh btw, this is the project's home page, it still has contents. http://harmonia.terrainformatica.com/

The wiki pages seem to be back-up now.
Oct 07 2006