remove transparency effect and windows-specific code for now, it's not working as...
authorWladimir J. van der Laan <laanwj@gmail.com>
Sun, 11 Sep 2011 19:06:23 +0000 (21:06 +0200)
committerWladimir J. van der Laan <laanwj@gmail.com>
Sun, 11 Sep 2011 19:06:23 +0000 (21:06 +0200)
bitcoin-qt.pro
src/qt/bitcoingui.cpp
src/qt/bitcoingui.h
src/qt/qtwin.cpp [deleted file]
src/qt/qtwin.h [deleted file]

index 8c58cd4..19d7814 100644 (file)
@@ -99,7 +99,6 @@ HEADERS += src/qt/bitcoingui.h \
     src/bitcoinrpc.h \
     src/qt/overviewpage.h \
     src/qt/csvmodelwriter.h \
-    src/qt/qtwin.h \
     src/crypter.h \
     src/qt/sendcoinsentry.h \
     src/qt/qvalidatedlineedit.h \
@@ -147,7 +146,6 @@ SOURCES += src/qt/bitcoin.cpp src/qt/bitcoingui.cpp \
     src/bitcoinrpc.cpp \
     src/qt/overviewpage.cpp \
     src/qt/csvmodelwriter.cpp \
-    src/qt/qtwin.cpp \
     src/crypter.cpp \
     src/qt/sendcoinsentry.cpp \
     src/qt/qvalidatedlineedit.cpp \
index b51fd72..3e6b547 100644 (file)
@@ -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 =
index 97af431..5966135 100644 (file)
@@ -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 (file)
index bb029bb..0000000
+++ /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 (file)
index 4008c7f..0000000
+++ /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