qdialogbuttonbox.h
上传用户:detong
上传日期:2022-06-22
资源大小:20675k
文件大小:5k
源码类别:

系统编程

开发平台:

Unix_Linux

  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
  4. ** Contact: Qt Software Information (qt-info@nokia.com)
  5. **
  6. ** This file is part of the QtGui module of the Qt Toolkit.
  7. **
  8. ** Commercial Usage
  9. ** Licensees holding valid Qt Commercial licenses may use this file in
  10. ** accordance with the Qt Commercial License Agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Nokia.
  13. **
  14. **
  15. ** GNU General Public License Usage
  16. ** Alternatively, this file may be used under the terms of the GNU
  17. ** General Public License versions 2.0 or 3.0 as published by the Free
  18. ** Software Foundation and appearing in the file LICENSE.GPL included in
  19. ** the packaging of this file.  Please review the following information
  20. ** to ensure GNU General Public Licensing requirements will be met:
  21. ** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
  22. ** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
  23. ** exception, Nokia gives you certain additional rights. These rights
  24. ** are described in the Nokia Qt GPL Exception version 1.3, included in
  25. ** the file GPL_EXCEPTION.txt in this package.
  26. **
  27. ** Qt for Windows(R) Licensees
  28. ** As a special exception, Nokia, as the sole copyright holder for Qt
  29. ** Designer, grants users of the Qt/Eclipse Integration plug-in the
  30. ** right for the Qt/Eclipse Integration to link to functionality
  31. ** provided by Qt Designer and its related libraries.
  32. **
  33. ** If you are unsure which license is appropriate for your use, please
  34. ** contact the sales department at qt-sales@nokia.com.
  35. **
  36. ****************************************************************************/
  37. #ifndef QDIALOGBUTTONBOX_H
  38. #define QDIALOGBUTTONBOX_H
  39. #include <QtGui/qwidget.h>
  40. QT_BEGIN_HEADER
  41. QT_BEGIN_NAMESPACE
  42. QT_MODULE(Gui)
  43. class QAbstractButton;
  44. class QPushButton;
  45. class QDialogButtonBoxPrivate;
  46. class Q_GUI_EXPORT QDialogButtonBox : public QWidget
  47. {
  48.     Q_OBJECT
  49.     Q_FLAGS(StandardButtons)
  50.     Q_PROPERTY(Qt::Orientation orientation READ orientation WRITE setOrientation)
  51.     Q_PROPERTY(StandardButtons standardButtons READ standardButtons WRITE setStandardButtons)
  52.     Q_PROPERTY(bool centerButtons READ centerButtons WRITE setCenterButtons)
  53. public:
  54.     enum ButtonRole {
  55.         // keep this in sync with QMessageBox::ButtonRole
  56.         InvalidRole = -1,
  57.         AcceptRole,
  58.         RejectRole,
  59.         DestructiveRole,
  60.         ActionRole,
  61.         HelpRole,
  62.         YesRole,
  63.         NoRole,
  64.         ResetRole,
  65.         ApplyRole,
  66.         NRoles
  67.     };
  68.     enum StandardButton {
  69.         // keep this in sync with QMessageBox::StandardButton
  70.         NoButton           = 0x00000000,
  71.         Ok                 = 0x00000400,
  72.         Save               = 0x00000800,
  73.         SaveAll            = 0x00001000,
  74.         Open               = 0x00002000,
  75.         Yes                = 0x00004000,
  76.         YesToAll           = 0x00008000,
  77.         No                 = 0x00010000,
  78.         NoToAll            = 0x00020000,
  79.         Abort              = 0x00040000,
  80.         Retry              = 0x00080000,
  81.         Ignore             = 0x00100000,
  82.         Close              = 0x00200000,
  83.         Cancel             = 0x00400000,
  84.         Discard            = 0x00800000,
  85.         Help               = 0x01000000,
  86.         Apply              = 0x02000000,
  87.         Reset              = 0x04000000,
  88.         RestoreDefaults    = 0x08000000,
  89. #ifndef Q_MOC_RUN
  90.         FirstButton        = Ok,
  91.         LastButton         = RestoreDefaults
  92. #endif
  93.     };
  94.     Q_DECLARE_FLAGS(StandardButtons, StandardButton)
  95.     enum ButtonLayout {
  96.         WinLayout,
  97.         MacLayout,
  98.         KdeLayout,
  99.         GnomeLayout
  100.     };
  101.     QDialogButtonBox(QWidget *parent = 0);
  102.     QDialogButtonBox(Qt::Orientation orientation, QWidget *parent = 0);
  103.     QDialogButtonBox(StandardButtons buttons, Qt::Orientation orientation = Qt::Horizontal,
  104.                      QWidget *parent = 0);
  105.     ~QDialogButtonBox();
  106.     void setOrientation(Qt::Orientation orientation);
  107.     Qt::Orientation orientation() const;
  108.     void addButton(QAbstractButton *button, ButtonRole role);
  109.     QPushButton *addButton(const QString &text, ButtonRole role);
  110.     QPushButton *addButton(StandardButton button);
  111.     void removeButton(QAbstractButton *button);
  112.     void clear();
  113.     QList<QAbstractButton *> buttons() const;
  114.     ButtonRole buttonRole(QAbstractButton *button) const;
  115.     void setStandardButtons(StandardButtons buttons);
  116.     StandardButtons standardButtons() const;
  117.     StandardButton standardButton(QAbstractButton *button) const;
  118.     QPushButton *button(StandardButton which) const;
  119.     void setCenterButtons(bool center);
  120.     bool centerButtons() const;
  121. Q_SIGNALS:
  122.     void clicked(QAbstractButton *button);
  123.     void accepted();
  124.     void helpRequested();
  125.     void rejected();
  126. protected:
  127.     void changeEvent(QEvent *event);
  128.     bool event(QEvent *event);
  129. private:
  130.     Q_DISABLE_COPY(QDialogButtonBox)
  131.     Q_DECLARE_PRIVATE(QDialogButtonBox)
  132.     Q_PRIVATE_SLOT(d_func(), void _q_handleButtonClicked())
  133.     Q_PRIVATE_SLOT(d_func(), void _q_handleButtonDestroyed())
  134. };
  135. Q_DECLARE_OPERATORS_FOR_FLAGS(QDialogButtonBox::StandardButtons)
  136. QT_END_NAMESPACE
  137. QT_END_HEADER
  138. #endif // QDIALOGBUTTONBOX_H