pagewidget.cpp 2.07 KB
Newer Older
1 2
/******************************************************************************
 *
3
 * 
4
 *
5
 * Copyright (C) 1997-2001 by Dimitri van Heesch.
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
 *
 * Permission to use, copy, modify, and distribute this software and its
 * documentation under the terms of the GNU General Public License is hereby 
 * granted. No representations are made about the suitability of this software 
 * for any purpose. It is provided "as is" without express or implied warranty.
 * See the GNU General Public License for more details.
 *
 */

#include <stdio.h>

#include <qtabwidget.h>
#include <qlayout.h>
#include "pagewidget.h"

FrameLayout::FrameLayout(QWidget *parent,const char *name,WFlags f)
  : QFrame(parent,name,f)
{
  lay = new QVBoxLayout(this,5,3,name);
}

FrameLayout::~FrameLayout()
{
}

void FrameLayout::addStretch(int stretch)
{
  lay->addStretch(stretch);
}

void FrameLayout::addWidget(QWidget *w)
{
  lay->addWidget(w);
}

PageWidget::PageWidget( QTabWidget *parent, const char *name )
  : QScrollView ( parent,name )
{
  // the Qt docs say that one has to insert the viewport() as a parent
  // here but this does not work! Insert 0 does give the proper result!
  lay = new FrameLayout(this);
  addChild(lay);
  setVScrollBarMode(QScrollView::Auto);
  setHScrollBarMode(QScrollView::AlwaysOff);
  m_parent=parent;
  m_parent->addTab( this, name );
}

54
void PageWidget::addStretch(int stretch) 
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
{ 
  lay->addStretch(stretch); 
  //printf("Viewport SizeHint %d,%d\n",viewport()->sizeHint().width(),viewport()->sizeHint().height());
}

void PageWidget::addWidget(QWidget *w) 
{
  //printf("Adding widget height=%d\n",w->sizeHint().height());
  lay->addWidget(w);
}

QWidget *PageWidget::getLayout() const
{
  return lay;
}

void PageWidget::resizeEvent(QResizeEvent *e)
{
  QScrollView::resizeEvent(e);
  //printf("PageWidget::resizeEvent!\n");
  lay->resize(viewport()->width(),QMAX(lay->height(),viewport()->height()));
}

void PageWidget::paintEvent(QPaintEvent *e)
{
  QScrollView::paintEvent(e);
  //printf("PageWidget::paintEvent()\n");
  lay->resize(viewport()->width(),QMAX(lay->height(),viewport()->height()));
}