www.pudn.com > TidyWin32-src.zip > ConfigPage.cpp


#include "StdAfx.h" 
 
#include "ConfigPage.h" 
#include "TidyProxy.h" 
 
//------------------------------------------------------------------- 
// Markup 
 
LRESULT CMarkupConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	ATLControls::CComboBox doctypeCombo; 
	doctypeCombo.Attach(GetDlgItem(IDC_CONF_DOCTYPE)); 
	doctypeCombo.AddString("omit"); 
	doctypeCombo.AddString("auto"); 
	doctypeCombo.AddString("strict"); 
	doctypeCombo.AddString("loose"); 
	doctypeCombo.AddString(""); 
 
	Update(); 
 
	return 1; 
} 
 
void CMarkupConfig::Update() 
{ 
	// Doctype 
	ATLControls::CComboBox doctypeCombo; 
	doctypeCombo.Attach(GetDlgItem(IDC_CONF_DOCTYPE)); 
	string doctype = m_pTidyProxy->GetDocType(); 
	doctypeCombo.SetWindowText(doctype.c_str()); 
 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetTidyMark(), IDC_CONF_TIDYMARK); 
	SetCheckBox(m_pTidyProxy->GetHideEndTags(), IDC_CONF_HIDE_ENDTAGS); 
	SetCheckBox(m_pTidyProxy->GetEncloseBodyText(), IDC_CONF_ENC_BODY_TEXT); 
	SetCheckBox(m_pTidyProxy->GetEncloseBlockText(), IDC_CONF_ENC_BLOCK_TEXT); 
 
	// New tags 
	SetDlgItemText(IDC_CONF_NEW_EMPTYTAGS, 
		m_pTidyProxy->GetNewTags(CTidyProxy::NewEmptyTags).c_str()); 
	SetDlgItemText(IDC_CONF_NEW_INLINETAGS, 
		m_pTidyProxy->GetNewTags(CTidyProxy::NewInlineTags).c_str()); 
	SetDlgItemText(IDC_CONF_NEW_BLTAGS, 
		m_pTidyProxy->GetNewTags(CTidyProxy::NewBlockTags).c_str()); 
	SetDlgItemText(IDC_CONF_NEW_PRETAGS, 
		m_pTidyProxy->GetNewTags(CTidyProxy::NewPreTags).c_str()); 
} 
 
