void TcodecsPage::initLV(const char_t *IthirdCol) { hlv=GetDlgItem(m_hwnd,IDC_LV_INCODECS); ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP|LVS_EX_GRIDLINES,LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP|LVS_EX_GRIDLINES); int ncol=0; ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvCodecsWidth0),_(IDC_LV_INCODECS,_l("Format" )),false); ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvCodecsWidth1),_(IDC_LV_INCODECS,_l("Decoder")),false); ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvCodecsWidth2),_(IDC_LV_INCODECS,thirdCol=IthirdCol?IthirdCol:_l("Details")),false); hcbx=GetDlgItem(m_hwnd,IDC_CBX_INCODECS); formats.clear(); fillCodecs(); ListView_SetItemCount(hlv,formats.size()); curitem=cfgGet(IDFF_lvCodecsSelected); lvSetSelItem(IDC_LV_INCODECS,curitem); ListView_EnsureVisible(hlv,curitem,FALSE); options2dlg(curitem); if (setHints!=-1) { enableHints(!!setHints); } }
HRESULT CLAVVideoFormatsProp::OnActivate() { HRESULT hr = S_OK; INITCOMMONCONTROLSEX icc; icc.dwSize = sizeof(INITCOMMONCONTROLSEX); icc.dwICC = ICC_BAR_CLASSES | ICC_STANDARD_CLASSES | ICC_LISTVIEW_CLASSES; if (InitCommonControlsEx(&icc) == FALSE) { return E_FAIL; } ASSERT(m_pVideoSettings != NULL); // Setup ListView control for format configuration HWND hlv = GetDlgItem(m_Dlg, IDC_CODECS); ListView_SetExtendedListViewStyle(hlv, LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); int nCol = 1; LVCOLUMN lvc = {LVCF_WIDTH, 0, 20, 0}; ListView_InsertColumn(hlv, 0, &lvc); ListView_AddCol(hlv, nCol, 85, L"Codec", false); ListView_AddCol(hlv, nCol, 400, L"Description", false); ListView_DeleteAllItems(hlv); ListView_SetItemCount(hlv, Codec_VideoNB); // Create entries for the formats LVITEM lvi; memset(&lvi, 0, sizeof(lvi)); lvi.mask = LVIF_TEXT|LVIF_PARAM; int nItem = 0; for (nItem = 0; nItem < Codec_VideoNB; ++nItem) { const codec_config_t *config = get_codec_config((LAVVideoCodec)nItem); // Create main entry lvi.iItem = nItem + 1; ListView_InsertItem(hlv, &lvi); // Set sub item texts ATL::CA2W name(config->name); ListView_SetItemText(hlv, nItem, 1, (LPWSTR)name); ATL::CA2W desc(config->description); ListView_SetItemText(hlv, nItem, 2, (LPWSTR)desc); } hr = LoadData(); if (SUCCEEDED(hr)) { // Set checked state for (nItem = 0; nItem < ListView_GetItemCount(hlv); nItem++) { ListView_SetCheckState(hlv, nItem, m_bFormats[nItem]); } } SendDlgItemMessage(m_Dlg, IDC_CODECS_MSWMVDMO, BM_SETCHECK, m_bWMVDMO, 0); SendDlgItemMessage(m_Dlg, IDC_DVD_VIDEO, BM_SETCHECK, m_bDVD, 0); return hr; }
void TconvolverPage::init(void) { tbrSetRange(IDC_TBR_CONVOLVER_MIXINGSTRENGTH,0,100); tbrSetRange(IDC_TBR_CONVOLVER_LEVELADJUSTDB,-300,300); hlv=GetDlgItem(m_hwnd,IDC_LV_CONVOLVER_FILES); int ncol=0; ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvConvolverWidth0),_(IDC_LV_CONVOLVER_FILES,_l("Channel")),false); ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvConvolverWidth1),_(IDC_LV_CONVOLVER_FILES,_l("File")),false); ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvConvolverWidth2),_(IDC_LV_CONVOLVER_FILES,_l("Format")),false); ListView_SetExtendedListViewStyle(hlv,ListView_GetExtendedListViewStyle(hlv)|LVS_EX_FULLROWSELECT); ListView_SetItemCount(hlv,6); lvSetSelItem(IDC_LV_CONVOLVER_FILES,cfgGet(IDFF_lvConvolverSelected)); }
void TkeysPage::init(void) { keyChanging = -1; ignoreNextKey = false; hlv = GetDlgItem(m_hwnd, IDC_LV_KEYS); int ncol = 0; ListView_AddCol(hlv, ncol, cfgGet(IDFF_lvKeysWidth0), _l("Action"), false); ListView_AddCol(hlv, ncol, cfgGet(IDFF_lvKeysWidth1), _l("Key"), false); ListView_SetExtendedListViewStyle(hlv, ListView_GetExtendedListViewStyle(hlv) | LVS_EX_FULLROWSELECT); ListView_SetItemCount(hlv, deciD->getKeyParamCount2()); }
//=================================== TOSDpageDec ================================== void TOSDpageDec::init(void) { tbrSetRange(IDC_TBR_OSD_POSX, 0, 100, 10); tbrSetRange(IDC_TBR_OSD_POSY, 0, 100, 10); setFont(IDC_BT_OSD_LINE_UP , parent->arrowsFont); setFont(IDC_BT_OSD_LINE_DOWN, parent->arrowsFont); hlv = GetDlgItem(m_hwnd, IDC_LV_OSD_LINES); ListView_SetExtendedListViewStyleEx(hlv, LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT); int ncol = 0; RECT r; GetWindowRect(hlv, &r); ListView_AddCol(hlv, ncol, r.right - r.left - 26, _l("OSD item"), false); edLimitText(IDC_ED_OSD_USER, 1019); dragitem = -1; CRect rp; GetWindowRect(m_hwnd, &rp); CRect rc; GetWindowRect(hlv, &rc); lvx = rc.left - rp.left; lvy = rc.top - rp.top; edLimitText(IDC_ED_OSD_SAVE, MAX_PATH); cbxAdd(IDC_CBX_OSD_USERFORMAT, _l("HTML"), Tsubreader::SUB_SUBVIEWER); cbxAdd(IDC_CBX_OSD_USERFORMAT, _l("SSA"), Tsubreader::SUB_SSA); }
void TgenericPage::init(void) { tbrSetRange(IDC_TBR_MAXKEYINTERVAL,1,500,10); tbrSetRange(IDC_TBR_MINKEYINTERVAL,1,500,10); hlv=GetDlgItem(m_hwnd,IDC_LV_GENERIC); ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_CHECKBOXES,LVS_EX_CHECKBOXES); int ncol=0; RECT r; GetWindowRect(hlv,&r); ListView_AddCol(hlv,ncol,r.right-r.left-36,_l("Option"),false); SendMessage(hlv,LVM_SETBKCOLOR,0,GetSysColor(COLOR_BTNFACE)); SendMessage(hlv,LVM_SETTEXTBKCOLOR,0,GetSysColor(COLOR_BTNFACE)); }
void TpresetsPage::init(void) { nochange=true; enable(); hlv=GetDlgItem(m_hwnd,IDC_LV_PRESETS); italicFont=boldFont=NULL; int ncol=0; ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_FULLROWSELECT,LVS_EX_FULLROWSELECT); ListView_AddCol(hlv,ncol,cfgGet(IDFF_lvWidth0),_l("Preset name"),false); setFont(IDC_BT_PRESET_NEW_MENU ,parent->arrowsFont); setFont(IDC_BT_PRESET_RENAME_MENU,parent->arrowsFont); nochange=false; }
//=================================== TinfoPageDec ======================================= void TinfoPageDec::init(void) { setCheck(IDC_CHB_MMX ,Tconfig::cpu_flags&FF_CPU_MMX ); setCheck(IDC_CHB_MMXEXT ,Tconfig::cpu_flags&FF_CPU_MMXEXT ); setCheck(IDC_CHB_SSE ,Tconfig::cpu_flags&FF_CPU_SSE ); setCheck(IDC_CHB_SSE2 ,Tconfig::cpu_flags&FF_CPU_SSE2 ); setCheck(IDC_CHB_SSE3 ,Tconfig::cpu_flags&FF_CPU_SSE3 ); setCheck(IDC_CHB_SSSE3 ,Tconfig::cpu_flags&FF_CPU_SSSE3 ); setCheck(IDC_CHB_3DNOW ,Tconfig::cpu_flags&FF_CPU_3DNOW ); setCheck(IDC_CHB_3DNOWEXT,Tconfig::cpu_flags&FF_CPU_3DNOWEXT); setCheck(IDC_CHB_SSE41 ,Tconfig::cpu_flags&FF_CPU_SSE41 ); setCheck(IDC_CHB_SSE42 ,Tconfig::cpu_flags&FF_CPU_SSE42 ); setCheck(IDC_CHB_SSE4A ,Tconfig::cpu_flags&FF_CPU_SSE4A ); setCheck(IDC_CHB_SSE5 ,Tconfig::cpu_flags&FF_CPU_SSE5 ); hlv=GetDlgItem(m_hwnd,IDC_LV_INFO); CRect r=getChildRect(IDC_LV_INFO); int ncol=0; ListView_AddCol(hlv,ncol,r.Width(),_l("Property"),false); ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP,LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP); infoitems.clear(); const int *infos=getInfos(); for (int i=0;; i++) { Titem it; if (!info->getInfo(i,&it.id,&it.name)) { break; } for (int j=0; infos[j]; j++) if (infos[j]==it.id) { it.index=j; infoitems.push_back(it); } } std::sort(infoitems.begin(),infoitems.end(),TsortItem(infos)); ListView_SetItemCount(hlv,infoitems.size()); SendMessage(hlv,LVM_SETBKCOLOR,0,GetSysColor(COLOR_BTNFACE)); SendMessage(hlv,LVM_SETTEXTBKCOLOR,0,GetSysColor(COLOR_BTNFACE)); setCheck(IDC_CHB_WRITEINFO2DBG, cfgGet(IDFF_allowDPRINTF)); }
HRESULT CLAVSplitterFormatsProp::OnActivate() { HRESULT hr = S_OK; INITCOMMONCONTROLSEX icc; icc.dwSize = sizeof(INITCOMMONCONTROLSEX); icc.dwICC = ICC_BAR_CLASSES | ICC_STANDARD_CLASSES; if (InitCommonControlsEx(&icc) == FALSE) { return E_FAIL; } ASSERT(m_pLAVF != nullptr); memset(stringBuffer, 0, sizeof(stringBuffer)); const char *pszInput = m_pLAVF->GetInputFormat(); if (pszInput) { _snwprintf_s(stringBuffer, _TRUNCATE, L"%S", pszInput); } SendDlgItemMessage(m_Dlg, IDC_CUR_INPUT, WM_SETTEXT, 0, (LPARAM)stringBuffer); m_Formats = m_pLAVF->GetInputFormats(); // Setup ListView control for format configuration SendDlgItemMessage(m_Dlg, IDC_FORMATS, CCM_DPISCALE, TRUE, 0); HWND hlv = GetDlgItem(m_Dlg, IDC_FORMATS); ListView_SetExtendedListViewStyle(hlv, LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); int nCol = 1; LVCOLUMN lvc = {LVCF_WIDTH, 0, 20, 0}; ListView_InsertColumn(hlv, 0, &lvc); ListView_AddCol(hlv, nCol, 75, L"Format", false); ListView_AddCol(hlv, nCol, 210, L"Description", false); ListView_DeleteAllItems(hlv); ListView_SetItemCount(hlv, m_Formats.size()); SAFE_CO_FREE(m_bFormats); m_bFormats = (BOOL *)CoTaskMemAlloc(sizeof(BOOL) * m_Formats.size()); if (!m_bFormats) return E_OUTOFMEMORY; memset(m_bFormats, 0, sizeof(BOOL) * m_Formats.size()); // Create entries for the formats LVITEM lvi; memset(&lvi, 0, sizeof(lvi)); lvi.mask = LVIF_TEXT|LVIF_PARAM; int nItem = 0; std::set<FormatInfo>::const_iterator it; for (it = m_Formats.begin(); it != m_Formats.end(); ++it) { // Create main entry lvi.iItem = nItem + 1; ListView_InsertItem(hlv, &lvi); // Set sub item texts _snwprintf_s(stringBuffer, _TRUNCATE, L"%S", it->strName); ListView_SetItemText(hlv, nItem, 1, (LPWSTR)stringBuffer); _snwprintf_s(stringBuffer, _TRUNCATE, L"%S", it->strDescription); ListView_SetItemText(hlv, nItem, 2, (LPWSTR)stringBuffer); m_bFormats[nItem] = m_pLAVF->IsFormatEnabled(it->strName); ListView_SetCheckState(hlv, nItem, m_bFormats[nItem]); nItem++; } return hr; }
INT_PTR TdlgPropsEdit::msgProc(UINT uMsg,WPARAM wParam,LPARAM lParam) { switch (uMsg) { case WM_INITDIALOG: { hlv=GetDlgItem(m_hwnd,IDC_LV_PROPS); int ncol=0; ListView_AddCol(hlv,ncol,300,_l("Original:/Translation"),false); ListView_SetItemCount(hlv,props.size()*2); ListView_SetExtendedListViewStyleEx(hlv,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES,LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); return TRUE; } case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: case IDCANCEL: if (HWND(lParam)==GetDlgItem(m_hwnd,IDOK) || HWND(lParam)==GetDlgItem(m_hwnd,IDCANCEL)) { EndDialog(m_hwnd,LOWORD(wParam)); return TRUE; } break; }; break; case WM_NOTIFY: { NMHDR *nmhdr=LPNMHDR(lParam); if (nmhdr->idFrom==IDC_LV_PROPS) switch (nmhdr->code) { case LVN_GETDISPINFO: { NMLVDISPINFO *nmdi=(NMLVDISPINFO*)lParam; int i=nmdi->item.iItem; if (i==-1) { break; } if (nmdi->item.mask&LVIF_TEXT) switch (nmdi->item.iSubItem) { case 0: { //strcpy(nmdi->item.pszText,((i&1)==0)?props[i/2].first.c_str():props[i/2].second.c_str()); nmdi->item.pszText=(LPTSTR)((i&1)==0?props[i/2].first.c_str():props[i/2].second.c_str()); break; } } return TRUE; } case NM_CUSTOMDRAW: { NMLVCUSTOMDRAW *lvcd=LPNMLVCUSTOMDRAW(lParam); if (lvcd->nmcd.dwDrawStage==CDDS_PREPAINT) { setDlgResult(CDRF_NOTIFYITEMDRAW); return TRUE; } if (lvcd->nmcd.dwDrawStage==CDDS_ITEMPREPAINT) { if (!italicFont) { LOGFONT oldFont; HFONT hf=(HFONT)GetCurrentObject(lvcd->nmcd.hdc,OBJ_FONT); GetObject(hf,sizeof(LOGFONT),&oldFont); oldFont.lfItalic=TRUE; italicFont=CreateFontIndirect(&oldFont); } if ((lvcd->nmcd.dwItemSpec&1)==0) { SelectObject(lvcd->nmcd.hdc,italicFont); } setDlgResult(CDRF_NEWFONT); return TRUE; } return TRUE; } case LVN_BEGINLABELEDIT: { NMLVDISPINFO *nmdi=(NMLVDISPINFO*)lParam; if ((nmdi->item.iItem&1)==0) { setDlgResult(TRUE); return TRUE; } break; } case LVN_ENDLABELEDIT: { NMLVDISPINFO *nmdi=(NMLVDISPINFO*)lParam; if (nmdi->item.pszText) { props[nmdi->item.iItem/2].second=nmdi->item.pszText; setDlgResult(TRUE); return TRUE; } break; } case LVN_KEYDOWN: { NMLVKEYDOWN *nmkd=(NMLVKEYDOWN*)lParam; if (nmkd->wVKey==VK_F2) { ListView_EditLabel(hlv,ListView_GetNextItem(hlv,-1,LVNI_SELECTED)); return TRUE; } break; } } break; } } return Twindow::msgProc(uMsg,wParam,lParam); }