gecko/content/xtf/public/nsIXTFAttributeHandler.idl
2012-05-21 12:12:37 +01:00

37 lines
1.4 KiB
Plaintext

/* -*- Mode: IDL; 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/. */
#include "nsISupports.idl"
interface nsIAtom;
[scriptable, uuid(72152f7f-7e8d-43fd-8477-3f29ae8d240d)]
interface nsIXTFAttributeHandler : nsISupports
{
// If 'false' the given attribute will be handled by the wrapper.
// Namespaced attributes will always be handled by the wrapper. The
// set of attributes handled by the attribute handler should remain
// constant for its complete lifetime.
boolean handlesAttribute(in nsIAtom name);
void setAttribute(in nsIAtom name, in AString newValue);
void removeAttribute(in nsIAtom name);
// If the attribute 'name' is unknown the implementation should mark
// the returned string as being 'null' (i.e. return 'null' in JS;
// call SetIsVoid(PR_TRUE) in C++) rather than throw an exception.
// A 'void' result will be translated into the attribute missing
// by the wrapper. An empty result will be translated into
// the attribute having no value.
AString getAttribute(in nsIAtom name);
boolean hasAttribute(in nsIAtom name);
unsigned long getAttributeCount();
// note that this method should return an *atom* not a string.
nsIAtom getAttributeNameAt(in unsigned long index);
};