kdeui
kbuttonbox.h
Go to the documentation of this file. 00001 /* This file is part of the KDE libraries
00002 Copyright (C) 1997 Mario Weilguni (mweilguni@sime.com)
00003
00004 This library is free software; you can redistribute it and/or
00005 modify it under the terms of the GNU Library General Public
00006 License as published by the Free Software Foundation; either
00007 version 2 of the License, or (at your option) any later version.
00008
00009 This library is distributed in the hope that it will be useful,
00010 but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
00012 Library General Public License for more details.
00013
00014 You should have received a copy of the GNU Library General Public License
00015 along with this library; see the file COPYING.LIB. If not, write to
00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00017 Boston, MA 02110-1301, USA.
00018 */
00019
00020 #ifndef __KBUTTONBOX__H__
00021 #define __KBUTTONBOX__H__
00022
00023 #include <kdelibs_export.h>
00024
00025 #include <qwidget.h>
00026 class QPushButton;
00027 class KGuiItem;
00028
00029 class KButtonBoxPrivate;
00042 class KDEUI_EXPORT KButtonBox : public QWidget
00043 {
00044 Q_OBJECT
00045
00046 public:
00054 KButtonBox(QWidget *parent, Orientation _orientation = Horizontal,
00055 int border = 0, int _autoborder = 6);
00056
00060 ~KButtonBox();
00061
00068 virtual QSize sizeHint() const;
00069 virtual QSizePolicy sizePolicy() const;
00070 virtual void resizeEvent(QResizeEvent *);
00071
00083 QPushButton *addButton(const QString& text, bool noexpand = false);
00084
00098 QPushButton *addButton(const QString& text, QObject * receiver, const char * slot, bool noexpand = false);
00099
00113 QPushButton *addButton(const KGuiItem& guiitem, bool noexpand = false);
00114
00130 QPushButton *addButton(const KGuiItem& guiitem, QObject * receiver, const char * slot, bool noexpand = false);
00131
00143 void addStretch(int scale = 1);
00144
00151 void layout();
00152
00153 public: // as PrivateData needs Item, it has to be exported
00154 class Item;
00155 protected:
00160 QSize bestButtonSize() const;
00161 void placeButtons();
00162 QSize buttonSizeHint(QPushButton *) const;
00163
00164 protected:
00165 virtual void virtual_hook( int id, void* data );
00166 private:
00167 KButtonBoxPrivate* const data;
00168 };
00169
00170 #endif