| 729 | } |
| 730 | |
| 731 | void Encoding_AddToListView ( HWND hwnd, int idSel, BOOL bRecodeOnly ) |
| 732 | { |
| 733 | int i; |
| 734 | int iSelItem = -1; |
| 735 | LVITEM lvi; |
| 736 | WCHAR wchBuf[256]; |
| 737 | PENCODINGENTRY pEE = LocalAlloc ( LPTR, COUNTOF ( mEncoding ) * sizeof ( ENCODINGENTRY ) ); |
| 738 | for ( i = 0; i < COUNTOF ( mEncoding ); i++ ) { |
| 739 | pEE[i].id = i; |
| 740 | GetString ( mEncoding[i].idsName, pEE[i].wch, COUNTOF ( pEE[i].wch ) ); |
| 741 | } |
| 742 | qsort ( pEE, COUNTOF ( mEncoding ), sizeof ( ENCODINGENTRY ), CmpEncoding ); |
| 743 | ZeroMemory ( &lvi, sizeof ( LVITEM ) ); |
| 744 | lvi.mask = LVIF_PARAM | LVIF_TEXT | LVIF_IMAGE; |
| 745 | lvi.pszText = wchBuf; |
| 746 | for ( i = 0; i < COUNTOF ( mEncoding ); i++ ) { |
| 747 | int id = pEE[i].id; |
| 748 | if ( !bRecodeOnly || ( mEncoding[id].uFlags & NCP_RECODE ) ) { |
| 749 | CPINFO cpi; |
| 750 | WCHAR *pwsz; |
| 751 | lvi.iItem = ListView_GetItemCount ( hwnd ); |
| 752 | if ( pwsz = StrChr ( pEE[i].wch, L';' ) ) { |
| 753 | StrCpyN ( wchBuf, CharNext ( pwsz ), COUNTOF ( wchBuf ) ); |
| 754 | if ( pwsz = StrChr ( wchBuf, L';' ) ) { |
| 755 | *pwsz = 0; |
| 756 | } |
| 757 | } else { |
| 758 | StrCpyN ( wchBuf, pEE[i].wch, COUNTOF ( wchBuf ) ); |
| 759 | } |
| 760 | if ( id == CPI_DEFAULT ) { |
| 761 | StrCatN ( wchBuf, wchANSI, COUNTOF ( wchBuf ) ); |
| 762 | } else if ( id == CPI_OEM ) { |
| 763 | StrCatN ( wchBuf, wchOEM, COUNTOF ( wchBuf ) ); |
| 764 | } |
| 765 | if ( ( mEncoding[id].uFlags & NCP_INTERNAL ) || |
| 766 | ( IsValidCodePage ( mEncoding[id].uCodePage ) && |
| 767 | GetCPInfo ( mEncoding[id].uCodePage, &cpi ) ) ) { |
| 768 | lvi.iImage = 0; |
| 769 | } else { |
| 770 | lvi.iImage = 1; |
| 771 | } |
| 772 | lvi.lParam = ( LPARAM ) id; |
| 773 | ListView_InsertItem ( hwnd, &lvi ); |
| 774 | if ( idSel == id ) { |
| 775 | iSelItem = lvi.iItem; |
| 776 | } |
| 777 | } |
| 778 | } |
| 779 | LocalFree ( pEE ); |
| 780 | if ( iSelItem != -1 ) { |
| 781 | ListView_SetItemState ( hwnd, iSelItem, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED ); |
| 782 | ListView_EnsureVisible ( hwnd, iSelItem, FALSE ); |
| 783 | } else { |
| 784 | ListView_SetItemState ( hwnd, 0, LVIS_FOCUSED, LVIS_FOCUSED ); |
| 785 | ListView_EnsureVisible ( hwnd, 0, FALSE ); |
| 786 | } |
| 787 | } |
| 788 |
no outgoing calls
no test coverage detected