summaryrefslogtreecommitdiffstats
path: root/kradio3/plugins/gui-quickbar/buttonflowlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kradio3/plugins/gui-quickbar/buttonflowlayout.cpp')
-rw-r--r--kradio3/plugins/gui-quickbar/buttonflowlayout.cpp268
1 files changed, 0 insertions, 268 deletions
diff --git a/kradio3/plugins/gui-quickbar/buttonflowlayout.cpp b/kradio3/plugins/gui-quickbar/buttonflowlayout.cpp
deleted file mode 100644
index 5d4ec18..0000000
--- a/kradio3/plugins/gui-quickbar/buttonflowlayout.cpp
+++ /dev/null
@@ -1,268 +0,0 @@
-/****************************************************************************
-** $Id: buttonflowtqlayout.cpp 272 2005-05-18 08:12:51Z emw $
-**
-** Implementing your own layout: flow example
-**
-** Copyright (C) 1996 by Trolltech AS. All rights reserved.
-**
-** This file is part of an example program for TQt. This example
-** program may be used, distributed and modified without limitation.
-**
-*****************************************************************************/
-/**
- Modified 2002 by Klas Kalass (klas.kalass@gmx.de) for kradio
- */
-
-#include <kdebug.h>
-
-#include "buttonflowlayout.h"
-
-/*********************************************/
-/* Iterator */
-class ButtonFlowLayoutIterator :public TQGLayoutIterator
-{
-public:
- ButtonFlowLayoutIterator( TQPtrList<TQLayoutItem> *l ) :idx(0), list(l) {}
- uint count() const;
- TQLayoutItem *current();
- TQLayoutItem *next();
- TQLayoutItem *takeCurrent();
-
-private:
- int idx;
- TQPtrList<TQLayoutItem> *list;
-
-};
-
-uint ButtonFlowLayoutIterator::count() const
-{
- return list->count();
-}
-
-TQLayoutItem *ButtonFlowLayoutIterator::current()
-{
- return idx < int(count()) ? list->at(idx) : 0;
-}
-
-TQLayoutItem *ButtonFlowLayoutIterator::next()
-{
- idx++; return current();
-}
-
-TQLayoutItem *ButtonFlowLayoutIterator::takeCurrent()
-{
- return idx < int(count()) ? list->take( idx ) : 0;
-}
-
-/**************************************************************/
-
-ButtonFlowLayout::ButtonFlowLayout( TQWidget *parent, int margin, int spacing,
- const char *name )
- : TQLayout( parent, margin, spacing, name ),
- cached_width(0)
-{
-}
-
-ButtonFlowLayout::ButtonFlowLayout( TQLayout* parentLayout, int spacing, const char *name )
- : TQLayout( parentLayout, spacing, name ),
- cached_width(0)
-{
-}
-
-ButtonFlowLayout::ButtonFlowLayout( int spacing, const char *name )
- : TQLayout( spacing, name ),
- cached_width(0)
-{
-}
-
-ButtonFlowLayout::~ButtonFlowLayout()
-{
- deleteAllItems();
-}
-
-
-int ButtonFlowLayout::heightForWidth( int w ) const
-{
- if ( cached_width != w ) {
- //Not all C++ compilers support "mutable" yet:
- ButtonFlowLayout * mthis = (ButtonFlowLayout*)this;
- int h = mthis->doLayout( TQRect(0,0,w,0), TRUE );
- mthis->cached_hfw = h;
- mthis->cached_width = w;
- return h;
- }
- return cached_hfw;
-}
-
-void ButtonFlowLayout::addItem( TQLayoutItem *item)
-{
- list.append( TQT_TQLAYOUTITEM(item) );
-}
-
-bool ButtonFlowLayout::hasHeightForWidth() const
-{
- return TRUE;
-}
-
-TQSize ButtonFlowLayout::sizeHint() const
-{
- return minimumSize();
-}
-
-TQSizePolicy::ExpandData ButtonFlowLayout::expanding() const
-{
- return TQ_SPNoDirection;
-}
-
-TQLayoutIterator ButtonFlowLayout::iterator()
-{
- // [FIXME]
-#ifdef USE_QT4
- #warning [FIXME] ContainerAreaLayout iterators may not function correctly under Qt4
- return TQLayoutIterator( this ); // [FIXME]
-#else // USE_QT4
- return TQLayoutIterator( new ButtonFlowLayoutIterator( &list ) );
-#endif // USE_QT4
-}
-
-void ButtonFlowLayout::setGeometry( const TQRect &r )
-{
- TQLayout::setGeometry( r );
- doLayout( r );
-}
-
-int ButtonFlowLayout::doLayout( const TQRect &r, bool testonly )
-{
-/* kdDebug() << "buttonflowlayout::doLayout ("
- << r.x() << "," << r.y() << ","
- << r.width() << "," << r.height() << ", " << testonly << ")\n";
-*/
- float x = r.x();
- float y = r.y();
- int h = 0; //height of this line so far.
- float buttonWidth = 0;
- int buttonHeight = 0;
- int linecount = 0;
- int totalWidth = r.width();
- int totalHeight = r.height();
-
- TQPtrListIterator<TQLayoutItem> it(list);
- TQLayoutItem *o;
-
- // get the width of the biggest Button
-
- it.toFirst();
- while ( (o=it.current()) != 0 ) {
- ++it;
- buttonWidth = TQMAX( buttonWidth, o->sizeHint().width() );
- buttonHeight = TQMAX( buttonHeight, o->sizeHint().height() );
- }
-
- // calculate the optimal width
- unsigned int columns = (totalWidth + spacing()) /
- ((int)buttonWidth + spacing());
- if (columns > it.count() ) columns = it.count();
- if (columns == 0) columns = 1; // avoid division by zero
-
-
- int rows = (it.count() - 1) / columns + 1;
- float deltaH = (float)(totalHeight - rows * buttonHeight - (rows - 1) * spacing())
- / (float)(rows + 1) ;
- if (deltaH < 0) deltaH = 0;
-
- y += deltaH;
-
- buttonWidth = (float)(totalWidth - spacing()*(columns-1)) / (float)columns;
-
-/* fprintf (stderr, "cols = %i col-width = %f\n"
- "rows = %i row-height = %i\n"
- "w = %i h = %i\n",
- columns, buttonWidth,
- rows, buttonHeight,
- totalWidth, totalHeight
- );
-*/
- // calculate the positions and sizes
- it.toFirst();
- while ( (o = it.current()) != 0 ) {
-
-// fprintf (stderr, "x = %i y = %i\n", x, (int)y);
- ++it;
- int btnRight = (int)rint(x + buttonWidth) - 1,
- btnLeft = (int)rint(x);
-
- if ( btnRight > r.right() && h > 0 ) {
- x = r.x();
- btnRight = (int)rint(x + buttonWidth) - 1;
- btnLeft = (int)rint(x);
-
- y += h + spacing() + deltaH;
- h = 0;
- linecount++;
- }
- if (!testonly)
- o->setGeometry( TQRect( TQPoint( btnLeft, (int)rint(y) ),
- TQSize( btnRight - btnLeft + 1,
- buttonHeight) )
- );
-
- x += buttonWidth + spacing();
- h = TQMAX( h, buttonHeight );
- }
-
- int ret = (int)rint(y + h + deltaH) - r.y();
-
-// kdDebug() << "ButtonFlowLayout::doLayout() = " << ret << endl;
- return ret;
-}
-
-
-TQSize ButtonFlowLayout::minimumSize() const
-{
- return minimumSize(geometry().size());
-}
-
-
-TQSize ButtonFlowLayout::minimumSize(const TQSize &r) const
-{
- TQSize s(0, 0);
-
- for (TQPtrListIterator<TQLayoutItem> it(list); it.current(); ++it) {
- TQLayoutItem *o = it.current();
- s = s.expandedTo( o->sizeHint()); //minimumSize() );
- }
-
- s.setHeight(heightForWidth(r.width()));
-
- return s;
-}
-
-#ifdef USE_QT4
-/*!
- \reimp
-*/
-int ButtonFlowLayout::count() const {
- return list.count();
-}
-
-/*!
- \reimp
-*/
-TQLayoutItem* ButtonFlowLayout::itemAt(int index) const {
- return index >= 0 && index < list.count() ? (const_cast<TQPtrList<TQLayoutItem>&>(list).at(index)) : 0;
-}
-
-/*!
- \reimp
-*/
-TQLayoutItem* ButtonFlowLayout::takeAt(int index) {
- if (index < 0 || index >= list.count())
- return 0;
- TQLayoutItem *item = list.at(index);
- list.remove(list.at(index));
- delete item;
-
- invalidate();
- return item;
-}
-#endif // USE_QT4