aboutsummaryrefslogtreecommitdiff
path: root/src/qt
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2011-09-11 21:06:23 +0200
committerWladimir J. van der Laan <laanwj@gmail.com>2011-09-11 21:06:23 +0200
commit83312d7c6c9536bc1500c8b738635e62d98aa39b (patch)
tree9f4c634db14947df17d62ba0cdcff00ca6dca51b /src/qt
parent1837644c4a153ad8275848f0b0626685d8b75727 (diff)
remove transparency effect and windows-specific code for now, it's not working as supposed
Diffstat (limited to 'src/qt')
-rw-r--r--src/qt/bitcoingui.cpp47
-rw-r--r--src/qt/bitcoingui.h2
-rw-r--r--src/qt/qtwin.cpp222
-rw-r--r--src/qt/qtwin.h37
4 files changed, 0 insertions, 308 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index b51fd729cb..3e6b547006 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -21,7 +21,6 @@
#include "guiconstants.h"
#include "askpassphrasedialog.h"
#include "notificator.h"
-#include "qtwin.h"
#include <QApplication>
#include <QMainWindow>
@@ -160,16 +159,6 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
// Doubleclicking on a transaction on the transaction history page shows details
connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
-#ifdef Q_OS_WIN
- // Windows-specific customization
- if (QtWin::isCompositionEnabled())
- {
- QtWin::extendFrameIntoClientArea(this);
- setContentsMargins(0, 0, 0, 0);
- }
-#endif
- setWindowComposition();
-
gotoOverviewPage();
}
@@ -432,7 +421,6 @@ void BitcoinGUI::changeEvent(QEvent *e)
}
}
}
- setWindowComposition();
QMainWindow::changeEvent(e);
}
@@ -446,41 +434,6 @@ void BitcoinGUI::closeEvent(QCloseEvent *event)
QMainWindow::closeEvent(event);
}
-void BitcoinGUI::setWindowComposition()
-{
-#ifdef Q_OS_WIN
- // Make the background transparent on Windows Vista or 7, except when maximized
- // Otherwise text becomes hard to read
- if (QtWin::isCompositionEnabled())
- {
- QPalette pal = palette();
- QColor bg = pal.window().color();
- if(isMaximized())
- {
- setAttribute(Qt::WA_TranslucentBackground, false);
- setAttribute(Qt::WA_StyledBackground, true);
- QBrush wb = pal.window();
- bg = wb.color();
- bg.setAlpha(255);
- pal.setColor(QPalette::Window, bg);
- setPalette(pal);
-
- }
- else
- {
- setAttribute(Qt::WA_TranslucentBackground);
- setAttribute(Qt::WA_StyledBackground, false);
- bg.setAlpha(0);
- pal.setColor(QPalette::Window, bg);
- setPalette(pal);
- setAttribute(Qt::WA_NoSystemBackground, false);
- ensurePolished();
- setAttribute(Qt::WA_StyledBackground, false);
- }
- }
-#endif
-}
-
void BitcoinGUI::askFee(qint64 nFeeRequired, bool *payFee)
{
QString strMessage =
diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h
index 97af431f44..59661350c3 100644
--- a/src/qt/bitcoingui.h
+++ b/src/qt/bitcoingui.h
@@ -99,8 +99,6 @@ public slots:
*/
void askFee(qint64 nFeeRequired, bool *payFee);
- void setWindowComposition();
-
private slots:
// UI pages
void gotoOverviewPage();
diff --git a/src/qt/qtwin.cpp b/src/qt/qtwin.cpp
deleted file mode 100644
index bb029bba24..0000000000
--- a/src/qt/qtwin.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Use, modification and distribution is allowed without limitation,
-** warranty, liability or support of any kind.
-**
-****************************************************************************/
-
-#include "qtwin.h"
-#include <QLibrary>
-#include <QApplication>
-#include <QWidget>
-#include <QList>
-#include <QPointer>
-
-#ifdef Q_WS_WIN
-
-#include <qt_windows.h>
-
-// Blur behind data structures
-#define DWM_BB_ENABLE 0x00000001 // fEnable has been specified
-#define DWM_BB_BLURREGION 0x00000002 // hRgnBlur has been specified
-#define DWM_BB_TRANSITIONONMAXIMIZED 0x00000004 // fTransitionOnMaximized has been specified
-#define WM_DWMCOMPOSITIONCHANGED 0x031E // Composition changed window message
-
-typedef struct _DWM_BLURBEHIND
-{
- DWORD dwFlags;
- BOOL fEnable;
- HRGN hRgnBlur;
- BOOL fTransitionOnMaximized;
-} DWM_BLURBEHIND, *PDWM_BLURBEHIND;
-
-typedef struct _MARGINS
-{
- int cxLeftWidth;
- int cxRightWidth;
- int cyTopHeight;
- int cyBottomHeight;
-} MARGINS, *PMARGINS;
-
-typedef HRESULT (WINAPI *PtrDwmIsCompositionEnabled)(BOOL* pfEnabled);
-typedef HRESULT (WINAPI *PtrDwmExtendFrameIntoClientArea)(HWND hWnd, const MARGINS* pMarInset);
-typedef HRESULT (WINAPI *PtrDwmEnableBlurBehindWindow)(HWND hWnd, const DWM_BLURBEHIND* pBlurBehind);
-typedef HRESULT (WINAPI *PtrDwmGetColorizationColor)(DWORD *pcrColorization, BOOL *pfOpaqueBlend);
-
-static PtrDwmIsCompositionEnabled pDwmIsCompositionEnabled= 0;
-static PtrDwmEnableBlurBehindWindow pDwmEnableBlurBehindWindow = 0;
-static PtrDwmExtendFrameIntoClientArea pDwmExtendFrameIntoClientArea = 0;
-static PtrDwmGetColorizationColor pDwmGetColorizationColor = 0;
-
-
-/*
- * Internal helper class that notifies windows if the
- * DWM compositing state changes and updates the widget
- * flags correspondingly.
- */
-class WindowNotifier : public QWidget
-{
-public:
- WindowNotifier() { winId(); }
- void addWidget(QWidget *widget) { widgets.append(widget); }
- void removeWidget(QWidget *widget) { widgets.removeAll(widget); }
- bool winEvent(MSG *message, long *result);
-
-private:
- QWidgetList widgets;
-};
-
-static bool resolveLibs()
-{
- if (!pDwmIsCompositionEnabled) {
- QLibrary dwmLib(QString::fromAscii("dwmapi"));
- pDwmIsCompositionEnabled =(PtrDwmIsCompositionEnabled)dwmLib.resolve("DwmIsCompositionEnabled");
- pDwmExtendFrameIntoClientArea = (PtrDwmExtendFrameIntoClientArea)dwmLib.resolve("DwmExtendFrameIntoClientArea");
- pDwmEnableBlurBehindWindow = (PtrDwmEnableBlurBehindWindow)dwmLib.resolve("DwmEnableBlurBehindWindow");
- pDwmGetColorizationColor = (PtrDwmGetColorizationColor)dwmLib.resolve("DwmGetColorizationColor");
- }
- return pDwmIsCompositionEnabled != 0;
-}
-
-#endif
-
-/*!
- * Chekcs and returns true if Windows DWM composition
- * is currently enabled on the system.
- *
- * To get live notification on the availability of
- * this feature, you will currently have to
- * reimplement winEvent() on your widget and listen
- * for the WM_DWMCOMPOSITIONCHANGED event to occur.
- *
- */
-bool QtWin::isCompositionEnabled()
-{
-#ifdef Q_WS_WIN
- if (resolveLibs()) {
- HRESULT hr = S_OK;
- BOOL isEnabled = false;
- hr = pDwmIsCompositionEnabled(&isEnabled);
- if (SUCCEEDED(hr))
- return isEnabled;
- }
-#endif
- return false;
-}
-
-/*!
- * Enables Blur behind on a Widget.
- *
- * \a enable tells if the blur should be enabled or not
- */
-bool QtWin::enableBlurBehindWindow(QWidget *widget, bool enable)
-{
- Q_ASSERT(widget);
- bool result = false;
-#ifdef Q_WS_WIN
- if (resolveLibs()) {
- DWM_BLURBEHIND bb = {0};
- HRESULT hr = S_OK;
- bb.fEnable = enable;
- bb.dwFlags = DWM_BB_ENABLE;
- bb.hRgnBlur = NULL;
- widget->setAttribute(Qt::WA_TranslucentBackground, enable);
- widget->setAttribute(Qt::WA_NoSystemBackground, enable);
- hr = pDwmEnableBlurBehindWindow(widget->winId(), &bb);
- if (SUCCEEDED(hr)) {
- result = true;
- windowNotifier()->addWidget(widget);
- }
- }
-#endif
- return result;
-}
-
-/*!
- * ExtendFrameIntoClientArea.
- *
- * This controls the rendering of the frame inside the window.
- * Note that passing margins of -1 (the default value) will completely
- * remove the frame from the window.
- *
- * \note you should not call enableBlurBehindWindow before calling
- * this functions
- *
- * \a enable tells if the blur should be enabled or not
- */
-bool QtWin::extendFrameIntoClientArea(QWidget *widget, int left, int top, int right, int bottom)
-{
-
- Q_ASSERT(widget);
- Q_UNUSED(left);
- Q_UNUSED(top);
- Q_UNUSED(right);
- Q_UNUSED(bottom);
-
- bool result = false;
-#ifdef Q_WS_WIN
- if (resolveLibs()) {
- QLibrary dwmLib(QString::fromAscii("dwmapi"));
- HRESULT hr = S_OK;
- MARGINS m = {left, top, right, bottom};
- hr = pDwmExtendFrameIntoClientArea(widget->winId(), &m);
- if (SUCCEEDED(hr)) {
- result = true;
- windowNotifier()->addWidget(widget);
- }
- widget->setAttribute(Qt::WA_TranslucentBackground, result);
- }
-#endif
- return result;
-}
-
-/*!
- * Returns the current colorizationColor for the window.
- *
- * \a enable tells if the blur should be enabled or not
- */
-QColor QtWin::colorizatinColor()
-{
- QColor resultColor = QApplication::palette().window().color();
-
-#ifdef Q_WS_WIN
- if (resolveLibs()) {
- DWORD color = 0;
- BOOL opaque = FALSE;
- QLibrary dwmLib(QString::fromAscii("dwmapi"));
- HRESULT hr = S_OK;
- hr = pDwmGetColorizationColor(&color, &opaque);
- if (SUCCEEDED(hr))
- resultColor = QColor(color);
- }
-#endif
- return resultColor;
-}
-
-#ifdef Q_WS_WIN
-WindowNotifier *QtWin::windowNotifier()
-{
- static WindowNotifier *windowNotifierInstance = 0;
- if (!windowNotifierInstance)
- windowNotifierInstance = new WindowNotifier;
- return windowNotifierInstance;
-}
-
-
-/* Notify all enabled windows that the DWM state changed */
-bool WindowNotifier::winEvent(MSG *message, long *result)
-{
- if (message && message->message == WM_DWMCOMPOSITIONCHANGED) {
- bool compositionEnabled = QtWin::isCompositionEnabled();
- foreach(QWidget * widget, widgets) {
- if (widget) {
- widget->setAttribute(Qt::WA_NoSystemBackground, compositionEnabled);
- }
- widget->update();
- }
- }
- return QWidget::winEvent(message, result);
-}
-#endif
diff --git a/src/qt/qtwin.h b/src/qt/qtwin.h
deleted file mode 100644
index 4008c7fa28..0000000000
--- a/src/qt/qtwin.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-**
-** Use, modification and distribution is allowed without limitation,
-** warranty, liability or support of any kind.
-**
-****************************************************************************/
-
-#ifndef QTWIN_H
-#define QTWIN_H
-
-#include <QColor>
-#include <QWidget>
-/**
- * This is a helper class for using the Desktop Window Manager
- * functionality on Windows 7 and Windows Vista. On other platforms
- * these functions will simply not do anything.
- */
-
-class WindowNotifier;
-
-class QtWin
-{
-public:
- static bool enableBlurBehindWindow(QWidget *widget, bool enable = true);
- static bool extendFrameIntoClientArea(QWidget *widget,
- int left = -1, int top = -1,
- int right = -1, int bottom = -1);
- static bool isCompositionEnabled();
- static QColor colorizatinColor();
-
-private:
- static WindowNotifier *windowNotifier();
-};
-
-#endif // QTWIN_H