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

KDEUI

  • sources
  • kde-4.12
  • kdelibs
  • 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 
49 class KMultiTabBarPrivate
50 {
51 public:
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 
60 KMultiTabBarInternal::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 
74 KMultiTabBarInternal::~KMultiTabBarInternal()
75 {
76  qDeleteAll(m_tabs);
77  m_tabs.clear();
78 }
79 
80 void 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 
89 void KMultiTabBarInternal::contentsMousePressEvent(QMouseEvent *ev)
90 {
91  ev->ignore();
92 }
93 
94 void KMultiTabBarInternal::mousePressEvent(QMouseEvent *ev)
95 {
96  ev->ignore();
97 }
98 
99 KMultiTabBarTab* 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 
109 int 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 
120 void 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 
133 void 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 
144 KMultiTabBarButton::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 
156 KMultiTabBarButton::~KMultiTabBarButton()
157 {
158 }
159 
160 void KMultiTabBarButton::setText(const QString &text)
161 {
162  QPushButton::setText(text);
163 }
164 
165 void KMultiTabBarButton::slotClicked()
166 {
167  updateGeometry();
168  emit clicked(m_id);
169 }
170 
171 int KMultiTabBarButton::id() const
172 {
173  return m_id;
174 }
175 
176 void KMultiTabBarButton::hideEvent( QHideEvent* he) {
177  QPushButton::hideEvent(he);
178  KMultiTabBar *tb=dynamic_cast<KMultiTabBar*>(parentWidget());
179  if (tb) tb->updateSeparator();
180 }
181 
182 void KMultiTabBarButton::showEvent( QShowEvent* he) {
183  QPushButton::showEvent(he);
184  KMultiTabBar *tb=dynamic_cast<KMultiTabBar*>(parentWidget());
185  if (tb) tb->updateSeparator();
186 }
187 
188 void 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 
202 KMultiTabBarTab::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 
215 KMultiTabBarTab::~KMultiTabBarTab()
216 {
217 }
218 
219 void KMultiTabBarTab::setPosition(KMultiTabBar::KMultiTabBarPosition pos)
220 {
221  m_position=pos;
222  updateGeometry();
223 }
224 
225 void KMultiTabBarTab::setStyle(KMultiTabBar::KMultiTabBarStyle style)
226 {
227  m_style=style;
228  updateGeometry();
229 }
230 
231 QPixmap KMultiTabBarTab::iconPixmap() const
232 {
233  int iconSize = style()->pixelMetric(QStyle::PM_SmallIconSize, 0, this);
234  return icon().pixmap(iconSize);
235 }
236 
237 void 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  if (underMouse())
252  opt->state |= QStyle::State_AutoRaise | QStyle::State_MouseOver | QStyle::State_Raised;
253 
254  if (isChecked())
255  opt->state |= QStyle::State_Sunken | QStyle::State_On;
256 
257  opt->font = font();
258  opt->toolButtonStyle = shouldDrawText() ? Qt::ToolButtonTextBesideIcon : Qt::ToolButtonIconOnly;
259  opt->subControls = QStyle::SC_ToolButton;
260 }
261 
262 QSize KMultiTabBarTab::sizeHint() const
263 {
264  return computeSizeHint(shouldDrawText());
265 }
266 
267 QSize KMultiTabBarTab::minimumSizeHint() const
268 {
269  return computeSizeHint(false);
270 }
271 
272 void KMultiTabBarTab::computeMargins(int* hMargin, int* vMargin) const
273 {
274  // Unfortunately, QStyle does not give us enough information to figure out
275  // where to place things, so we try to reverse-engineer it
276  QStyleOptionToolButton opt;
277  initStyleOption(&opt);
278 
279  QPixmap iconPix = iconPixmap();
280  QSize trialSize = iconPix.size();
281  QSize expandSize = style()->sizeFromContents(QStyle::CT_ToolButton, &opt, trialSize, this);
282 
283  *hMargin = (expandSize.width() - trialSize.width())/2;
284  *vMargin = (expandSize.height() - trialSize.height())/2;
285 }
286 
287 QSize KMultiTabBarTab::computeSizeHint(bool withText) const
288 {
289  // Compute as horizontal first, then flip around if need be.
290  QStyleOptionToolButton opt;
291  initStyleOption(&opt);
292 
293  int hMargin, vMargin;
294  computeMargins(&hMargin, &vMargin);
295 
296  // Compute interior size, starting from pixmap..
297  QPixmap iconPix = iconPixmap();
298  QSize size = iconPix.size();
299 
300  // Always include text height in computation, to avoid resizing the minor direction
301  // when expanding text..
302  QSize textSize = fontMetrics().size(0, text());
303  size.setHeight(qMax(size.height(), textSize.height()));
304 
305  // Pick margins for major/minor direction, depending on orientation
306  int majorMargin = isVertical() ? vMargin : hMargin;
307  int minorMargin = isVertical() ? hMargin : vMargin;
308 
309  size.setWidth (size.width() + 2*majorMargin);
310  size.setHeight(size.height() + 2*minorMargin);
311 
312  if (withText)
313  // Add enough room for the text, and an extra major margin.
314  size.setWidth(size.width() + textSize.width() + majorMargin);
315 
316  // flip time?
317  if (isVertical())
318  return QSize(size.height(), size.width());
319  else
320  return size;
321 }
322 
323 void KMultiTabBarTab::setState(bool newState)
324 {
325  setChecked(newState);
326  updateGeometry();
327 }
328 
329 void KMultiTabBarTab::setIcon(const QString& icon)
330 {
331  QPixmap pic=SmallIcon(icon);
332  setIcon(pic);
333 }
334 
335 void KMultiTabBarTab::setIcon(const QPixmap& icon)
336 {
337  QPushButton::setIcon(icon);
338 }
339 
340 bool KMultiTabBarTab::shouldDrawText() const
341 {
342  return (m_style==KMultiTabBar::KDEV3ICON) || isChecked();
343 }
344 
345 bool KMultiTabBarTab::isVertical() const
346 {
347  return m_position==KMultiTabBar::Right || m_position==KMultiTabBar::Left;
348 }
349 
350 void KMultiTabBarTab::paintEvent(QPaintEvent*) {
351  QPainter painter(this);
352 
353  QStyleOptionToolButton opt;
354  initStyleOption(&opt);
355 
356  // Paint bevel..
357  if (underMouse() || isChecked()) {
358  opt.text.clear();
359  opt.icon = QIcon();
360  style()->drawComplexControl(QStyle::CC_ToolButton, &opt, &painter, this);
361  }
362 
363  int hMargin, vMargin;
364  computeMargins(&hMargin, &vMargin);
365 
366  // We first figure out how much room we have for the text, based on
367  // icon size and margin, try to fit in by eliding, and perhaps
368  // give up on drawing the text entirely if we're too short on room
369  QPixmap icon = iconPixmap();
370  int textRoom = 0;
371  int iconRoom = 0;
372 
373  QString t;
374  if (shouldDrawText()) {
375  if (isVertical()) {
376  iconRoom = icon.height() + 2*vMargin;
377  textRoom = height() - iconRoom - vMargin;
378  } else {
379  iconRoom = icon.width() + 2*hMargin;
380  textRoom = width() - iconRoom - hMargin;
381  }
382 
383  t = painter.fontMetrics().elidedText(text(), Qt::ElideRight, textRoom);
384 
385  // See whether anything is left. Qt will return either
386  // ... or the ellipsis unicode character, 0x2026
387  if (t == QLatin1String("...") || t == QChar(0x2026))
388  t.clear();
389  }
390 
391  // Label time.... Simple case: no text, so just plop down the icon right in the center
392  // We only do this when the button never draws the text, to avoid jumps in icon position
393  // when resizing
394  if (!shouldDrawText()) {
395  style()->drawItemPixmap(&painter, rect(), Qt::AlignCenter | Qt::AlignVCenter, icon);
396  return;
397  }
398 
399  // Now where the icon/text goes depends on text direction and tab position
400  QRect iconArea;
401  QRect labelArea;
402 
403  bool bottomIcon = false;
404  bool rtl = layoutDirection() == Qt::RightToLeft;
405  if (isVertical()) {
406  if (m_position == KMultiTabBar::Left && !rtl)
407  bottomIcon = true;
408  if (m_position == KMultiTabBar::Right && rtl)
409  bottomIcon = true;
410  }
411  //alignFlags = Qt::AlignLeading | Qt::AlignVCenter;
412 
413  if (isVertical()) {
414  if (bottomIcon) {
415  labelArea = QRect(0, vMargin, width(), textRoom);
416  iconArea = QRect(0, vMargin + textRoom, width(), iconRoom);
417  } else {
418  labelArea = QRect(0, iconRoom, width(), textRoom);
419  iconArea = QRect(0, 0, width(), iconRoom);
420  }
421  } else {
422  // Pretty simple --- depends only on RTL/LTR
423  if (rtl) {
424  labelArea = QRect(hMargin, 0, textRoom, height());
425  iconArea = QRect(hMargin + textRoom, 0, iconRoom, height());
426  } else {
427  labelArea = QRect(iconRoom, 0, textRoom, height());
428  iconArea = QRect(0, 0, iconRoom, height());
429  }
430  }
431 
432  style()->drawItemPixmap(&painter, iconArea, Qt::AlignCenter | Qt::AlignVCenter, icon);
433 
434  if (t.isEmpty())
435  return;
436 
437  QRect labelPaintArea = labelArea;
438 
439  if (isVertical()) {
440  // If we're vertical, we paint to a simple 0,0 origin rect,
441  // and get the transformations to get us in the right place
442  labelPaintArea = QRect(0, 0, labelArea.height(), labelArea.width());
443 
444  QTransform tr;
445 
446  if (bottomIcon) {
447  tr.translate(labelArea.x(), labelPaintArea.width() + labelArea.y());
448  tr.rotate(-90);
449  } else {
450  tr.translate(labelPaintArea.height() + labelArea.x(), labelArea.y());
451  tr.rotate(90);
452  }
453  painter.setTransform(tr);
454  }
455 
456  style()->drawItemText(&painter, labelPaintArea, Qt::AlignLeading | Qt::AlignVCenter,
457  palette(), true, t, QPalette::ButtonText);
458 }
459 
460 // KMultiTabBar
462 
463 KMultiTabBar::KMultiTabBar(KMultiTabBarPosition pos, QWidget *parent)
464  : QWidget(parent),
465  d(new KMultiTabBarPrivate)
466 {
467  if (pos == Left || pos == Right)
468  {
469  d->m_l=new QVBoxLayout(this);
470  setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding/*, true*/);
471  }
472  else
473  {
474  d->m_l=new QHBoxLayout(this);
475  setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed/*, true*/);
476  }
477  d->m_l->setMargin(0);
478  d->m_l->setSpacing(0);
479 
480  d->m_internal=new KMultiTabBarInternal(this, pos);
481  setPosition(pos);
482  setStyle(VSNET);
483  d->m_l->insertWidget(0,d->m_internal);
484  d->m_l->insertWidget(0,d->m_btnTabSep=new QFrame(this));
485  d->m_btnTabSep->setFixedHeight(4);
486  d->m_btnTabSep->setFrameStyle(QFrame::Panel | QFrame::Sunken);
487  d->m_btnTabSep->setLineWidth(2);
488  d->m_btnTabSep->hide();
489 
490  updateGeometry();
491 }
492 
493 KMultiTabBar::~KMultiTabBar()
494 {
495  qDeleteAll( d->m_buttons );
496  d->m_buttons.clear();
497  delete d;
498 }
499 
500 int KMultiTabBar::appendButton(const QPixmap &pic, int id, QMenu *popup, const QString&)
501 {
502  KMultiTabBarButton *btn = new KMultiTabBarButton(pic, QString(), id, this);
503  // a button with a QMenu can have another size. Make sure the button has always the same size.
504  btn->setFixedWidth(btn->height());
505  btn->setMenu(popup);
506  d->m_buttons.append(btn);
507  d->m_l->insertWidget(0,btn);
508  btn->show();
509  d->m_btnTabSep->show();
510  return 0;
511 }
512 
513 void KMultiTabBar::updateSeparator() {
514  bool hideSep=true;
515  QListIterator<KMultiTabBarButton*> it(d->m_buttons);
516  while (it.hasNext()){
517  if (it.next()->isVisibleTo(this)) {
518  hideSep=false;
519  break;
520  }
521  }
522  if (hideSep)
523  d->m_btnTabSep->hide();
524  else
525  d->m_btnTabSep->show();
526 }
527 
528 int KMultiTabBar::appendTab(const QPixmap &pic, int id, const QString& text)
529 {
530  d->m_internal->appendTab(pic,id,text);
531  return 0;
532 }
533 
534 KMultiTabBarButton* KMultiTabBar::button(int id) const
535 {
536  QListIterator<KMultiTabBarButton*> it(d->m_buttons);
537  while ( it.hasNext() ) {
538  KMultiTabBarButton *button = it.next();
539  if ( button->id() == id )
540  return button;
541  }
542 
543  return 0;
544 }
545 
546 KMultiTabBarTab* KMultiTabBar::tab(int id) const
547 {
548  return d->m_internal->tab(id);
549 }
550 
551 void KMultiTabBar::removeButton(int id)
552 {
553  for (int pos=0;pos<d->m_buttons.count();pos++)
554  {
555  if (d->m_buttons.at(pos)->id()==id)
556  {
557  d->m_buttons.takeAt(pos)->deleteLater();
558  break;
559  }
560  }
561 
562  if (d->m_buttons.count()==0)
563  d->m_btnTabSep->hide();
564 }
565 
566 void KMultiTabBar::removeTab(int id)
567 {
568  d->m_internal->removeTab(id);
569 }
570 
571 void KMultiTabBar::setTab(int id,bool state)
572 {
573  KMultiTabBarTab *ttab=tab(id);
574  if (ttab)
575  ttab->setState(state);
576 }
577 
578 bool KMultiTabBar::isTabRaised(int id) const
579 {
580  KMultiTabBarTab *ttab=tab(id);
581  if (ttab)
582  return ttab->isChecked();
583 
584  return false;
585 }
586 
587 void KMultiTabBar::setStyle(KMultiTabBarStyle style)
588 {
589  d->m_internal->setStyle(style);
590 }
591 
592 KMultiTabBar::KMultiTabBarStyle KMultiTabBar::tabStyle() const
593 {
594  return d->m_internal->m_style;
595 }
596 
597 void KMultiTabBar::setPosition(KMultiTabBarPosition pos)
598 {
599  d->m_position=pos;
600  d->m_internal->setPosition(pos);
601 }
602 
603 KMultiTabBar::KMultiTabBarPosition KMultiTabBar::position() const
604 {
605  return d->m_position;
606 }
607 
608 void KMultiTabBar::fontChange(const QFont& /* oldFont */)
609 {
610  updateGeometry();
611 }
612 
613 // vim: ts=4 sw=4 noet
614 // kate: indent-width 4; replace-tabs off; tab-width 4; space-indent off;
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:546
KMultiTabBar::~KMultiTabBar
virtual ~KMultiTabBar()
Definition: kmultitabbar.cpp:493
KMultiTabBar::KMultiTabBarPosition
KMultiTabBarPosition
Definition: kmultitabbar.h:64
kdebug.h
KMultiTabBarButton::clicked
void clicked(int id)
this is emitted if the button is clicked
KMultiTabBarTab::~KMultiTabBarTab
virtual ~KMultiTabBarTab()
Definition: kmultitabbar.cpp:215
KMultiTabBar::Right
Definition: kmultitabbar.h:64
KMultiTabBar::updateSeparator
void updateSeparator()
Definition: kmultitabbar.cpp:513
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:534
QWidget
QPushButton
KMultiTabBarButton::paintEvent
virtual void paintEvent(class QPaintEvent *)
Definition: kmultitabbar.cpp:188
kiconloader.h
KMultiTabBar::KMultiTabBarButton
friend class KMultiTabBarButton
Definition: kmultitabbar.h:145
QString
KMultiTabBarButton::~KMultiTabBarButton
virtual ~KMultiTabBarButton()
Definition: kmultitabbar.cpp:156
KMultiTabBar::isTabRaised
bool isTabRaised(int id) const
return the state of a tab, identified by its ID
Definition: kmultitabbar.cpp:578
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::KDEV3ICON
Definition: kmultitabbar.h:71
KMultiTabBarButton::setText
void setText(const QString &text)
Definition: kmultitabbar.cpp:160
KMultiTabBar::VSNET
Definition: kmultitabbar.h:71
KMultiTabBarTab
Use KMultiTabBar::appendTab to append a tab, which creates a KMultiTabBarTab instance.
Definition: kmultitabbar.h:192
KMultiTabBar::tabStyle
KMultiTabBarStyle tabStyle() const
get the display style of the tabs
KMultiTabBar::setPosition
void setPosition(KMultiTabBarPosition pos)
set the real position of the widget.
Definition: kmultitabbar.cpp:597
KMultiTabBarButton::id
int id() const
Definition: kmultitabbar.cpp:171
KMultiTabBar
A Widget for horizontal and vertical tabs.
Definition: kmultitabbar.h:57
KMultiTabBarButton::hideEvent
virtual void hideEvent(class QHideEvent *)
Definition: kmultitabbar.cpp:176
KMultiTabBarTab::paintEvent
virtual void paintEvent(QPaintEvent *)
Definition: kmultitabbar.cpp:350
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:500
KMultiTabBarTab::setIcon
void setIcon(const QString &)
Definition: kmultitabbar.cpp:329
KMultiTabBar::Left
Definition: kmultitabbar.h:64
KMultiTabBar::position
KMultiTabBarPosition position() const
get the tabbar position.
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:528
QMenu
KMultiTabBarTab::setState
void setState(bool state)
set the active state of the tab
Definition: kmultitabbar.cpp:323
QFont
KMultiTabBarTab::sizeHint
virtual QSize sizeHint() const
Definition: kmultitabbar.cpp:262
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
KMultiTabBar::KMultiTabBar
KMultiTabBar(KMultiTabBarPosition pos, QWidget *parent=0)
Definition: kmultitabbar.cpp:463
QRect
KMultiTabBar::removeTab
void removeTab(int id)
remove a tab with a given ID
Definition: kmultitabbar.cpp:566
SmallIcon
QPixmap SmallIcon(const QString &name, int force_size, int state, const QStringList &overlays)
Definition: kiconloader.cpp:1553
KMultiTabBar::KMultiTabBarStyle
KMultiTabBarStyle
The list of available styles for KMultiTabBar.
Definition: kmultitabbar.h:71
KMultiTabBarTab::minimumSizeHint
virtual QSize minimumSizeHint() const
Definition: kmultitabbar.cpp:267
KMultiTabBarButton::slotClicked
virtual void slotClicked()
Definition: kmultitabbar.cpp:165
QSize
KMultiTabBar::setTab
void setTab(int id, bool state)
set a tab to "raised"
Definition: kmultitabbar.cpp:571
KMultiTabBarButton::KMultiTabBarButton
KMultiTabBarButton(const QPixmap &pic, const QString &, int id, QWidget *parent)
Should not be created directly.
Definition: kmultitabbar.cpp:144
kmultitabbar.h
KMultiTabBarButton::showEvent
virtual void showEvent(class QShowEvent *)
Definition: kmultitabbar.cpp:182
QFrame
KMultiTabBarButton
Use KMultiTabBar::appendButton to append a button, which creates a KMultiTabBarButton instance...
Definition: kmultitabbar.h:155
KMultiTabBar::setStyle
void setStyle(KMultiTabBarStyle style)
set the display style of the tabs
Definition: kmultitabbar.cpp:587
KMultiTabBar::removeButton
void removeButton(int id)
remove a button with the given ID
Definition: kmultitabbar.cpp:551
QList< KMultiTabBarButton * >
KMultiTabBar::fontChange
virtual void fontChange(const QFont &)
Definition: kmultitabbar.cpp:608
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:49:15 by doxygen 1.8.7 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 API Reference

Skip menu "kdelibs 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
  • kjsembed
  •   WTF
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Nepomuk-Core
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



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