void CMarkupConfig::Validate() 
{ 
	const tmpStrSize = 1024; 
	char tmpStr[tmpStrSize]; 
 
	// Doctype 
	ATLControls::CComboBox doctypeCombo; 
	doctypeCombo.Attach(GetDlgItem(IDC_CONF_DOCTYPE)); 
	doctypeCombo.GetWindowText(tmpStr, tmpStrSize); 
	m_pTidyProxy->SetDocType(tmpStr); 
 
	if (strlen(tmpStr) != 0 && 
		doctypeCombo.FindString(-1, tmpStr) == CB_ERR) 
		doctypeCombo.AddString(tmpStr); 
 
	// Booleans 
	m_pTidyProxy->SetTidyMark(GetCheckBox(IDC_CONF_TIDYMARK)); 
	m_pTidyProxy->SetHideEndTags(GetCheckBox(IDC_CONF_HIDE_ENDTAGS)); 
	m_pTidyProxy->SetEncloseBodyText(GetCheckBox(IDC_CONF_ENC_BODY_TEXT)); 
	m_pTidyProxy->SetEncloseBlockText(GetCheckBox(IDC_CONF_ENC_BLOCK_TEXT)); 
 
	// New tags 
	GetDlgItemText(IDC_CONF_NEW_EMPTYTAGS, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetNewTags(CTidyProxy::NewEmptyTags, tmpStr); 
	GetDlgItemText(IDC_CONF_NEW_INLINETAGS, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetNewTags(CTidyProxy::NewInlineTags, tmpStr); 
	GetDlgItemText(IDC_CONF_NEW_BLTAGS, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetNewTags(CTidyProxy::NewBlockTags, tmpStr); 
	GetDlgItemText(IDC_CONF_NEW_PRETAGS, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetNewTags(CTidyProxy::NewPreTags, tmpStr); 
} 
 
//------------------------------------------------------------------- 
// Cleanup 
 
LRESULT CCleanupConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	Update(); 
	return 1; 
} 
 
void CCleanupConfig::Update() 
{ 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetMakeClean(), IDC_CONF_CLEAN); 
	SetCheckBox(m_pTidyProxy->GetDropFontTags(), IDC_CONF_DROP_FONT); 
	SetCheckBox(m_pTidyProxy->GetLogicalEmphasis(), IDC_CONF_LOGEMPH); 
	SetCheckBox(m_pTidyProxy->GetDropEmptyParas(), IDC_CONF_DROP_EMPTYPARAS); 
	SetCheckBox(m_pTidyProxy->GetWord2000(), IDC_CONF_WORD2000); 
	SetCheckBox(m_pTidyProxy->GetFixComments(), IDC_CONF_FIX_COMMENTS); 
	SetCheckBox(m_pTidyProxy->GetFixBackslash(), IDC_CONF_FIX_BACKSLASH); 
 
	// Alt text 
	string altText = m_pTidyProxy->GetAltText(); 
	SetDlgItemText(IDC_CONF_ALTTEXT, altText.c_str()); 
} 
 
void CCleanupConfig::Validate() 
{ 
	const tmpStrSize = 1024; 
	char tmpStr[tmpStrSize]; 
 
	// Booleans 
	m_pTidyProxy->SetMakeClean(GetCheckBox(IDC_CONF_CLEAN)); 
	m_pTidyProxy->SetDropFontTags(GetCheckBox(IDC_CONF_DROP_FONT)); 
	m_pTidyProxy->SetLogicalEmphasis(GetCheckBox(IDC_CONF_LOGEMPH)); 
	m_pTidyProxy->SetDropEmptyParas(GetCheckBox(IDC_CONF_DROP_EMPTYPARAS)); 
	m_pTidyProxy->SetWord2000(GetCheckBox(IDC_CONF_WORD2000)); 
	m_pTidyProxy->SetFixComments(GetCheckBox(IDC_CONF_FIX_COMMENTS)); 
	m_pTidyProxy->SetFixBackslash(GetCheckBox(IDC_CONF_FIX_BACKSLASH)); 
 
	// Alt text 
	GetDlgItemText(IDC_CONF_ALTTEXT, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetAltText(tmpStr); 
} 
 
//------------------------------------------------------------------- 
// XML 
 
LRESULT CXMLConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	Update(); 
	return 1; 
} 
 
void CXMLConfig::Update() 
{ 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetXmlTags(), IDC_CONF_INPUT_XML); 
	SetCheckBox(m_pTidyProxy->GetXmlOut(), IDC_CONF_OUTPUT_XML); 
	SetCheckBox(m_pTidyProxy->GetxHTML(), IDC_CONF_OUTPUT_XHTML); 
	SetCheckBox(m_pTidyProxy->GetXmlPi(), IDC_CONF_XML_DECL); 
	SetCheckBox(m_pTidyProxy->GetXmlPIs(), IDC_CONF_XML_PI_STYLE); 
	SetCheckBox(m_pTidyProxy->GetXmlSpace(), IDC_CONF_ADD_XML_SPACE); 
} 
 
void CXMLConfig::Validate() 
{ 
	// Booleans 
	m_pTidyProxy->SetXmlTags(GetCheckBox(IDC_CONF_INPUT_XML)); 
	m_pTidyProxy->SetXmlOut(GetCheckBox(IDC_CONF_OUTPUT_XML)); 
	m_pTidyProxy->SetxHTML(GetCheckBox(IDC_CONF_OUTPUT_XHTML)); 
	m_pTidyProxy->SetXmlPi(GetCheckBox(IDC_CONF_XML_DECL)); 
	m_pTidyProxy->SetXmlPIs(GetCheckBox(IDC_CONF_XML_PI_STYLE)); 
	m_pTidyProxy->SetXmlSpace(GetCheckBox(IDC_CONF_ADD_XML_SPACE)); 
} 
 
//------------------------------------------------------------------- 
// Encoding 
 
LRESULT CEncodingConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	Update(); 
	return 1; 
} 
 
void CEncodingConfig::Update() 
{ 
	// Character encoding 
	switch (m_pTidyProxy->GetCharEncoding()) { 
	case CTidyProxy::Enc_Raw: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_RAW); 
		break; 
	case CTidyProxy::Enc_ASCII: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_ASCII); 
		break; 
	case CTidyProxy::Enc_Latin1: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_LATIN1); 
		break; 
	case CTidyProxy::Enc_UTF8: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_UTF8); 
		break; 
	case CTidyProxy::Enc_ISO2022: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_2022); 
		break; 
	case CTidyProxy::Enc_MacRoman: 
		CheckRadioButton(IDC_CONF_ENC_RAW, IDC_CONF_ENC_MACROMAN, IDC_CONF_ENC_MACROMAN); 
		break; 
	} 
 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetNumEntities(), IDC_CONF_NUM_ENT); 
	SetCheckBox(m_pTidyProxy->GetQuoteMarks(), IDC_CONF_QUOTE_MARKS); 
	SetCheckBox(m_pTidyProxy->GetQuoteNbsp(), IDC_CONF_QUOTE_NBSP); 
	SetCheckBox(m_pTidyProxy->GetQuoteAmpersand(), IDC_CONF_QUOTE_AMP); 
} 
 
