+2006-04-03 Darin Adler <darin@apple.com>
+
+ - fixed properties on a bunch of files
+ (removed allow-tabs and svn:executable from many)
+
+ * css/css_base.cpp:
+ * html/html_headimpl.cpp:
+ * khtml/ecma/kjs_traversal.cpp:
+ * kwq/DeprecatedPtrListImpl.cpp:
+ * kwq/DeprecatedValueListImpl.cpp:
+ * loader/CachedScript.h:
+ * platform/ArrayImpl.cpp:
+ * platform/StringImpl.cpp:
+ * rendering/DataRef.h:
+ * rendering/RenderContainer.cpp:
+ * rendering/RenderTableCell.cpp:
+ * rendering/bidi.h:
+ * rendering/render_list.cpp:
+ * rendering/render_style.cpp:
+ * rendering/table_layout.h:
+ Converted tabs to spaces.
+
2006-04-03 Alexey Proskuryakov <ap@nypop.com>
Reviewed by Darin.
switch(match)
{
case Id:
- s += 0x10000;
- break;
+ s += 0x10000;
+ break;
case Exact:
case Class:
case Set:
static AtomicString selection("selection");
static AtomicString target("target");
static AtomicString visited("visited");
- bool element = false; // pseudo-element
- bool compat = false; // single colon compatbility mode
+ bool element = false; // pseudo-element
+ bool compat = false; // single colon compatbility mode
_pseudoType = PseudoOther;
if (value == active)
const CSSSelector *sel2 = &other;
while ( sel1 && sel2 ) {
- if ( sel1->tag != sel2->tag || sel1->attr != sel2->attr ||
- sel1->relation() != sel2->relation() || sel1->match != sel2->match ||
- sel1->value != sel2->value ||
+ if ( sel1->tag != sel2->tag || sel1->attr != sel2->attr ||
+ sel1->relation() != sel2->relation() || sel1->match != sel2->match ||
+ sel1->value != sel2->value ||
sel1->pseudoType() != sel2->pseudoType())
- return false;
- sel1 = sel1->tagHistory;
- sel2 = sel2->tagHistory;
+ return false;
+ sel1 = sel1->tagHistory;
+ sel2 = sel2->tagHistory;
}
if ( sel1 || sel2 )
- return false;
+ return false;
return true;
}
void HTMLBaseElement::parseMappedAttribute(MappedAttribute *attr)
{
if (attr->name() == hrefAttr) {
- m_href = parseURL(attr->value());
- process();
+ m_href = parseURL(attr->value());
+ process();
} else if (attr->name() == targetAttr) {
- m_target = attr->value();
- process();
+ m_target = attr->value();
+ process();
} else
HTMLElement::parseMappedAttribute(attr);
}
void HTMLBaseElement::process()
{
if (!inDocument())
- return;
+ return;
if(!m_href.isEmpty() && document()->frame())
- document()->setBaseURL( KURL( document()->frame()->url(), m_href.deprecatedString() ).url() );
+ document()->setBaseURL( KURL( document()->frame()->url(), m_href.deprecatedString() ).url() );
if(!m_target.isEmpty())
- document()->setBaseTarget( m_target.deprecatedString() );
+ document()->setBaseTarget( m_target.deprecatedString() );
// ### should changing a document's base URL dynamically automatically update all images, stylesheets etc?
}
process();
} else if (attr->name() == hrefAttr) {
m_url = document()->completeURL(parseURL(attr->value()));
- process();
+ process();
} else if (attr->name() == typeAttr) {
m_type = attr->value();
- process();
+ process();
} else if (attr->name() == mediaAttr) {
m_media = attr->value().deprecatedString().lower();
process();
if (m_disabledState != 2 && (type.contains("text/css") || m_isStyleSheet) && document()->frame()) {
// no need to load style sheets which aren't for the screen output
// ### there may be in some situations e.g. for an editor or script to manipulate
- // also, don't load style sheets for standalone documents
+ // also, don't load style sheets for standalone documents
if (m_media.isNull() || m_media.contains("screen") || m_media.contains("all") || m_media.contains("print")) {
// Add ourselves as a pending sheet, but only if we aren't an alternate
void HTMLMetaElement::parseMappedAttribute(MappedAttribute *attr)
{
if (attr->name() == http_equivAttr) {
- m_equiv = attr->value();
- process();
+ m_equiv = attr->value();
+ process();
} else if (attr->name() == contentAttr) {
- m_content = attr->value();
- process();
+ m_content = attr->value();
+ process();
} else if (attr->name() == nameAttr) {
// Do nothing.
} else
// Get the document to process the tag, but only if we're actually part of DOM tree (changing a meta tag while
// it's not in the tree shouldn't have any effect on the document)
if (inDocument() && !m_equiv.isNull() && !m_content.isNull())
- document()->processHttpEquiv(m_equiv,m_content);
+ document()->processHttpEquiv(m_equiv,m_content);
}
String HTMLMetaElement::content() const
String text = "";
for (Node* c = firstChild(); c; c = c->nextSibling())
- if (c->nodeType() == TEXT_NODE || c->nodeType() == CDATA_SECTION_NODE || c->nodeType() == COMMENT_NODE)
- text += c->nodeValue();
+ if (c->nodeType() == TEXT_NODE || c->nodeType() == CDATA_SECTION_NODE || c->nodeType() == COMMENT_NODE)
+ text += c->nodeValue();
if (m_sheet) {
if (static_cast<CSSStyleSheet *>(m_sheet.get())->isLoading())
HTMLElement::childrenChanged();
m_title = "";
for (Node* c = firstChild(); c != 0; c = c->nextSibling())
- if (c->nodeType() == TEXT_NODE || c->nodeType() == CDATA_SECTION_NODE)
- m_title += c->nodeValue();
+ if (c->nodeType() == TEXT_NODE || c->nodeType() == CDATA_SECTION_NODE)
+ m_title += c->nodeValue();
if (inDocument())
document()->setTitle(m_title, this);
}
const ClassInfo DOMNodeIterator::info = { "NodeIterator", 0, &DOMNodeIteratorTable, 0 };
/*
@begin DOMNodeIteratorTable 5
- root DOMNodeIterator::Root DontDelete|ReadOnly
- whatToShow DOMNodeIterator::WhatToShow DontDelete|ReadOnly
- filter DOMNodeIterator::Filter DontDelete|ReadOnly
- expandEntityReferences DOMNodeIterator::ExpandEntityReferences DontDelete|ReadOnly
- referenceNode DOMNodeIterator::ReferenceNode DontDelete|ReadOnly
- pointerBeforeReferenceNode DOMNodeIterator::PointerBeforeReferenceNode DontDelete|ReadOnly
+ root DOMNodeIterator::Root DontDelete|ReadOnly
+ whatToShow DOMNodeIterator::WhatToShow DontDelete|ReadOnly
+ filter DOMNodeIterator::Filter DontDelete|ReadOnly
+ expandEntityReferences DOMNodeIterator::ExpandEntityReferences DontDelete|ReadOnly
+ referenceNode DOMNodeIterator::ReferenceNode DontDelete|ReadOnly
+ pointerBeforeReferenceNode DOMNodeIterator::PointerBeforeReferenceNode DontDelete|ReadOnly
@end
@begin DOMNodeIteratorProtoTable 3
- nextNode DOMNodeIterator::NextNode DontDelete|Function 0
- previousNode DOMNodeIterator::PreviousNode DontDelete|Function 0
- detach DOMNodeIterator::Detach DontDelete|Function 0
+ nextNode DOMNodeIterator::NextNode DontDelete|Function 0
+ previousNode DOMNodeIterator::PreviousNode DontDelete|Function 0
+ detach DOMNodeIterator::Detach DontDelete|Function 0
@end
*/
KJS_DEFINE_PROTOTYPE(DOMNodeIteratorProto)
const ClassInfo NodeFilterConstructor::info = { "NodeFilterConstructor", 0, &NodeFilterConstructorTable, 0 };
/*
@begin NodeFilterConstructorTable 17
- FILTER_ACCEPT WebCore::NodeFilter::FILTER_ACCEPT DontDelete|ReadOnly
- FILTER_REJECT WebCore::NodeFilter::FILTER_REJECT DontDelete|ReadOnly
- FILTER_SKIP WebCore::NodeFilter::FILTER_SKIP DontDelete|ReadOnly
- SHOW_ALL WebCore::NodeFilter::SHOW_ALL DontDelete|ReadOnly
- SHOW_ELEMENT WebCore::NodeFilter::SHOW_ELEMENT DontDelete|ReadOnly
- SHOW_ATTRIBUTE WebCore::NodeFilter::SHOW_ATTRIBUTE DontDelete|ReadOnly
- SHOW_TEXT WebCore::NodeFilter::SHOW_TEXT DontDelete|ReadOnly
- SHOW_CDATA_SECTION WebCore::NodeFilter::SHOW_CDATA_SECTION DontDelete|ReadOnly
- SHOW_ENTITY_REFERENCE WebCore::NodeFilter::SHOW_ENTITY_REFERENCE DontDelete|ReadOnly
- SHOW_ENTITY WebCore::NodeFilter::SHOW_ENTITY DontDelete|ReadOnly
- SHOW_PROCESSING_INSTRUCTION WebCore::NodeFilter::SHOW_PROCESSING_INSTRUCTION DontDelete|ReadOnly
- SHOW_COMMENT WebCore::NodeFilter::SHOW_COMMENT DontDelete|ReadOnly
- SHOW_DOCUMENT WebCore::NodeFilter::SHOW_DOCUMENT DontDelete|ReadOnly
- SHOW_DOCUMENT_TYPE WebCore::NodeFilter::SHOW_DOCUMENT_TYPE DontDelete|ReadOnly
- SHOW_DOCUMENT_FRAGMENT WebCore::NodeFilter::SHOW_DOCUMENT_FRAGMENT DontDelete|ReadOnly
- SHOW_NOTATION WebCore::NodeFilter::SHOW_NOTATION DontDelete|ReadOnly
+ FILTER_ACCEPT WebCore::NodeFilter::FILTER_ACCEPT DontDelete|ReadOnly
+ FILTER_REJECT WebCore::NodeFilter::FILTER_REJECT DontDelete|ReadOnly
+ FILTER_SKIP WebCore::NodeFilter::FILTER_SKIP DontDelete|ReadOnly
+ SHOW_ALL WebCore::NodeFilter::SHOW_ALL DontDelete|ReadOnly
+ SHOW_ELEMENT WebCore::NodeFilter::SHOW_ELEMENT DontDelete|ReadOnly
+ SHOW_ATTRIBUTE WebCore::NodeFilter::SHOW_ATTRIBUTE DontDelete|ReadOnly
+ SHOW_TEXT WebCore::NodeFilter::SHOW_TEXT DontDelete|ReadOnly
+ SHOW_CDATA_SECTION WebCore::NodeFilter::SHOW_CDATA_SECTION DontDelete|ReadOnly
+ SHOW_ENTITY_REFERENCE WebCore::NodeFilter::SHOW_ENTITY_REFERENCE DontDelete|ReadOnly
+ SHOW_ENTITY WebCore::NodeFilter::SHOW_ENTITY DontDelete|ReadOnly
+ SHOW_PROCESSING_INSTRUCTION WebCore::NodeFilter::SHOW_PROCESSING_INSTRUCTION DontDelete|ReadOnly
+ SHOW_COMMENT WebCore::NodeFilter::SHOW_COMMENT DontDelete|ReadOnly
+ SHOW_DOCUMENT WebCore::NodeFilter::SHOW_DOCUMENT DontDelete|ReadOnly
+ SHOW_DOCUMENT_TYPE WebCore::NodeFilter::SHOW_DOCUMENT_TYPE DontDelete|ReadOnly
+ SHOW_DOCUMENT_FRAGMENT WebCore::NodeFilter::SHOW_DOCUMENT_FRAGMENT DontDelete|ReadOnly
+ SHOW_NOTATION WebCore::NodeFilter::SHOW_NOTATION DontDelete|ReadOnly
@end
*/
bool NodeFilterConstructor::getOwnPropertySlot(ExecState *exec, const Identifier& propertyName, PropertySlot& slot)
const ClassInfo DOMNodeFilter::info = { "NodeFilter", 0, 0, 0 };
/*
@begin DOMNodeFilterProtoTable 1
- acceptNode DOMNodeFilter::AcceptNode DontDelete|Function 0
+ acceptNode DOMNodeFilter::AcceptNode DontDelete|Function 0
@end
*/
KJS_DEFINE_PROTOTYPE(DOMNodeFilterProto)
const ClassInfo DOMTreeWalker::info = { "TreeWalker", 0, &DOMTreeWalkerTable, 0 };
/*
@begin DOMTreeWalkerTable 5
- root DOMTreeWalker::Root DontDelete|ReadOnly
- whatToShow DOMTreeWalker::WhatToShow DontDelete|ReadOnly
- filter DOMTreeWalker::Filter DontDelete|ReadOnly
- expandEntityReferences DOMTreeWalker::ExpandEntityReferences DontDelete|ReadOnly
- currentNode DOMTreeWalker::CurrentNode DontDelete
+ root DOMTreeWalker::Root DontDelete|ReadOnly
+ whatToShow DOMTreeWalker::WhatToShow DontDelete|ReadOnly
+ filter DOMTreeWalker::Filter DontDelete|ReadOnly
+ expandEntityReferences DOMTreeWalker::ExpandEntityReferences DontDelete|ReadOnly
+ currentNode DOMTreeWalker::CurrentNode DontDelete
@end
@begin DOMTreeWalkerProtoTable 7
- parentNode DOMTreeWalker::ParentNode DontDelete|Function 0
- firstChild DOMTreeWalker::FirstChild DontDelete|Function 0
- lastChild DOMTreeWalker::LastChild DontDelete|Function 0
- previousSibling DOMTreeWalker::PreviousSibling DontDelete|Function 0
- nextSibling DOMTreeWalker::NextSibling DontDelete|Function 0
- previousNode DOMTreeWalker::PreviousNode DontDelete|Function 0
- nextNode DOMTreeWalker::NextNode DontDelete|Function 0
+ parentNode DOMTreeWalker::ParentNode DontDelete|Function 0
+ firstChild DOMTreeWalker::FirstChild DontDelete|Function 0
+ lastChild DOMTreeWalker::LastChild DontDelete|Function 0
+ previousSibling DOMTreeWalker::PreviousSibling DontDelete|Function 0
+ nextSibling DOMTreeWalker::NextSibling DontDelete|Function 0
+ previousNode DOMTreeWalker::PreviousNode DontDelete|Function 0
+ nextNode DOMTreeWalker::NextNode DontDelete|Function 0
@end
*/
KJS_DEFINE_PROTOTYPE(DOMTreeWalkerProto)
KWQListNode *last = 0;
while (node != 0) {
- KWQListNode *copy = new KWQListNode(node->data);
- if (last != 0) {
- last->next = copy;
- } else {
- copyHead = copy;
- }
+ KWQListNode *copy = new KWQListNode(node->data);
+ if (last != 0) {
+ last->next = copy;
+ } else {
+ copyHead = copy;
+ }
- copy->prev = last;
-
- last = copy;
- node = node->next;
+ copy->prev = last;
+
+ last = copy;
+ node = node->next;
}
tail = last;
nodeCount = 0;
for (DeprecatedPtrListImplIterator *it = iterators; it; it = it->next)
- it->node = 0;
+ it->node = 0;
}
void *DeprecatedPtrListImpl::at(unsigned n)
bool DeprecatedPtrListImpl::insert(unsigned n, const void *item)
{
if (n > nodeCount) {
- return false;
+ return false;
}
KWQListNode *node = new KWQListNode((void *)item);
if (n == 0) {
- // inserting at head
- node->next = head;
- if (head) {
- head->prev = node;
- }
- head = node;
+ // inserting at head
+ node->next = head;
+ if (head) {
+ head->prev = node;
+ }
+ head = node;
if (tail == 0) {
tail = node;
}
}
tail = node;
} else {
- // general insertion
-
- // iterate to one node before the insertion point, can't be null
- // since we know n > 0 and n < nodeCount
- KWQListNode *prevNode = head;
-
- for (unsigned i = 0; i < n - 1; i++) {
- prevNode = prevNode->next;
- }
- node->prev = prevNode;
- node->next = prevNode->next;
- if (node->next) {
- node->next->prev = node;
- }
- prevNode->next = node;
+ // general insertion
+
+ // iterate to one node before the insertion point, can't be null
+ // since we know n > 0 and n < nodeCount
+ KWQListNode *prevNode = head;
+
+ for (unsigned i = 0; i < n - 1; i++) {
+ prevNode = prevNode->next;
+ }
+ node->prev = prevNode;
+ node->next = prevNode->next;
+ if (node->next) {
+ node->next->prev = node;
+ }
+ prevNode->next = node;
}
nodeCount++;
{
KWQListNode *node = cur;
if (node == 0) {
- return false;
+ return false;
}
if (node->prev == 0) {
- head = node->next;
+ head = node->next;
} else {
- node->prev->next = node->next;
+ node->prev->next = node->next;
}
if (node->next == 0) {
tail = node->prev;
} else {
- node->next->prev = node->prev;
+ node->next->prev = node->prev;
}
if (node->next) {
- cur = node->next;
+ cur = node->next;
} else {
- cur = node->prev;
+ cur = node->prev;
}
for (DeprecatedPtrListImplIterator *it = iterators; it; it = it->next) {
- if (it->node == node) {
- it->node = cur;
- }
+ if (it->node == node) {
+ it->node = cur;
+ }
}
if (shouldDeleteItem) {
- deleteItem(node->data);
+ deleteItem(node->data);
}
delete node;
bool DeprecatedPtrListImpl::remove(unsigned n, bool deleteItem)
{
if (n >= nodeCount) {
- return false;
+ return false;
}
at(n);
node = head;
while (node && item != node->data) {
- node = node->next;
+ node = node->next;
}
if (node == 0) {
- return false;
+ return false;
}
cur = node;
void *DeprecatedPtrListImpl::current() const
{
if (cur) {
- return cur->data;
+ return cur->data;
} else {
- return 0;
+ return 0;
}
}
void *DeprecatedPtrListImpl::next()
{
if (cur) {
- cur = cur->next;
+ cur = cur->next;
}
return current();
}
void *DeprecatedPtrListImpl::prev()
{
if (cur) {
- cur = cur->prev;
+ cur = cur->prev;
}
return current();
}
DeprecatedPtrListImplIterator::~DeprecatedPtrListImplIterator()
{
if (list) {
- list->removeIterator(this);
+ list->removeIterator(this);
}
}
void *DeprecatedPtrListImplIterator::operator--()
{
if (node) {
- node = node->prev;
+ node = node->prev;
}
return current();
}
void *DeprecatedPtrListImplIterator::operator++()
{
if (node) {
- node = node->next;
+ node = node->next;
}
return current();
}
DeprecatedPtrListImplIterator &DeprecatedPtrListImplIterator::operator=(const DeprecatedPtrListImplIterator &impl)
{
if (list) {
- list->removeIterator(this);
+ list->removeIterator(this);
}
list = impl.list;
node = impl.node;
if (list) {
- list->addIterator(this);
+ list->addIterator(this);
}
return *this;
unsigned count;
};
-inline DeprecatedValueListImpl::KWQValueListPrivate::KWQValueListPrivate(void (*deleteFunc)(DeprecatedValueListImplNode *),
- DeprecatedValueListImplNode *(*copyFunc)(DeprecatedValueListImplNode *)) :
+inline DeprecatedValueListImpl::KWQValueListPrivate::KWQValueListPrivate(void (*deleteFunc)(DeprecatedValueListImplNode*),
+ DeprecatedValueListImplNode* (*copyFunc)(DeprecatedValueListImplNode*)) :
head(NULL),
tail(NULL),
deleteNode(deleteFunc),
head = NULL;
while (node != NULL) {
- DeprecatedValueListImplNode *copy = copyNode(node);
- if (prev == NULL) {
- head = copy;
- } else {
- prev->next = copy;
- }
-
- copy->prev = prev;
- copy->next = NULL;
-
- prev = copy;
- node = node->next;
+ DeprecatedValueListImplNode *copy = copyNode(node);
+ if (prev == NULL) {
+ head = copy;
+ } else {
+ prev->next = copy;
+ }
+
+ copy->prev = prev;
+ copy->next = NULL;
+
+ prev = copy;
+ node = node->next;
}
tail = prev;
DeprecatedValueListImplNode *p = l;
while (p != NULL) {
- DeprecatedValueListImplNode *next = p->next;
- deleteNode(p);
- p = next;
+ DeprecatedValueListImplNode *next = p->next;
+ deleteNode(p);
+ p = next;
}
}
if (d->tail == NULL) {
d->tail = node;
} else {
- node->next->prev = node;
+ node->next->prev = node;
}
d->count++;
DeprecatedValueListImplNode *next;
for (DeprecatedValueListImplNode *p = d->head; p != NULL; p = next) {
- next = p->next;
- if (equalFunc(node, p)) {
- if (p->next != NULL) {
- p->next->prev = p->prev;
- } else {
+ next = p->next;
+ if (equalFunc(node, p)) {
+ if (p->next != NULL) {
+ p->next->prev = p->prev;
+ } else {
d->tail = p->prev;
}
- if (p->prev != NULL) {
- p->prev->next = p->next;
- } else {
- d->head = p->next;
- }
+ if (p->prev != NULL) {
+ p->prev->next = p->next;
+ } else {
+ d->head = p->next;
+ }
- d->deleteNode(p);
+ d->deleteNode(p);
- d->count--;
- }
+ d->count--;
+ }
}
}
unsigned contains = 0;
for (DeprecatedValueListImplNode *p = d->head; p != NULL; p = p->next) {
- if (equalFunc(node, p)) {
- ++contains;
- }
+ if (equalFunc(node, p)) {
+ ++contains;
+ }
}
return contains;
copyOnWrite();
if (iterator.nodeImpl == NULL) {
- return iterator;
+ return iterator;
}
DeprecatedValueListImplNode *next = iterator.nodeImpl->next;
// detach node
if (iterator.nodeImpl->next != NULL) {
- iterator.nodeImpl->next->prev = iterator.nodeImpl->prev;
+ iterator.nodeImpl->next->prev = iterator.nodeImpl->prev;
} else {
d->tail = iterator.nodeImpl->prev;
}
if (iterator.nodeImpl->prev != NULL) {
- iterator.nodeImpl->prev->next = iterator.nodeImpl->next;
+ iterator.nodeImpl->prev->next = iterator.nodeImpl->next;
} else {
- d->head = iterator.nodeImpl->next;
+ d->head = iterator.nodeImpl->next;
}
d->deleteNode(iterator.nodeImpl);
copyOnWrite();
if (d->count <= index) {
- return NULL;
+ return NULL;
}
DeprecatedValueListImplNode *p = d->head;
for (unsigned i = 0; i < index; i++) {
- p = p->next;
+ p = p->next;
}
return p;
DeprecatedValueListImplNode *DeprecatedValueListImpl::nodeAt(unsigned index) const
{
if (d->count <= index) {
- return NULL;
+ return NULL;
}
DeprecatedValueListImplNode *p = d->head;
for (unsigned i = 0; i < index; i++) {
- p = p->next;
+ p = p->next;
}
return p;
void DeprecatedValueListImpl::copyOnWrite()
{
if (!d->hasOneRef())
- d = new KWQValueListPrivate(*d);
+ d = new KWQValueListPrivate(*d);
}
bool DeprecatedValueListImpl::isEqual(const DeprecatedValueListImpl &other, bool (*equalFunc)(const DeprecatedValueListImplNode *, const DeprecatedValueListImplNode *)) const
{
DeprecatedValueListImplNode *p, *q;
for (p = d->head, q = other.d->head; p && q; p = p->next, q = q->next) {
- if (!equalFunc(p, q)) {
- return false;
- }
+ if (!equalFunc(p, q)) {
+ return false;
+ }
}
return !p && !q;
}
class CachedScript : public CachedObject {
public:
- CachedScript(DocLoader*, const String& URL, KIO::CacheControl, time_t expireDate, const DeprecatedString& charset);
- CachedScript(const String& URL, const DeprecatedString& scriptData);
- virtual ~CachedScript();
+ CachedScript(DocLoader*, const String& URL, KIO::CacheControl, time_t expireDate, const DeprecatedString& charset);
+ CachedScript(const String& URL, const DeprecatedString& scriptData);
+ virtual ~CachedScript();
- const String& script() const { return m_script; }
+ const String& script() const { return m_script; }
- virtual void ref(CachedObjectClient*);
- virtual void deref(CachedObjectClient*);
+ virtual void ref(CachedObjectClient*);
+ virtual void deref(CachedObjectClient*);
virtual void setCharset(const DeprecatedString&);
- virtual void data(DeprecatedByteArray&, bool atEnd);
- virtual void error();
+ virtual void data(DeprecatedByteArray&, bool atEnd);
+ virtual void error();
virtual bool schedule() const { return false; }
bool errorOccurred() const { return m_errorOccurred; }
- void checkNotify();
+ void checkNotify();
private:
- String m_script;
+ String m_script;
TextEncoding m_encoding;
bool m_errorOccurred;
};
if (newSize != d->numItems) {
char *newData;
- if (newSize != 0) {
+ if (newSize != 0) {
size_t maxSize = std::numeric_limits<size_t>::max() / d->itemSize;
if (newSize > maxSize)
return false;
- newData = static_cast<char *>(fastRealloc(d->data, newSize * d->itemSize));
- if (!newData)
- return false;
- } else {
- newData = 0;
+ newData = static_cast<char *>(fastRealloc(d->data, newSize * d->itemSize));
+ if (!newData)
+ return false;
+ } else {
+ newData = 0;
fastFree(d->data);
- }
+ }
- d->data = newData;
- d->numItems = newSize;
+ d->data = newData;
+ d->numItems = newSize;
}
return true;
void ArrayImpl::duplicate(const void *data, size_t newSize)
{
if (data == NULL) {
- newSize = 0;
+ newSize = 0;
}
if (!d->hasOneRef())
d = new ArrayPrivate(d->itemSize, newSize);
if (d->numItems != newSize) {
- resize(newSize);
+ resize(newSize);
}
memcpy(d->data, data, newSize * d->itemSize);
if ((unsigned)numItems != d->numItems) {
if (!resize(numItems)) {
- return false;
- }
+ return false;
+ }
}
for (int i = 0; i < numItems; i++) {
{
unsigned int i;
for (i = 0; i < m_length; i++)
- if (m_data[i].lower() != m_data[i])
- return false;
+ if (m_data[i].lower() != m_data[i])
+ return false;
return true;
}
c->m_length = m_length;
for (unsigned int i = 0; i < m_length; i++)
- c->m_data[i] = m_data[i].lower();
+ c->m_data[i] = m_data[i].lower();
return c;
}
c->m_length = m_length;
for (unsigned int i = 0; i < m_length; i++)
- c->m_data[i] = m_data[i].upper();
+ c->m_data[i] = m_data[i].upper();
return c;
}
while (m_length--) {
if (*a != *b)
return false;
- a++; b++;
+ a++; b++;
}
return true;
}
while (m_length--) {
if (tolower(a->unicode()) != tolower(*b))
return false;
- a++; b++;
+ a++; b++;
}
return true;
}
while (m_length--) {
if (tolower(a->unicode()) != tolower(b->unicode()))
return false;
- a++; b++;
+ a++; b++;
}
return true;
}
if (index >= m_length )
return -1;
while(index < m_length) {
- if (m_data[index] == c)
+ if (m_data[index] == c)
return index;
- index++;
+ index++;
}
return -1;
}
*/
ASSERT(str);
if (index < 0)
- index += m_length;
+ index += m_length;
int lstr = str->m_length;
int lthis = m_length - index;
if ((unsigned)lthis > m_length)
- return -1;
+ return -1;
int delta = lthis - lstr;
if (delta < 0)
- return -1;
+ return -1;
const QChar* uthis = m_data + index;
const QChar* ustr = str->m_data;
unsigned hthis = 0;
unsigned hstr = 0;
if (caseSensitive) {
- for (int i = 0; i < lstr; i++) {
- hthis += uthis[i].unicode();
- hstr += ustr[i].unicode();
- }
- int i = 0;
- while (1) {
- if (hthis == hstr && memcmp(uthis + i, ustr, lstr * sizeof(QChar)) == 0)
- return index + i;
- if (i == delta)
- return -1;
- hthis += uthis[i + lstr].unicode();
- hthis -= uthis[i].unicode();
- i++;
- }
+ for (int i = 0; i < lstr; i++) {
+ hthis += uthis[i].unicode();
+ hstr += ustr[i].unicode();
+ }
+ int i = 0;
+ while (1) {
+ if (hthis == hstr && memcmp(uthis + i, ustr, lstr * sizeof(QChar)) == 0)
+ return index + i;
+ if (i == delta)
+ return -1;
+ hthis += uthis[i + lstr].unicode();
+ hthis -= uthis[i].unicode();
+ i++;
+ }
} else {
- for (int i = 0; i < lstr; i++ ) {
- hthis += tolower(uthis[i].unicode());
- hstr += tolower(ustr[i].unicode());
- }
- int i = 0;
- while (1) {
- if (hthis == hstr && equalCaseInsensitive(uthis + i, ustr, lstr))
- return index + i;
- if (i == delta)
- return -1;
- hthis += tolower(uthis[i + lstr].unicode());
- hthis -= tolower(uthis[i].unicode());
- i++;
- }
+ for (int i = 0; i < lstr; i++ ) {
+ hthis += tolower(uthis[i].unicode());
+ hstr += tolower(ustr[i].unicode());
+ }
+ int i = 0;
+ while (1) {
+ if (hthis == hstr && equalCaseInsensitive(uthis + i, ustr, lstr))
+ return index + i;
+ if (i == delta)
+ return -1;
+ hthis += tolower(uthis[i + lstr].unicode());
+ hthis -= tolower(uthis[i].unicode());
+ i++;
+ }
}
}
return this;
unsigned i;
for (i = 0; i != m_length; ++i)
- if (m_data[i] == oldC)
+ if (m_data[i] == oldC)
break;
if (i == m_length)
return this;
for (i = 0; i != m_length; ++i) {
QChar ch = m_data[i];
- if (ch == oldC)
+ if (ch == oldC)
ch = newC;
c->m_data[i] = ch;
}
DataRef(const DataRef<T>& d)
{
- assert(d.m_data);
+ assert(d.m_data);
m_data = d.m_data;
m_data->ref();
}
~DataRef()
{
- if (m_data)
+ if (m_data)
m_data->deref();
}
T* access()
{
- if (!m_data->hasOneRef()) {
- m_data->deref();
- m_data = new T(*m_data);
- m_data->ref();
+ if (!m_data->hasOneRef()) {
+ m_data->deref();
+ m_data = new T(*m_data);
+ m_data->ref();
}
return m_data;
}
void init()
{
- assert(!m_data);
+ assert(!m_data);
m_data = new T;
m_data->ref();
}
DataRef<T>& operator=(const DataRef<T>& d)
{
- assert(d.m_data);
+ assert(d.m_data);
d.m_data->ref();
- if (m_data)
- m_data->deref();
- m_data = d.m_data;
+ if (m_data)
+ m_data->deref();
+ m_data = d.m_data;
return *this;
}
bool operator==(const DataRef<T>& o) const
{
- assert(m_data);
- assert(o.m_data);
+ assert(m_data);
+ assert(o.m_data);
return m_data == o.m_data || *m_data == *o.m_data;
}
bool operator!=(const DataRef<T>& o) const
{
- assert(m_data);
- assert(o.m_data);
+ assert(m_data);
+ assert(o.m_data);
return m_data != o.m_data && *m_data != *o.m_data;
}
}
table->addChild(newChild);
} else {
- // just add it...
- insertChildNode(newChild, beforeChild);
+ // just add it...
+ insertChildNode(newChild, beforeChild);
}
if (newChild->isText() && newChild->style()->textTransform() == CAPITALIZE) {
KHTMLAssert(!child->parent());
while ( beforeChild->parent() != this && beforeChild->parent()->isAnonymousBlock() )
- beforeChild = beforeChild->parent();
+ beforeChild = beforeChild->parent();
KHTMLAssert(beforeChild->parent() == this);
KHTMLAssert(!isBlockFlow() || (!child->isTableSection() && !child->isTableRow() && !child->isTableCell()));
// have inline children to keep the tree flat
RenderObject *child = firstChild();
while( child ) {
- RenderObject *next = child->nextSibling();
-
- if ( child->isRenderBlock() && child->isAnonymousBlock() && !child->continuation() && !child->childrenInline() && !child->isTableCell() ) {
- RenderObject *firstAnChild = child->firstChild();
- RenderObject *lastAnChild = child->lastChild();
- if ( firstAnChild ) {
- RenderObject *o = firstAnChild;
- while( o ) {
- o->setParent( this );
- o = o->nextSibling();
- }
- firstAnChild->setPreviousSibling( child->previousSibling() );
- lastAnChild->setNextSibling( child->nextSibling() );
- if ( child->previousSibling() )
- child->previousSibling()->setNextSibling( firstAnChild );
- if ( child->nextSibling() )
- child->nextSibling()->setPreviousSibling( lastAnChild );
- } else {
- if ( child->previousSibling() )
- child->previousSibling()->setNextSibling( child->nextSibling() );
- if ( child->nextSibling() )
- child->nextSibling()->setPreviousSibling( child->previousSibling() );
-
- }
- if ( child == firstChild() )
- m_first = firstAnChild;
- if ( child == lastChild() )
- m_last = lastAnChild;
- child->setParent( 0 );
- child->setPreviousSibling( 0 );
- child->setNextSibling( 0 );
- if ( !child->isText() ) {
- RenderContainer *c = static_cast<RenderContainer *>(child);
- c->m_first = 0;
- c->m_next = 0;
- }
- child->destroy();
- }
- child = next;
+ RenderObject *next = child->nextSibling();
+
+ if ( child->isRenderBlock() && child->isAnonymousBlock() && !child->continuation() && !child->childrenInline() && !child->isTableCell() ) {
+ RenderObject *firstAnChild = child->firstChild();
+ RenderObject *lastAnChild = child->lastChild();
+ if ( firstAnChild ) {
+ RenderObject *o = firstAnChild;
+ while( o ) {
+ o->setParent( this );
+ o = o->nextSibling();
+ }
+ firstAnChild->setPreviousSibling( child->previousSibling() );
+ lastAnChild->setNextSibling( child->nextSibling() );
+ if ( child->previousSibling() )
+ child->previousSibling()->setNextSibling( firstAnChild );
+ if ( child->nextSibling() )
+ child->nextSibling()->setPreviousSibling( lastAnChild );
+ } else {
+ if ( child->previousSibling() )
+ child->previousSibling()->setNextSibling( child->nextSibling() );
+ if ( child->nextSibling() )
+ child->nextSibling()->setPreviousSibling( child->previousSibling() );
+
+ }
+ if ( child == firstChild() )
+ m_first = firstAnChild;
+ if ( child == lastChild() )
+ m_last = lastAnChild;
+ child->setParent( 0 );
+ child->setPreviousSibling( 0 );
+ child->setNextSibling( 0 );
+ if ( !child->isText() ) {
+ RenderContainer *c = static_cast<RenderContainer *>(child);
+ c->m_first = 0;
+ c->m_next = 0;
+ }
+ child->destroy();
+ }
+ child = next;
}
if ( parent() )
- parent()->removeLeftoverAnonymousBoxes();
+ parent()->removeLeftoverAnonymousBoxes();
}
VisiblePosition RenderContainer::positionForCoordinates(int _x, int _y)
void RenderTableCell::setWidth(int width)
{
if (width != m_width) {
- m_width = width;
- m_widthChanged = true;
+ m_width = width;
+ m_widthChanged = true;
}
}
if (!o)
return offset + contentHeight();
while (o->firstChild()) {
- if (!o->isInline())
- offset += o->paddingTop() + o->borderTop();
- o = o->firstChild();
+ if (!o->isInline())
+ offset += o->paddingTop() + o->borderTop();
+ o = o->firstChild();
}
if (!o->isInline())
const BackgroundLayer* bgLayer = backgroundObject->style()->backgroundLayers();
if (bgLayer->hasImage() || c.isValid()) {
- // We have to clip here because the background would paint
+ // We have to clip here because the background would paint
// on top of the borders otherwise. This only matters for cells and rows.
bool hasLayer = backgroundObject->layer() && (backgroundObject == this || backgroundObject == parent());
if (hasLayer && tableElt->collapseBorders()) {
class BidiContext {
public:
- BidiContext(unsigned char level, QChar::Direction embedding, BidiContext *parent = 0, bool override = false);
- ~BidiContext();
+ BidiContext(unsigned char level, QChar::Direction embedding, BidiContext *parent = 0, bool override = false);
+ ~BidiContext();
- void ref() const;
- void deref() const;
+ void ref() const;
+ void deref() const;
QChar::Direction dir() const { return static_cast<QChar::Direction>(m_dir); }
QChar::Direction basicDir() const { return static_cast<QChar::Direction>(m_basicDir); }
- unsigned char level;
- bool override : 1;
- unsigned m_dir : 5; // QChar::Direction
- unsigned m_basicDir : 5; // QChar::Direction
-
- BidiContext *parent;
+ unsigned char level;
+ bool override : 1;
+ unsigned m_dir : 5; // QChar::Direction
+ unsigned m_basicDir : 5; // QChar::Direction
+
+ BidiContext *parent;
- // refcounting....
- mutable int count;
+ // refcounting....
+ mutable int count;
};
struct BidiRun {
- BidiRun(int _start, int _stop, RenderObject *_obj, BidiContext *context, QChar::Direction dir)
- : start( _start ), stop( _stop ), obj( _obj ), box(0), override(context->override), nextRun(0)
- {
- if (dir == QChar::DirON)
+ BidiRun(int _start, int _stop, RenderObject *_obj, BidiContext *context, QChar::Direction dir)
+ : start( _start ), stop( _stop ), obj( _obj ), box(0), override(context->override), nextRun(0)
+ {
+ if (dir == QChar::DirON)
dir = context->dir();
- level = context->level;
+ level = context->level;
- // add level of run (cases I1 & I2)
- if( level % 2 ) {
- if(dir == QChar::DirL || dir == QChar::DirAN || dir == QChar::DirEN)
- level++;
- } else {
- if( dir == QChar::DirR )
- level++;
- else if( dir == QChar::DirAN || dir == QChar::DirEN)
- level += 2;
- }
- }
+ // add level of run (cases I1 & I2)
+ if( level % 2 ) {
+ if(dir == QChar::DirL || dir == QChar::DirAN || dir == QChar::DirEN)
+ level++;
+ } else {
+ if( dir == QChar::DirR )
+ level++;
+ else if( dir == QChar::DirAN || dir == QChar::DirEN)
+ level += 2;
+ }
+ }
void destroy(RenderArena* renderArena);
void* operator new(size_t sz) throw();
public:
- int start;
- int stop;
+ int start;
+ int stop;
RenderObject *obj;
InlineBox* box;
- // explicit + implicit levels here
- unsigned char level;
+ // explicit + implicit levels here
+ unsigned char level;
bool override : 1;
bool compact : 1;
DeprecatedString letter;
if (number>999) {
- letter = toHebrew(number/1000) + "'";
- number = number%1000;
+ letter = toHebrew(number/1000) + "'";
+ number = number%1000;
}
int hunderts = (number/400);
if (hunderts > 0) {
- for(int i=0; i<hunderts; i++) {
- letter += QChar(1511 + 3);
- }
+ for(int i=0; i<hunderts; i++) {
+ letter += QChar(1511 + 3);
+ }
}
number = number % 400;
if ((number / 100) != 0) {
number = number % 100;
int tens = number/10;
if (tens > 0 && !(number == 15 || number == 16)) {
- letter += tenDigit[tens-1];
+ letter += tenDigit[tens-1];
}
if (number == 15 || number == 16) { // special because of religious
- letter += QChar(1487 + 9); // reasons
- letter += QChar(1487 + number - 9);
+ letter += QChar(1487 + 9); // reasons
+ letter += QChar(1487 + number - 9);
} else {
number = number % 10;
if (number != 0) {
RenderBox::setStyle(s);
if ( m_listImage != style()->listStyleImage() ) {
- if (m_listImage)
- m_listImage->deref(this);
- m_listImage = style()->listStyleImage();
- if (m_listImage)
- m_listImage->ref(this);
+ if (m_listImage)
+ m_listImage->deref(this);
+ m_listImage = style()->listStyleImage();
+ if (m_listImage)
+ m_listImage->ref(this);
}
}
if (!m_item.isEmpty()) {
const Font& font = style()->font();
if (isInside()) {
- if( style()->direction() == LTR) {
+ if( style()->direction() == LTR) {
p->drawText(marker.x(), marker.y(), AlignLeft, m_item);
p->drawText(marker.x() + font.width(m_item), marker.y(), AlignLeft, ". ");
} else {
p->drawText(marker.x(), marker.y(), AlignLeft, " .");
- p->drawText(marker.x() + font.width(" ."), marker.y(), AlignLeft, m_item);
+ p->drawText(marker.x() + font.width(" ."), marker.y(), AlignLeft, m_item);
}
} else {
if (style()->direction() == LTR) {
p->drawText(marker.x(), marker.y(), AlignRight, ". ");
p->drawText(marker.x() - font.width(". "), marker.y(), AlignRight, m_item);
} else {
- p->drawText(marker.x(), marker.y(), AlignLeft, " .");
+ p->drawText(marker.x(), marker.y(), AlignLeft, " .");
p->drawText(marker.x() + font.width(" ."), marker.y(), AlignLeft, m_item);
}
}
KHTMLAssert( needsLayout() );
// ### KHTMLAssert( minMaxKnown() );
if ( !minMaxKnown() )
- calcMinMaxWidth();
+ calcMinMaxWidth();
setNeedsLayout(false);
}
case SQUARE:
if (isInside())
m_width = m_height;
- goto end;
+ goto end;
case ARMENIAN:
case GEORGIAN:
case CJK_IDEOGRAPHIC:
break;
case LOWER_GREEK:
{
- int number = m_listItem->value() - 1;
- int l = (number % 24);
+ int number = m_listItem->value() - 1;
+ int l = (number % 24);
- if (l>16) {l++;} // Skip GREEK SMALL LETTER FINAL SIGMA
+ if (l>16) {l++;} // Skip GREEK SMALL LETTER FINAL SIGMA
- m_item = QChar(945 + l);
- for (int i = 0; i < (number / 24); i++) {
- m_item += "'";
- }
- break;
+ m_item = QChar(945 + l);
+ for (int i = 0; i < (number / 24); i++) {
+ m_item += "'";
+ }
+ break;
}
case HEBREW:
- m_item = toHebrew( m_listItem->value() );
- break;
+ m_item = toHebrew( m_listItem->value() );
+ break;
case LOWER_ALPHA:
case LOWER_LATIN:
m_item = toLetter( m_listItem->value(), 'a' );
bool StyleSurroundData::operator==(const StyleSurroundData& o) const
{
return offset==o.offset && margin==o.margin &&
- padding==o.padding && border==o.border;
+ padding==o.padding && border==o.border;
}
StyleBoxData::StyleBoxData()
bool StyleInheritedData::operator==(const StyleInheritedData& o) const
{
return
- indent == o.indent &&
- line_height == o.line_height &&
- style_image == o.style_image &&
- cursor_image == o.cursor_image &&
- font == o.font &&
- color == o.color &&
+ indent == o.indent &&
+ line_height == o.line_height &&
+ style_image == o.style_image &&
+ cursor_image == o.cursor_image &&
+ font == o.font &&
+ color == o.color &&
horizontal_border_spacing == o.horizontal_border_spacing &&
vertical_border_spacing == o.vertical_border_spacing &&
widows == o.widows &&
while (ps) {
prev = ps;
ps = ps->pseudoStyle;
- // to prevent a double deletion.
- // this works only because the styles below aren't really shared
- // Dirk said we need another construct as soon as these are shared
+ // to prevent a double deletion.
+ // this works only because the styles below aren't really shared
+ // Dirk said we need another construct as soon as these are shared
prev->pseudoStyle = 0;
prev->deref(arena);
}
// compare everything except the pseudoStyle pointer
return (inherited_flags == o.inherited_flags &&
noninherited_flags == o.noninherited_flags &&
- box == o.box &&
+ box == o.box &&
visual == o.visual &&
background == o.background &&
surround == o.surround &&
RenderStyle *ps = 0;
if (noninherited_flags._styleType==NOPSEUDO) {
- ps = pseudoStyle;
+ ps = pseudoStyle;
while (ps) {
if (styleType() == pid)
break;
#endif
// we anyway assume they are the same
-// EDisplay _effectiveDisplay : 5;
+// EDisplay _effectiveDisplay : 5;
// NonVisible:
-// ECursor _cursor_style : 4;
+// ECursor _cursor_style : 4;
// ### this needs work to know more exactly if we need a relayout
// or just a repaint
// changes causing Layout changes:
// only for tables:
-// _border_collapse
-// EEmptyCell _empty_cells : 2 ;
-// ECaptionSide _caption_side : 2;
+// _border_collapse
+// EEmptyCell _empty_cells : 2 ;
+// ECaptionSide _caption_side : 2;
// ETableLayout _table_layout : 1;
// EPosition _position : 2;
// EFloat _floating : 2;
if ( ((int)noninherited_flags._effectiveDisplay) >= TABLE ) {
- // Stupid gcc gives a compile error on
- // a != other->b if a and b are bitflags. Using
- // !(a== other->b) instead.
- if ( !(inherited_flags._border_collapse == other->inherited_flags._border_collapse) ||
- !(inherited_flags._empty_cells == other->inherited_flags._empty_cells) ||
- !(inherited_flags._caption_side == other->inherited_flags._caption_side) ||
- !(noninherited_flags._table_layout == other->noninherited_flags._table_layout))
+ // Stupid gcc gives a compile error on
+ // a != other->b if a and b are bitflags. Using
+ // !(a== other->b) instead.
+ if ( !(inherited_flags._border_collapse == other->inherited_flags._border_collapse) ||
+ !(inherited_flags._empty_cells == other->inherited_flags._empty_cells) ||
+ !(inherited_flags._caption_side == other->inherited_flags._caption_side) ||
+ !(noninherited_flags._table_layout == other->noninherited_flags._table_layout))
return Layout;
}
// only for lists:
-// EListStyleType _list_style_type : 5 ;
-// EListStylePosition _list_style_position :1;
+// EListStyleType _list_style_type : 5 ;
+// EListStylePosition _list_style_position :1;
if (noninherited_flags._effectiveDisplay == LIST_ITEM ) {
- if ( !(inherited_flags._list_style_type == other->inherited_flags._list_style_type) ||
- !(inherited_flags._list_style_position == other->inherited_flags._list_style_position) )
- return Layout;
+ if ( !(inherited_flags._list_style_type == other->inherited_flags._list_style_type) ||
+ !(inherited_flags._list_style_position == other->inherited_flags._list_style_position) )
+ return Layout;
}
// ### These could be better optimised
-// ETextAlign _text_align : 3;
-// ETextTransform _text_transform : 4;
-// EDirection _direction : 1;
-// EWhiteSpace _white_space : 2;
-// EFontVariant _font_variant : 1;
+// ETextAlign _text_align : 3;
+// ETextTransform _text_transform : 4;
+// EDirection _direction : 1;
+// EWhiteSpace _white_space : 2;
+// EFontVariant _font_variant : 1;
// EClear _clear : 2;
if ( !(inherited_flags._text_align == other->inherited_flags._text_align) ||
- !(inherited_flags._text_transform == other->inherited_flags._text_transform) ||
- !(inherited_flags._direction == other->inherited_flags._direction) ||
- !(inherited_flags._white_space == other->inherited_flags._white_space) ||
- !(noninherited_flags._clear == other->noninherited_flags._clear)
- )
- return Layout;
+ !(inherited_flags._text_transform == other->inherited_flags._text_transform) ||
+ !(inherited_flags._direction == other->inherited_flags._direction) ||
+ !(inherited_flags._white_space == other->inherited_flags._white_space) ||
+ !(noninherited_flags._clear == other->noninherited_flags._clear)
+ )
+ return Layout;
// only for inline:
// EVerticalAlign _vertical_align : 4;
return RepaintLayer;
// Repaint:
-// EVisibility _visibility : 2;
+// EVisibility _visibility : 2;
// EOverflow _overflow : 4 ;
-// int _text_decoration : 4;
+// int _text_decoration : 4;
// DataRef<StyleBackgroundData> background;
if (inherited->color != other->inherited->color ||
!(inherited_flags._visibility == other->inherited_flags._visibility) ||
css3InheritedData->userModify != other->css3InheritedData->userModify ||
css3NonInheritedData->userSelect != other->css3NonInheritedData->userSelect ||
css3NonInheritedData->userDrag != other->css3NonInheritedData->userDrag
- )
+ )
return Repaint;
return Equal;
void fullRecalc();
void recalcColumn( int effCol );
int totalPercent() const {
- if ( percentagesDirty )
- calcPercentages();
- return total_percent;
+ if ( percentagesDirty )
+ calcPercentages();
+ return total_percent;
}
void calcPercentages() const;
int calcEffectiveWidth();
void insertSpanCell( RenderTableCell *cell );
struct Layout {
- Layout() : minWidth( 0 ), maxWidth( 0 ),
- effMinWidth( 0 ), effMaxWidth( 0 ),
- calcWidth( 0 ) {}
- Length width;
- Length effWidth;
- int minWidth;
- int maxWidth;
- int effMinWidth;
- int effMaxWidth;
- int calcWidth;
+ Layout() : minWidth( 0 ), maxWidth( 0 ),
+ effMinWidth( 0 ), effMaxWidth( 0 ),
+ calcWidth( 0 ) {}
+ Length width;
+ Length effWidth;
+ int minWidth;
+ int maxWidth;
+ int effMinWidth;
+ int effMaxWidth;
+ int calcWidth;
};
DeprecatedArray<Layout> layoutStruct;