Ejemplo n.º 1
0
void CDisplayDetailsDlg::updateState ()
{
	UpdateQuality (LandscapeQualityInt, LandscapeQualityValue);
	UpdateQuality (FXQualityInt, FXQualityValue);
	UpdateQuality (CharacterQualityInt, CharacterQualityValue);

	// If control has bad range, reset
	int		rMin, rMax;
	TextureQuality.GetRange(rMin, rMax);
	if(rMin!=0 || rMax!=MaxTextureQuality)
		TextureQuality.SetRange(0, MaxTextureQuality);
	
	// update texture quality text
	static const char *textureString[QUALITY_TEXTURE_STEP] = { "uiConfigTexturePoor", "uiConfigTextureNormal", "uiConfigTextureSuper"};
	setWindowText(TextureQualityValue, (WCHAR*)NLMISC::CI18N::get (textureString[TextureQualityInt]).c_str());
}
void CVideoCompressionPage::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
{
	__super::OnHScroll(nSBCode, nPos, pScrollBar);
	if (!comp) return ;

	CSliderCtrl		*slider = (CSliderCtrl*)pScrollBar;
	long			pos;

	if (slider == &tb_irate) {
		pos = slider->GetPos();
		comp->put_KeyFrameRate(pos);
		UpdateIRate();
	} else
	if (slider == &tb_prate) {
		pos = slider->GetPos();
		comp->put_PFramesPerKeyFrame(pos);
		UpdatePRate();
	} else
	if (slider == &tb_quality) {
		pos = slider->GetPos();
		double	q = pos / 100.0;
		comp->put_Quality(q);
		UpdateQuality();
	} else
	if (slider == &tb_window) {
		pos = slider->GetPos();
		DWORDLONG	lpos = pos;
		comp->put_WindowSize(lpos);
		UpdateWindowSize();
	}
}
// overriden
BOOL CVideoCompressionPage::OnInitDialog()
{
	BOOL ok = CDSPropertyPage::OnInitDialog();
	if (!ok) return FALSE;

	// prepare titlebar
	title.ModifyStyle(0, WS_CLIPCHILDREN);
	title.ModifyStyleEx(0, WS_EX_CONTROLPARENT);

	WCHAR		wstrDesc[1024];
	WCHAR		wstrVer[1024];
	int			cbDesc, cbVer;

	memset(wstrDesc, 0, sizeof(wstrDesc));
	memset(wstrVer, 0, sizeof(wstrVer));

	cbDesc = 1024;
	cbVer = 1024;

	comp->GetInfo(wstrVer, &cbVer, wstrDesc, &cbDesc,
				  &def_irate, &def_prate, &def_quality, 
				  &flags);
	def_window = 1;

	// keep the strings
	desc = CString(wstrDesc);
	version = CString(wstrVer);

	label_desc.SetWindowText(desc);
	label_version.SetWindowText(version);

	tb_irate.SetRange(-1, 250);
	tb_prate.SetRange(-1, 250);
	tb_quality.SetRange(0, 100);
	tb_window.SetRange(-1, 100);

	UpdateIRate();
	UpdatePRate();
	UpdateQuality();
	UpdateWindowSize();

	bool		kf = (flags & CompressionCaps_CanKeyFrame) == CompressionCaps_CanKeyFrame;
	bool		bf = (flags & CompressionCaps_CanBFrame) == CompressionCaps_CanBFrame;
	bool		cq = (flags & CompressionCaps_CanQuality) == CompressionCaps_CanQuality;
	bool		cw = (flags & CompressionCaps_CanWindow) == CompressionCaps_CanWindow;

	label_irate.EnableWindow(kf);	tb_irate.EnableWindow(kf);		label_irate_val.EnableWindow(kf);	btn_def_irate.EnableWindow(kf);
	label_prate.EnableWindow(bf);	tb_prate.EnableWindow(bf);		label_prate_val.EnableWindow(bf);	btn_def_prate.EnableWindow(bf);
	label_quality.EnableWindow(cq);	tb_quality.EnableWindow(cq);	label_quality_val.EnableWindow(cq);	btn_def_quality.EnableWindow(cq);
	label_window.EnableWindow(cw);	tb_window.EnableWindow(cw);		label_window_val.EnableWindow(cw);	btn_def_window.EnableWindow(cw);

	return TRUE;
}
void CVideoCompressionPage::OnWindowDefault()
{
	comp->put_WindowSize(def_window);
	UpdateQuality();
}
void CVideoCompressionPage::OnQualityDefault()
{
	comp->put_Quality(-1);
	UpdateQuality();
}