diff options
author | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-09-16 12:26:28 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@nokia.com> | 2010-09-16 12:26:28 +0200 |
commit | d6057ae6002d294bf76bf5ddef2c883fdbd38cee (patch) | |
tree | d06b51dc3c3a8c3cfa64c6c308a228e06bb1c3cf /src/plugins/coreplugin/outputpanemanager.h | |
parent | b8cc8e210c67ba870044d6eddc5f9e00fbedbb75 (diff) | |
download | qt-creator-d6057ae6002d294bf76bf5ddef2c883fdbd38cee.tar.gz |
Header cleanup in coreplugin, part 1
Diffstat (limited to 'src/plugins/coreplugin/outputpanemanager.h')
-rw-r--r-- | src/plugins/coreplugin/outputpanemanager.h | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/src/plugins/coreplugin/outputpanemanager.h b/src/plugins/coreplugin/outputpanemanager.h new file mode 100644 index 0000000000..1d692cdb15 --- /dev/null +++ b/src/plugins/coreplugin/outputpanemanager.h @@ -0,0 +1,148 @@ +/************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** Commercial Usage +** +** Licensees holding valid Qt Commercial licenses may use this file in +** accordance with the Qt Commercial License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Nokia. +** +** GNU Lesser General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** If you are unsure which license is appropriate for your use, please +** contact the sales department at http://qt.nokia.com/contact. +** +**************************************************************************/ + +#ifndef OUTPUTPANEMANAGER_H +#define OUTPUTPANEMANAGER_H + +#include <QtCore/QMap> +#include <QtGui/QPushButton> + +QT_BEGIN_NAMESPACE +class QAction; +class QComboBox; +class QToolButton; +class QStackedWidget; +class QSplitter; +QT_END_NAMESPACE + +namespace Core { + +class IMode; +class IOutputPane; + +namespace Internal { +class OutputPaneManager; +class MainWindow; +} + +namespace Internal { + +class OutputPaneManager : public QWidget +{ + Q_OBJECT + +public: + void init(); + static OutputPaneManager *instance(); + void setCloseable(bool b); + bool closeable(); + QWidget *buttonsWidget(); + void updateStatusButtons(bool visible); + + bool isMaximized()const; + +public slots: + void slotHide(); + void slotNext(); + void slotPrev(); + void shortcutTriggered(); + void slotMinMax(); + +protected: + void focusInEvent(QFocusEvent *e); + +private slots: + void changePage(); + void showPage(bool focus); + void togglePage(bool focus); + void clearPage(); + void buttonTriggered(); + void updateNavigateState(); + +private: + // the only class that is allowed to create and destroy + friend class MainWindow; + + static void create(); + static void destroy(); + + explicit OutputPaneManager(QWidget *parent = 0); + ~OutputPaneManager(); + + void showPage(int idx, bool focus); + void ensurePageVisible(int idx); + int findIndexForPage(IOutputPane *out); + QComboBox *m_widgetComboBox; + QToolButton *m_clearButton; + QToolButton *m_closeButton; + + QAction *m_minMaxAction; + QToolButton *m_minMaxButton; + + QAction *m_nextAction; + QAction *m_prevAction; + QToolButton *m_prevToolButton; + QToolButton *m_nextToolButton; + QWidget *m_toolBar; + + QMap<int, Core::IOutputPane*> m_pageMap; + int m_lastIndex; + + QStackedWidget *m_outputWidgetPane; + QStackedWidget *m_opToolBarWidgets; + QWidget *m_buttonsWidget; + QMap<int, QPushButton *> m_buttons; + QMap<QAction *, int> m_actions; + QPixmap m_minimizeIcon; + QPixmap m_maximizeIcon; + bool m_maximised; +}; + +class OutputPaneToggleButton : public QPushButton +{ + Q_OBJECT +public: + OutputPaneToggleButton(int number, const QString &text, QAction *action, + QWidget *parent = 0); + QSize sizeHint() const; + void paintEvent(QPaintEvent *event); + +private slots: + void updateToolTip(); + +private: + QString m_number; + QString m_text; + QAction *m_action; +}; + +} // namespace Internal +} // namespace Core + +#endif // OUTPUTPANEMANAGER_H |