[vlc-devel] commit: Win32: separate Windows code correctly. (Jean-Baptiste Kempf )

git version control git at videolan.org
Mon Sep 7 00:26:39 CEST 2009


vlc | branch: master | Jean-Baptiste Kempf <jb at videolan.org> | Mon Sep  7 00:23:19 2009 +0200| [1484938bf887317465d6257d7b6fbad7779c9846] | committer: Jean-Baptiste Kempf 

Win32: separate Windows code correctly.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1484938bf887317465d6257d7b6fbad7779c9846
---

 modules/gui/qt4/main_interface.cpp |  169 +++++++++++++++++++-----------------
 modules/gui/qt4/main_interface.hpp |    1 +
 2 files changed, 89 insertions(+), 81 deletions(-)

diff --git a/modules/gui/qt4/main_interface.cpp b/modules/gui/qt4/main_interface.cpp
index 156a881..ef13e61 100644
--- a/modules/gui/qt4/main_interface.cpp
+++ b/modules/gui/qt4/main_interface.cpp
@@ -288,88 +288,8 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
     resize( sizeHint() );
 
 #ifdef WIN32
-    /*Here is the code for the taskbar thumb buttons
-    FIXME:We need pretty buttons in 16x16 px that are handled correctly by masks in Qt
-    FIXME:the play button's picture doesn't changed to pause when clicked
-    */
-    OSVERSIONINFO winVer;
-    winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-    if( GetVersionEx(&winVer) && winVer.dwMajorVersion > 5 && winVer.dwMajorVersion > 0 )
-    {
-        if(himl = ImageList_Create( 15, //cx
-                                    18, //cy
-                                    ILC_COLOR,//flags
-                                    4,//initial nb of images
-                                    0//nb of images that can be added
-                                    ))
-        {
-            QPixmap img   = QPixmap(":/toolbar/previous_b");
-            QPixmap img2  = QPixmap(":/toolbar/pause_b");
-            QPixmap img3  = QPixmap(":/toolbar/play_b");
-            QPixmap img4  = QPixmap(":/toolbar/next_b");
-            QBitmap mask  = img.createMaskFromColor(Qt::transparent);
-            QBitmap mask2 = img2.createMaskFromColor(Qt::transparent);
-            QBitmap mask3 = img3.createMaskFromColor(Qt::transparent);
-            QBitmap mask4 = img4.createMaskFromColor(Qt::transparent);
-
-            if(-1 == ImageList_Add(himl, img.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask.toWinHBITMAP()))
-                msg_Err( p_intf, "ImageList_Add failed" );
-            if(-1 == ImageList_Add(himl, img2.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask2.toWinHBITMAP()))
-                msg_Err( p_intf, "ImageList_Add failed" );
-            if(-1 == ImageList_Add(himl, img3.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask3.toWinHBITMAP()))
-                msg_Err( p_intf, "ImageList_Add failed" );
-            if(-1 == ImageList_Add(himl, img4.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask4.toWinHBITMAP()))
-                msg_Err( p_intf, "ImageList_Add failed" );
-        }
-
-        CoInitialize( 0 );
-
-        if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
-                    NULL, CLSCTX_INPROC_SERVER,
-                    &IID_ITaskbarList3,
-                    (void **)&p_taskbl) )
-        {
-            p_taskbl->vt->HrInit(p_taskbl);
-
-            int msg_value = RegisterWindowMessage("TaskbarButtonCreated");
-            //msg_Info( p_intf, "msg value: %04x", msg_value );
-
-            // Define an array of two buttons. These buttons provide images through an 
-            // image list and also provide tooltips.
-            DWORD dwMask = THB_BITMAP | THB_FLAGS;
-
-            THUMBBUTTON thbButtons[2];
-            thbButtons[0].dwMask = dwMask;
-            thbButtons[0].iId = 0;
-            thbButtons[0].iBitmap = 0;
-            thbButtons[0].dwFlags = THBF_HIDDEN;
-
-            thbButtons[1].dwMask = dwMask;
-            thbButtons[1].iId = 1;
-            thbButtons[1].iBitmap = 2;
-            thbButtons[1].dwFlags = THBF_HIDDEN;
-
-            thbButtons[2].dwMask = dwMask;
-            thbButtons[2].iId = 2;
-            thbButtons[2].iBitmap = 3;
-            thbButtons[2].dwFlags = THBF_HIDDEN;
-
-            HRESULT hr = p_taskbl->vt->ThumbBarSetImageList(p_taskbl, GetForegroundWindow(), himl );
-            if(S_OK != hr)
-                msg_Err( p_intf, "ThumbBarSetImageList failed with error %08x", hr );
-            if(S_OK != p_taskbl->vt->ThumbBarAddButtons(p_taskbl, GetForegroundWindow(), 3, thbButtons))
-                msg_Err( p_intf, "ThumbBarAddButtons failed with error %08x", GetLastError() );
-
-            CONNECT( THEMIM->getIM(), statusChanged( int ), this, changeThumbbarButtons( int ) );
-        }
-    }
-    else
-    {
-        himl = NULL;
-        p_taskbl = NULL;
-    }
+    createTaskBarButtons();
 #endif
