Aleksandar Vasilev wrote:
Hello,
Is there a way to globally intercept the mouse messages that are sent to
the embedded mozilla rendering window (from the embedding application,
written in C++). I tried to do it by adding a DOM event listener to the
DOM document object, which captures all mousemove events, and it works,
but only for the currently loaded page. When a new page is loaded, the
event target is no longer valid. What I want is a persistent way to trap
mouse events.
Thanks in advance
Regards
Alex
In *.h
#include "nsIDOMMouseListener.h"
your_class1 : public nsIDOMMouseListener and other inplements if you need.
overwrite this function:
//nsIDOMMouseListener
NS_IMETHOD MouseDown(nsIDOMEvent* aDOMEvent);
NS_IMETHOD MouseUp(nsIDOMEvent* aDOMEvent);
NS_IMETHOD MouseClick(nsIDOMEvent* aDOMEvent);
NS_IMETHOD MouseDblClick(nsIDOMEvent* aDOMEvent);
NS_IMETHOD MouseOver(nsIDOMEvent* aDOMEvent);
NS_IMETHOD MouseOut(nsIDOMEvent* aDOMEvent);
NS_IMETHOD HandleEvent(nsIDOMEvent *event);
after... to handle your mouse messages:
///mouse event
// our event receiver
nsCOMPtr<nsIDOMEventReceiver> mEventReceiver;
nsCOMPtr<nsPIDOMWindow> piWin;
GetPIDOMWindow(getter_AddRefs(piWin));
if (piWin)
{
nsCOMPtr<nsIChromeEventHandler> chromeHandler;
piWin->GetChromeEventHandler(getter_AddRefs(chromeHandler));
mEventReceiver = do_QueryInterface(chromeHandler);
nsIDOMEventListener *eventListener =
NS_STATIC_CAST(nsIDOMEventListener *,
NS_STATIC_CAST(nsIDOMMouseListener *, your_class1));
rv = mEventReceiver->AddEventListenerByIID(eventListener,
NS_GET_IID(nsIDOMMouseListener));
}
and thats all!!!
_______________________________________________
mozilla-embedding mailing list
mozilla-embedding@mozilla.org
http://mail.mozilla.org/listinfo/mozilla-embedding