1 /**************************************************************************
3 ** This file is part of Qt Creator
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
7 ** Contact: Nokia Corporation (info@qt.nokia.com)
10 ** GNU Lesser General Public License Usage
12 ** This file may be used under the terms of the GNU Lesser General Public
13 ** License version 2.1 as published by the Free Software Foundation and
14 ** appearing in the file LICENSE.LGPL included in the packaging of this file.
15 ** Please review the following information to ensure the GNU Lesser General
16 ** Public License version 2.1 requirements will be met:
17 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
19 ** In addition, as a special exception, Nokia gives you certain additional
20 ** rights. These rights are described in the Nokia Qt LGPL Exception
21 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
25 ** Alternatively, this file may be used in accordance with the terms and
26 ** conditions contained in a signed written agreement between you and Nokia.
28 ** If you have questions regarding the use of this file, please contact
29 ** Nokia at qt-info@nokia.com.
31 **************************************************************************/
33 #ifndef NAVIGATIONSSUBWIDGET_H
34 #define NAVIGATIONSSUBWIDGET_H
36 #include <QtGui/QComboBox>
38 #include <QtCore/QList>
49 class INavigationWidgetFactory;
52 class NavigationWidget;
56 class NavigationSubWidget : public QWidget
60 NavigationSubWidget(NavigationWidget *parentWidget, int position, int index);
61 virtual ~NavigationSubWidget();
63 INavigationWidgetFactory *factory();
65 int factoryIndex() const;
66 void setFactoryIndex(int i);
68 void setFocusWidget();
71 void setPosition(int i);
74 void restoreSettings();
76 Core::Command *command(const QString &title) const;
83 void comboBoxIndexChanged(int);
86 NavigationWidget *m_parentWidget;
87 QComboBox *m_navigationComboBox;
88 QWidget *m_navigationWidget;
89 INavigationWidgetFactory *m_navigationWidgetFactory;
90 Utils::StyledBar *m_toolBar;
91 QList<QToolButton *> m_additionalToolBarWidgets;
95 // A combo associated with a command. Shows the command text
96 // and shortcut in the tooltip.
97 class CommandComboBox : public QComboBox
102 explicit CommandComboBox(QWidget *parent = 0);
105 bool event(QEvent *event);
108 virtual const Core::Command *command(const QString &text) const = 0;
112 class NavComboBox : public CommandComboBox
117 explicit NavComboBox(NavigationSubWidget *navSubWidget) :
118 m_navSubWidget(navSubWidget) {}
121 virtual const Core::Command *command(const QString &text) const
122 { return m_navSubWidget->command(text); }
124 NavigationSubWidget *m_navSubWidget;
127 } // namespace Internal
130 #endif // NAVIGATIONSSUBWIDGET_H