void CEncodingConfig::Validate() 
{ 
	// Character encoding 
	if (IsDlgButtonChecked(IDC_CONF_ENC_RAW)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_Raw); 
	else if (IsDlgButtonChecked(IDC_CONF_ENC_ASCII)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_ASCII); 
	else if (IsDlgButtonChecked(IDC_CONF_ENC_LATIN1)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_Latin1); 
	else if (IsDlgButtonChecked(IDC_CONF_ENC_UTF8)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_UTF8); 
	else if (IsDlgButtonChecked(IDC_CONF_ENC_2022)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_ISO2022); 
	else if (IsDlgButtonChecked(IDC_CONF_ENC_MACROMAN)) 
		m_pTidyProxy->SetCharEncoding(CTidyProxy::Enc_MacRoman); 
 
	// Booleans 
	m_pTidyProxy->SetNumEntities(GetCheckBox(IDC_CONF_NUM_ENT)); 
	m_pTidyProxy->SetQuoteMarks(GetCheckBox(IDC_CONF_QUOTE_MARKS)); 
	m_pTidyProxy->SetQuoteNbsp(GetCheckBox(IDC_CONF_QUOTE_NBSP)); 
	m_pTidyProxy->SetQuoteAmpersand(GetCheckBox(IDC_CONF_QUOTE_AMP)); 
} 
 
//------------------------------------------------------------------- 
// Layout 
 
LRESULT CLayoutConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	Update(); 
	return 1; 
} 
 
void CLayoutConfig::Update() 
{ 
	const tmpStrSize = 32; 
	char tmpStr[tmpStrSize]; 
 
	// Indent 
	switch (m_pTidyProxy->GetIndent()) { 
	case CTidyProxy::Log3_False: 
		CheckRadioButton(IDC_CONF_INDENT_NO, IDC_CONF_INDENT_AUTO, IDC_CONF_INDENT_NO); 
		break; 
	case CTidyProxy::Log3_True: 
		CheckRadioButton(IDC_CONF_INDENT_NO, IDC_CONF_INDENT_AUTO, IDC_CONF_INDENT_YES); 
		break; 
	case CTidyProxy::Log3_Maybe: 
		CheckRadioButton(IDC_CONF_INDENT_NO, IDC_CONF_INDENT_AUTO, IDC_CONF_INDENT_AUTO); 
		break; 
	} 
 
	// Indent spaces 
	unsigned int spaces = m_pTidyProxy->GetIndentSpaces(); 
	sprintf(tmpStr, "%u", spaces); 
	SetDlgItemText(IDC_CONF_INDENT_SPACES, tmpStr); 
 
	// Wrap margin 
	unsigned int wraplen = m_pTidyProxy->GetWrapMargin(); 
    if (wraplen == 0x7FFFFFFF)	// see tidy::AdjustConfig() 
        wraplen = 0; 
	sprintf(tmpStr, "%u", wraplen); 
	SetDlgItemText(IDC_CONF_WRAP_MARGIN, tmpStr); 
 
	// Tab size 
	unsigned int tabsize = m_pTidyProxy->GetTabSize(); 
	sprintf(tmpStr, "%u", tabsize); 
	SetDlgItemText(IDC_CONF_TABSIZE, tmpStr); 
 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetIndentAttributes(), IDC_CONF_INDENT_ATTRS); 
	SetCheckBox(m_pTidyProxy->GetWrapAttVals(), IDC_CONF_WRAP_ATTRS); 
	SetCheckBox(m_pTidyProxy->GetWrapScriptlets(), DC_CONF_WRAP_SCRIPTS); 
	SetCheckBox(m_pTidyProxy->GetWrapAsp(), DC_CONF_WRAP_ASP); 
	SetCheckBox(m_pTidyProxy->GetWrapJste(), DC_CONF_WRAP_JSTE); 
	SetCheckBox(m_pTidyProxy->GetWrapPhp(), DC_CONF_WRAP_PHP); 
	SetCheckBox(m_pTidyProxy->GetBreakBeforeBR(), IDC_CONF_BREAK_BR); 
	SetCheckBox(m_pTidyProxy->GetUpperCaseTags(), IDC_CONF_UPPER_TAGS); 
	SetCheckBox(m_pTidyProxy->GetUpperCaseAttrs(), IDC_CONF_UPPER_ATTRS); 
	SetCheckBox(m_pTidyProxy->GetLiteralAttribs(), IDC_CONF_LITERAL_ATTRS); 
} 
 
