Clone
ixen <ixen@copyhandler.com>
committed
on 20 Mar 19
Fixed various unit test warnings of 'signed/unsigned mismatch' type (CH-340)
ch-1.40 + 2 more
src/ch/MiniViewDlg.cpp (+26 -26)
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                                 // load
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         // should we show ?
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                         // need to be visible
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         // add all state
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         // get rid of the rest
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         // calc size
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                 // listbox with progress pseudocontrols
265 265                 m_ctlStatus.Init();
266 266                 
267 267                 // refresh
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                         // frame
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                         // frame
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                         // bkgnd
547 547                         rcCopy.DeflateRect(1, 1, 1, 1);
548 548                         pDC->FillSolidRect(&rcCopy, GetSysColor(COLOR_3DFACE));
549 549
550 550                         // square
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                         // frame
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 //      PostMessage(WM_NCPAINT);
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 }