| |
166 |
166 |
|
| |
167 |
167 |
if (bInitial || (rCLanguageDialog.left == rcScreen.right-rCLanguageDialog.Width() |
| |
168 |
168 |
&& rCLanguageDialog.top == rcScreen.bottom-rCLanguageDialog.Height()) ) |
| |
169 |
169 |
{ |
| |
170 |
170 |
SetWindowPos(&wndTopMost, rcScreen.right-iWidth, rcScreen.bottom-iHeight, iWidth, iHeight, |
| |
171 |
171 |
0); |
| |
172 |
172 |
} |
| |
173 |
173 |
else |
| |
174 |
174 |
SetWindowPos(&wndTopMost, 0, 0, iWidth, iHeight, SWP_NOMOVE); |
| |
175 |
175 |
} |
| |
176 |
176 |
|
| |
177 |
177 |
void CMiniViewDlg::RefreshStatus() |
| |
178 |
178 |
{ |
| |
179 |
179 |
int index=0; |
| |
180 |
180 |
_PROGRESSITEM_* pItem=NULL; |
| |
181 |
181 |
|
| |
182 |
182 |
if(GetConfig().get_bool(PP_MVSHOWSINGLETASKS)) |
| |
183 |
183 |
{ |
| |
184 |
184 |
for(size_t stIndex = 0; stIndex < m_pTasks->GetSize(); ++stIndex) |
| |
185 |
185 |
{ |
| |
186 |
|
CTask* pTask=m_pTasks->GetAt(stIndex); |
| |
187 |
|
pTask->GetMiniSnapshot(&dd); |
| |
|
186 |
CTaskPtr spTask = m_pTasks->GetAt(stIndex); |
| |
|
187 |
spTask->GetMiniSnapshot(&dd); |
| |
188 |
188 |
|
| |
189 |
189 |
if((dd.m_uiStatus & ST_STEP_MASK) != ST_FINISHED && (dd.m_uiStatus & ST_STEP_MASK) != ST_CANCELLED) |
| |
190 |
190 |
{ |
| |
191 |
191 |
pItem = m_ctlStatus.GetItemAddress(index++); |
| |
192 |
192 |
|
| |
193 |
193 |
|
| |
194 |
194 |
if ((dd.m_uiStatus & ST_WORKING_MASK) == ST_ERROR) |
| |
195 |
195 |
pItem->m_crColor=RGB(255, 0, 0); |
| |
196 |
196 |
else if ((dd.m_uiStatus & ST_WORKING_MASK) == ST_PAUSED) |
| |
197 |
197 |
pItem->m_crColor=RGB(255, 255, 0); |
| |
198 |
198 |
else if ((dd.m_uiStatus & ST_WAITING_MASK) == ST_WAITING) |
| |
199 |
199 |
pItem->m_crColor=RGB(50, 50, 50); |
| |
200 |
200 |
else |
| |
201 |
201 |
pItem->m_crColor=RGB(0, 255, 0); |
| |
202 |
202 |
|
| |
203 |
203 |
pItem->m_strText=dd.m_fi.GetFileName(); |
| |
204 |
204 |
pItem->m_uiPos=dd.m_nPercent; |
| |
205 |
|
pItem->m_pTask=pTask; |
| |
|
205 |
pItem->m_spTask = spTask; |
| |
206 |
206 |
} |
| |
207 |
207 |
} |
| |
208 |
208 |
} |
| |
209 |
209 |
|
| |
210 |
210 |
|
| |
211 |
211 |
bool bInitial=false; |
| |
212 |
212 |
if (index == 0) |
| |
213 |
213 |
{ |
| |
214 |
214 |
if (m_bShown) |
| |
215 |
215 |
{ |
| |
216 |
216 |
if (GetConfig().get_bool(PP_MVAUTOHIDEWHENEMPTY) || *m_pbHide) |
| |
217 |
217 |
HideWindow(); |
| |
218 |
218 |
} |
| |
219 |
219 |
else if (!GetConfig().get_bool(PP_MVAUTOHIDEWHENEMPTY) && !(*m_pbHide)) |
| |
220 |
220 |
{ |
| |
221 |
221 |
|
| |
222 |
222 |
ShowWindow(); |
| |
223 |
223 |
bInitial=true; |
| |
224 |
224 |
} |
| |
225 |
225 |
} |
|
| |
228 |
228 |
if (!m_bShown) |
| |
229 |
229 |
{ |
| |
230 |
230 |
if (!(*m_pbHide)) |
| |
231 |
231 |
{ |
| |
232 |
232 |
ShowWindow(); |
| |
233 |
233 |
bInitial=true; |
| |
234 |
234 |
} |
| |
235 |
235 |
} |
| |
236 |
236 |
else |
| |
237 |
237 |
{ |
| |
238 |
238 |
if (*m_pbHide) |
| |
239 |
239 |
HideWindow(); |
| |
240 |
240 |
} |
| |
241 |
241 |
} |
| |
242 |
242 |
|
| |
243 |
243 |
|
| |
244 |
244 |
pItem=m_ctlStatus.GetItemAddress(index++); |
| |
245 |
245 |
pItem->m_crColor=GetSysColor(COLOR_HIGHLIGHT); |
| |
246 |
246 |
pItem->m_strText=GetResManager().LoadString(IDS_MINIVIEWALL_STRING); |
| |
247 |
247 |
pItem->m_uiPos=m_pTasks->GetPercent(); |
| |
248 |
|
pItem->m_pTask=NULL; |
| |
|
248 |
pItem->m_spTask.reset(); |
| |
249 |
249 |
|
| |
250 |
250 |
|
| |
251 |
251 |
m_ctlStatus.SetSmoothProgress(GetConfig().get_bool(PP_MVUSESMOOTHPROGRESS)); |
| |
252 |
252 |
m_ctlStatus.UpdateItems(index, true); |
| |
253 |
253 |
|
| |
254 |
254 |
m_ctlStatus.SetShowCaptions(GetConfig().get_bool(PP_MVSHOWFILENAMES)); |
| |
255 |
255 |
|
| |
256 |
256 |
|
| |
257 |
257 |
RecalcSize(0, bInitial); |
| |
258 |
258 |
} |
| |
259 |
259 |
|
| |
260 |
260 |
LRESULT CMiniViewDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) |
| |
261 |
261 |
{ |
| |
262 |
262 |
if (message == WM_INITDATA) |
| |
263 |
263 |
{ |
| |
264 |
264 |
|
| |
265 |
265 |
m_ctlStatus.Init(); |
| |
266 |
266 |
|
| |
267 |
267 |
|
| |
268 |
268 |
RefreshStatus(); |
|
| |
389 |
389 |
CPen pen; |
| |
390 |
390 |
int iPenWidth=rcCopy.Width()/10+1; |
| |
391 |
391 |
pen.CreatePen(PS_SOLID, iPenWidth, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); |
| |
392 |
392 |
CPen* pOld=pDC->SelectObject(&pen); |
| |
393 |
393 |
|
| |
394 |
394 |
int iOffset=rcCopy.Width()/3; |
| |
395 |
395 |
pDC->MoveTo(rcCopy.left+iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.top+1*iPenWidth+pData->bPressed); |
| |
396 |
396 |
pDC->LineTo(rcCopy.left+iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.bottom-ROUND(1.5*iPenWidth)+pData->bPressed); |
| |
397 |
397 |
pDC->MoveTo(rcCopy.right-iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.top+1*iPenWidth+pData->bPressed); |
| |
398 |
398 |
pDC->LineTo(rcCopy.right-iOffset-ROUND(0.66*iPenWidth)+pData->bPressed, rcCopy.bottom-ROUND(1.5*iPenWidth)+pData->bPressed); |
| |
399 |
399 |
|
| |
400 |
400 |
pDC->SelectObject(pOld); |
| |
401 |
401 |
break; |
| |
402 |
402 |
} |
| |
403 |
403 |
case MSG_ONCLICK: |
| |
404 |
404 |
{ |
| |
405 |
405 |
int iSel=pDlg->m_ctlStatus.GetCurSel(); |
| |
406 |
406 |
if (iSel == LB_ERR || (size_t)iSel >= pDlg->m_ctlStatus.m_vItems.size()) |
| |
407 |
407 |
return; |
| |
408 |
408 |
|
| |
409 |
|
CTask* pTask; |
| |
410 |
|
if ( (pTask=pDlg->m_ctlStatus.m_vItems.at(iSel)->m_pTask) != NULL) |
| |
411 |
|
pTask->PauseProcessing(); |
| |
|
409 |
CTaskPtr spTask = pDlg->m_ctlStatus.m_vItems.at(iSel)->m_spTask; |
| |
|
410 |
if(spTask) |
| |
|
411 |
spTask->PauseProcessing(); |
| |
412 |
412 |
else |
| |
413 |
413 |
pDlg->m_pTasks->TasksPauseProcessing(); |
| |
414 |
414 |
|
| |
415 |
415 |
break; |
| |
416 |
416 |
} |
| |
417 |
417 |
} |
| |
418 |
418 |
} |
| |
419 |
419 |
|
| |
420 |
420 |
void OnCloseBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) |
| |
421 |
421 |
{ |
| |
422 |
422 |
switch (uiMsg) |
| |
423 |
423 |
{ |
| |
424 |
424 |
case MSG_DRAWBUTTON: |
| |
425 |
425 |
{ |
| |
426 |
426 |
CRect rcCopy=pData->rcButton; |
| |
427 |
427 |
rcCopy.DeflateRect(2,2,2,2); |
| |
428 |
428 |
|
| |
429 |
429 |
|
| |
430 |
430 |
if (!pData->bPressed) |
| |
431 |
431 |
pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); |
|
| |
496 |
496 |
brs.CreateSolidBrush(pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); |
| |
497 |
497 |
CBrush* pOld=pDC->SelectObject(&brs); |
| |
498 |
498 |
|
| |
499 |
499 |
CPen pen; |
| |
500 |
500 |
pen.CreatePen(PS_SOLID, 1, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); |
| |
501 |
501 |
CPen *pOldPen=pDC->SelectObject(&pen); |
| |
502 |
502 |
pDC->SetPolyFillMode(WINDING); |
| |
503 |
503 |
|
| |
504 |
504 |
pDC->Polygon(pt, 3); |
| |
505 |
505 |
|
| |
506 |
506 |
pDC->SelectObject(pOld); |
| |
507 |
507 |
pDC->SelectObject(pOldPen); |
| |
508 |
508 |
|
| |
509 |
509 |
break; |
| |
510 |
510 |
} |
| |
511 |
511 |
case MSG_ONCLICK: |
| |
512 |
512 |
{ |
| |
513 |
513 |
int iSel=pDlg->m_ctlStatus.GetCurSel(); |
| |
514 |
514 |
if (iSel == LB_ERR || (size_t)iSel >= pDlg->m_ctlStatus.m_vItems.size()) |
| |
515 |
515 |
return; |
| |
516 |
|
CTask* pTask; |
| |
517 |
|
if ( (pTask=pDlg->m_ctlStatus.m_vItems.at(iSel)->m_pTask) != NULL) |
| |
|
516 |
CTaskPtr spTask = pDlg->m_ctlStatus.m_vItems.at(iSel)->m_spTask; |
| |
|
517 |
if (spTask) |
| |
518 |
518 |
{ |
| |
519 |
|
if (pTask->GetStatus(ST_WAITING_MASK) & ST_WAITING) |
| |
520 |
|
pTask->SetForceFlag(true); |
| |
|
519 |
if(spTask->GetStatus(ST_WAITING_MASK) & ST_WAITING) |
| |
|
520 |
spTask->SetForceFlag(true); |
| |
521 |
521 |
else |
| |
522 |
|
pTask->ResumeProcessing(); |
| |
|
522 |
spTask->ResumeProcessing(); |
| |
523 |
523 |
} |
| |
524 |
524 |
else |
| |
525 |
525 |
pDlg->m_pTasks->TasksResumeProcessing(); |
| |
526 |
526 |
break; |
| |
527 |
527 |
} |
| |
528 |
528 |
} |
| |
529 |
529 |
} |
| |
530 |
530 |
|
| |
531 |
531 |
void OnCancelBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) |
| |
532 |
532 |
{ |
| |
533 |
533 |
switch (uiMsg) |
| |
534 |
534 |
{ |
| |
535 |
535 |
case MSG_DRAWBUTTON: |
| |
536 |
536 |
{ |
| |
537 |
537 |
CRect rcCopy=pData->rcButton; |
| |
538 |
538 |
rcCopy.DeflateRect(2,2,2,2); |
| |
539 |
539 |
|
| |
540 |
540 |
|
| |
541 |
541 |
if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) |
| |
542 |
542 |
pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); |
| |
543 |
543 |
else |
| |
544 |
544 |
pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); |
| |
545 |
545 |
|
| |
546 |
546 |
|
| |
547 |
547 |
rcCopy.DeflateRect(1, 1, 1, 1); |
| |
548 |
548 |
pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE)); |
| |
549 |
549 |
|
| |
550 |
550 |
|
| |
551 |
551 |
int iWidth=rcCopy.Width()/10+1; |
| |
552 |
552 |
rcCopy.DeflateRect(1*iWidth+pData->bPressed, 1*iWidth+pData->bPressed, ROUND(1.6*iWidth)-pData->bPressed, 1*iWidth-pData->bPressed); |
| |
553 |
553 |
pDC->FillSolidRect(&rcCopy, pData->bEnabled ? GetSysColor(COLOR_BTNTEXT) : GetSysColor(COLOR_BTNSHADOW)); |
| |
554 |
554 |
break; |
| |
555 |
555 |
} |
| |
556 |
556 |
case MSG_ONCLICK: |
| |
557 |
557 |
int iSel=pDlg->m_ctlStatus.GetCurSel(); |
| |
558 |
558 |
if (iSel == LB_ERR || (size_t)iSel >= pDlg->m_ctlStatus.m_vItems.size()) |
| |
559 |
559 |
return; |
| |
560 |
|
CTask* pTask; |
| |
561 |
|
if ( (pTask=pDlg->m_ctlStatus.m_vItems.at(iSel)->m_pTask) != NULL) |
| |
562 |
|
pTask->CancelProcessing(); |
| |
|
560 |
CTaskPtr spTask = pDlg->m_ctlStatus.m_vItems.at(iSel)->m_spTask; |
| |
|
561 |
if(spTask) |
| |
|
562 |
spTask->CancelProcessing(); |
| |
563 |
563 |
else |
| |
564 |
564 |
pDlg->m_pTasks->TasksCancelProcessing(); |
| |
565 |
565 |
break; |
| |
566 |
566 |
} |
| |
567 |
567 |
} |
| |
568 |
568 |
|
| |
569 |
569 |
void OnRestartBtn(CMiniViewDlg* pDlg, UINT uiMsg, CMiniViewDlg::_BTNDATA_* pData, CDC* pDC) |
| |
570 |
570 |
{ |
| |
571 |
571 |
switch (uiMsg) |
| |
572 |
572 |
{ |
| |
573 |
573 |
case MSG_DRAWBUTTON: |
| |
574 |
574 |
{ |
| |
575 |
575 |
CRect rcCopy=pData->rcButton; |
| |
576 |
576 |
rcCopy.DeflateRect(2,2,2,2); |
| |
577 |
577 |
|
| |
578 |
578 |
|
| |
579 |
579 |
if (!pData->bPressed || pDlg->m_ctlStatus.GetCurSel() == LB_ERR) |
| |
580 |
580 |
pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNHIGHLIGHT), GetSysColor(COLOR_BTNSHADOW)); |
| |
581 |
581 |
else |
| |
582 |
582 |
pDC->Draw3dRect(&rcCopy, GetSysColor(COLOR_BTNSHADOW), GetSysColor(COLOR_BTNHIGHLIGHT)); |
|
| |
594 |
594 |
CBrush brs; |
| |
595 |
595 |
brs.CreateSolidBrush(pData->bEnabled ? RGB(255, 0, 0) : GetSysColor(COLOR_BTNSHADOW)); |
| |
596 |
596 |
CBrush* pOld=pDC->SelectObject(&brs); |
| |
597 |
597 |
|
| |
598 |
598 |
CPen pen; |
| |
599 |
599 |
pen.CreatePen(PS_SOLID, 1, pData->bEnabled ? RGB(255, 0, 0) : GetSysColor(COLOR_BTNSHADOW)); |
| |
600 |
600 |
CPen *pOldPen=pDC->SelectObject(&pen); |
| |
601 |
601 |
|
| |
602 |
602 |
pDC->SetPolyFillMode(WINDING); |
| |
603 |
603 |
pDC->Polygon(pt, 3); |
| |
604 |
604 |
pDC->SelectObject(pOld); |
| |
605 |
605 |
pDC->SelectObject(pOldPen); |
| |
606 |
606 |
|
| |
607 |
607 |
break; |
| |
608 |
608 |
} |
| |
609 |
609 |
case MSG_ONCLICK: |
| |
610 |
610 |
{ |
| |
611 |
611 |
int iSel=pDlg->m_ctlStatus.GetCurSel(); |
| |
612 |
612 |
if (iSel == LB_ERR || (size_t)iSel >= pDlg->m_ctlStatus.m_vItems.size()) |
| |
613 |
613 |
return; |
| |
614 |
|
CTask* pTask; |
| |
615 |
|
if ( (pTask=pDlg->m_ctlStatus.m_vItems.at(iSel)->m_pTask) != NULL) |
| |
616 |
|
pTask->RestartProcessing(); |
| |
|
614 |
CTaskPtr spTask = pDlg->m_ctlStatus.m_vItems.at(iSel)->m_spTask; |
| |
|
615 |
if(spTask) |
| |
|
616 |
spTask->RestartProcessing(); |
| |
617 |
617 |
else |
| |
618 |
618 |
pDlg->m_pTasks->TasksRestartProcessing(); |
| |
619 |
619 |
break; |
| |
620 |
620 |
} |
| |
621 |
621 |
} |
| |
622 |
622 |
} |
| |
623 |
623 |
|
| |
624 |
624 |
void CMiniViewDlg::OnSelchangeProgressList() |
| |
625 |
625 |
{ |
| |
626 |
626 |
RefreshStatus(); |
| |
627 |
627 |
RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_FRAME); |
| |
628 |
628 |
|
| |
629 |
629 |
} |
| |
630 |
630 |
|
| |
631 |
631 |
void CMiniViewDlg::OnNcLButtonDown(UINT nHitTest, CPoint point) |
| |
632 |
632 |
{ |
| |
633 |
633 |
bool bEnabled=false; |
| |
634 |
634 |
CRect rcBtn; |
| |
635 |
635 |
int iNCHeight=GetSystemMetrics(SM_CYSMCAPTION)+GetSystemMetrics(SM_CYDLGFRAME); |
| |
636 |
636 |
|
|
| |
787 |
787 |
RecalcSize(0, true); |
| |
788 |
788 |
} |
| |
789 |
789 |
|
| |
790 |
790 |
void CMiniViewDlg::HideWindow() |
| |
791 |
791 |
{ |
| |
792 |
792 |
static_cast<CLanguageDialog*>(this)->ShowWindow(SW_HIDE); |
| |
793 |
793 |
m_bShown=false; |
| |
794 |
794 |
} |
| |
795 |
795 |
|
| |
796 |
796 |
void CMiniViewDlg::ShowWindow() |
| |
797 |
797 |
{ |
| |
798 |
798 |
static_cast<CLanguageDialog*>(this)->ShowWindow(SW_SHOW); |
| |
799 |
799 |
m_bShown=true; |
| |
800 |
800 |
} |
| |
801 |
801 |
|
| |
802 |
802 |
void CMiniViewDlg::OnDblclkProgressList() |
| |
803 |
803 |
{ |
| |
804 |
804 |
int iSel = m_ctlStatus.GetCurSel(); |
| |
805 |
805 |
if(iSel == LB_ERR || (size_t)iSel >= m_ctlStatus.m_vItems.size()) |
| |
806 |
806 |
return; |
| |
807 |
|
CTask* pTask; |
| |
808 |
|
pTask=m_ctlStatus.m_vItems.at(iSel)->m_pTask; |
| |
809 |
807 |
|
| |
810 |
|
GetParent()->PostMessage(WM_MINIVIEWDBLCLK, 0, (LPARAM)pTask); |
| |
|
808 |
CTaskPtr spTask = m_ctlStatus.m_vItems.at(iSel)->m_spTask; |
| |
|
809 |
|
| |
|
810 |
GetParent()->PostMessage(WM_MINIVIEWDBLCLK, 0, (LPARAM)spTask->GetSessionUniqueID()); |
| |
811 |
811 |
} |
| |
812 |
812 |
|
| |
813 |
813 |
void CMiniViewDlg::OnLanguageChanged() |
| |
814 |
814 |
{ |
| |
815 |
815 |
ResizeDialog(); |
| |
816 |
816 |
} |