kotabpalette.cpp
1/*
2 * Copyright (c) 2005 Boudewijn Rempt <boud@valdyas.org>
3 *
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public
6 License version 2, as published by the Free Software Foundation.
7
8 This library is distributed in the hope that it will be useful,
9 but WITHOUT ANY WARRANTY; without even the implied warranty of
10 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 Library General Public License for more details.
12
13 You should have received a copy of the GNU Library General Public License
14 along with this library; see the file COPYING.LIB. If not, write to
15 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 */
17
18
19#include <tqdockwindow.h>
20
21#include <ktabwidget.h>
22#include <kdebug.h>
23
24#include <KoView.h>
25
26#include <kopalette.h>
27#include <kotabpalette.h>
28#include "kopalettemanager.h"
29
30KoTabPalette::KoTabPalette(TQWidget * parent, const char * name)
31 : KoPalette(parent, name)
32{
33 m_page = new KTabWidget(this);
34 m_page->setTabShape(TQTabWidget::Triangular);
35 m_page->setFocusPolicy(TQWidget::TabFocus);
36 //m_page->setFont(m_font);
37 m_page->setMargin(1);
38 //m_page->setTabReorderingEnabled(true);
39 setMainWidget(m_page);
40 m_style = PALETTE_DOCKER;
41}
42
43KoTabPalette::~KoTabPalette()
44{
45}
46
47void KoTabPalette::plug(TQWidget * w, const TQString & /*name*/, int position)
48{
49 if (!w) return;
50
51 w -> unsetFont(); // Use the parent font
52
53 m_page -> insertTab(w, w -> caption(), position);
54 show();
55}
56
57void KoTabPalette::resetFont()
58{
59 KoPalette::resetFont();
60 m_page->unsetFont();
61}
62
63void KoTabPalette::unplug(const TQWidget * w)
64{
65 m_page->removePage(const_cast<TQWidget *>(w));
66 if (m_page->count() == 0)
67 hide();
68}
69
70void KoTabPalette::showPage(TQWidget *w)
71{
72 m_page->showPage(w);
73 if (m_hiddenPages.find(w) == m_hiddenPages.end()) return;
74
75 int i = *m_hiddenPages.find(w);
76 m_page->insertTab(w, w->caption(), i);
77 m_hiddenPages.erase(w);
78 show();
79}
80
81void KoTabPalette::makeVisible(bool v)
82{
83 //kdDebug() << "make visible called for " << name() << ", " << v << "\n";
84 if (v && m_page->count() > 0)
85 show();
86 else
87 hide();
88}
89
90int KoTabPalette::indexOf(TQWidget *w)
91{
92 if (m_hiddenPages.find(w) != m_hiddenPages.end()) {
93 int i = m_page->indexOf(w);
94 return -i;
95 }
96 else {
97 return m_page->indexOf(w);
98 }
99}
100
101bool KoTabPalette::isHidden(TQWidget * w)
102{
103 return (m_hiddenPages.find(w) != m_hiddenPages.end());
104}
105
106void KoTabPalette::hidePage( TQWidget *w)
107{
108 if (m_hiddenPages.find(w) != m_hiddenPages.end()) return;
109
110 int i = m_page->indexOf(w);
111 m_page->removePage(w);
112 m_hiddenPages[w] = i;
113 if (m_page->count() == 0) {
114 hide();
115 }
116}
117
118void KoTabPalette::togglePageHidden(TQWidget *w)
119{
120 if (m_hiddenPages.find(w) != m_hiddenPages.end()) {
121 int i = *m_hiddenPages.find(w);
122 m_page->insertTab(w, w->caption(), i);
123 m_hiddenPages.erase(w);
124 show();
125 }
126 else {
127 int i = m_page->indexOf(w);
128 m_page->removePage(w);
129 m_hiddenPages[w] = i;
130 if (m_page->count() == 0) {
131 hide();
132 }
133 }
134}
135
136#include "kotabpalette.moc"
virtual void insertTab(TQWidget *, const TQString &, int index=-1)
virtual void removePage(TQWidget *w)
A floating palette that allows the adding and removing of widgets to its organzing principle.
Definition kopalette.h:39
const char * name(StdAction id)