summaryrefslogtreecommitdiffstats
path: root/kdm/kfrontend/themer/kdmlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdm/kfrontend/themer/kdmlayout.cpp')
-rw-r--r--kdm/kfrontend/themer/kdmlayout.cpp168
1 files changed, 0 insertions, 168 deletions
diff --git a/kdm/kfrontend/themer/kdmlayout.cpp b/kdm/kfrontend/themer/kdmlayout.cpp
deleted file mode 100644
index 9a277a7a3..000000000
--- a/kdm/kfrontend/themer/kdmlayout.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2003 by Unai Garro <[email protected]>
- * Copyright (C) 2004 by Enrico Ros <[email protected]>
- * Copyright (C) 2004 by Stephan Kulow <[email protected]>
- * Copyright (C) 2004 by Oswald Buddenhagen <[email protected]>
- *
- * 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 "tdmlayout.h"
-#include "tdmconfig.h"
-#include "tdmitem.h"
-
-#include <kdebug.h>
-
-#include <tqdom.h>
-#include <tqrect.h>
-
-KdmLayoutFixed::KdmLayoutFixed( const TQDomNode &/*node*/ )
-{
- //Parsing FIXED parameters on 'node' [NONE!]
-}
-
-void
-KdmLayoutFixed::update( const TQRect &parentGeometry, bool force )
-{
- kdDebug() << timestamp() << " KdmLayoutFixed::update " << parentGeometry << endl;
-
- // I can't layout children if the parent rectangle is not valid
- if (parentGeometry.width() < 0 || parentGeometry.height() < 0) {
- kdDebug() << timestamp() << " invalid\n";
- return;
- }
- // For each child in list I ask their hinted size and set it!
- for (TQValueList<KdmItem *>::ConstIterator it = m_children.begin(); it != m_children.end(); ++it)
- (*it)->setGeometry( (*it)->placementHint( parentGeometry ), force );
-}
-
-KdmLayoutBox::KdmLayoutBox( const TQDomNode &node )
-{
- //Parsing BOX parameters
- TQDomNode n = node;
- TQDomElement el = n.toElement();
- box.isVertical = el.attribute( "orientation", "vertical" ) != "horizontal";
- box.xpadding = el.attribute( "xpadding", "0" ).toInt();
- box.ypadding = el.attribute( "ypadding", "0" ).toInt();
- box.spacing = el.attribute( "spacing", "0" ).toInt();
- box.minwidth = el.attribute( "min-width", "0" ).toInt();
- box.minheight = el.attribute( "min-height", "0" ).toInt();
- box.homogeneous = el.attribute( "homogeneous", "false" ) == "true";
-}
-
-void
-KdmLayoutBox::update( const TQRect &parentGeometry, bool force )
-{
- kdDebug() << this << " update " << parentGeometry << endl;
-
- // I can't layout children if the parent rectangle is not valid
- if (!parentGeometry.isValid() || parentGeometry.isEmpty())
- return;
-
- // Check if box size was computed. If not compute it
- // TODO check if this prevents updating changing items
-// if (!hintedSize.isValid())
-// sizeHint();
-
-// kdDebug() << this << " hintedSize " << hintedSize << endl;
-
- //XXX why was this asymmetric? it broke things big time.
- TQRect childrenRect = /*box.isVertical ? TQRect( parentGeometry.topLeft(), hintedSize ) :*/ parentGeometry;
- // Begin cutting the parent rectangle to attach children on the right place
- childrenRect.addCoords( box.xpadding, box.ypadding, -box.xpadding, -box.ypadding );
-
- kdDebug() << this << " childrenRect " << childrenRect << endl;
-
- // For each child in list ...
- if (box.homogeneous) {
- int ccnt = 0;
- for (TQValueList<KdmItem *>::ConstIterator it = m_children.begin(); it != m_children.end(); ++it)
- if (!(*it)->isExplicitlyHidden())
- ccnt++;
- int height = (childrenRect.height() - (ccnt - 1) * box.spacing) / ccnt;
- int width = (childrenRect.width() - (ccnt - 1) * box.spacing) / ccnt;
-
- for (TQValueList<KdmItem *>::ConstIterator it = m_children.begin(); it != m_children.end(); ++it) {
- if ((*it)->isExplicitlyHidden())
- continue;
- if (box.isVertical) {
- TQRect temp( childrenRect.left(), childrenRect.top(), childrenRect.width(), height );
- (*it)->setGeometry( temp, force );
- childrenRect.setTop( childrenRect.top() + height + box.spacing );
- } else {
- TQRect temp( childrenRect.left(), childrenRect.top(), width, childrenRect.height() );
- kdDebug() << timestamp() << " placement " << *it << " " << temp << " " << (*it)->placementHint( temp ) << endl;
- temp = (*it)->placementHint( temp );
- (*it)->setGeometry( temp, force );
- childrenRect.setLeft( childrenRect.left() + width + box.spacing );
- }
- }
- } else {
- for (TQValueList<KdmItem *>::ConstIterator it = m_children.begin(); it != m_children.end(); ++it) {
- if ((*it)->isExplicitlyHidden())
- continue;
-
- TQRect temp = childrenRect, itemRect;
- if (box.isVertical) {
- temp.setHeight( 0 );
- itemRect = (*it)->placementHint( temp );
- temp.setHeight( itemRect.height() );
- childrenRect.setTop( childrenRect.top() + itemRect.size().height() + box.spacing );
- } else {
- temp.setWidth( 0 );
- itemRect = (*it)->placementHint( temp );
- kdDebug() << this << " placementHint " << *it << " " << temp << " " << itemRect << endl;
- temp.setWidth( itemRect.width() );
- childrenRect.setLeft( childrenRect.left() + itemRect.size().width() + box.spacing );
- kdDebug() << timestamp() << " childrenRect after " << *it << " " << childrenRect << endl;
- }
- itemRect = (*it)->placementHint( temp );
- kdDebug() << this << " placementHint2 " << *it << " " << temp << " " << itemRect << endl;
- (*it)->setGeometry( itemRect, force );
- }
- }
-}
-
-//FIXME truly experimental (is so close to greeter_geometry.c)
-TQSize
-KdmLayoutBox::sizeHint()
-{
- // Sum up area taken by children
- int w = 0, h = 0;
- for (TQValueList<KdmItem *>::ConstIterator it = m_children.begin(); it != m_children.end(); ++it) {
- TQSize s = (*it)->placementHint( TQRect() ).size();
- if (box.isVertical) {
- if (s.width() > w)
- w = s.width();
- h += s.height();
- } else {
- if (s.height() > h)
- h = s.height();
- w += s.width();
- }
- }
-
- // Add padding and items spacing
- w += 2 * box.xpadding;
- h += 2 * box.ypadding;
- if (box.isVertical)
- h += box.spacing * (m_children.count() - 1);
- else
- w += box.spacing * (m_children.count() - 1);
-
- // Make hint at least equal to minimum size (if set)
- return TQSize( w < box.minwidth ? box.minwidth : w,
- h < box.minheight ? box.minheight : h );
-}