summaryrefslogtreecommitdiffstats
path: root/src/plugins/styles/bb10style/qbb10darkstyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/styles/bb10style/qbb10darkstyle.cpp')
-rw-r--r--src/plugins/styles/bb10style/qbb10darkstyle.cpp357
1 files changed, 357 insertions, 0 deletions
diff --git a/src/plugins/styles/bb10style/qbb10darkstyle.cpp b/src/plugins/styles/bb10style/qbb10darkstyle.cpp
new file mode 100644
index 0000000000..85bf4a7917
--- /dev/null
+++ b/src/plugins/styles/bb10style/qbb10darkstyle.cpp
@@ -0,0 +1,357 @@
+/***************************************************************************
+**
+** Copyright (C) 2014 BlackBerry Limited. All rights reserved.
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the plugins of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** Commercial License Usage
+** Licensees holding valid commercial Qt licenses may use this file in
+** accordance with the commercial license agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in
+** a written agreement between you and Digia. For licensing terms and
+** conditions see http://qt.digia.com/licensing. For further information
+** use the contact form at http://qt.digia.com/contact-us.
+**
+** 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.
+**
+** In addition, as a special exception, Digia gives you certain additional
+** rights. These rights are described in the Digia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU
+** General Public License version 3.0 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU General Public License version 3.0 requirements will be
+** met: http://www.gnu.org/copyleft/gpl.html.
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include "qbb10darkstyle.h"
+
+#include <QApplication>
+#include <QFont>
+#include <QStyleOption>
+#include <QProgressBar>
+#include <QComboBox>
+#include <QAbstractItemView>
+#include <QPainter>
+#include <QLineEdit>
+#include <QTextEdit>
+
+QT_BEGIN_NAMESPACE
+
+QBB10DarkStyle::QBB10DarkStyle() :
+ QPixmapStyle()
+{
+ addDescriptor(PB_Enabled,
+ QLatin1String("://dark/button/core_button_inactive.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Checked,
+ QLatin1String("://dark/button/core_button_enabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Pressed,
+ QLatin1String("://dark/button/core_button_pressed.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_Disabled,
+ QLatin1String("://dark/button/core_button_disabled.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_PressedDisabled,
+ QLatin1String("://dark/button/core_button_disabled_selected.png"),
+ QMargins(13, 13, 13, 13),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+
+ addDescriptor(LE_Enabled,
+ QLatin1String("://dark/lineedit/core_textinput_bg.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Disabled,
+ QLatin1String("://dark/lineedit/core_textinput_bg_disabled.png"),
+ QMargins(8, 8, 8, 8));
+ addDescriptor(LE_Focused,
+ QLatin1String("://dark/lineedit/core_textinput_bg_highlight.png"),
+ QMargins(8, 8, 8, 8));
+
+ copyDescriptor(LE_Enabled, TE_Enabled);
+ copyDescriptor(LE_Disabled, TE_Disabled);
+ copyDescriptor(LE_Focused, TE_Focused);
+
+ addPixmap(CB_Enabled,
+ QLatin1String("://dark/checkbox/core_checkbox_enabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Checked,
+ QLatin1String("://dark/checkbox/core_checkbox_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Pressed,
+ QLatin1String("://dark/checkbox/core_checkbox_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_PressedChecked,
+ QLatin1String("://dark/checkbox/core_checkbox_pressed_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_Disabled,
+ QLatin1String("://dark/checkbox/core_checkbox_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(CB_DisabledChecked,
+ QLatin1String("://dark/checkbox/core_checkbox_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addPixmap(RB_Enabled,
+ QLatin1String("://dark/radiobutton/core_radiobutton_inactive.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Checked,
+ QLatin1String("://dark/radiobutton/core_radiobutton_checked.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Pressed,
+ QLatin1String("://dark/radiobutton/core_radiobutton_pressed.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_Disabled,
+ QLatin1String("://dark/radiobutton/core_radiobutton_disabled.png"),
+ QMargins(16, 16, 16, 16));
+ addPixmap(RB_DisabledChecked,
+ QLatin1String("://dark/radiobutton/core_radiobutton_disabled_checked.png"),
+ QMargins(16, 16, 16, 16));
+
+ addDescriptor(PB_HBackground,
+ QLatin1String("://dark/progressbar/core_progressindicator_bg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HContent,
+ QLatin1String("://dark/progressbar/core_progressindicator_fill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_HComplete,
+ QLatin1String("://dark/progressbar/core_progressindicator_complete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(PB_VBackground,
+ QLatin1String("://dark/progressbar/core_progressindicator_vbg.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VContent,
+ QLatin1String("://dark/progressbar/core_progressindicator_vfill.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(PB_VComplete,
+ QLatin1String("://dark/progressbar/core_progressindicator_vcomplete.png"),
+ QMargins(10, 10, 10, 10),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addDescriptor(SG_HEnabled,
+ QLatin1String("://dark/slider/core_slider_enabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HDisabled,
+ QLatin1String("://dark/slider/core_slider_disabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveEnabled,
+ QLatin1String("://dark/slider/core_slider_inactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActivePressed,
+ QLatin1String("://dark/slider/core_slider_active.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_HActiveDisabled,
+ QLatin1String("://dark/slider/core_slider_cache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SG_VEnabled,
+ QLatin1String("://dark/slider/core_slider_venabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VDisabled,
+ QLatin1String("://dark/slider/core_slider_vdisabled.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveEnabled,
+ QLatin1String("://dark/slider/core_slider_vinactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActivePressed,
+ QLatin1String("://dark/slider/core_slider_vactive.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+ addDescriptor(SG_VActiveDisabled,
+ QLatin1String("://dark/slider/core_slider_vcache.png"),
+ QMargins(50, 50, 50, 50),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+
+ addPixmap(SH_HEnabled,
+ QLatin1String("://dark/slider/core_slider_handle.png"));
+ addPixmap(SH_HDisabled,
+ QLatin1String("://dark/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_HPressed,
+ QLatin1String("://dark/slider/core_slider_handle_pressed.png"));
+ addPixmap(SH_VEnabled,
+ QLatin1String("://dark/slider/core_slider_handle.png"));
+ addPixmap(SH_VDisabled,
+ QLatin1String("://dark/slider/core_slider_handle_disabled.png"));
+ addPixmap(SH_VPressed,
+ QLatin1String("://dark/slider/core_slider_handle_pressed.png"));
+
+ addDescriptor(DD_ButtonEnabled,
+ QLatin1String("://dark/combobox/core_dropdown_button.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonDisabled,
+ QLatin1String("://dark/combobox/core_dropdown_button_disabled.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ButtonPressed,
+ QLatin1String("://dark/combobox/core_dropdown_button_pressed.png"),
+ QMargins(14, 14, 14, 14),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(DD_ItemSelected,
+ QLatin1String("://dark/combobox/core_listitem_active.png"));
+ addPixmap(DD_ArrowEnabled,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowdown.png"),
+ QMargins(35, 39, 35, 39));
+ copyPixmap(DD_ArrowEnabled, DD_ArrowDisabled);
+ addPixmap(DD_ArrowPressed,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowdown_pressed.png"),
+ QMargins(35, 39, 35, 39));
+ addPixmap(DD_ArrowOpen,
+ QLatin1String("://dark/combobox/core_dropdown_button_arrowup.png"),
+ QMargins(35, 39, 35, 39));
+ addDescriptor(DD_PopupDown,
+ QLatin1String("://dark/combobox/core_dropdown_menu.png"),
+ QMargins(12, 12, 12, 12), QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addDescriptor(DD_PopupUp,
+ QLatin1String("://dark/combobox/core_dropdown_menuup.png"),
+ QMargins(12, 12, 12, 12), QTileRules(Qt::StretchTile, Qt::StretchTile));
+ addPixmap(DD_ItemSeparator,
+ QLatin1String("://dark/combobox/core_dropdown_divider.png"),
+ QMargins(5, 0, 5, 0));
+
+ addDescriptor(ID_Selected,
+ QLatin1String("://dark/listitem/core_listitem_active.png"));
+ addPixmap(ID_Separator,
+ QLatin1String("://dark/listitem/core_listitem_divider.png"));
+
+ addDescriptor(SB_Horizontal,
+ QLatin1String("://dark/scrollbar/core_scrollbar.png"),
+ QMargins(7, 8, 7, 8),
+ QTileRules(Qt::RepeatTile, Qt::StretchTile));
+ addDescriptor(SB_Vertical,
+ QLatin1String("://dark/scrollbar/core_scrollbar_v.png"),
+ QMargins(8, 7, 8, 7),
+ QTileRules(Qt::StretchTile, Qt::RepeatTile));
+}
+
+QBB10DarkStyle::~QBB10DarkStyle()
+{
+}
+
+void QBB10DarkStyle::polish(QApplication *application)
+{
+ QPixmapStyle::polish(application);
+}
+
+void QBB10DarkStyle::polish(QWidget *widget)
+{
+ // Hide the text by default
+ if (QProgressBar *pb = qobject_cast<QProgressBar*>(widget))
+ pb->setTextVisible(false);
+
+ if (QComboBox *cb = qobject_cast<QComboBox*>(widget)) {
+ QAbstractItemView *list = cb->view();
+ QPalette p = list->palette();
+ p.setBrush(QPalette::HighlightedText, p.brush(QPalette::Text));
+ list->setPalette(p);
+ }
+
+ if (qobject_cast<QLineEdit*>(widget) || qobject_cast<QTextEdit*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Text, QColor(38, 38, 38));
+ widget->setPalette(p);
+ }
+
+ if (qobject_cast<QAbstractItemView*>(widget)) {
+ QPalette p = widget->palette();
+ p.setBrush(QPalette::Disabled, QPalette::HighlightedText, p.brush(QPalette::Text));
+ widget->setPalette(p);
+ }
+
+ QPixmapStyle::polish(widget);
+}
+
+QPalette QBB10DarkStyle::standardPalette() const
+{
+ QPalette p;
+
+ QColor color = QColor(250, 250, 250);
+ p.setBrush(QPalette::ButtonText, color);
+ p.setBrush(QPalette::WindowText, color);
+ p.setBrush(QPalette::Text, color);
+
+ color.setAlpha(179);
+ p.setBrush(QPalette::Disabled, QPalette::ButtonText, color);
+ p.setBrush(QPalette::Disabled, QPalette::WindowText, color);
+ p.setBrush(QPalette::Disabled, QPalette::Text, color);
+
+ p.setColor(QPalette::Window, QColor(18, 18, 18));
+
+ p.setBrush(QPalette::Highlight, QColor(0, 168, 223));
+ p.setBrush(QPalette::HighlightedText, QColor(250, 250,250));
+
+ return p;
+}
+
+void QBB10DarkStyle::drawControl(QStyle::ControlElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ switch (element) {
+ case CE_PushButtonLabel:
+ {
+ const bool on = option->state & State_On || option->state & State_Sunken;
+ const QStyleOptionButton *button = qstyleoption_cast<const QStyleOptionButton*>(option);
+ QStyleOptionButton newOpt = *button;
+ if (on)
+ newOpt.palette.setBrush(QPalette::ButtonText, QColor(38, 38, 38));
+ QPixmapStyle::drawControl(CE_PushButtonLabel, &newOpt, painter, widget);
+ break;
+ }
+ case CE_ProgressBarLabel:
+ // Don't draw the progress bar label
+ break;
+ default:
+ QPixmapStyle::drawControl(element, option, painter, widget);
+ }
+}
+
+void QBB10DarkStyle::drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option,
+ QPainter *painter, const QWidget *widget) const
+{
+ QPixmapStyle::drawPrimitive(element, option, painter, widget);
+
+ if (element == PE_PanelItemViewItem) {
+ // Draw the checkbox for current item
+ if (widget->property("_pixmap_combobox_list").toBool()
+ && option->state & QStyle::State_Selected) {
+ QPixmap pix(QLatin1String("://dark/combobox/core_dropdown_checkmark.png"));
+ QRect rect = option->rect;
+ const int margin = rect.height() / 2;
+ QPoint pos(rect.right() - margin - pix.width() / 2,
+ rect.top() + margin - pix.height() / 2);
+ painter->drawPixmap(pos, pix);
+ }
+ }
+}
+
+QT_END_NAMESPACE