• Skip to content
  • Skip to link menu
  • KDE API Reference
  • kdelibs-4.14.38 API Reference
  • KDE Home
  • Contact Us
 

KDEUI

  • kdeui
  • widgets
kmultitabbar.cpp
Go to the documentation of this file.
1/***************************************************************************
2 kmultitabbar.cpp - description
3 -------------------
4 begin : 2001
5 copyright : (C) 2001,2002,2003 by Joseph Wenninger <jowenn@kde.org>
6 ***************************************************************************/
7
8/***************************************************************************
9 This library is free software; you can redistribute it and/or
10 modify it under the terms of the GNU Library General Public
11 License as published by the Free Software Foundation; either
12 version 2 of the License, or (at your option) any later version.
13
14 This library is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 Library General Public License for more details.
18
19 You should have received a copy of the GNU Library General Public License
20 along with this library; see the file COPYING.LIB. If not, write to
21 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
22 Boston, MA 02110-1301, USA.
23 ***************************************************************************/
24
25#include "kmultitabbar.h"
26#include "kmultitabbar_p.h"
27#include "kmultitabbar.moc"
28#include "kmultitabbar_p.moc"
29
30#include <QtGui/QActionEvent>
31#include <QtGui/QLayout>
32#include <QtGui/QPainter>
33#include <QtGui/QFontMetrics>
34#include <QtGui/QStyle>
35#include <QStyleOptionButton>
36
37#include <kiconloader.h>
38#include <kdebug.h>
39#include <QtGui/QApplication>
40#include <math.h>
41
49class KMultiTabBarPrivate
50{
51public:
52 class KMultiTabBarInternal *m_internal;
53 QBoxLayout *m_l;
54 QFrame *m_btnTabSep;
55 QList<KMultiTabBarButton*> m_buttons;
56 KMultiTabBar::KMultiTabBarPosition m_position;
57};
58
59
60KMultiTabBarInternal::KMultiTabBarInternal(QWidget *parent, KMultiTabBar::KMultiTabBarPosition pos):QFrame(parent)
61{
62 m_position = pos;
63 if (pos == KMultiTabBar::Left || pos == KMultiTabBar::Right)
64 mainLayout=new QVBoxLayout(this);
65 else
66 mainLayout=new QHBoxLayout(this);
67 mainLayout->setMargin(0);
68 mainLayout->setSpacing(0);
69 mainLayout->addStretch();
70 setFrameStyle(NoFrame);
71 setBackgroundRole(QPalette::Background);
72}
73
74KMultiTabBarInternal::~KMultiTabBarInternal()
75{
76 qDeleteAll(m_tabs);
77 m_tabs.clear();
78}
79
80void KMultiTabBarInternal::setStyle(enum KMultiTabBar::KMultiTabBarStyle style)
81{
82 m_style=style;
83 for (int i=0;i<m_tabs.count();i++)
84 m_tabs.at(i)->setStyle(m_style);
85
86 updateGeometry();
87}
88
89void KMultiTabBarInternal::contentsMousePressEvent(QMouseEvent *ev)
90{
91 ev->ignore();
92}
93
94void KMultiTabBarInternal::mousePressEvent(QMouseEvent *ev)
95{
96 ev->ignore();
97}
98
99KMultiTabBarTab* KMultiTabBarInternal::tab(int id) const
100{
101 QListIterator<KMultiTabBarTab*> it(m_tabs);
102 while (it.hasNext()) {
103 KMultiTabBarTab *tab = it.next();
104 if (tab->id()==id) return tab;
105 }
106 return 0;
107}
108
109int KMultiTabBarInternal::appendTab(const QPixmap &pic, int id, const QString& text)
110{
111 KMultiTabBarTab *tab;
112 m_tabs.append(tab= new KMultiTabBarTab(pic,text,id,this,m_position,m_style));
113
114 // Insert before the stretch..
115 mainLayout->insertWidget(m_tabs.size()-1, tab);
116 tab->show();
117 return 0;
118}
119
120void KMultiTabBarInternal::removeTab(int id)
121{
122 for (int pos=0;pos<m_tabs.count();pos++)
123 {
124 if (m_tabs.at(pos)->id()==id)
125 {
126 // remove & delete the tab
127 delete m_tabs.takeAt(pos);
128 break;
129 }
130 }
131}
132
133void KMultiTabBarInternal::setPosition(enum KMultiTabBar::KMultiTabBarPosition pos)
134{
135 m_position=pos;
136 for (int i=0;i<m_tabs.count();i++)
137 m_tabs.at(i)->setPosition(m_position);
138 updateGeometry();
139}
140
141// KMultiTabBarButton
143
144KMultiTabBarButton::KMultiTabBarButton(const QPixmap& pic, const QString& text,
145 int id, QWidget *parent)
146 : QPushButton(QIcon(pic), text, parent), m_id(id), d(0)
147{
148 connect(this,SIGNAL(clicked()),this,SLOT(slotClicked()));
149
150 // we can't see the focus, so don't take focus. #45557
151 // If keyboard navigation is wanted, then only the bar should take focus,
152 // and arrows could change the focused button; but generally, tabbars don't take focus anyway.
153 setFocusPolicy(Qt::NoFocus);
154}
155
156KMultiTabBarButton::~KMultiTabBarButton()
157{
158}
159
160void KMultiTabBarButton::setText(const QString &text)
161{
162 QPushButton::setText(text);
163}
164
165void KMultiTabBarButton::slotClicked()
166{
167 updateGeometry();
168 emit clicked(m_id);
169}
170
171int KMultiTabBarButton::id() const
172{
173 return m_id;
174}
175
176void KMultiTabBarButton::hideEvent( QHideEvent* he) {
177 QPushButton::hideEvent(he);
178 KMultiTabBar *tb=dynamic_cast<KMultiTabBar*>(parentWidget());
179 if (tb) tb->updateSeparator();
180}
181
182void KMultiTabBarButton::showEvent( QShowEvent* he) {
183 QPushButton::showEvent(he);
184 KMultiTabBar *tb=dynamic_cast<KMultiTabBar*>(parentWidget());
185 if (tb) tb->updateSeparator();
186}
187
188void KMultiTabBarButton::paintEvent(QPaintEvent *) {
189 QStyleOptionButton opt;
190 opt.initFrom(this);
191 opt.icon = icon();
192 opt.iconSize = iconSize();
193 // removes the QStyleOptionButton::HasMenu ButtonFeature
194 opt.features = QStyleOptionButton::Flat;
195 QPainter painter(this);
196 style()->drawControl(QStyle::CE_PushButton, &opt, &painter, this);
197}
198
199// KMultiTabBarTab
201
202KMultiTabBarTab::KMultiTabBarTab(const QPixmap& pic, const QString& text,
203 int id, QWidget *parent,
204 KMultiTabBar::KMultiTabBarPosition pos,
205 KMultiTabBar::KMultiTabBarStyle style)
206 : KMultiTabBarButton(pic, text, id, parent), m_style(style), d(0)
207{
208 m_position=pos;
209 setToolTip(text);
210 setCheckable(true);
211 setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
212 // shrink down to icon only, but prefer to show text if it's there
213}
214
215KMultiTabBarTab::~KMultiTabBarTab()
216{
217}
218
219void KMultiTabBarTab::setPosition(KMultiTabBar::KMultiTabBarPosition pos)
220{
221 m_position=pos;
222 updateGeometry();
223}
224
225void KMultiTabBarTab::setStyle(KMultiTabBar::KMultiTabBarStyle style)
226{
227 m_style=style;
228 updateGeometry();
229}
230
231QPixmap KMultiTabBarTab::iconPixmap() const
232{
233 int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this);
234 return icon().pixmap(iconSize);
235}
236
237void KMultiTabBarTab::initStyleOption(QStyleOptionToolButton* opt) const
238{
239 opt->initFrom(this);
240
241 // Setup icon..
242 if (!icon().isNull()) {
243 opt->iconSize = iconPixmap().size();
244 opt->icon = icon();
245 }
246
247 // Should we draw text?
248 if (shouldDrawText())
249 opt->text = text();
250
251 opt->state |= QStyle::State_AutoRaise;
252 if (underMouse())
253 opt->state |= QStyle::State_MouseOver | QStyle::State_Raised;
254
255 if (isChecked())
256 opt->state |= QStyle::State_Sunken | QStyle::State_On;
257
258 opt->font = font();
259 opt->toolButtonStyle = shouldDrawText() ? Qt::ToolButtonTextBesideIcon : Qt::ToolButtonIconOnly;
260 opt->subControls = QStyle::SC_ToolButton;
261}
262
263QSize KMultiTabBarTab::sizeHint() const
264{
265 return computeSizeHint(shouldDrawText());
266}
267
268QSize KMultiTabBarTab::minimumSizeHint() const
269{
270 return computeSizeHint(false);
271}
272
273void KMultiTabBarTab::computeMargins(int* hMargin, int* vMargin) const
274{
275 // Unfortunately, QStyle does not give us enough information to figure out
276 // where to place things, so we try to reverse-engineer it
277 QStyleOptionToolButton opt;
278 initStyleOption(&opt);
279
280 QPixmap iconPix = iconPixmap();
281 QSize trialSize = iconPix.size();
282 QSize expandSize = style()->sizeFromContents(QStyle::CT_ToolButton, &opt, trialSize, this);
283
284 *hMargin = (expandSize.width() - trialSize.width())/2;
285 *vMargin = (expandSize.height() - trialSize.height())/2;
286}
287
288QSize KMultiTabBarTab::computeSizeHint(bool withText) const
289{
290 // Compute as horizontal first, then flip around if need be.
291 QStyleOptionToolButton opt;
292 initStyleOption(&opt);
293
294 int hMargin, vMargin;
295 computeMargins(&hMargin, &vMargin);
296
297 // Compute interior size, starting from pixmap..
298 QPixmap iconPix = iconPixmap();
299 QSize size = iconPix.size();
300
301 // Always include text height in computation, to avoid resizing the minor direction
302 // when expanding text..
303 QSize textSize = fontMetrics().size(0, text());
304 size.setHeight(qMax(size.height(), textSize.height()));
305
306 // Pick margins for major/minor direction, depending on orientation
307 int majorMargin = isVertical() ? vMargin : hMargin;
308 int minorMargin = isVertical() ? hMargin : vMargin;
309
310 size.setWidth (size.width() + 2*majorMargin);
311 size.setHeight(size.height() + 2*minorMargin);
312
313 if (withText)
314 // Add enough room for the text, and an extra major margin.
315 size.setWidth(size.width() + textSize.width() + majorMargin);
316
317 // flip time?
318 if (isVertical())
319 return QSize(size.height(), size.width());
320 else
321 return size;
322}
323
324void KMultiTabBarTab::setState(bool newState)
325{
326 setChecked(newState);
327 updateGeometry();
328}
329
330void KMultiTabBarTab::setIcon(const QString& icon)
331{
332 QPixmap pic=SmallIcon(icon);
333 setIcon(pic);
334}
335
336void KMultiTabBarTab::setIcon(const QPixmap& icon)
337{
338 QPushButton::setIcon(icon);
339}
340
341bool KMultiTabBarTab::shouldDrawText() const
342{
343 return (m_style==KMultiTabBar::KDEV3ICON) || isChecked();
344}
345
346bool KMultiTabBarTab::isVertical() const
347{
348 return m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left;
349}
350
351void KMultiTabBarTab::paintEvent(QPaintEvent*) {
352 QPainter painter(this);
353
354 QStyleOptionToolButton opt;
355 initStyleOption(&opt);
356
357 // Paint bevel..
358 if (underMouse() || isChecked()) {
359 opt.text.clear();
360 opt.icon = QIcon();
361 style()->drawComplexControl(QStyle::CC_ToolButton, &opt, &painter, this);
362 }
363
364 int hMargin, vMargin;
365 computeMargins(&hMargin, &vMargin);
366
367 // We first figure out how much room we have for the text, based on
368 // icon size and margin, try to fit in by eliding, and perhaps
369 // give up on drawing the text entirely if we're too short on room
370 QPixmap icon = iconPixmap();
371 int textRoom = 0;
372 int iconRoom = 0;
373
374 QString t;
375 if (shouldDrawText()) {
376 if (isVertical()) {
377 iconRoom = icon.height() + 2*vMargin;
378 textRoom = height() - iconRoom - vMargin;
379 } else {
380 iconRoom = icon.width() + 2*hMargin;
381 textRoom = width() - iconRoom - hMargin;
382 }
383
384 t = painter.fontMetrics().elidedText(text(), Qt::ElideRight, textRoom);
385
386 // See whether anything is left. Qt will return either
387 // ... or the ellipsis unicode character, 0x2026
388 if (t == QLatin1String("...") || t == QChar(0x2026))
389 t.clear();
390 }
391
392 // Label time.... Simple case: no text, so just plop down the icon right in the center
393 // We only do this when the button never draws the text, to avoid jumps in icon position
394 // when resizing
395 if (!shouldDrawText()) {
396 style()->drawItemPixmap(&painter, rect(), Qt::AlignCenter | Qt::AlignVCenter, icon);
397 return;
398 }
399
400 // Now where the icon/text goes depends on text direction and tab position
401 QRect iconArea;
402 QRect labelArea;
403
404 bool bottomIcon = false;
405 bool rtl = layoutDirection() == Qt::RightToLeft;
406 if (isVertical()) {
407 if (m_position == KMultiTabBar::Left && !rtl)
408 bottomIcon = true;
409 if (m_position == KMultiTabBar::Right && rtl)
410 bottomIcon = true;
411 }
412 //alignFlags = Qt::AlignLeading | Qt::AlignVCenter;
413
414 if (isVertical()) {
415 if (bottomIcon) {
416 labelArea = QRect(0, vMargin, width(), textRoom);
417 iconArea = QRect(0, vMargin + textRoom, width(), iconRoom);
418 } else {
419 labelArea = QRect(0, iconRoom, width(), textRoom);
420 iconArea = QRect(0, 0, width(), iconRoom);
421 }
422 } else {
423 // Pretty simple --- depends only on RTL/LTR
424 if (rtl) {
425 labelArea = QRect(hMargin, 0, textRoom, height());
426 iconArea = QRect(hMargin + textRoom, 0, iconRoom, height());
427 } else {
428 labelArea = QRect(iconRoom, 0, textRoom, height());
429 iconArea = QRect(0, 0, iconRoom, height());
430 }
431 }
432
433 style()->drawItemPixmap(&painter, iconArea, Qt::AlignCenter | Qt::AlignVCenter, icon);
434
435 if (t.isEmpty())
436 return;
437
438 QRect labelPaintArea = labelArea;
439
440 if (isVertical()) {
441 // If we're vertical, we paint to a simple 0,0 origin rect,
442 // and get the transformations to get us in the right place
443 labelPaintArea = QRect(0, 0, labelArea.height(), labelArea.width());
444
445 QTransform tr;
446
447 if (bottomIcon) {
448 tr.translate(labelArea.x(), labelPaintArea.width() + labelArea.y());
449 tr.rotate(-90);
450 } else {
451 tr.translate(labelPaintArea.height() + labelArea.x(), labelArea.y());
452 tr.rotate(90);
453 }
454 painter.setTransform(tr);
455 }
456
457 style()->drawItemText(&painter, labelPaintArea, Qt::AlignLeading | Qt::AlignVCenter,
458 palette(), true, t, QPalette::ButtonText);
459}
460
461// KMultiTabBar
463
464KMultiTabBar::KMultiTabBar(KMultiTabBarPosition pos, QWidget *parent)
465 : QWidget(parent),
466 d(new KMultiTabBarPrivate)
467{
468 if (pos == Left || pos == Right)
469 {
470 d->m_l=new QVBoxLayout(this);
471 setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding/*, true*/);
472 }
473 else
474 {
475 d->m_l=new QHBoxLayout(this);
476 setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed/*, true*/);
477 }
478 d->m_l->setMargin(0);
479 d->m_l->setSpacing(0);
480
481 d->m_internal=new KMultiTabBarInternal(this, pos);
482 setPosition(pos);
483 setStyle(VSNET);
484 d->m_l->insertWidget(0,d->m_internal);
485 d->m_l->insertWidget(0,d->m_btnTabSep=new QFrame(this));
486 d->m_btnTabSep->setFixedHeight(4);
487 d->m_btnTabSep->setFrameStyle(QFrame::Panel | QFrame::Sunken);
488 d->m_btnTabSep->setLineWidth(2);
489 d->m_btnTabSep->hide();
490
491 updateGeometry();
492}
493
494KMultiTabBar::~KMultiTabBar()
495{
496 qDeleteAll( d->m_buttons );
497 d->m_buttons.clear();
498 delete d;
499}
500
501int KMultiTabBar::appendButton(const QPixmap &pic, int id, QMenu *popup, const QString&)
502{
503 KMultiTabBarButton *btn = new KMultiTabBarButton(pic, QString(), id, this);
504 // a button with a QMenu can have another size. Make sure the button has always the same size.
505 btn->setFixedWidth(btn->height());
506 btn->setMenu(popup);
507 d->m_buttons.append(btn);
508 d->m_l->insertWidget(0,btn);
509 btn->show();
510 d->m_btnTabSep->show();
511 return 0;
512}
513
514void KMultiTabBar::updateSeparator() {
515 bool hideSep=true;
516 QListIterator<KMultiTabBarButton*> it(d->m_buttons);
517 while (it.hasNext()){
518 if (it.next()->isVisibleTo(this)) {
519 hideSep=false;
520 break;
521 }
522 }
523 if (hideSep)
524 d->m_btnTabSep->hide();
525 else
526 d->m_btnTabSep->show();
527}
528
529int KMultiTabBar::appendTab(const QPixmap &pic, int id, const QString& text)
530{
531 d->m_internal->appendTab(pic,id,text);
532 return 0;
533}
534
535KMultiTabBarButton* KMultiTabBar::button(int id) const
536{
537 QListIterator<KMultiTabBarButton*> it(d->m_buttons);
538 while ( it.hasNext() ) {
539 KMultiTabBarButton *button = it.next();
540 if ( button->id() == id )
541 return button;
542 }
543
544 return 0;
545}
546
547KMultiTabBarTab* KMultiTabBar::tab(int id) const
548{
549 return d->m_internal->tab(id);
550}
551
552void KMultiTabBar::removeButton(int id)
553{
554 for (int pos=0;pos<d->m_buttons.count();pos++)
555 {
556 if (d->m_buttons.at(pos)->id()==id)
557 {
558 d->m_buttons.takeAt(pos)->deleteLater();
559 break;
560 }
561 }
562
563 if (d->m_buttons.count()==0)
564 d->m_btnTabSep->hide();
565}
566
567void KMultiTabBar::removeTab(int id)
568{
569 d->m_internal->removeTab(id);
570}
571
572void KMultiTabBar::setTab(int id,bool state)
573{
574 KMultiTabBarTab *ttab=tab(id);
575 if (ttab)
576 ttab->setState(state);
577}
578
579bool KMultiTabBar::isTabRaised(int id) const
580{
581 KMultiTabBarTab *ttab=tab(id);
582 if (ttab)
583 return ttab->isChecked();
584
585 return false;
586}
587
588void KMultiTabBar::setStyle(KMultiTabBarStyle style)
589{
590 d->m_internal->setStyle(style);
591}
592
593KMultiTabBar::KMultiTabBarStyle KMultiTabBar::tabStyle() const
594{
595 return d->m_internal->m_style;
596}
597
598void KMultiTabBar::setPosition(KMultiTabBarPosition pos)
599{
600 d->m_position=pos;
601 d->m_internal->setPosition(pos);
602}
603
604KMultiTabBar::KMultiTabBarPosition KMultiTabBar::position() const
605{
606 return d->m_position;
607}
608
609void KMultiTabBar::fontChange(const QFont& /* oldFont */)
610{
611 updateGeometry();
612}
613
614// vim: ts=4 sw=4 noet
615// kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off;
KMultiTabBarButton
Use KMultiTabBar::appendButton to append a button, which creates a KMultiTabBarButton instance.
Definition: kmultitabbar.h:156
KMultiTabBarButton::paintEvent
virtual void paintEvent(class QPaintEvent *)
Definition: kmultitabbar.cpp:188
KMultiTabBarButton::setText
void setText(const QString &text)
Definition: kmultitabbar.cpp:160
KMultiTabBarButton::clicked
void clicked(int id)
this is emitted if the button is clicked
KMultiTabBarButton::KMultiTabBarButton
KMultiTabBarButton(const QPixmap &pic, const QString &, int id, QWidget *parent)
Should not be created directly.
Definition: kmultitabbar.cpp:144
KMultiTabBarButton::~KMultiTabBarButton
virtual ~KMultiTabBarButton()
Definition: kmultitabbar.cpp:156
KMultiTabBarButton::showEvent
virtual void showEvent(class QShowEvent *)
Definition: kmultitabbar.cpp:182
KMultiTabBarButton::slotClicked
virtual void slotClicked()
Definition: kmultitabbar.cpp:165
KMultiTabBarButton::hideEvent
virtual void hideEvent(class QHideEvent *)
Definition: kmultitabbar.cpp:176
KMultiTabBarButton::id
int id() const
Definition: kmultitabbar.cpp:171
KMultiTabBarTab
Use KMultiTabBar::appendTab to append a tab, which creates a KMultiTabBarTab instance.
Definition: kmultitabbar.h:193
KMultiTabBarTab::paintEvent
virtual void paintEvent(QPaintEvent *)
Definition: kmultitabbar.cpp:351
KMultiTabBarTab::setIcon
void setIcon(const QString &)
Definition: kmultitabbar.cpp:330
KMultiTabBarTab::sizeHint
virtual QSize sizeHint() const
Definition: kmultitabbar.cpp:263
KMultiTabBarTab::setStyle
void setStyle(KMultiTabBar::KMultiTabBarStyle)
this is used internaly, but can be used by the user, if (s)he wants to It the according call of KMult...
Definition: kmultitabbar.cpp:225
KMultiTabBarTab::setState
void setState(bool state)
set the active state of the tab
Definition: kmultitabbar.cpp:324
KMultiTabBarTab::~KMultiTabBarTab
virtual ~KMultiTabBarTab()
Definition: kmultitabbar.cpp:215
KMultiTabBarTab::minimumSizeHint
virtual QSize minimumSizeHint() const
Definition: kmultitabbar.cpp:268
KMultiTabBarTab::setPosition
void setPosition(KMultiTabBar::KMultiTabBarPosition)
this is used internaly, but can be used by the user, if (s)he wants to It the according call of KMult...
Definition: kmultitabbar.cpp:219
KMultiTabBar
A Widget for horizontal and vertical tabs.
Definition: kmultitabbar.h:58
KMultiTabBar::setStyle
void setStyle(KMultiTabBarStyle style)
set the display style of the tabs
Definition: kmultitabbar.cpp:588
KMultiTabBar::position
KMultiTabBarPosition position
Definition: kmultitabbar.h:61
KMultiTabBar::KMultiTabBarStyle
KMultiTabBarStyle
The list of available styles for KMultiTabBar.
Definition: kmultitabbar.h:71
KMultiTabBar::KDEV3ICON
@ KDEV3ICON
Definition: kmultitabbar.h:71
KMultiTabBar::VSNET
@ VSNET
Definition: kmultitabbar.h:71
KMultiTabBar::removeTab
void removeTab(int id)
remove a tab with a given ID
Definition: kmultitabbar.cpp:567
KMultiTabBar::~KMultiTabBar
virtual ~KMultiTabBar()
Definition: kmultitabbar.cpp:494
KMultiTabBar::KMultiTabBar
KMultiTabBar(KMultiTabBarPosition pos, QWidget *parent=0)
Definition: kmultitabbar.cpp:464
KMultiTabBar::appendTab
int appendTab(const QPixmap &pic, int id=-1, const QString &text=QString())
append a new tab to the tab area.
Definition: kmultitabbar.cpp:529
KMultiTabBar::removeButton
void removeButton(int id)
remove a button with the given ID
Definition: kmultitabbar.cpp:552
KMultiTabBar::updateSeparator
void updateSeparator()
Definition: kmultitabbar.cpp:514
KMultiTabBar::setTab
void setTab(int id, bool state)
set a tab to "raised"
Definition: kmultitabbar.cpp:572
KMultiTabBar::KMultiTabBarPosition
KMultiTabBarPosition
Definition: kmultitabbar.h:64
KMultiTabBar::Left
@ Left
Definition: kmultitabbar.h:64
KMultiTabBar::Right
@ Right
Definition: kmultitabbar.h:64
KMultiTabBar::appendButton
int appendButton(const QPixmap &pic, int id=-1, QMenu *popup=0, const QString &not_used_yet=QString())
append a new button to the button area.
Definition: kmultitabbar.cpp:501
KMultiTabBar::button
class KMultiTabBarButton * button(int id) const
get a pointer to a button within the button area identified by its ID
Definition: kmultitabbar.cpp:535
KMultiTabBar::tab
class KMultiTabBarTab * tab(int id) const
get a pointer to a tab within the tab area, identiifed by its ID
Definition: kmultitabbar.cpp:547
KMultiTabBar::fontChange
virtual void fontChange(const QFont &)
Definition: kmultitabbar.cpp:609
KMultiTabBar::isTabRaised
bool isTabRaised(int id) const
return the state of a tab, identified by its ID
Definition: kmultitabbar.cpp:579
KMultiTabBar::tabStyle
KMultiTabBarStyle tabStyle
Definition: kmultitabbar.h:62
KMultiTabBar::setPosition
void setPosition(KMultiTabBarPosition pos)
set the real position of the widget.
Definition: kmultitabbar.cpp:598
QFrame
QList
QMenu
QPushButton
QWidget
kdebug.h
SmallIcon
QPixmap SmallIcon(const QString &name, int force_size, int state, const QStringList &overlays)
Definition: kiconloader.cpp:1553
kiconloader.h
kmultitabbar.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDEUI

Skip menu "KDEUI"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal