summaryrefslogtreecommitdiffstats
path: root/kmdi/kmdi/tabwidget.h
blob: 61f9e7d321dfc67a8523abd90245e0126d636d6b (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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/* This file is part of the KDE libraries
   Copyright (C) 2004 Christoph Cullmann <cullmann@kde.org>
   Copyright (C) 2002,2003 Joseph Wenninger <jowenn@kde.org>

   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.

   Based on:

   //----------------------------------------------------------------------------
   //    Project              : KDE MDI extension
   //
   //    begin                : 07/1999       by Szymon Stefanek as part of kvirc
   //                                         (an IRC application)
   //    changes              : 09/1999       by Falk Brettschneider to create an
   //                           - 06/2000     stand-alone Qt extension set of
   //                                         classes and a Qt-based library
   //                         : 02/2000       by Massimo Morin (mmorin@schedsys.com)
   //                           2000-2003     maintained by the KDevelop project
   //    patches              : -/2000        by Lars Beikirch (Lars.Beikirch@gmx.net)
   //                         : 01/2003       by Jens Zurheide (jens.zurheide@gmx.de)
   //
   //    copyright            : (C) 1999-2003 by Falk Brettschneider
   //                                         and
   //                                         Szymon Stefanek (stefanek@tin.it)
   //    email                :  falkbr@tdevelop.org (Falk Brettschneider)
   //----------------------------------------------------------------------------
*/

#ifndef _KMDI_TABWIDGET_H_
#define _KMDI_TABWIDGET_H_

#include <ktabwidget.h>
#include <kmdi/global.h>

namespace KMDIPrivate
{
  class TabWidgetPrivate;
}

namespace KMDI
{

class KMDI_EXPORT TabWidget : public KTabWidget
{
  Q_OBJECT

  public:
    TabWidget(TQWidget* parent, const char* name=0);
    virtual ~TabWidget();

    virtual void addTab ( TQWidget * child, const TQString & label );

    virtual void addTab ( TQWidget * child, const TQIconSet & iconset, const TQString & label );

    virtual void addTab ( TQWidget * child, TQTab * tab );

    virtual void insertTab ( TQWidget * child, const TQString & label, int index = -1 );

    virtual void insertTab ( TQWidget * child, const TQIconSet & iconset, const TQString & label, int index = -1 );

    virtual void insertTab ( TQWidget * child, TQTab * tab, int index = -1 );

    virtual void removePage ( TQWidget * w );

    KMDI::TabWidgetVisibility tabWidgetVisibility() const;

    void setTabWidgetVisibility( KMDI::TabWidgetVisibility );

    bool eventFilter(TQObject *obj, TQEvent *e );

  private slots:
    void closeTab(TQWidget* w);

  public slots:
    void updateIconInView(TQWidget*,TQPixmap);
    void updateCaptionInView(TQWidget*,const TQString&);

  signals:
    void focusInEvent ();

  protected slots:
   void childDestroyed ();

  private:
    void maybeShow();
    void setCornerWidgetVisibility(bool visible);

  private:
    KMDI::TabWidgetVisibility m_visibility;

  private:
    /**
     * private d-pointer for BC
     */
    KMDIPrivate::TabWidgetPrivate *d;
};

}

#endif

// kate: space-indent on; indent-width 2; replace-tabs on;