void HTMLFontElementImpl::parseAttribute(AttributeImpl *attr) { switch(attr->id()) { case ATTR_SIZE: { DOMString s = attr->value(); if(!s.isNull()) { int num = s.toInt(); if ( *s.unicode() == '+' || *s.unicode() == '-' ) { num += 3; } int size = 0; switch (num) { case 1: size = CSS_VAL_X_SMALL; break; case 2: size = CSS_VAL_SMALL; break; case 3: size = CSS_VAL_MEDIUM; break; case 4: size = CSS_VAL_LARGE; break; case 5: size = CSS_VAL_X_LARGE; break; case 6: size = CSS_VAL_XX_LARGE;break; default: if (num >= 6) size = CSS_VAL__KONQ_XXX_LARGE; else if (num < 1) size = CSS_VAL_XX_SMALL; } if ( size ) addCSSProperty(CSS_PROP_FONT_SIZE, size); } break; } case ATTR_COLOR: addCSSProperty(CSS_PROP_COLOR, attr->value()); // HTML4 compatibility hack addCSSProperty(CSS_PROP_TEXT_DECORATION_COLOR, attr->value()); break; case ATTR_FACE: addCSSProperty(CSS_PROP_FONT_FAMILY, attr->value()); break; default: HTMLElementImpl::parseAttribute(attr); } }
void HTMLElementImpl::parseHTMLAttribute(HTMLAttributeImpl *attr) { DOMString indexstring; switch (attr->id()) { case ATTR_ALIGN: if (strcasecmp(attr->value(), "middle" ) == 0) addCSSProperty(attr, CSS_PROP_TEXT_ALIGN, "center"); else addCSSProperty(attr, CSS_PROP_TEXT_ALIGN, attr->value()); break; // the core attributes... case ATTR_ID: // unique id setHasID(!attr->isNull()); if (namedAttrMap) { if (attr->isNull()) namedAttrMap->setID(nullAtom); else if (getDocument()->inCompatMode() && !attr->value().implementation()->isLower()) namedAttrMap->setID(AtomicString(attr->value().implementation()->lower())); else namedAttrMap->setID(attr->value()); } setChanged(); break; case ATTR_CLASS: // class setHasClass(!attr->isNull()); if (namedAttrMap) static_cast<HTMLNamedAttrMapImpl*>(namedAttrMap)->parseClassAttribute(attr->value()); setChanged(); break; case ATTR_CONTENTEDITABLE: setContentEditable(attr); break; case ATTR_STYLE: // ### we need to remove old style info in case there was any! // ### the inline sheet ay contain more than 1 property! // stylesheet info setHasStyle(); if (!m_inlineStyleDecl) createInlineStyleDecl(); m_inlineStyleDecl->setProperty(attr->value()); setChanged(); break; case ATTR_TABINDEX: indexstring=getAttribute(ATTR_TABINDEX); if (indexstring.length()) setTabIndex(indexstring.toInt()); break; // i18n attributes case ATTR_LANG: break; case ATTR_DIR: addCSSProperty(attr, CSS_PROP_DIRECTION, attr->value()); addCSSProperty(attr, CSS_PROP_UNICODE_BIDI, CSS_VAL_EMBED); break; // standard events case ATTR_ONCLICK: setHTMLEventListener(EventImpl::KHTML_CLICK_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONCONTEXTMENU: setHTMLEventListener(EventImpl::CONTEXTMENU_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDBLCLICK: setHTMLEventListener(EventImpl::KHTML_DBLCLICK_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEDOWN: setHTMLEventListener(EventImpl::MOUSEDOWN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEMOVE: setHTMLEventListener(EventImpl::MOUSEMOVE_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEOUT: setHTMLEventListener(EventImpl::MOUSEOUT_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEOVER: setHTMLEventListener(EventImpl::MOUSEOVER_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEUP: setHTMLEventListener(EventImpl::MOUSEUP_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONFOCUS: setHTMLEventListener(EventImpl::DOMFOCUSIN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYDOWN: setHTMLEventListener(EventImpl::KEYDOWN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYPRESS: setHTMLEventListener(EventImpl::KEYPRESS_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYUP: setHTMLEventListener(EventImpl::KEYUP_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONSCROLL: setHTMLEventListener(EventImpl::SCROLL_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONBEFORECUT: setHTMLEventListener(EventImpl::BEFORECUT_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONCUT: setHTMLEventListener(EventImpl::CUT_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONBEFORECOPY: setHTMLEventListener(EventImpl::BEFORECOPY_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONCOPY: setHTMLEventListener(EventImpl::COPY_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONBEFOREPASTE: setHTMLEventListener(EventImpl::BEFOREPASTE_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONPASTE: setHTMLEventListener(EventImpl::PASTE_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAGENTER: setHTMLEventListener(EventImpl::DRAGENTER_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAGOVER: setHTMLEventListener(EventImpl::DRAGOVER_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAGLEAVE: setHTMLEventListener(EventImpl::DRAGLEAVE_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDROP: setHTMLEventListener(EventImpl::DROP_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAGSTART: setHTMLEventListener(EventImpl::DRAGSTART_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAG: setHTMLEventListener(EventImpl::DRAG_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDRAGEND: setHTMLEventListener(EventImpl::DRAGEND_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONSELECTSTART: setHTMLEventListener(EventImpl::SELECTSTART_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; // other misc attributes default: #ifdef UNSUPPORTED_ATTR kdDebug(6030) << "UATTR: <" << this->nodeName().string() << "> [" << attr->name().string() << "]=[" << attr->value().string() << "]" << endl; #endif break; } }
long HTMLLayerElement::left() const { if(!impl) return 0; DOMString l = ((ElementImpl *)impl)->getAttribute(ATTR_LEFT); return l.toInt(); }
long HTMLLayerElement::top() const { if(!impl) return 0; DOMString t = ((ElementImpl *)impl)->getAttribute(ATTR_TOP); return t.toInt(); }
long HTMLPreElement::width() const { if(!impl) return 0; DOMString w = ((ElementImpl *)impl)->getAttribute(ATTR_WIDTH); return w.toInt(); }
void HTMLElementImpl::parseAttribute(AttributeImpl *attr) { DOMString indexstring; switch( attr->id() ) { case ATTR_ALIGN: if (attr->val()) { if ( strcasecmp(attr->value(), "middle" ) == 0 ) addCSSProperty( CSS_PROP_TEXT_ALIGN, "center" ); else addCSSProperty(CSS_PROP_TEXT_ALIGN, attr->value()); } else removeCSSProperty(CSS_PROP_TEXT_ALIGN); break; // the core attributes... case ATTR_ID: // unique id setHasID(); setChanged(); // in case of a CSS selector on id break; case ATTR_CLASS: case ATTR_NAME: setChanged(); // in case of a CSS selector on class/name break; case ATTR_STYLE: // ### we need to remove old style info in case there was any! // ### the inline sheet ay contain more than 1 property! // stylesheet info setHasStyle(); if(!m_styleDecls) createDecl(); m_styleDecls->setProperty(attr->value()); setChanged(); break; case ATTR_TABINDEX: indexstring=getAttribute(ATTR_TABINDEX); if (indexstring.length()) setTabIndex(indexstring.toInt()); break; // i18n attributes case ATTR_LANG: break; case ATTR_DIR: addCSSProperty(CSS_PROP_DIRECTION, attr->value()); addCSSProperty(CSS_PROP_UNICODE_BIDI, CSS_VAL_EMBED); break; // standard events case ATTR_ONCLICK: setHTMLEventListener(EventImpl::KHTML_ECMA_CLICK_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONDBLCLICK: setHTMLEventListener(EventImpl::KHTML_ECMA_DBLCLICK_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEDOWN: setHTMLEventListener(EventImpl::MOUSEDOWN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEMOVE: setHTMLEventListener(EventImpl::MOUSEMOVE_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEOUT: setHTMLEventListener(EventImpl::MOUSEOUT_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEOVER: setHTMLEventListener(EventImpl::MOUSEOVER_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONMOUSEUP: setHTMLEventListener(EventImpl::MOUSEUP_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONFOCUS: setHTMLEventListener(EventImpl::DOMFOCUSIN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYDOWN: setHTMLEventListener(EventImpl::KHTML_KEYDOWN_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYPRESS: setHTMLEventListener(EventImpl::KHTML_KEYPRESS_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; case ATTR_ONKEYUP: setHTMLEventListener(EventImpl::KHTML_KEYUP_EVENT, getDocument()->createHTMLEventListener(attr->value().string())); break; // other misc attributes default: #ifdef UNSUPPORTED_ATTR kdDebug(6030) << "UATTR: <" << this->nodeName().string() << "> [" << attr->name().string() << "]=[" << attr->value().string() << "]" << endl; #endif break; } }