From dfb9c76738bb68e235114c5ad43dbd26a59b98ab Mon Sep 17 00:00:00 2001 From: kergoth Date: Thu, 06 Jun 2002 23:31:00 +0000 Subject: Initial revision --- (limited to 'core/pim/datebook/layoutmanager.h') diff --git a/core/pim/datebook/layoutmanager.h b/core/pim/datebook/layoutmanager.h new file mode 100644 index 0000000..128f927 --- a/dev/null +++ b/core/pim/datebook/layoutmanager.h @@ -0,0 +1,78 @@ +/********************************************************************** +** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. +** +** This file is part of the Qtopia Environment. +** +** This file may be distributed and/or modified under the terms of the +** GNU General Public License version 2 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the +** packaging of this file. +** +** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE +** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. +** +** See http://www.trolltech.com/gpl/ for GPL licensing information. +** +** Contact info@trolltech.com if any conditions of this licensing are +** not clear to you. +** +**********************************************************************/ + +#include +#include +#include +#include +#include + +class LayoutItem +{ +public: + LayoutItem( const EffectiveEvent e ); + + void setGeometry(const QRect &rect) { r = rect; } + void setGeometry(int x, int y, int w, int h) + { setGeometry(QRect(x,y,w,h)); } + QRect geometry() const { return r; } + + EffectiveEvent occurance() const { return eevent; } + Event event() const { return eevent.event(); } + +private: + EffectiveEvent eevent; + QRect r; +}; + +class LayoutManager +{ +public: + LayoutManager(int w, int h); + virtual ~LayoutManager(); + + void setSize(int w, int h); + void setMaximumColumnWidth(int x) { maxWidth = x; }; + int maximumColumnWidth() const { return maxWidth; }; + void setOccurances(QValueList &events); + virtual void addOccurance(EffectiveEvent &event); + + void clear() { mItems.clear(); } + + QVector items() const { return mItems; } + QSize size() const { return QSize(width, height); } + int count() const { return mItems.count(); } + + virtual void layoutItems(bool resetMaxWidth = FALSE); + + virtual int timeToHeight(const QTime &) const; + virtual QTime heightToTime(int) const; + +protected: + void initializeGeometry(LayoutItem *); + LayoutItem *intersects(LayoutItem *, QRect) const; + void addItem(LayoutItem *); + +private: + QVector mItems; + int width; + int height; + int maxWidth; +}; -- cgit v0.9.0.2