/* * Copyright (C) 2003 by Unai Garro * Copyright (C) 2004 by Enrico Ros * Copyright (C) 2004 by Stephan Kulow * Copyright (C) 2004 by Oswald Buddenhagen * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include "kdmrect.h" #include "kdmthemer.h" #include KdmRect::KdmRect(QObject *parent, const QDomNode &node) : KdmItem(parent, node) { itemType = "rect"; if (!isVisible()) return; // Set default values for rect (note: strings are already Null) rect.active.present = false; rect.prelight.present = false; // Read RECT TAGS QDomNodeList childList = node.childNodes(); for (int nod = 0; nod < childList.count(); nod++) { QDomNode child = childList.item(nod); QDomElement el = child.toElement(); QString tagName = el.tagName(); if (tagName == "normal") { parseColor(el, rect.normal.color); } else if (tagName == "active") { rect.active.present = true; parseColor(el, rect.active.color); } else if (tagName == "prelight") { rect.prelight.present = true; parseColor(el, rect.prelight.color); } } } void KdmRect::drawContents(QPainter *p, const QRect &r) { // choose the correct rect class RectStruct::RectClass *rClass = &rect.normal; if (state == Sactive && rect.active.present) rClass = &rect.active; if (state == Sprelight && rect.prelight.present) rClass = &rect.prelight; if (!rClass->color.isValid()) return; p->fillRect(r, QBrush(rClass->color)); } void KdmRect::statusChanged(bool descend) { KdmItem::statusChanged(descend); if (!rect.active.present && !rect.prelight.present) return; if ((state == Sprelight && !rect.prelight.present) || (state == Sactive && !rect.active.present)) return; needUpdate(); } #include "moc_kdmrect.cpp"