mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-08 20:47:44 +00:00
ba65734702
--HG-- rename : dom/base/nsIScriptObjectOwner.h => dom/base/nsIScriptEventHandlerOwner.h
65 lines
2.4 KiB
C++
65 lines
2.4 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef nsIScriptEventHandlerOwner_h__
|
|
#define nsIScriptEventHandlerOwner_h__
|
|
|
|
#include "nsISupports.h"
|
|
#include "nsIScriptContext.h"
|
|
#include "nsAString.h"
|
|
|
|
template<class> class nsScriptObjectHolder;
|
|
|
|
class nsIAtom;
|
|
|
|
#define NS_ISCRIPTEVENTHANDLEROWNER_IID \
|
|
{ 0xc8f35f71, 0x07d1, 0x4ff3, \
|
|
{ 0xa3, 0x2f, 0x65, 0xcb, 0x35, 0x64, 0xac, 0xe0 } }
|
|
|
|
/**
|
|
* Associate a compiled event handler with its target object, which owns it
|
|
* This is an adjunct to nsIScriptObjectOwner that nsEventListenerManager's
|
|
* implementation queries for, in order to avoid recompiling a recurrent or
|
|
* prototype-inherited event handler.
|
|
*/
|
|
class nsIScriptEventHandlerOwner : public nsISupports
|
|
{
|
|
public:
|
|
NS_DECLARE_STATIC_IID_ACCESSOR(NS_ISCRIPTEVENTHANDLEROWNER_IID)
|
|
|
|
/**
|
|
* Compile the specified event handler. This does NOT bind it to
|
|
* anything. That's the caller's responsibility.
|
|
*
|
|
* @param aContext the context to use when creating event handler
|
|
* @param aName the name of the handler
|
|
* @param aBody the handler script body
|
|
* @param aURL the URL or filename for error messages
|
|
* @param aLineNo the starting line number of the script for error messages
|
|
* @param aHandler the holder for the compiled handler object
|
|
*/
|
|
virtual nsresult CompileEventHandler(nsIScriptContext* aContext,
|
|
nsIAtom *aName,
|
|
const nsAString& aBody,
|
|
const char* aURL,
|
|
PRUint32 aLineNo,
|
|
nsScriptObjectHolder<JSObject>& aHandler) = 0;
|
|
|
|
/**
|
|
* Retrieve an already-compiled event handler that can be bound to a
|
|
* target object using a script context.
|
|
*
|
|
* @param aName the name of the event handler to retrieve
|
|
* @param aHandler the holder for the compiled event handler.
|
|
*/
|
|
virtual nsresult GetCompiledEventHandler(nsIAtom *aName,
|
|
nsScriptObjectHolder<JSObject>& aHandler) = 0;
|
|
};
|
|
|
|
NS_DEFINE_STATIC_IID_ACCESSOR(nsIScriptEventHandlerOwner,
|
|
NS_ISCRIPTEVENTHANDLEROWNER_IID)
|
|
|
|
#endif // nsIScriptEventHandlerOwner_h__
|