-
 }
 
 MainInterface::~MainInterface()
@@ -557,6 +477,93 @@ inline void MainInterface::createStatusBar()
              this, showCryptedLabel( bool ) );
 }
 
+#ifdef WIN32
+void MainInterface::createTaskBarButtons()
+{
+    /*Here is the code for the taskbar thumb buttons
+    FIXME:We need pretty buttons in 16x16 px that are handled correctly by masks in Qt
+    FIXME:the play button's picture doesn't changed to pause when clicked
+    */
+    OSVERSIONINFO winVer;
+    winVer.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+    if( GetVersionEx(&winVer) && winVer.dwMajorVersion > 5 && winVer.dwMajorVersion > 0 )
+    {
+        if(himl = ImageList_Create( 15, //cx
+                                    18, //cy
+                                    ILC_COLOR,//flags
+                                    4,//initial nb of images
+                                    0//nb of images that can be added
+                                    ))
+        {
+            QPixmap img   = QPixmap(":/toolbar/previous_b");
+            QPixmap img2  = QPixmap(":/toolbar/pause_b");
+            QPixmap img3  = QPixmap(":/toolbar/play_b");
+            QPixmap img4  = QPixmap(":/toolbar/next_b");
+            QBitmap mask  = img.createMaskFromColor(Qt::transparent);
+            QBitmap mask2 = img2.createMaskFromColor(Qt::transparent);
+            QBitmap mask3 = img3.createMaskFromColor(Qt::transparent);
+            QBitmap mask4 = img4.createMaskFromColor(Qt::transparent);
+
+            if(-1 == ImageList_Add(himl, img.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask.toWinHBITMAP()))
+                msg_Err( p_intf, "ImageList_Add failed" );
+            if(-1 == ImageList_Add(himl, img2.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask2.toWinHBITMAP()))
+                msg_Err( p_intf, "ImageList_Add failed" );
+            if(-1 == ImageList_Add(himl, img3.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask3.toWinHBITMAP()))
+                msg_Err( p_intf, "ImageList_Add failed" );
+            if(-1 == ImageList_Add(himl, img4.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask4.toWinHBITMAP()))
+                msg_Err( p_intf, "ImageList_Add failed" );
+        }
+
+        CoInitialize( 0 );
+
+        if( S_OK == CoCreateInstance( &clsid_ITaskbarList,
+                    NULL, CLSCTX_INPROC_SERVER,
+                    &IID_ITaskbarList3,
+                    (void **)&p_taskbl) )
+        {
+            p_taskbl->vt->HrInit(p_taskbl);
+
+            int msg_value = RegisterWindowMessage("TaskbarButtonCreated");
+            //msg_Info( p_intf, "msg value: %04x", msg_value );
+
+            // Define an array of two buttons. These buttons provide images through an
+            // image list and also provide tooltips.
+            DWORD dwMask = THB_BITMAP | THB_FLAGS;
+
+            THUMBBUTTON thbButtons[2];
+            thbButtons[0].dwMask = dwMask;
+            thbButtons[0].iId = 0;
+            thbButtons[0].iBitmap = 0;
+            thbButtons[0].dwFlags = THBF_HIDDEN;
+
+            thbButtons[1].dwMask = dwMask;
+            thbButtons[1].iId = 1;
+            thbButtons[1].iBitmap = 2;
+            thbButtons[1].dwFlags = THBF_HIDDEN;
+
+            thbButtons[2].dwMask = dwMask;
+            thbButtons[2].iId = 2;
+            thbButtons[2].iBitmap = 3;
+            thbButtons[2].dwFlags = THBF_HIDDEN;
+
+            HRESULT hr = p_taskbl->vt->ThumbBarSetImageList(p_taskbl, GetForegroundWindow(), himl );
+            if(S_OK != hr)
+                msg_Err( p_intf, "ThumbBarSetImageList failed with error %08x", hr );
+            if(S_OK != p_taskbl->vt->ThumbBarAddButtons(p_taskbl, GetForegroundWindow(), 3, thbButtons))
+                msg_Err( p_intf, "ThumbBarAddButtons failed with error %08x", GetLastError() );
+
+            CONNECT( THEMIM->getIM(), statusChanged( int ), this, changeThumbbarButtons( int ) );
+        }
+    }
+    else
+    {
+        himl = NULL;
+        p_taskbl = NULL;
+    }
+}
+#endif
+
+
 inline void MainInterface::initSystray()
 {
     bool b_systrayAvailable = QSystemTrayIcon::isSystemTrayAvailable();
diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp
index e2458c9..9520ccc 100644
--- a/modules/gui/qt4/main_interface.hpp
+++ b/modules/gui/qt4/main_interface.hpp
@@ -153,6 +153,7 @@ private:
 #ifdef WIN32
     HIMAGELIST himl;
     LPTASKBARLIST3 p_taskbl;
+    void createTaskBarButtons();
 #endif
 
 public slots:




More information about the vlc-devel mailing list