Index: Copy Handler/MiniViewDlg.cpp =================================================================== diff -u -N --- Copy Handler/MiniViewDlg.cpp (revision 3e1186252ab31f63d86d86c4b0ff593cfffbefde) +++ Copy Handler/MiniViewDlg.cpp (revision 0) @@ -1,800 +0,0 @@ -/************************************************************************ - Copy Handler 1.x - program for copying data in Microsoft Windows - systems. - Copyright (C) 2001-2004 Ixen Gerthannes (copyhandler@o2.pl) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*************************************************************************/ - -#include "stdafx.h" -#include "MiniViewDlg.h" -#include "Copy Handler.h" - -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif - -#define WM_INITDATA WM_USER+5 - -static const int sg_iMargin=7; - -#define ROUND(val) ( ( (val)-static_cast(val) > 0.5 ) ? static_cast(val)+1 : static_cast(val) ) -#undef ROUNDUP // from other module -#define ROUNDUP(val, to) ( (static_cast((val)/(to))+1 )*(to) ) - -bool CMiniViewDlg::m_bLock=false; - -///////////////////////////////////////////////////////////////////////////// -// CMiniViewDlg dialog - -CMiniViewDlg::CMiniViewDlg(CTaskArray* pArray, bool *pbHide, CWnd* pParent /*=NULL*/) - : CHLanguageDialog(CMiniViewDlg::IDD, pParent, &m_bLock) -{ - //{{AFX_DATA_INIT(CMiniViewDlg) - // NOTE: the ClassWizard will add member initialization here - //}}AFX_DATA_INIT - - m_brBackground.CreateSolidBrush(GetSysColor(COLOR_3DFACE)); - m_iLastHeight=0; - m_bShown=false; - m_pTasks=pArray; - m_bActive=false; - m_iIndex=-1; - m_pbHide=pbHide; -} - - -void CMiniViewDlg::DoDataExchange(CDataExchange* pDX) -{ - CHLanguageDialog::DoDataExchange(pDX); - //{{AFX_DATA_MAP(CMiniViewDlg) - DDX_Control(pDX, IDC_PROGRESS_LIST, m_ctlStatus); - //}}AFX_DATA_MAP -} - -BEGIN_MESSAGE_MAP(CMiniViewDlg, CHLanguageDialog) - //{{AFX_MSG_MAP(CMiniViewDlg) - ON_WM_CTLCOLOR() - ON_WM_TIMER() - ON_LBN_SELCHANGE(IDC_PROGRESS_LIST, OnSelchangeProgressList) - ON_WM_NCLBUTTONDOWN() - ON_WM_LBUTTONUP() - ON_WM_NCPAINT() - ON_WM_NCACTIVATE() - ON_LBN_SETFOCUS(IDC_PROGRESS_LIST, OnSetfocusProgressList) - ON_LBN_SELCANCEL(IDC_PROGRESS_LIST, OnSelcancelProgressList) - ON_WM_MOUSEMOVE() - ON_WM_SETTINGCHANGE() - ON_LBN_DBLCLK(IDC_PROGRESS_LIST, OnDblclkProgressList) - //}}AFX_MSG_MAP -END_MESSAGE_MAP() - -///////////////////////////////////////////////////////////////////////////// -// CMiniViewDlg message handlers - -HBRUSH CMiniViewDlg::OnCtlColor(CDC*, CWnd*, UINT) -{ - return m_brBackground; -} - -BOOL CMiniViewDlg::OnInitDialog() -{ - CHLanguageDialog::OnInitDialog(); - - // fill the buttons' structure - m_bdButtons[0].pfnCallbackFunc=&OnPause; - m_bdButtons[0].iPosition=4; - m_bdButtons[0].bPressed=false; - m_bdButtons[0].bEnabled=false; - m_bdButtons[1].pfnCallbackFunc=&OnResume; - m_bdButtons[1].iPosition=3; - m_bdButtons[1].bPressed=false; - m_bdButtons[1].bEnabled=false; - m_bdButtons[2].pfnCallbackFunc=&OnCancelBtn; - m_bdButtons[2].iPosition=2; - m_bdButtons[2].bPressed=false; - m_bdButtons[2].bEnabled=false; - m_bdButtons[3].pfnCallbackFunc=&OnRestartBtn; - m_bdButtons[3].iPosition=1; - m_bdButtons[3].bPressed=false; - m_bdButtons[3].bEnabled=false; - m_bdButtons[4].pfnCallbackFunc=&OnCloseBtn; - m_bdButtons[4].iPosition=0; - m_bdButtons[4].bPressed=false; - m_bdButtons[4].bEnabled=true; - - ResizeDialog(); - PostMessage(WM_INITDATA); - - return TRUE; -} - -void CMiniViewDlg::OnTimer(UINT nIDEvent) -{ - if (nIDEvent == 9843) - { - KillTimer(9843); - - RefreshStatus(); - - SetTimer(9843, GetConfig()->GetIntValue(PP_MVREFRESHINTERVAL), NULL); - } - - CHLanguageDialog::OnTimer(nIDEvent); -} - -void CMiniViewDlg::RecalcSize(int nHeight, bool bInitial) -{ - // set listbox size - CRect rcList; - m_ctlStatus.GetClientRect(&rcList); - - if (nHeight == 0) - nHeight=rcList.Height(); - - // don't do anything if height doesn't changed - if (nHeight == m_iLastHeight && !bInitial) - return; - - // remember height - m_iLastHeight = nHeight; - - // size of a dialog and screen - CRect rCLanguageDialog, rcScreen; - GetWindowRect(&rCLanguageDialog); - SystemParametersInfo(SPI_GETWORKAREA, 0, &rcScreen, 0); - - // place listbox in the best place - m_ctlStatus.SetWindowPos(NULL, sg_iMargin, 0/*sg_iMargin*/, 0, 0, SWP_NOZORDER | SWP_NOSIZE); - - int iWidth=rcList.Width()+2*sg_iMargin+2*GetSystemMetrics(SM_CXDLGFRAME); - int iHeight=rcList.Height()+1*sg_iMargin+2*GetSystemMetrics(SM_CYDLGFRAME)+GetSystemMetrics(SM_CYSMCAPTION); - - if (bInitial || (rCLanguageDialog.left == rcScreen.right-rCLanguageDialog.Width() - && rCLanguageDialog.top == rcScreen.bottom-rCLanguageDialog.Height()) ) - { - SetWindowPos(&wndTopMost, rcScreen.right-iWidth, rcScreen.bottom-iHeight, iWidth, iHeight, - 0); - } - else - SetWindowPos(&wndTopMost, 0, 0, iWidth, iHeight, SWP_NOMOVE); -} - -void CMiniViewDlg::RefreshStatus() -{ - int index=0; - _PROGRESSITEM_* pItem=NULL; - - if (GetConfig()->GetBoolValue(PP_MVSHOWSINGLETASKS)) - { - for (int i=0;iGetSize();i++) - { - CTask* pTask=m_pTasks->GetAt(i); - pTask->GetMiniSnapshot(&dd); - - if ((dd.m_uiStatus & ST_STEP_MASK) != ST_FINISHED && (dd.m_uiStatus & ST_STEP_MASK) != ST_CANCELLED) - { - pItem=m_ctlStatus.GetItemAddress(index++); - - // load - if ((dd.m_uiStatus & ST_WORKING_MASK) == ST_ERROR) - pItem->m_crColor=RGB(255, 0, 0); - else if ((dd.m_uiStatus & ST_WORKING_MASK) == ST_PAUSED) - pItem->m_crColor=RGB(255, 255, 0); - else if ((dd.m_uiStatus & ST_WAITING_MASK) == ST_WAITING) - pItem->m_crColor=RGB(50, 50, 50); - else - pItem->m_crColor=RGB(0, 255, 0); - - pItem->m_strText=dd.m_fi.GetFileName(); - pItem->m_uiPos=dd.m_nPercent; - pItem->m_pTask=pTask; - } - } - } - - // should we show ? - bool bInitial=false; - if (index == 0) - { - if (m_bShown) - { - if (GetConfig()->GetBoolValue(PP_MVAUTOHIDEWHENEMPTY) || *m_pbHide) - HideWindow(); - } - else if (!GetConfig()->GetBoolValue(PP_MVAUTOHIDEWHENEMPTY) && !(*m_pbHide)) - { - // need to be visible - ShowWindow(); - bInitial=true; - } - } - else - { - if (!m_bShown) - { - if (!(*m_pbHide)) - { - ShowWindow(); - bInitial=true; - } - } - else - { - if (*m_pbHide) - HideWindow(); - } - } - - // add all state - pItem=m_ctlStatus.GetItemAddress(index++); - pItem->m_crColor=GetSysColor(COLOR_HIGHLIGHT); - pItem->m_strText=GetResManager()->LoadString(IDS_MINIVIEWALL_STRING); - pItem->m_uiPos=m_pTasks->GetPercent(); - pItem->m_pTask=NULL; - - // get rid of the rest - m_ctlStatus.SetSmoothProgress(GetConfig()->GetBoolValue(PP_MVUSESMOOTHPROGRESS)); - m_ctlStatus.UpdateItems(index, true); - - m_ctlStatus.SetShowCaptions(GetConfig()->GetBoolValue(PP_MVSHOWFILENAMES)); - - // calc size - RecalcSize(0, bInitial); -} - -LRESULT CMiniViewDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) -{ - if (message == WM_INITDATA) - { - // listbox with progress pseudocontrols - m_ctlStatus.Init(); - - // refresh - RefreshStatus(); - - // set refresh timer - SetTimer(9843, GetConfig()->GetIntValue(PP_MVREFRESHINTERVAL), NULL); - - return static_cast(0); - } - - return CHLanguageDialog::WindowProc(message, wParam, lParam); -} - -void CMiniViewDlg::OnNcPaint() -{ - int iCXBorder=GetSystemMetrics(SM_CXBORDER); - int iCYBorder=GetSystemMetrics(SM_CYBORDER); - int iWidth=GetSystemMetrics(SM_CXSMSIZE); - int iHeight=GetSystemMetrics(SM_CYSMSIZE); - int iFrameHeight=GetSystemMetrics(SM_CYDLGFRAME); - int iFrameWidth=GetSystemMetrics(SM_CXDLGFRAME); - bool bEnabled=(m_ctlStatus.GetCurSel() != LB_ERR); - - // NC coordinates - CRect rcWindow; - GetWindowRect(&rcWindow); - rcWindow.OffsetRect(-rcWindow.left, -rcWindow.top); - - // device context - CWindowDC ncdc(this); - - // frame - ncdc.DrawEdge(&rcWindow, EDGE_RAISED, BF_RECT); - rcWindow.DeflateRect(iFrameWidth-iCXBorder, iFrameHeight-iCYBorder, iFrameWidth-iCXBorder, iFrameHeight-iCYBorder); - - CPen pen, pen2; - pen.CreatePen(PS_SOLID, iCXBorder, GetSysColor(COLOR_3DFACE)); - pen2.CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DFACE)); - - ncdc.SelectObject(&pen); - ncdc.SelectStockObject(NULL_BRUSH); - - ncdc.Rectangle(&rcWindow); - - // caption bar - rcWindow.DeflateRect(iCXBorder, iCXBorder, iCXBorder, 0); - rcWindow.bottom=rcWindow.top+iHeight; // caption pos - - // additional horz bar - ncdc.SelectObject(&pen2); - ncdc.MoveTo(rcWindow.left, rcWindow.bottom); - ncdc.LineTo(rcWindow.right, rcWindow.bottom); - - // memdc - CMemDC dc(&ncdc, &rcWindow); - - COLORREF crLeft=GetSysColor(m_bActive ? COLOR_ACTIVECAPTION : COLOR_INACTIVECAPTION); - dc.FillSolidRect(&rcWindow, crLeft); - - // caption text - CString strWindow; - GetWindowText(strWindow); -// TRACE("DRAWING TEXT: "+strWindow+"\n"); - - rcWindow.DeflateRect(5, 0, BTN_COUNT*iWidth+iFrameWidth+5, 0); - - // caption font - NONCLIENTMETRICS ncm; - ncm.cbSize=sizeof(NONCLIENTMETRICS); - SystemParametersInfo(SPI_GETNONCLIENTMETRICS, ncm.cbSize, &ncm, 0); - - CFont font; - font.CreateFontIndirect(&ncm.lfSmCaptionFont); - dc.SelectObject(&font); - - dc.SetTextColor(GetSysColor(COLOR_CAPTIONTEXT)); - dc.SetBkMode(TRANSPARENT); - dc.DrawText(strWindow, &rcWindow, DT_END_ELLIPSIS | DT_VCENTER | DT_LEFT | DT_NOCLIP | DT_SINGLELINE); - // button drawing - GetClientRect(&rcWindow); - - for (int i=0;ircButton; - rcCopy.DeflateRect(2,2,2,2); - - // frame drawing - if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); - else - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); - - // fill the background - rcCopy.DeflateRect(1, 1, 1, 1); - pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); - - // pause - CPen pen; - int iPenWidth=rcCopy.Width()/10+1; - pen.CreatePen(PS_SOLID, iPenWidth, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); - CPen* pOld=pDC->SelectObject(&pen); - - int iOffset=rcCopy.Width()/3; - pDC->MoveTo(rcCopy.left+iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.top+1*iPenWidth+pData->bPressed); - pDC->LineTo(rcCopy.left+iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.bottom-ROUND(1.5*iPenWidth)+pData->bPressed); - pDC->MoveTo(rcCopy.right-iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.top+1*iPenWidth+pData->bPressed); - pDC->LineTo(rcCopy.right-iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.bottom-ROUND(1.5*iPenWidth)+pData->bPressed); - - pDC->SelectObject(pOld); - break; - } - case MSG_ONCLICK: - int iSel=pDlg->m_ctlStatus.GetCurSel(); - if (iSel == LB_ERR) - return; - CTask* pTask; - if ( (pTask=pDlg->m_ctlStatus.m_items.GetAt(iSel)->m_pTask) != NULL) - pTask->PauseProcessing(); - else - pDlg->m_pTasks->TasksPauseProcessing(); - - break; - } -} - -void OnCloseBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) -{ - switch (uiMsg) - { - case MSG_DRAWBUTTON: - { - CRect rcCopy=pData->rcButton; - rcCopy.DeflateRect(2,2,2,2); - - // frame - if (!pData->bPressed) - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); - else - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); - - // background - rcCopy.DeflateRect(1, 1, 1, 1); - pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); - - // close - CPen pen; - int iPenSize=rcCopy.Width()/10+1; - pen.CreatePen(PS_SOLID | PS_INSIDEFRAME, iPenSize, GetSysColor(COLOR_BTNTEXT)); - CPen* pOld=pDC->SelectObject(&pen); - - switch (iPenSize) - { - case 1: - pDC->MoveTo(rcCopy.left+pData->bPressed+ROUND(1.4*iPenSize), rcCopy.top+pData->bPressed+ROUND(1.4*iPenSize)); - pDC->LineTo(rcCopy.right+pData->bPressed-ROUND(1.4*iPenSize), rcCopy.bottom+pData->bPressed-ROUND(1.6*iPenSize)); - pDC->MoveTo(rcCopy.left+pData->bPressed+ROUND(1.4*iPenSize), rcCopy.bottom+pData->bPressed-ROUND(2.6*iPenSize)); - pDC->LineTo(rcCopy.right+pData->bPressed-ROUND(1.4*iPenSize), rcCopy.top+pData->bPressed+ROUND(0.4*iPenSize)); - break; - default: - pDC->MoveTo(rcCopy.left+pData->bPressed+ROUND(1.4*iPenSize), rcCopy.top+pData->bPressed+ROUND(1.4*iPenSize)); - pDC->LineTo(rcCopy.right+pData->bPressed-ROUND(2.0*iPenSize), rcCopy.bottom+pData->bPressed-ROUND(2.0*iPenSize)); - pDC->MoveTo(rcCopy.left+pData->bPressed+ROUND(1.4*iPenSize), rcCopy.bottom+pData->bPressed-ROUND(2.0*iPenSize)); - pDC->LineTo(rcCopy.right+pData->bPressed-ROUND(2.0*iPenSize), rcCopy.top+pData->bPressed+ROUND(1.4*iPenSize)); - break; - } - - pDC->SelectObject(pOld); - break; - } - case MSG_ONCLICK: - pDlg->SendMessage(WM_CLOSE, 0, 0); - break; - } -} - -void OnResume(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) -{ - switch (uiMsg) - { - case MSG_DRAWBUTTON: - { - CRect rcCopy=pData->rcButton; - rcCopy.DeflateRect(2,2,2,2); - - // frame - if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); - else - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); - - // bkgnd - rcCopy.DeflateRect(1, 1, 1, 1); - pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); - - // triangle - int iOffset=rcCopy.Width()/4; - int iHeight=rcCopy.Width()/10+1; - POINT pt[3]={ {rcCopy.left+iOffset-1+pData->bPressed, rcCopy.top+1*iHeight+pData->bPressed}, {rcCopy.left+iOffset-1+pData->bPressed, rcCopy.bottom-ROUND(1.625*iHeight)+pData->bPressed}, - {rcCopy.right-iOffset-1+pData->bPressed, rcCopy.top+1*iHeight+pData->bPressed+(rcCopy.Height()-3*iHeight+1)/2} }; - - CBrush brs; - brs.CreateSolidBrush(pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); - CBrush* pOld=pDC->SelectObject(&brs); - - CPen pen; - pen.CreatePen(PS_SOLID, 1, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); - CPen *pOldPen=pDC->SelectObject(&pen); - pDC->SetPolyFillMode(WINDING); - - pDC->Polygon(pt, 3); - - pDC->SelectObject(pOld); - pDC->SelectObject(pOldPen); - - break; - } - case MSG_ONCLICK: - int iSel=pDlg->m_ctlStatus.GetCurSel(); - if (iSel == LB_ERR) - return; - CTask* pTask; - if ( (pTask=pDlg->m_ctlStatus.m_items.GetAt(iSel)->m_pTask) != NULL) - { - if (pTask->GetStatus(ST_WAITING_MASK) & ST_WAITING) - pTask->SetForceFlag(true); - else - pTask->ResumeProcessing(); - } - else - pDlg->m_pTasks->TasksResumeProcessing(); - break; - } -} - -void OnCancelBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) -{ - switch (uiMsg) - { - case MSG_DRAWBUTTON: - { - CRect rcCopy=pData->rcButton; - rcCopy.DeflateRect(2,2,2,2); - - // frame - if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); - else - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); - - // bkgnd - rcCopy.DeflateRect(1, 1, 1, 1); - pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); - - // square - int iWidth=rcCopy.Width()/10+1; - rcCopy.DeflateRect(1*iWidth+pData->bPressed, 1*iWidth+pData->bPressed, ROUND(1.6*iWidth)-pData->bPressed, 1*iWidth-pData->bPressed); - pDC->FillSolidRect(&rcCopy, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); - break; - } - case MSG_ONCLICK: - int iSel=pDlg->m_ctlStatus.GetCurSel(); - if (iSel == LB_ERR) - return; - CTask* pTask; - if ( (pTask=pDlg->m_ctlStatus.m_items.GetAt(iSel)->m_pTask) != NULL) - pTask->CancelProcessing(); - else - pDlg->m_pTasks->TasksCancelProcessing(); - break; - } -} - -void OnRestartBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) -{ - switch (uiMsg) - { - case MSG_DRAWBUTTON: - { - CRect rcCopy=pData->rcButton; - rcCopy.DeflateRect(2,2,2,2); - - // frame - if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); - else - pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); - - // bkgnd - rcCopy.DeflateRect(1, 1, 1, 1); - pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); - - // triangle in a square - int iOffset=rcCopy.Width()/4; - int iHeight=rcCopy.Width()/10+1; - POINT pt[3]={ {rcCopy.left+iOffset-1+pData->bPressed, rcCopy.top+1*iHeight+pData->bPressed}, {rcCopy.left+iOffset-1+pData->bPressed, rcCopy.bottom-ROUND(1.625*iHeight)+pData->bPressed}, - {rcCopy.right-iOffset-1+pData->bPressed, rcCopy.top+1*iHeight+pData->bPressed+(rcCopy.Height()-3*iHeight+1)/2} }; - - CBrush brs; - brs.CreateSolidBrush(pData->bEnabled ? RGB(255, 0, 0) : GetSysColor(COLOR_BTNSHADOW)); - CBrush* pOld=pDC->SelectObject(&brs); - - CPen pen; - pen.CreatePen(PS_SOLID, 1, pData->bEnabled ? RGB(255, 0, 0) : GetSysColor(COLOR_BTNSHADOW)); - CPen *pOldPen=pDC->SelectObject(&pen); - - pDC->SetPolyFillMode(WINDING); - pDC->Polygon(pt, 3); - pDC->SelectObject(pOld); - pDC->SelectObject(pOldPen); - - break; - } - case MSG_ONCLICK: - int iSel=pDlg->m_ctlStatus.GetCurSel(); - if (iSel == LB_ERR) - return; - CTask* pTask; - if ( (pTask=pDlg->m_ctlStatus.m_items.GetAt(iSel)->m_pTask) != NULL) - pTask->RestartProcessing(); - else - pDlg->m_pTasks->TasksRestartProcessing(); - break; - } -} - -void CMiniViewDlg::OnSelchangeProgressList() -{ - RefreshStatus(); - RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_FRAME); -// PostMessage(WM_NCPAINT); -} - -void CMiniViewDlg::OnNcLButtonDown(UINT nHitTest, CPoint point) -{ - bool bEnabled=false; - CRect rcBtn; - int iNCHeight=GetSystemMetrics(SM_CYSMCAPTION)+GetSystemMetrics(SM_CYDLGFRAME); - - // has been button pressed ? - for (int i=0;i(static_cast(((9+2)-2*iEdgeWidth))*(2.0/3.0))+1; - int iWidth=BTN_COUNT*(GetSystemMetrics(SM_CYSMCAPTION))+sSize.cx+2*GetSystemMetrics(SM_CXDLGFRAME)+18; - - // change pos of listbox - m_ctlStatus.SetWindowPos(NULL, 0, 0, ROUNDUP(iWidth-2*sg_iMargin, iBoxWidth)+2*iEdgeWidth, rcList.Height(), SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOMOVE); - - RecalcSize(0, true); -} - -void CMiniViewDlg::HideWindow() -{ - static_cast(this)->ShowWindow(SW_HIDE); - m_bShown=false; -} - -void CMiniViewDlg::ShowWindow() -{ - static_cast(this)->ShowWindow(SW_SHOW); - m_bShown=true; -} - -void CMiniViewDlg::OnDblclkProgressList() -{ - int iSel=m_ctlStatus.GetCurSel(); - if (iSel == LB_ERR) - return; - CTask* pTask; - pTask=m_ctlStatus.m_items.GetAt(iSel)->m_pTask; - - GetParent()->PostMessage(WM_MINIVIEWDBLCLK, 0, (LPARAM)pTask); -} - -void CMiniViewDlg::OnLanguageChanged(WORD /*wOld*/, WORD /*wNew*/) -{ - ResizeDialog(); -}