зеркало из https://github.com/mozilla/gecko-dev.git
Bug 839033 - Rename nsHTMLProgressElement to HTMLProgressElement. r=Ms2ger
--HG-- rename : content/html/content/src/nsHTMLProgressElement.cpp => content/html/content/src/HTMLProgressElement.cpp rename : content/html/content/src/nsHTMLProgressElement.cpp => content/html/content/src/HTMLProgressElement.h
This commit is contained in:
Родитель
8ff75323ef
Коммит
2d150c2f55
|
@ -0,0 +1,142 @@
|
||||||
|
/* -*- 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/. */
|
||||||
|
|
||||||
|
#include "mozilla/dom/HTMLProgressElement.h"
|
||||||
|
|
||||||
|
NS_IMPL_NS_NEW_HTML_ELEMENT(Progress)
|
||||||
|
DOMCI_NODE_DATA(HTMLProgressElement, mozilla::dom::HTMLProgressElement)
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
|
||||||
|
const double HTMLProgressElement::kIndeterminatePosition = -1.0;
|
||||||
|
const double HTMLProgressElement::kDefaultValue = 0.0;
|
||||||
|
const double HTMLProgressElement::kDefaultMax = 1.0;
|
||||||
|
|
||||||
|
|
||||||
|
HTMLProgressElement::HTMLProgressElement(already_AddRefed<nsINodeInfo> aNodeInfo)
|
||||||
|
: nsGenericHTMLElement(aNodeInfo)
|
||||||
|
{
|
||||||
|
// We start out indeterminate
|
||||||
|
AddStatesSilently(NS_EVENT_STATE_INDETERMINATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
HTMLProgressElement::~HTMLProgressElement()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMPL_ADDREF_INHERITED(HTMLProgressElement, Element)
|
||||||
|
NS_IMPL_RELEASE_INHERITED(HTMLProgressElement, Element)
|
||||||
|
|
||||||
|
|
||||||
|
NS_INTERFACE_TABLE_HEAD(HTMLProgressElement)
|
||||||
|
NS_HTML_CONTENT_INTERFACE_TABLE1(HTMLProgressElement,
|
||||||
|
nsIDOMHTMLProgressElement)
|
||||||
|
NS_HTML_CONTENT_INTERFACE_TABLE_TO_MAP_SEGUE(HTMLProgressElement,
|
||||||
|
nsGenericHTMLElement)
|
||||||
|
NS_HTML_CONTENT_INTERFACE_TABLE_TAIL_CLASSINFO(HTMLProgressElement)
|
||||||
|
|
||||||
|
NS_IMPL_ELEMENT_CLONE(HTMLProgressElement)
|
||||||
|
|
||||||
|
|
||||||
|
nsEventStates
|
||||||
|
HTMLProgressElement::IntrinsicState() const
|
||||||
|
{
|
||||||
|
nsEventStates state = nsGenericHTMLElement::IntrinsicState();
|
||||||
|
|
||||||
|
if (IsIndeterminate()) {
|
||||||
|
state |= NS_EVENT_STATE_INDETERMINATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
HTMLProgressElement::ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute,
|
||||||
|
const nsAString& aValue, nsAttrValue& aResult)
|
||||||
|
{
|
||||||
|
if (aNamespaceID == kNameSpaceID_None) {
|
||||||
|
if (aAttribute == nsGkAtoms::value || aAttribute == nsGkAtoms::max) {
|
||||||
|
return aResult.ParseDoubleValue(aValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute,
|
||||||
|
aValue, aResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
HTMLProgressElement::GetValue(double* aValue)
|
||||||
|
{
|
||||||
|
const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value);
|
||||||
|
if (!attrValue || attrValue->Type() != nsAttrValue::eDoubleValue ||
|
||||||
|
attrValue->GetDoubleValue() < 0.0) {
|
||||||
|
*aValue = kDefaultValue;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
*aValue = attrValue->GetDoubleValue();
|
||||||
|
|
||||||
|
double max;
|
||||||
|
GetMax(&max);
|
||||||
|
|
||||||
|
*aValue = std::min(*aValue, max);
|
||||||
|
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
HTMLProgressElement::SetValue(double aValue)
|
||||||
|
{
|
||||||
|
return SetDoubleAttr(nsGkAtoms::value, aValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
HTMLProgressElement::GetMax(double* aValue)
|
||||||
|
{
|
||||||
|
const nsAttrValue* attrMax = mAttrsAndChildren.GetAttr(nsGkAtoms::max);
|
||||||
|
if (attrMax && attrMax->Type() == nsAttrValue::eDoubleValue &&
|
||||||
|
attrMax->GetDoubleValue() > 0.0) {
|
||||||
|
*aValue = attrMax->GetDoubleValue();
|
||||||
|
} else {
|
||||||
|
*aValue = kDefaultMax;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
HTMLProgressElement::SetMax(double aValue)
|
||||||
|
{
|
||||||
|
return SetDoubleAttr(nsGkAtoms::max, aValue);
|
||||||
|
}
|
||||||
|
|
||||||
|
NS_IMETHODIMP
|
||||||
|
HTMLProgressElement::GetPosition(double* aPosition)
|
||||||
|
{
|
||||||
|
if (IsIndeterminate()) {
|
||||||
|
*aPosition = kIndeterminatePosition;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
double value;
|
||||||
|
double max;
|
||||||
|
GetValue(&value);
|
||||||
|
GetMax(&max);
|
||||||
|
|
||||||
|
*aPosition = value / max;
|
||||||
|
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
HTMLProgressElement::IsIndeterminate() const
|
||||||
|
{
|
||||||
|
const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value);
|
||||||
|
return !attrValue || attrValue->Type() != nsAttrValue::eDoubleValue;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
|
@ -0,0 +1,70 @@
|
||||||
|
/* -*- 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 mozilla_dom_HTMLProgressElement_h
|
||||||
|
#define mozilla_dom_HTMLProgressElement_h
|
||||||
|
|
||||||
|
#include "nsIDOMHTMLProgressElement.h"
|
||||||
|
#include "nsGenericHTMLElement.h"
|
||||||
|
#include "nsAttrValue.h"
|
||||||
|
#include "nsAttrValueInlines.h"
|
||||||
|
#include "nsEventStateManager.h"
|
||||||
|
#include <algorithm>
|
||||||
|
|
||||||
|
namespace mozilla {
|
||||||
|
namespace dom {
|
||||||
|
|
||||||
|
class HTMLProgressElement : public nsGenericHTMLElement,
|
||||||
|
public nsIDOMHTMLProgressElement
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
HTMLProgressElement(already_AddRefed<nsINodeInfo> aNodeInfo);
|
||||||
|
virtual ~HTMLProgressElement();
|
||||||
|
|
||||||
|
// nsISupports
|
||||||
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
|
// nsIDOMNode
|
||||||
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
|
// nsIDOMElement
|
||||||
|
NS_FORWARD_NSIDOMELEMENT_TO_GENERIC
|
||||||
|
|
||||||
|
// nsIDOMHTMLElement
|
||||||
|
NS_FORWARD_NSIDOMHTMLELEMENT_TO_GENERIC
|
||||||
|
|
||||||
|
// nsIDOMHTMLProgressElement
|
||||||
|
NS_DECL_NSIDOMHTMLPROGRESSELEMENT
|
||||||
|
|
||||||
|
nsEventStates IntrinsicState() const;
|
||||||
|
|
||||||
|
nsresult Clone(nsINodeInfo* aNodeInfo, nsINode** aResult) const;
|
||||||
|
|
||||||
|
bool ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute,
|
||||||
|
const nsAString& aValue, nsAttrValue& aResult);
|
||||||
|
|
||||||
|
virtual nsXPCClassInfo* GetClassInfo();
|
||||||
|
|
||||||
|
virtual nsIDOMNode* AsDOMNode() { return this; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/**
|
||||||
|
* Returns whethem the progress element is in the indeterminate state.
|
||||||
|
* A progress element is in the indeterminate state if its value is ommited
|
||||||
|
* or is not a floating point number..
|
||||||
|
*
|
||||||
|
* @return whether the progress element is in the indeterminate state.
|
||||||
|
*/
|
||||||
|
bool IsIndeterminate() const;
|
||||||
|
|
||||||
|
static const double kIndeterminatePosition;
|
||||||
|
static const double kDefaultValue;
|
||||||
|
static const double kDefaultMax;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace dom
|
||||||
|
} // namespace mozilla
|
||||||
|
|
||||||
|
#endif // mozilla_dom_HTMLProgressElement_h
|
|
@ -53,6 +53,7 @@ EXPORTS_mozilla/dom = \
|
||||||
HTMLOptGroupElement.h \
|
HTMLOptGroupElement.h \
|
||||||
HTMLParagraphElement.h \
|
HTMLParagraphElement.h \
|
||||||
HTMLPreElement.h \
|
HTMLPreElement.h \
|
||||||
|
HTMLProgressElement.h \
|
||||||
HTMLScriptElement.h \
|
HTMLScriptElement.h \
|
||||||
HTMLSharedElement.h \
|
HTMLSharedElement.h \
|
||||||
HTMLSharedListElement.h \
|
HTMLSharedListElement.h \
|
||||||
|
@ -114,7 +115,7 @@ CPPSRCS = \
|
||||||
nsHTMLOutputElement.cpp \
|
nsHTMLOutputElement.cpp \
|
||||||
HTMLParagraphElement.cpp \
|
HTMLParagraphElement.cpp \
|
||||||
HTMLPreElement.cpp \
|
HTMLPreElement.cpp \
|
||||||
nsHTMLProgressElement.cpp \
|
HTMLProgressElement.cpp \
|
||||||
HTMLScriptElement.cpp \
|
HTMLScriptElement.cpp \
|
||||||
nsHTMLSelectElement.cpp \
|
nsHTMLSelectElement.cpp \
|
||||||
HTMLSharedElement.cpp \
|
HTMLSharedElement.cpp \
|
||||||
|
|
|
@ -1,192 +0,0 @@
|
||||||
/* -*- 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/. */
|
|
||||||
|
|
||||||
#include "nsIDOMHTMLProgressElement.h"
|
|
||||||
#include "nsGenericHTMLElement.h"
|
|
||||||
#include "nsAttrValue.h"
|
|
||||||
#include "nsAttrValueInlines.h"
|
|
||||||
#include "nsEventStateManager.h"
|
|
||||||
#include <algorithm>
|
|
||||||
|
|
||||||
using namespace mozilla::dom;
|
|
||||||
|
|
||||||
class nsHTMLProgressElement : public nsGenericHTMLElement,
|
|
||||||
public nsIDOMHTMLProgressElement
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
nsHTMLProgressElement(already_AddRefed<nsINodeInfo> aNodeInfo);
|
|
||||||
virtual ~nsHTMLProgressElement();
|
|
||||||
|
|
||||||
// nsISupports
|
|
||||||
NS_DECL_ISUPPORTS_INHERITED
|
|
||||||
|
|
||||||
// nsIDOMNode
|
|
||||||
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
|
||||||
|
|
||||||
// nsIDOMElement
|
|
||||||
NS_FORWARD_NSIDOMELEMENT_TO_GENERIC
|
|
||||||
|
|
||||||
// nsIDOMHTMLElement
|
|
||||||
NS_FORWARD_NSIDOMHTMLELEMENT_TO_GENERIC
|
|
||||||
|
|
||||||
// nsIDOMHTMLProgressElement
|
|
||||||
NS_DECL_NSIDOMHTMLPROGRESSELEMENT
|
|
||||||
|
|
||||||
nsEventStates IntrinsicState() const;
|
|
||||||
|
|
||||||
nsresult Clone(nsINodeInfo* aNodeInfo, nsINode** aResult) const;
|
|
||||||
|
|
||||||
bool ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute,
|
|
||||||
const nsAString& aValue, nsAttrValue& aResult);
|
|
||||||
|
|
||||||
virtual nsXPCClassInfo* GetClassInfo();
|
|
||||||
|
|
||||||
virtual nsIDOMNode* AsDOMNode() { return this; }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
/**
|
|
||||||
* Returns whethem the progress element is in the indeterminate state.
|
|
||||||
* A progress element is in the indeterminate state if its value is ommited
|
|
||||||
* or is not a floating point number..
|
|
||||||
*
|
|
||||||
* @return whether the progress element is in the indeterminate state.
|
|
||||||
*/
|
|
||||||
bool IsIndeterminate() const;
|
|
||||||
|
|
||||||
static const double kIndeterminatePosition;
|
|
||||||
static const double kDefaultValue;
|
|
||||||
static const double kDefaultMax;
|
|
||||||
};
|
|
||||||
|
|
||||||
const double nsHTMLProgressElement::kIndeterminatePosition = -1.0;
|
|
||||||
const double nsHTMLProgressElement::kDefaultValue = 0.0;
|
|
||||||
const double nsHTMLProgressElement::kDefaultMax = 1.0;
|
|
||||||
|
|
||||||
NS_IMPL_NS_NEW_HTML_ELEMENT(Progress)
|
|
||||||
|
|
||||||
|
|
||||||
nsHTMLProgressElement::nsHTMLProgressElement(already_AddRefed<nsINodeInfo> aNodeInfo)
|
|
||||||
: nsGenericHTMLElement(aNodeInfo)
|
|
||||||
{
|
|
||||||
// We start out indeterminate
|
|
||||||
AddStatesSilently(NS_EVENT_STATE_INDETERMINATE);
|
|
||||||
}
|
|
||||||
|
|
||||||
nsHTMLProgressElement::~nsHTMLProgressElement()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMPL_ADDREF_INHERITED(nsHTMLProgressElement, Element)
|
|
||||||
NS_IMPL_RELEASE_INHERITED(nsHTMLProgressElement, Element)
|
|
||||||
|
|
||||||
DOMCI_NODE_DATA(HTMLProgressElement, nsHTMLProgressElement)
|
|
||||||
|
|
||||||
NS_INTERFACE_TABLE_HEAD(nsHTMLProgressElement)
|
|
||||||
NS_HTML_CONTENT_INTERFACE_TABLE1(nsHTMLProgressElement,
|
|
||||||
nsIDOMHTMLProgressElement)
|
|
||||||
NS_HTML_CONTENT_INTERFACE_TABLE_TO_MAP_SEGUE(nsHTMLProgressElement,
|
|
||||||
nsGenericHTMLElement)
|
|
||||||
NS_HTML_CONTENT_INTERFACE_TABLE_TAIL_CLASSINFO(HTMLProgressElement)
|
|
||||||
|
|
||||||
NS_IMPL_ELEMENT_CLONE(nsHTMLProgressElement)
|
|
||||||
|
|
||||||
|
|
||||||
nsEventStates
|
|
||||||
nsHTMLProgressElement::IntrinsicState() const
|
|
||||||
{
|
|
||||||
nsEventStates state = nsGenericHTMLElement::IntrinsicState();
|
|
||||||
|
|
||||||
if (IsIndeterminate()) {
|
|
||||||
state |= NS_EVENT_STATE_INDETERMINATE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return state;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
nsHTMLProgressElement::ParseAttribute(int32_t aNamespaceID, nsIAtom* aAttribute,
|
|
||||||
const nsAString& aValue, nsAttrValue& aResult)
|
|
||||||
{
|
|
||||||
if (aNamespaceID == kNameSpaceID_None) {
|
|
||||||
if (aAttribute == nsGkAtoms::value || aAttribute == nsGkAtoms::max) {
|
|
||||||
return aResult.ParseDoubleValue(aValue);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute,
|
|
||||||
aValue, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsHTMLProgressElement::GetValue(double* aValue)
|
|
||||||
{
|
|
||||||
const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value);
|
|
||||||
if (!attrValue || attrValue->Type() != nsAttrValue::eDoubleValue ||
|
|
||||||
attrValue->GetDoubleValue() < 0.0) {
|
|
||||||
*aValue = kDefaultValue;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
*aValue = attrValue->GetDoubleValue();
|
|
||||||
|
|
||||||
double max;
|
|
||||||
GetMax(&max);
|
|
||||||
|
|
||||||
*aValue = std::min(*aValue, max);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsHTMLProgressElement::SetValue(double aValue)
|
|
||||||
{
|
|
||||||
return SetDoubleAttr(nsGkAtoms::value, aValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsHTMLProgressElement::GetMax(double* aValue)
|
|
||||||
{
|
|
||||||
const nsAttrValue* attrMax = mAttrsAndChildren.GetAttr(nsGkAtoms::max);
|
|
||||||
if (attrMax && attrMax->Type() == nsAttrValue::eDoubleValue &&
|
|
||||||
attrMax->GetDoubleValue() > 0.0) {
|
|
||||||
*aValue = attrMax->GetDoubleValue();
|
|
||||||
} else {
|
|
||||||
*aValue = kDefaultMax;
|
|
||||||
}
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsHTMLProgressElement::SetMax(double aValue)
|
|
||||||
{
|
|
||||||
return SetDoubleAttr(nsGkAtoms::max, aValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsHTMLProgressElement::GetPosition(double* aPosition)
|
|
||||||
{
|
|
||||||
if (IsIndeterminate()) {
|
|
||||||
*aPosition = kIndeterminatePosition;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
double value;
|
|
||||||
double max;
|
|
||||||
GetValue(&value);
|
|
||||||
GetMax(&max);
|
|
||||||
|
|
||||||
*aPosition = value / max;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
nsHTMLProgressElement::IsIndeterminate() const
|
|
||||||
{
|
|
||||||
const nsAttrValue* attrValue = mAttrsAndChildren.GetAttr(nsGkAtoms::value);
|
|
||||||
return !attrValue || attrValue->Type() != nsAttrValue::eDoubleValue;
|
|
||||||
}
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче