76 lines
1.5 KiB
C++
76 lines
1.5 KiB
C++
|
// RUN: %clang_cc1 -emit-llvm %s -o - -triple i386-apple-macosx10.7.2
|
||
|
// PR1084
|
||
|
|
||
|
extern "C"
|
||
|
{
|
||
|
typedef unsigned char PRUint8;
|
||
|
typedef unsigned int PRUint32;
|
||
|
}
|
||
|
typedef PRUint32 nsresult;
|
||
|
struct nsID
|
||
|
{
|
||
|
};
|
||
|
typedef nsID nsIID;
|
||
|
class nsISupports
|
||
|
{
|
||
|
};
|
||
|
extern "C++"
|
||
|
{
|
||
|
template < class T > struct nsCOMTypeInfo
|
||
|
{
|
||
|
static const nsIID & GetIID ()
|
||
|
{
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
class nsIDOMEvent:public nsISupports
|
||
|
{
|
||
|
};
|
||
|
class nsIDOMEventListener:public nsISupports
|
||
|
{
|
||
|
public:static const nsIID & GetIID ()
|
||
|
{
|
||
|
}
|
||
|
virtual nsresult
|
||
|
__attribute__ ((regparm (0), cdecl)) HandleEvent (nsIDOMEvent * event) =
|
||
|
0;
|
||
|
};
|
||
|
class nsIDOMMouseListener:public nsIDOMEventListener
|
||
|
{
|
||
|
public:static const nsIID & GetIID ()
|
||
|
{
|
||
|
static const nsIID iid = {
|
||
|
};
|
||
|
}
|
||
|
virtual nsresult
|
||
|
__attribute__ ((regparm (0),
|
||
|
cdecl)) MouseDown (nsIDOMEvent * aMouseEvent) = 0;
|
||
|
};
|
||
|
typedef
|
||
|
typeof (&nsIDOMEventListener::HandleEvent)
|
||
|
GenericHandler;
|
||
|
struct EventDispatchData
|
||
|
{
|
||
|
PRUint32 message;
|
||
|
GenericHandler method;
|
||
|
PRUint8 bits;
|
||
|
};
|
||
|
struct EventTypeData
|
||
|
{
|
||
|
const EventDispatchData *events;
|
||
|
int numEvents;
|
||
|
const nsIID *iid;
|
||
|
};
|
||
|
static const EventDispatchData sMouseEvents[] = {
|
||
|
{
|
||
|
(300 + 2),
|
||
|
reinterpret_cast < GenericHandler > (&nsIDOMMouseListener::MouseDown),
|
||
|
0x01}
|
||
|
};
|
||
|
static const EventTypeData sEventTypes[] = {
|
||
|
{
|
||
|
sMouseEvents, (sizeof (sMouseEvents) / sizeof (sMouseEvents[0])),
|
||
|
&nsCOMTypeInfo < nsIDOMMouseListener >::GetIID ()}
|
||
|
};
|