forked from mirrors/gecko-dev
		
	 a560608963
			
		
	
	
		a560608963
		
	
	
	
	
		
			
			And then fix up everything else that needs to change as well. MozReview-Commit-ID: GDMfERqdQAc --HG-- extra : rebase_source : 01fe06c3182245a409099a53383d92bf4fa0155c
		
			
				
	
	
		
			90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			90 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
 | |
| /* vim: set ts=8 sts=2 et sw=2 tw=80: */
 | |
| /* 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/HTMLTableCaptionElement.h"
 | |
| 
 | |
| #include "mozilla/GenericSpecifiedValuesInlines.h"
 | |
| #include "nsAttrValueInlines.h"
 | |
| #include "nsMappedAttributes.h"
 | |
| #include "mozilla/dom/HTMLTableCaptionElementBinding.h"
 | |
| 
 | |
| NS_IMPL_NS_NEW_HTML_ELEMENT(TableCaption)
 | |
| 
 | |
| namespace mozilla {
 | |
| namespace dom {
 | |
| 
 | |
| HTMLTableCaptionElement::~HTMLTableCaptionElement()
 | |
| {
 | |
| }
 | |
| 
 | |
| JSObject*
 | |
| HTMLTableCaptionElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
 | |
| {
 | |
|   return HTMLTableCaptionElementBinding::Wrap(aCx, this, aGivenProto);
 | |
| }
 | |
| 
 | |
| NS_IMPL_ELEMENT_CLONE(HTMLTableCaptionElement)
 | |
| 
 | |
| static const nsAttrValue::EnumTable kCaptionAlignTable[] = {
 | |
|   { "left",   NS_STYLE_CAPTION_SIDE_LEFT },
 | |
|   { "right",  NS_STYLE_CAPTION_SIDE_RIGHT },
 | |
|   { "top",    NS_STYLE_CAPTION_SIDE_TOP },
 | |
|   { "bottom", NS_STYLE_CAPTION_SIDE_BOTTOM },
 | |
|   { nullptr,  0 }
 | |
| };
 | |
| 
 | |
| bool
 | |
| HTMLTableCaptionElement::ParseAttribute(int32_t aNamespaceID,
 | |
|                                         nsAtom* aAttribute,
 | |
|                                         const nsAString& aValue,
 | |
|                                         nsIPrincipal* aMaybeScriptedPrincipal,
 | |
|                                         nsAttrValue& aResult)
 | |
| {
 | |
|   if (aAttribute == nsGkAtoms::align && aNamespaceID == kNameSpaceID_None) {
 | |
|     return aResult.ParseEnumValue(aValue, kCaptionAlignTable, false);
 | |
|   }
 | |
| 
 | |
|   return nsGenericHTMLElement::ParseAttribute(aNamespaceID, aAttribute, aValue,
 | |
|                                               aMaybeScriptedPrincipal, aResult);
 | |
| }
 | |
| 
 | |
| void
 | |
| HTMLTableCaptionElement::MapAttributesIntoRule(const nsMappedAttributes* aAttributes,
 | |
|                                                GenericSpecifiedValues* aData)
 | |
| {
 | |
|   if (!aData->PropertyIsSet(eCSSProperty_caption_side)) {
 | |
|     const nsAttrValue* value = aAttributes->GetAttr(nsGkAtoms::align);
 | |
|     if (value && value->Type() == nsAttrValue::eEnum)
 | |
|       aData->SetKeywordValue(eCSSProperty_caption_side, value->GetEnumValue());
 | |
|   }
 | |
| 
 | |
|   nsGenericHTMLElement::MapCommonAttributesInto(aAttributes, aData);
 | |
| }
 | |
| 
 | |
| NS_IMETHODIMP_(bool)
 | |
| HTMLTableCaptionElement::IsAttributeMapped(const nsAtom* aAttribute) const
 | |
| {
 | |
|   static const MappedAttributeEntry attributes[] = {
 | |
|     { nsGkAtoms::align },
 | |
|     { nullptr }
 | |
|   };
 | |
| 
 | |
|   static const MappedAttributeEntry* const map[] = {
 | |
|     attributes,
 | |
|     sCommonAttributeMap,
 | |
|   };
 | |
| 
 | |
|   return FindAttributeDependence(aAttribute, map);
 | |
| }
 | |
| 
 | |
| nsMapRuleToAttributesFunc
 | |
| HTMLTableCaptionElement::GetAttributeMappingFunction() const
 | |
| {
 | |
|   return &MapAttributesIntoRule;
 | |
| }
 | |
| 
 | |
| } // namespace dom
 | |
| } // namespace mozilla
 |