X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fmain_interface_win32.cpp;h=42a913558cc94186a51d5b38a4bf56c64fc97d59;hb=eb02de0bfb9cd91c6ede25ab208590beda1ac596;hp=d57730b0f1495efcd23a6b26505d1c0454321fe0;hpb=437c3166e9b077d6bcc01a1a90b8535d92e11fb9;p=vlc diff --git a/modules/gui/qt4/main_interface_win32.cpp b/modules/gui/qt4/main_interface_win32.cpp index d57730b0f1..42a913558c 100644 --- a/modules/gui/qt4/main_interface_win32.cpp +++ b/modules/gui/qt4/main_interface_win32.cpp @@ -1,5 +1,5 @@ /***************************************************************************** - * main_interface.cpp : Main interface + * main_interface_win32.cpp : Main interface **************************************************************************** * Copyright (C) 2006-2010 VideoLAN and AUTHORS * $Id$ @@ -26,10 +26,10 @@ #include "input_manager.hpp" #include "actions_manager.hpp" +#include "dialogs_provider.hpp" -#ifdef WIN32 - #include - #include +#include +#include #define WM_APPCOMMAND 0x0319 @@ -49,6 +49,8 @@ #define APPCOMMAND_MICROPHONE_VOLUME_MUTE 24 #define APPCOMMAND_MICROPHONE_VOLUME_DOWN 25 #define APPCOMMAND_MICROPHONE_VOLUME_UP 26 +#define APPCOMMAND_HELP 27 +#define APPCOMMAND_OPEN 30 #define APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 43 #define APPCOMMAND_MIC_ON_OFF_TOGGLE 44 #define APPCOMMAND_MEDIA_PLAY 46 @@ -72,20 +74,19 @@ void MainInterface::createTaskBarButtons() { - taskbar_wmsg = WM_NULL; /*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 */ - CoInitialize( 0 ); + CoInitializeEx( NULL, COINIT_MULTITHREADED ); - if( S_OK == CoCreateInstance( &clsid_ITaskbarList, + if( S_OK == CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, - &IID_ITaskbarList3, + IID_ITaskbarList3, (void **)&p_taskbl) ) { - p_taskbl->vt->HrInit(p_taskbl); + p_taskbl->HrInit(); if( (himl = ImageList_Create( 20, //cx 20, //cy @@ -104,18 +105,18 @@ void MainInterface::createTaskBarButtons() QBitmap mask4 = img4.createMaskFromColor(Qt::transparent); if(-1 == ImageList_Add(himl, img.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask.toWinHBITMAP())) - msg_Err( p_intf, "ImageList_Add failed" ); + msg_Err( p_intf, "First ImageList_Add failed" ); if(-1 == ImageList_Add(himl, img2.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask2.toWinHBITMAP())) - msg_Err( p_intf, "ImageList_Add failed" ); + msg_Err( p_intf, "Second ImageList_Add failed" ); if(-1 == ImageList_Add(himl, img3.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask3.toWinHBITMAP())) - msg_Err( p_intf, "ImageList_Add failed" ); + msg_Err( p_intf, "Third ImageList_Add failed" ); if(-1 == ImageList_Add(himl, img4.toWinHBITMAP(QPixmap::PremultipliedAlpha),mask4.toWinHBITMAP())) - msg_Err( p_intf, "ImageList_Add failed" ); + msg_Err( p_intf, "Fourth ImageList_Add failed" ); } // Define an array of two buttons. These buttons provide images through an // image list and also provide tooltips. - DWORD dwMask = THB_BITMAP | THB_FLAGS; + THUMBBUTTONMASK dwMask = THUMBBUTTONMASK(THB_BITMAP | THB_FLAGS); THUMBBUTTON thbButtons[3]; thbButtons[0].dwMask = dwMask; @@ -133,12 +134,12 @@ void MainInterface::createTaskBarButtons() thbButtons[2].iBitmap = 3; thbButtons[2].dwFlags = THBF_HIDDEN; - HRESULT hr = p_taskbl->vt->ThumbBarSetImageList(p_taskbl, winId(), himl ); + HRESULT hr = p_taskbl->ThumbBarSetImageList(winId(), himl ); if(S_OK != hr) msg_Err( p_intf, "ThumbBarSetImageList failed with error %08lx", hr ); else { - hr = p_taskbl->vt->ThumbBarAddButtons(p_taskbl, winId(), 3, thbButtons); + hr = p_taskbl->ThumbBarAddButtons(winId(), 3, thbButtons); if(S_OK != hr) msg_Err( p_intf, "ThumbBarAddButtons failed with error %08lx", hr ); } @@ -156,7 +157,7 @@ bool MainInterface::winEvent ( MSG * msg, long * result ) { if (msg->message == taskbar_wmsg) { - //We received the taskbarbuttoncreated, now we can really create th buttons + //We received the taskbarbuttoncreated, now we can really create the buttons createTaskBarButtons(); } @@ -227,6 +228,18 @@ bool MainInterface::winEvent ( MSG * msg, long * result ) case APPCOMMAND_VOLUME_MUTE: THEAM->toggleMuteAudio(); break; + case APPCOMMAND_MEDIA_FAST_FORWARD: + THEMIM->getIM()->faster(); + break; + case APPCOMMAND_MEDIA_REWIND: + THEMIM->getIM()->slower(); + break; + case APPCOMMAND_HELP: + THEDP->mediaInfoDialog(); + break; + case APPCOMMAND_OPEN: + THEDP->simpleOpenDialog(); + break; default: msg_Dbg( p_intf, "unknown APPCOMMAND = %d", cmd); *result = FALSE; @@ -237,15 +250,15 @@ bool MainInterface::winEvent ( MSG * msg, long * result ) } return false; } -#endif -//moc doesn't know about #ifdef, so we have to build this method for every platform -void MainInterface::changeThumbbarButtons( int i_status) +void MainInterface::changeThumbbarButtons( int i_status ) { -#ifdef WIN32 + if( p_taskbl == NULL ) + return; + // Define an array of three buttons. These buttons provide images through an // image list and also provide tooltips. - DWORD dwMask = THB_BITMAP | THB_FLAGS; + THUMBBUTTONMASK dwMask = THUMBBUTTONMASK(THB_BITMAP | THB_FLAGS); THUMBBUTTON thbButtons[3]; //prev @@ -286,10 +299,7 @@ void MainInterface::changeThumbbarButtons( int i_status) default: return; } - HRESULT hr = p_taskbl->vt->ThumbBarUpdateButtons(p_taskbl, this->winId(), 3, thbButtons); + HRESULT hr = p_taskbl->ThumbBarUpdateButtons(this->winId(), 3, thbButtons); if(S_OK != hr) msg_Err( p_intf, "ThumbBarUpdateButtons failed with error %08lx", hr ); -#endif } - -