void CLayoutConfig::Validate() 
{ 
	const tmpStrSize = 32; 
	char tmpStr[tmpStrSize]; 
 
	// Indent 
	if (IsDlgButtonChecked(IDC_CONF_INDENT_NO)) 
		m_pTidyProxy->SetIndent(CTidyProxy::Log3_False); 
	else if (IsDlgButtonChecked(IDC_CONF_INDENT_YES)) 
		m_pTidyProxy->SetIndent(CTidyProxy::Log3_True); 
	else if (IsDlgButtonChecked(IDC_CONF_INDENT_AUTO)) 
		m_pTidyProxy->SetIndent(CTidyProxy::Log3_Maybe); 
 
	// Indent spaces 
	GetDlgItemText(IDC_CONF_INDENT_SPACES, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetIndentSpaces(atoi(tmpStr)); 
 
	// Wrap margin 
	GetDlgItemText(IDC_CONF_WRAP_MARGIN, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetWrapMargin(atoi(tmpStr)); 
 
	// Tab size 
	GetDlgItemText(IDC_CONF_TABSIZE, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetTabSize(atoi(tmpStr)); 
 
	// Booleans 
	m_pTidyProxy->SetIndentAttributes(GetCheckBox(IDC_CONF_INDENT_ATTRS)); 
	m_pTidyProxy->SetWrapAttVals(GetCheckBox(IDC_CONF_WRAP_ATTRS)); 
	m_pTidyProxy->SetWrapScriptlets(GetCheckBox(DC_CONF_WRAP_SCRIPTS)); 
	m_pTidyProxy->SetWrapAsp(GetCheckBox(DC_CONF_WRAP_ASP)); 
	m_pTidyProxy->SetWrapJste(GetCheckBox(DC_CONF_WRAP_JSTE)); 
	m_pTidyProxy->SetWrapPhp(GetCheckBox(DC_CONF_WRAP_PHP)); 
	m_pTidyProxy->SetBreakBeforeBR(GetCheckBox(IDC_CONF_BREAK_BR)); 
	m_pTidyProxy->SetUpperCaseTags(GetCheckBox(IDC_CONF_UPPER_TAGS)); 
	m_pTidyProxy->SetUpperCaseAttrs(GetCheckBox(IDC_CONF_UPPER_ATTRS)); 
	m_pTidyProxy->SetLiteralAttribs(GetCheckBox(IDC_CONF_LITERAL_ATTRS)); 
} 
 
//------------------------------------------------------------------- 
// Operation 
 
LRESULT COperationConfig::OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) 
{ 
	Update(); 
	return 1; 
} 
 
void COperationConfig::Update() 
{ 
	// Error file 
	string errFName = m_pTidyProxy->GetErrorFile(); 
	SetDlgItemText(IDC_CONF_ERRFILE, errFName.c_str()); 
 
	// Booleans 
	SetCheckBox(m_pTidyProxy->GetOnlyErrors(), IDC_CONF_MARKUP); 
	SetCheckBox(m_pTidyProxy->GetQuiet(), IDC_CONF_QUIET); 
	SetCheckBox(m_pTidyProxy->GetShowWarnings(), IDC_CONF_WARNINGS); 
	SetCheckBox(m_pTidyProxy->GetBurstSlides(), IDC_CONF_SLIDES); 
	SetCheckBox(m_pTidyProxy->Getwriteback(), IDC_CONF_WRITEBACK); 
	SetCheckBox(m_pTidyProxy->GetKeepFileTimes(), IDC_CONF_KEEPTIME); 
	SetCheckBox(m_pTidyProxy->GetEmacs(), IDC_CONF_GNU_EMACS); 
} 
 
void COperationConfig::Validate() 
{ 
	const tmpStrSize = 128; 
	char tmpStr[tmpStrSize]; 
 
	// Error file 
	GetDlgItemText(IDC_CONF_ERRFILE, tmpStr, tmpStrSize); 
	m_pTidyProxy->SetErrorFile(tmpStr); 
 
	// Booleans 
	m_pTidyProxy->SetOnlyErrors(GetCheckBox(IDC_CONF_MARKUP)); 
	m_pTidyProxy->SetQuiet(GetCheckBox(IDC_CONF_QUIET)); 
	m_pTidyProxy->SetShowWarnings(GetCheckBox(IDC_CONF_WARNINGS)); 
	m_pTidyProxy->SetBurstSlides(GetCheckBox(IDC_CONF_SLIDES)); 
	m_pTidyProxy->Setwriteback(GetCheckBox(IDC_CONF_WRITEBACK)); 
	m_pTidyProxy->SetKeepFileTimes(GetCheckBox(IDC_CONF_KEEPTIME)); 
	m_pTidyProxy->SetEmacs(GetCheckBox(IDC_CONF_GNU_EMACS)); 
} 
 
//-------------------------------------------------------------------