summaryrefslogtreecommitdiffstats
path: root/addon/doxywizard/pagewidget.cpp
blob: 67d4d571d43f65e695b7e209beaa9cc2d314878b (plain)
1
2
3
4
5
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
54
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
/******************************************************************************
 *
 * $Id$
 *
 * Copyright (C) 1997-2001 by Dimitri van Heesch.
 *
 * 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 );
}

void PageWidget::addStretch(int stretch) 
{ 
  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()));
}