On the road to fixing build breakage. More checkins to follow

This commit is contained in:
saari%netscape.com 1999-02-04 02:27:58 +00:00
parent e1a29fba6d
commit 360bf0dab5
6 changed files with 130 additions and 7 deletions

View File

@ -20,6 +20,15 @@
#define nsIMenuListener_h__
#include "nsGUIEvent.h"
#include "nsISupports.h"
// TODO: This needs to be generated!
// {BC658C81-4BEB-11d2-8DBB-00609703C14E}
#define NS_IMENULISTENER_IID \
{ 0xbc658c81, 0x4beb, 0x11d2, \
{ 0x8d, 0xbb, 0x0, 0x60, 0x97, 0x3, 0xc1, 0x9e } }
static NS_DEFINE_IID(kIMenuListenerIID, NS_IMENULISTENER_IID);
/**
*
@ -28,7 +37,7 @@
* These are registered with nsWindows to recieve menu events
*/
class nsIMenuListener {
class nsIMenuListener : public nsISupports {
public:
@ -37,7 +46,7 @@ class nsIMenuListener {
* @param aMenuEvent See nsGUIEvent.h
* @return whether the event was consumed or ignored. See nsEventStatus
*/
virtual nsEventStatus MenuSelected(const nsGUIEvent & aMenuEvent) = 0;
virtual nsEventStatus MenuSelected(const nsMenuEvent & aMenuEvent) = 0;
};

View File

@ -28,7 +28,37 @@
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kMenuIID, NS_IMENU_IID);
NS_IMPL_ISUPPORTS(nsMenu, kMenuIID)
static NS_DEFINE_IID(kIMenuIID, NS_IMENU_IID);
//NS_IMPL_ISUPPORTS(nsMenu, kMenuIID)
nsresult nsMenu::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
if (aIID.Equals(kIMenuIID)) {
*aInstancePtr = (void*)(nsIMenu*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kISupportsIID)) {
*aInstancePtr = (void*)(nsISupports*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kIMenuListenerIID)) {
*aInstancePtr = (void*) ((nsIMenuListener*)this);
NS_ADDREF_THIS();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMPL_ADDREF(nsMenu)
NS_IMPL_RELEASE(nsMenu)
//-------------------------------------------------------------------------
//
@ -247,4 +277,9 @@ GtkWidget *nsMenu::GetNativeParent()
return GTK_WIDGET(voidData);
}
//-------------------------------------------------------------------------
nsEventStatus nsMenu::MenuSelected(const nsMenuEvent & aMenuEvent)
{
return nsEventStatus_eIgnore;
}

View File

@ -21,6 +21,7 @@
#include "nsIMenu.h"
#include "nsVoidArray.h"
#include "nsIMenuListener.h"
class nsIMenuBar;
@ -28,7 +29,7 @@ class nsIMenuBar;
* Native GTK+ Menu wrapper
*/
class nsMenu : public nsIMenu
class nsMenu : public nsIMenu, public nsIMenuListener
{
public:
@ -37,6 +38,9 @@ public:
NS_DECL_ISUPPORTS
// nsIMenuListener methods
nsEventStatus MenuSelected(const nsMenuEvent & aMenuEvent);
NS_IMETHOD Create(nsIMenuBar * aParent, const nsString &aLabel);
NS_IMETHOD Create(nsIMenu * aParent, const nsString &aLabel);

View File

@ -30,7 +30,37 @@
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kMenuIID, NS_IMENU_IID);
NS_IMPL_ISUPPORTS(nsMenu, kMenuIID)
static NS_DEFINE_IID(kIMenuIID, NS_IMENU_IID);
//NS_IMPL_ISUPPORTS(nsMenu, kMenuIID)
nsresult nsMenu::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
if (aIID.Equals(kIMenuIID)) {
*aInstancePtr = (void*)(nsIMenu*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kISupportsIID)) {
*aInstancePtr = (void*)(nsISupports*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kIMenuListenerIID)) {
*aInstancePtr = (void*) ((nsIMenuListener*)this);
NS_ADDREF_THIS();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMPL_ADDREF(nsMenu)
NS_IMPL_RELEASE(nsMenu)
//-------------------------------------------------------------------------
//
@ -242,3 +272,8 @@ NS_METHOD nsMenu::GetNativeData(void *& aData)
return NS_OK;
}
//-------------------------------------------------------------------------
nsEventStatus nsMenu::MenuSelected(const nsMenuEvent & aMenuEvent)
{
return nsEventStatus_eIgnore;
}

View File

@ -24,13 +24,15 @@
#include "Xm/Xm.h"
#include "nsXtManageWidget.h"
#include "nsIMenuListener.h"
class nsIMenuBar;
/**
* Native Motif Menu wrapper
*/
class nsMenu : public nsIMenu
class nsMenu : public nsIMenu, public nsIMenuListener
{
public:
@ -39,6 +41,9 @@ public:
NS_DECL_ISUPPORTS
// nsIMenuListener methods
nsEventStatus MenuSelected(const nsMenuEvent & aMenuEvent);
NS_IMETHOD Create(nsIMenuBar * aParent, const nsString &aLabel);
NS_IMETHOD Create(nsIMenu * aParent, const nsString &aLabel);

View File

@ -35,7 +35,37 @@
static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
static NS_DEFINE_IID(kIMenuIID, NS_IMENU_IID);
NS_IMPL_ISUPPORTS(nsMenu, kIMenuIID)
static NS_DEFINE_IID(kIMenuIID, NS_IMENU_IID);
//NS_IMPL_ISUPPORTS(nsMenu, kIMenuIID)
nsresult nsMenu::QueryInterface(REFNSIID aIID, void** aInstancePtr)
{
if (NULL == aInstancePtr) {
return NS_ERROR_NULL_POINTER;
}
*aInstancePtr = NULL;
if (aIID.Equals(kIMenuIID)) {
*aInstancePtr = (void*)(nsIMenu*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kISupportsIID)) {
*aInstancePtr = (void*)(nsISupports*) this;
NS_ADDREF_THIS();
return NS_OK;
}
if (aIID.Equals(kIMenuListenerIID)) {
*aInstancePtr = (void*) ((nsIMenuListener*)this);
NS_ADDREF_THIS();
return NS_OK;
}
return NS_NOINTERFACE;
}
NS_IMPL_ADDREF(nsMenu)
NS_IMPL_RELEASE(nsMenu)
//-------------------------------------------------------------------------
//
@ -244,3 +274,8 @@ NS_METHOD nsMenu::GetNativeData(void *& aData)
return NS_OK;
}
//-------------------------------------------------------------------------
nsEventStatus nsMenu::MenuSelected(const nsMenuEvent & aMenuEvent)
{
return nsEventStatus_eIgnore;
}