MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / SelectEncodingDlgProc

Function SelectEncodingDlgProc

src/Dialogs.c:1503–1580  ·  view source on GitHub ↗

============================================================================= SelectEncodingDlgProc()

Source from the content-addressed store, hash-verified

1501//
1502//
1503INT_PTR CALLBACK SelectEncodingDlgProc ( HWND hwnd, UINT umsg, WPARAM wParam, LPARAM lParam )
1504{
1505 static PENCODEDLG pdd;
1506 static HWND hwndLV;
1507 switch ( umsg ) {
1508 case WM_INITDIALOG: {
1509 LVCOLUMN lvc = { LVCF_FMT | LVCF_TEXT, LVCFMT_LEFT, 0, L"", -1, 0, 0, 0 };
1510 HBITMAP hbmp;
1511 HIMAGELIST himl;
1512 pdd = ( PENCODEDLG ) lParam;
1513 ResizeDlg_Init ( hwnd, pdd->cxDlg, pdd->cyDlg, IDC_RESIZEGRIP4 );
1514 hwndLV = GetDlgItem ( hwnd, IDC_ENCODINGLIST );
1515 hbmp = LoadImage ( g_hInstance, MAKEINTRESOURCE ( IDB_ENCODING ), IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION );
1516 himl = ImageList_Create ( 16, 16, ILC_COLOR32 | ILC_MASK, 0, 0 );
1517 ImageList_AddMasked ( himl, hbmp, CLR_DEFAULT );
1518 DeleteObject ( hbmp );
1519 ListView_SetImageList ( GetDlgItem ( hwnd, IDC_ENCODINGLIST ), himl, LVSIL_SMALL );
1520 //SetExplorerTheme(hwndLV);
1521 ListView_SetExtendedListViewStyle ( hwndLV,/*LVS_EX_FULLROWSELECT|*/LVS_EX_DOUBLEBUFFER | LVS_EX_LABELTIP );
1522 ListView_InsertColumn ( hwndLV, 0, &lvc );
1523 Encoding_AddToListView ( hwndLV, pdd->idEncoding, pdd->bRecodeOnly );
1524 ListView_SetColumnWidth ( hwndLV, 0, LVSCW_AUTOSIZE_USEHEADER );
1525 CenterDlgInParent ( hwnd );
1526 }
1527 return TRUE;
1528 case WM_DESTROY:
1529 ResizeDlg_Destroy ( hwnd, &pdd->cxDlg, &pdd->cyDlg );
1530 return FALSE;
1531 case WM_SIZE: {
1532 int dx;
1533 int dy;
1534 HDWP hdwp;
1535 ResizeDlg_Size ( hwnd, lParam, &dx, &dy );
1536 hdwp = BeginDeferWindowPos ( 4 );
1537 hdwp = DeferCtlPos ( hdwp, hwnd, IDC_RESIZEGRIP4, dx, dy, SWP_NOSIZE );
1538 hdwp = DeferCtlPos ( hdwp, hwnd, IDOK, dx, dy, SWP_NOSIZE );
1539 hdwp = DeferCtlPos ( hdwp, hwnd, IDCANCEL, dx, dy, SWP_NOSIZE );
1540 hdwp = DeferCtlPos ( hdwp, hwnd, IDC_ENCODINGLIST, dx, dy, SWP_NOMOVE );
1541 EndDeferWindowPos ( hdwp );
1542 ListView_SetColumnWidth ( GetDlgItem ( hwnd, IDC_ENCODINGLIST ), 0, LVSCW_AUTOSIZE_USEHEADER );
1543 }
1544 return TRUE;
1545 case WM_GETMINMAXINFO:
1546 ResizeDlg_GetMinMaxInfo ( hwnd, lParam );
1547 return TRUE;
1548 case WM_NOTIFY: {
1549 if ( ( ( LPNMHDR ) ( lParam ) )->idFrom == IDC_ENCODINGLIST ) {
1550 switch ( ( ( LPNMHDR ) ( lParam ) )->code ) {
1551 case NM_DBLCLK:
1552 SendMessage ( hwnd, WM_COMMAND, MAKELONG ( IDOK, 1 ), 0 );
1553 break;
1554 case LVN_ITEMCHANGED:
1555 case LVN_DELETEITEM: {
1556 int i = ListView_GetNextItem ( hwndLV, -1, LVNI_ALL | LVNI_SELECTED );
1557 EnableWindow ( GetDlgItem ( hwnd, IDOK ), i != -1 );
1558 }
1559 break;
1560 }

Callers

nothing calls this directly

Calls 8

ResizeDlg_InitFunction · 0.85
Encoding_AddToListViewFunction · 0.85
CenterDlgInParentFunction · 0.85
ResizeDlg_DestroyFunction · 0.85
ResizeDlg_SizeFunction · 0.85
DeferCtlPosFunction · 0.85
ResizeDlg_GetMinMaxInfoFunction · 0.85
Encoding_GetFromListViewFunction · 0.85

Tested by

no test coverage detected