summaryrefslogtreecommitdiffstats
path: root/kdeui/ktabctl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kdeui/ktabctl.cpp')
-rw-r--r--kdeui/ktabctl.cpp336
1 files changed, 0 insertions, 336 deletions
diff --git a/kdeui/ktabctl.cpp b/kdeui/ktabctl.cpp
deleted file mode 100644
index 5ec13f20e..000000000
--- a/kdeui/ktabctl.cpp
+++ /dev/null
@@ -1,336 +0,0 @@
-/* This file is part of the KDE libraries
- Copyright (C) 1997 Alexander Sanda (alex@darkstar.ping.at)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public
- License as published by the Free Software Foundation; either
- version 2 of the License, or (at your option) any later version.
-
- This library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public License
- along with this library; see the file COPYING.LIB. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-/**
- * KTabCtl provides a universal tab control. It is in no ways limited to dialogs and
- * can be used for whatever you want. It has no buttons or any other stuff.
- *
- * However, this is based on the original TQTabDialog.
- */
-
-#include <tqtabbar.h>
-#include <tqpushbutton.h>
-#include <tqpainter.h>
-#include <tqpixmap.h>
-
-#include "ktabctl.h"
-
-KTabCtl::KTabCtl(TQWidget *parent, const char *name)
- : TQWidget(parent, name)
-{
- tabs = new TQTabBar(this, "_tabbar");
- connect(tabs, TQT_SIGNAL(selected(int)), this, TQT_SLOT(showTab(int)));
- tabs->move(2, 1);
-
- blBorder = true;
-
-}
-
-KTabCtl::~KTabCtl()
-{
- delete tabs;
-}
-
-void KTabCtl::resizeEvent(TQResizeEvent *)
-{
- int i;
- TQRect r = getChildRect();
-
- if (tabs) {
- for (i=0; i<(int)pages.size(); i++) {
- pages[i]->setGeometry(r);
- }
- if( ( tabs->tqshape() == TQTabBar::RoundedBelow ) ||
- ( tabs->tqshape() == TQTabBar::TriangularBelow ) ) {
- tabs->move( 0, height()-tabs->height()-4 );
- }
- }
-}
-
-void KTabCtl::setFont(const TQFont & font)
-{
- TQFont f(font);
- f.setWeight(TQFont::Light);
- TQWidget::setFont(f);
-
- setSizes();
-}
-
-void KTabCtl::setTabFont(const TQFont & font)
-{
- TQFont f(font);
-// f.setWeight(TQFont::Light);
- tabs->setFont(f);
-
- setSizes();
-}
-
-void KTabCtl::show()
-{
- unsigned int i;
-
- if(isVisible())
- return;
-
- setSizes();
-
- for(i = 0; i < pages.size(); i++)
- pages[i]->hide();
-
- TQResizeEvent r(size(), size());
- resizeEvent(&r);
-
- TQWidget::show();
-}
-
-bool KTabCtl::isTabEnabled(const TQString& name)
-{
- unsigned int i;
-
- for(i = 0; i < pages.size(); i++)
- if (TQString::tqfromLatin1(pages[i]->name()) == name)
- return tabs->isTabEnabled(i); /* return the enabled status */
- return false; /* tab does not exist */
-}
-
-void KTabCtl::setTabEnabled(const TQString& name, bool state)
-{
- unsigned i;
-
- if (name.isEmpty())
- return;
-
- for (i = 0; i < pages.size(); i++)
- if (TQString::tqfromLatin1(pages[i]->name()) == name)
- tabs->setTabEnabled(i, state);
-}
-
-void KTabCtl::setSizes()
-{
- unsigned i;
-
- TQSize min(tabs->tqsizeHint()); /* the minimum required size for the tabbar */
- tabs->resize(min); /* make sure that the tabbar does not require more space than actually needed. */
-
-
- TQSize max(TQCOORD_MAX,TQCOORD_MAX);
- //int th = min.height(); /* the height of the tabbar itself (without pages and stuff) */
-
- for (i = 0; i < pages.size(); i++) {
-
- /*
- * check the actual minimum and maximum sizes
- */
-
- if (pages[i]->tqmaximumSize().height() < max.height())
- max.setHeight(pages[i]->tqmaximumSize().height());
- if (pages[i]->tqmaximumSize().width() < max.width())
- max.setWidth( pages[i]->tqmaximumSize().width());
- if ( pages[i]->tqminimumSize().height() > min.height())
- min.setHeight( pages[i]->tqminimumSize().height());
- if ( pages[i]->tqminimumSize().width() > min.width())
- min.setWidth( pages[i]->tqminimumSize().width());
- }
-
- // BL: min and max are sizes of children, not tabcontrol
- // min.setHeight(min.height() + th);
-
- if (max.width() < min.width())
- max.setWidth(min.width());
- if (max.height() < min.height())
- max.setHeight(min.height());
-
- /*
- * now, apply the calculated size values to all of the pages
- */
-
- for( i=0; i<(uint)pages.size(); i++ ) {
- pages[i]->setMinimumSize(min);
- pages[i]->setMaximumSize(max);
- }
-
-
- // BL: set minimum size of tabcontrol
- setMinimumSize(min.width()+4, min.height()+tabs->height()+4);
-
- /*
- * generate a resizeEvent, if we're visible
- */
-
- if(isVisible()) {
- TQResizeEvent r(size(), size());
- resizeEvent(&r);
- }
-}
-
-void KTabCtl::setBorder( bool state )
-{
- blBorder = state;
-}
-
-void KTabCtl::setShape( TQTabBar::Shape tqshape )
-{
- tabs->setShape( tqshape );
-}
-
-TQSize
-KTabCtl::tqsizeHint() const
-{
- /* desired size of the tabbar */
- TQSize hint(tabs->tqsizeHint());
-
- /* overall desired size of all pages */
- TQSize pageHint;
- for (unsigned int i = 0; i < pages.size(); i++)
- {
- TQSize sizeI(pages[i]->tqsizeHint());
-
- if (sizeI.isValid())
- {
- /* only pages with valid size are used */
- if (sizeI.width() > pageHint.width())
- pageHint.setWidth(sizeI.width());
-
- if (sizeI.height() > pageHint.height())
- pageHint.setHeight(sizeI.height());
- }
- }
-
- if (pageHint.isValid())
- {
- /* use maximum of width of tabbar and pages */
- if (pageHint.width() > hint.width())
- hint.setWidth(pageHint.width());
-
- /* heights must just be added */
- hint.setHeight(hint.height() + pageHint.height());
-
- /* 1999-09-18: Espen Sand
- I cannot get the size to be correct unless the total
- border size is included: ie 2*2 pixels.
- */
- return (hint + TQSize(4,4));
- }
-
- /*
- * If not at least a one page has a valid tqsizeHint we have to return
- * an invalid size as well.
- */
- return (pageHint);
-}
-
-void KTabCtl::paintEvent(TQPaintEvent *)
-{
- if (!tabs)
- return;
-
- if( !blBorder )
- return;
-
- TQPainter p;
- p.begin(this);
-
- int y0 = getChildRect().top() - 1;
- int y1 = getChildRect().bottom() + 2;
- int x1 = getChildRect().right() + 2;
- int x0 = getChildRect().left() - 1;
-
- p.setPen(tqcolorGroup().light());
- p.drawLine(x0, y0 - 1, x1 - 1, y0 - 1); /* 1st top line */
- p.setPen(tqcolorGroup().midlight());
- p.drawLine(x0, y0, x1 - 1, y0); /* 2nd top line */
- p.setPen(tqcolorGroup().light());
- p.drawLine(x0, y0 + 1, x0, y1); /* left line */
- p.setPen(black);
- p.drawLine(x1, y1, x0, y1); /* bottom line */
- p.drawLine(x1, y1 - 1, x1, y0);
- p.setPen(tqcolorGroup().dark());
- p.drawLine(x0 + 1, y1 - 1, x1 - 1, y1 - 1); /* bottom */
- p.drawLine(x1 - 1, y1 - 2, x1 - 1, y0 + 1);
- p.end();
-}
-
-/*
- * return the client rect. This is the maximum size for any child
- * widget (page).
- */
-
-TQRect KTabCtl::getChildRect() const
-{
- if( ( tabs->tqshape() == TQTabBar::RoundedBelow ) ||
- ( tabs->tqshape() == TQTabBar::TriangularBelow ) ) {
- return TQRect(2, 1, width() - 4,
- height() - tabs->height() - 4);
- } else {
- return TQRect(2, tabs->height() + 1, width() - 4,
- height() - tabs->height() - 4);
- }
-}
-
-/*
- * show a single page, depending on the selected tab
- * emit tabSelected(new_pagenumber) BEFORE the page is shown
- */
-
-void KTabCtl::showTab(int i)
-{
- unsigned int j;
- for (j = 0; j < pages.size(); j++) {
- if (j != (unsigned)i) {
- pages[j]->hide();
- }
- }
-
- if((unsigned)i < pages.size()) {
- emit(tabSelected(i));
- if( pages.size() >= 2 ) {
- pages[i]->raise();
- }
- tabs->setCurrentTab(i);
- pages[i]->setGeometry(getChildRect());
- pages[i]->show();
- }
-}
-
-/*
- * add a tab to the control. This tab will manage the given Widget w.
- * in most cases, w will be a TQWidget and will only act as parent for the
- * actual widgets on this page
- * NOTE: w is not required to be of class TQWidget, but expect strange results with
- * other types of widgets
- */
-
-void KTabCtl::addTab(TQWidget *w, const TQString& name)
-{
- TQTab *t = new TQTab();
- t->setText( name );
- t->setEnabled( true );
- int id = tabs->addTab(t); /* add the tab itself to the tabbar */
- if (id == (int)pages.size()) {
- pages.resize(id + 1);
- pages[id] = w; /* remember the widget to manage by this tab */
- }
- // BL: compute sizes
- setSizes();
-}
-
-void KTabCtl::virtual_hook( int, void* )
-{ /*BASE::virtual_hook( id, data );*/ }
-
-#include "ktabctl.moc"