Changed the concept of the webshell holding an mChromeElement object to it holding a nsIChromeEventHandler interface. This is more generic and allows other apps to plugin nicer into the API.r=hyatt

This commit is contained in:
tbogard@aol.net
1999-11-23 09:57:47 +00:00
parent 0dcd2a9787
commit 947bea1d58
7 changed files with 65 additions and 53 deletions

View File

@@ -43,6 +43,7 @@
#include "nsIComponentManager.h"
#include "nsIServiceManager.h"
#include "nsIEventQueueService.h"
#include "nsIChromeEventHandler.h"
#include "nsCRT.h"
#include "nsVoidArray.h"
#include "nsString.h"
@@ -223,8 +224,8 @@ public:
NS_IMETHOD SetWebShellType(nsWebShellType aWebShellType);
NS_IMETHOD GetWebShellType(nsWebShellType& aWebShellType);
NS_IMETHOD GetContainingChromeElement(nsIContent** aResult);
NS_IMETHOD SetContainingChromeElement(nsIContent* aChromeElement);
NS_IMETHOD GetChromeEventHandler(nsIChromeEventHandler** aChromeEventHandler);
NS_IMETHOD SetChromeEventHandler(nsIChromeEventHandler* aChromeEventHander);
NS_IMETHOD GetScrolling(PRInt32& aScrolling);
NS_IMETHOD SetScrolling(PRInt32 aScrolling, PRBool aSetCurrentAndInitial = PR_TRUE);
@@ -471,7 +472,7 @@ protected:
eCharsetReloadState mCharsetReloadState;
nsWebShellType mWebShellType;
nsIContent* mChromeElement; // Weak reference.
nsIChromeEventHandler* mChromeEventHandler; //Weak Reference
nsISupports* mHistoryState; // Weak reference. Session history owns this.
@@ -656,7 +657,7 @@ nsWebShell::nsWebShell()
mThreadEventQueue = nsnull;
InitFrameData(PR_TRUE);
mWebShellType = nsWebShellContent;
mChromeElement = nsnull;
mChromeEventHandler = nsnull;
mSHist = nsnull;
mIsInSHist = PR_FALSE;
mFailedToLoadHistoryService = PR_FALSE;
@@ -1768,19 +1769,21 @@ nsWebShell::SetWebShellType(nsWebShellType aWebShellType)
}
NS_IMETHODIMP
nsWebShell::GetContainingChromeElement(nsIContent** aResult)
nsWebShell::GetChromeEventHandler(nsIChromeEventHandler** aChromeEventHandler)
{
NS_IF_ADDREF(mChromeElement);
*aResult = mChromeElement;
return NS_OK;
NS_ENSURE_ARG_POINTER(aChromeEventHandler);
NS_IF_ADDREF(mChromeEventHandler);
*aChromeEventHandler = mChromeEventHandler;
return NS_OK;
}
NS_IMETHODIMP
nsWebShell::SetContainingChromeElement(nsIContent* aChromeElement)
nsWebShell::SetChromeEventHandler(nsIChromeEventHandler* aChromeEventHandler)
{
// Weak reference. Don't addref.
mChromeElement = aChromeElement;
return NS_OK;
// Weak reference. Don't addref.
mChromeEventHandler = aChromeEventHandler;
return NS_OK;
}
NS_IMETHODIMP