⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 importwiz.c

📁 图像处理的压缩算法
💻 C
📖 第 1 页 / 共 5 页
字号:
}

static BOOL Source_OnClickRenameWks(Control ctrl)
{
	Button chkRenameWks = ImportWizDlg.GetItem(IDC_IW_SOURCE_RENAMEWKS, IDD_IW_SOURCE);
	s_trFilter.Common.RenameWks.nVal = chkRenameWks.Check;
	return TRUE;
}

static BOOL Source_OnClickFileNameToWksLabel(Control ctrl)
{
	Button chkFileNameToWksLabel = ImportWizDlg.GetItem(IDC_IW_FILENAME_TO_WKSLABEL, IDD_IW_SOURCE);
	s_trFilter.Common.FileNameToWksLabel.nVal = chkFileNameToWksLabel.Check;
	return TRUE;
}

///////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////// Target Window functions
///////////////////////////////////////////////////////////

static BOOL Source_OnClickTargetWindow(Control ctrl)
{
	Source_UpdateTargetWindowTemplateList();
	Source_EnableTargetWindowCtrls();
	return TRUE;
}

/// EJP 10-27-2003 v7.5733 QA70-5238 DO_NOT_RESET_TARGET_WINDOW_TEMPLATE
/*
static BOOL	Source_OnSelChangeWksTemplate(Control ctrl)
{
	string strTemplate;
	ComboBox cbTemplate(ctrl);
	if( cbTemplate.GetCurSel() > 0 )
	{
		/// JCG 05/28/03 v7.0540 HOOK_COMBO_BOX	
		/// strTemplate = cbTemplate.Text + ".otw";
		// Ext name will be appended at nex call AIW_FileNameToFullPath
		strTemplate = cbTemplate.Text;
		/// end HOOK_COMBO_BOX	
		if( !AIW_FileNameToFullPath(strTemplate, strTemplate, FALSE) )
			strTemplate.Empty();
	}
	fuSetTargetWindow(s_trFilter, EXIST_WKS, strTemplate);
	return TRUE;
}

static void Source_UpdateTargetWindowTemplateList()
{
	Control pgSource = ImportWizDlg.GetItem(IDD_IW_SOURCE);
	int iTargetWindow = pgSource.GetCheckedRadioButton(IDC_TARGET_WKS, IDC_TARGET_WND_NONE);
	if( IDC_TARGET_WKS == iTargetWindow || IDC_TARGET_MATRIX == iTargetWindow )
	{
		if( IDC_TARGET_WKS == iTargetWindow )
			iTargetWindow = EXIST_WKS;
		else
			iTargetWindow = EXIST_MATRIX;
		ComboBox cbTemplate = ImportWizDlg.GetItem(IDC_TARGET_WKS_TEMPLATE, IDD_IW_SOURCE);
		InitComboBoxWithTemplateNames(cbTemplate, iTargetWindow);
	}
}
*/
static int Source_GetTargetWindowType()
{
	Control pgSource = ImportWizDlg.GetItem(IDD_IW_SOURCE);
	int iTargetWindow = pgSource.GetCheckedRadioButton(IDC_TARGET_WKS, IDC_TARGET_WND_NONE);
	switch( iTargetWindow )
	{
	case IDC_TARGET_WKS:
		iTargetWindow = EXIST_WKS;
		break;
	case IDC_TARGET_MATRIX:
		iTargetWindow = EXIST_MATRIX;
		break;
	default:
		iTargetWindow = EXIST_NONE;
		break;
	}
	return iTargetWindow;
}

static void Source_UpdateTargetWindowTemplateList()
{
	int iTargetWindowType = Source_GetTargetWindowType();
	if( iTargetWindowType == EXIST_NONE )
		return;
	ComboBox cbTemplate = ImportWizDlg.GetItem(IDC_TARGET_WKS_TEMPLATE, IDD_IW_SOURCE);
	InitComboBoxWithTemplateNames(cbTemplate, iTargetWindowType);
}

static BOOL Source_OnSelChangeTargetWindowTemplate(Control ctrl)
{
	ComboBox cbTemplate(ctrl);
	if( !cbTemplate )
		return FALSE;
	string strTemplate;
	int iWindowType = Source_GetTargetWindowType();
	if( iWindowType != EXIST_NONE && cbTemplate.GetCurSel() > 0 )
		strTemplate = cbTemplate.Text;
	fuSetTargetWindow(s_trFilter, iWindowType, strTemplate);
	return TRUE;
}
/// end DO_NOT_RESET_TARGET_WINDOW_TEMPLATE


static void Source_EnableTargetWindowCtrls()
{
	Control pgSource = ImportWizDlg.GetItem(IDD_IW_SOURCE);
	int iDataType = pgSource.GetCheckedRadioButton(IDC_DATATYPE_ASCII, IDC_DATATYPE_USERDEF);
	
	Button radMatrix = ImportWizDlg.GetItem(IDC_TARGET_MATRIX, IDD_IW_SOURCE);
	radMatrix.Enable = (IDC_DATATYPE_USERDEF == iDataType);
	
	Button radWndNone = ImportWizDlg.GetItem(IDC_TARGET_WND_NONE, IDD_IW_SOURCE);
	radWndNone.Enable = (IDC_DATATYPE_USERDEF == iDataType);
	
	int iTargetWindow = pgSource.GetCheckedRadioButton(IDC_TARGET_WKS, IDC_TARGET_WND_NONE);
	ComboBox cbWksTemplate = ImportWizDlg.GetItem(IDC_TARGET_WKS_TEMPLATE, IDD_IW_SOURCE);
	cbWksTemplate.Enable = (IDC_TARGET_WKS == iTargetWindow || IDC_TARGET_MATRIX == iTargetWindow);
}

///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////

static void	Source_UpdateFilter(BOOL bDlgToFilter=TRUE)
{
	int i;
	string str;
	
	Control pgSource = ImportWizDlg.GetItem(IDD_IW_SOURCE);

	Button chkRenameWks = ImportWizDlg.GetItem(IDC_IW_SOURCE_RENAMEWKS, IDD_IW_SOURCE);
	Button chkFileNameToWksLabel = ImportWizDlg.GetItem(IDC_IW_FILENAME_TO_WKSLABEL, IDD_IW_SOURCE);
	
	Button chkWks = ImportWizDlg.GetItem(IDC_TARGET_WKS, IDD_IW_SOURCE);
	ComboBox cbWksTemplate = ImportWizDlg.GetItem(IDC_TARGET_WKS_TEMPLATE, IDD_IW_SOURCE);
	Button chkMat = ImportWizDlg.GetItem(IDC_TARGET_MATRIX, IDD_IW_SOURCE);
	
	if( bDlgToFilter )
	{
		s_trFilter.Type.nVal = pgSource.GetCheckedRadioButton(IDC_DATATYPE_ASCII, IDC_DATATYPE_USERDEF) - IDC_DATATYPE_ASCII;
		s_trFilter.Common.RenameWks.nVal = (chkRenameWks.Check ? 1 : 0);
		s_trFilter.Common.FileNameToWksLabel.nVal = (chkFileNameToWksLabel.Check ? 1 : 0);

		int iType = pgSource.GetCheckedRadioButton(IDC_TARGET_WKS, IDC_TARGET_WND_NONE);
		switch( iType )
		{
		case IDC_TARGET_WKS:
			str = cbWksTemplate.Text;
			iType = EXIST_WKS;
			break;
		case IDC_TARGET_MATRIX:
			str = cbWksTemplate.Text;
			iType = EXIST_MATRIX;
			break;
		case IDC_TARGET_WND_NONE:
			str.Empty();
			iType = EXIST_NONE;
			break;
		}
		if( 0 == str.CompareNoCase(AIW_DEFAULT_FILTER) )
			str.Empty(); // store empty string to indicate default
		fuSetTargetWindow(s_trFilter, iType, str);
	}
	else // update dialog from filter
	{
		i = tree_node_get_int(s_trFilter.Type, FILTER_TYPE_ASCII);
		pgSource.CheckRadioButton(IDC_DATATYPE_ASCII, IDC_DATATYPE_USERDEF, IDC_DATATYPE_ASCII + i);
		
		chkRenameWks.Check = tree_node_get_int(s_trFilter.Common.RenameWks, 0);
		chkFileNameToWksLabel.Check = tree_node_get_int(s_trFilter.Common.FileNameToWksLabel, 1);

		fuGetTargetWindow(s_trFilter, i, str);
		switch( i )
		{
		case EXIST_MATRIX:
			i = IDC_TARGET_MATRIX;
			break;
		case EXIST_WKS:
			i = IDC_TARGET_WKS;
			break;
		case EXIST_NONE:
			i = IDC_TARGET_WND_NONE;
			break;
		}
		pgSource.CheckRadioButton(IDC_TARGET_WKS, IDC_TARGET_WND_NONE, i);
		cbWksTemplate.SetCurSel(0);
		cbWksTemplate.SelectString(-1, str);

		Source_EnableTargetWindowCtrls();
		
		/// EJP 09-24-2003 v7.5706 QA70-4073.55 ADD_FILTER_DESCRIPTION
		str.Empty();
		fuGetDescription(s_trFilter, str);
		Edit ebDescrip = ImportWizDlg.GetItem(IDC_FILTER_DESCRIP, IDD_IW_SOURCE);
		ebDescrip.Text = str;
		/// end ADD_FILTER_DESCRIPTION
	}
}

//--------------------------------------------------------------------------
// Source_OnSelChangeFilter
//
// DialogBuilder calls this function when the selection in the filter
// combobox is changed.
//--------------------------------------------------------------------------
static BOOL	Source_OnSelChangeFilter(Control ctrl)
{
	Source_LoadCurSelFilter();
	return TRUE;
}

static void Source_UpdateButtons()
{
	int iDisable = 1; // Disable Next & Finish buttons
	
	if( IS_DATAFROM_CLIPBOARD )
	{
		string strClipboardText;
		if( GetClipboardText(strClipboardText) )
			iDisable = 0; // Enable Next & Finish buttons
	}
	else // Data is from a file
	{
		Edit editFileName = ImportWizDlg.GetItem(IDC_SOURCE_FILENAME, IDD_IW_SOURCE);
		string strPath = editFileName.Text;
		if( strPath.IsFile() ) // If not valid file name
		{
			iDisable = 0; // Enable Next & Finish buttons
		}
	}
	
	ImportWizDlg.Page.Pal = iDisable; 
}

static BOOL	Source_OnClickDisplayCompatibleFilters(Control ctrl)
{
	Source_UpdateFilterComboBox();
	return TRUE;
}

static int Source_FindFirstCompatibleFilter(int iFilterType, LPCSTR lpcszDataFile)
{
	string str, strFilter;
	string strDataPath;
	if( lpcszDataFile )
		strDataPath = GetFilePath(lpcszDataFile);
	ComboBox cbFilters = ImportWizDlg.GetItem(IDC_SOURCE_FILTER, IDD_IW_SOURCE);

	/// EJP 07-17-2003 v7.0627 QA70-4818 SAVE_FILTER_IN_WKS
	if( cbFilters.GetCount() <= 1 )
		return 0; // no filter
	cbFilters.GetLBText(1, str);
	if( 0 == str.CompareNoCase(SZ_IW_PAGE_FILTER) )
	{
		Page pgTarget(s_strActivePageName);
		if( fuIsFilterInPage(pgTarget, iFilterType, lpcszDataFile) )
			return 1; // use filter in page
	}
	/// end SAVE_FILTER_IN_WKS

	/// EJP 08-29-2003 v7.5680 AUTO_SELECT_ONLY_DATA_FOLDER_FILTERS
	/// This change will also cause Clipboard to auto select no filter.
	if( strDataPath.IsEmpty() )
		return 0; // no filter in data folder
	/// end AUTO_SELECT_ONLY_DATA_FOLDER_FILTERS

	for( int i = 1; i < cbFilters.GetCount(); i++ )
	{
		cbFilters.GetLBText(i, str);
		if( fuGetFilterFileNameFromListItem(str, strFilter, strDataPath) )
			/// EJP 09-02-2003 v7.5681 AUTO_SELECT_ONLY_DATA_FOLDER_FILTERS
			///if( fuIsApplicable(strFilter, lpcszDataFile, iFilterType) )
			if( 0 == strDataPath.CompareNoCase(GetFilePath(strFilter)) && fuIsApplicable(strFilter, lpcszDataFile, iFilterType) )
			/// end AUTO_SELECT_ONLY_DATA_FOLDER_FILTERS
				return i;
	}
	return 0; // Default
}

static void Source_UpdateFilterComboBoxSel(int iFilterType, LPCSTR lpcszDataFile)
{
	/// EJP 07-17-2003 v7.0627 QA70-4818 SAVE_FILTER_IN_WKS
	///int iSel = 0;
	///if( lpcszDataFile && *lpcszDataFile )
	///	iSel = Source_FindFirstCompatibleFilter(iFilterType, lpcszDataFile);
	int iSel = Source_FindFirstCompatibleFilter(iFilterType, lpcszDataFile);
	/// end SAVE_FILTER_IN_WKS
	ComboBox cbFilters = ImportWizDlg.GetItem(IDC_SOURCE_FILTER, IDD_IW_SOURCE);
	cbFilters.SetCurSel(iSel);
}

static void Source_UpdateFilterComboBoxList(int iFilterType, LPCSTR lpcszDataFile)
{
	StringArray saFilterFiles;
	fuGetFilterFiles(saFilterFiles, iFilterType, lpcszDataFile);
	
	StringArray saFilterList;
	fuGetFilterList(saFilterList, saFilterFiles);
	
	ComboBox cbFilters = ImportWizDlg.GetItem(IDC_SOURCE_FILTER, IDD_IW_SOURCE);
	cbFilters.ResetContent();
	cbFilters.AddString(IW_FILTER_NONE);

	/// EJP 07-17-2003 v7.0627 QA70-4818 SAVE_FILTER_IN_WKS
	Page pgTarget(s_strActivePageName);
	if( fuIsFilterInPage(pgTarget, iFilterType) )
		cbFilters.AddString(SZ_IW_PAGE_FILTER);
	/// end SAVE_FILTER_IN_WKS

	for( int i = 0; i < saFilterList.GetSize(); i++ )
		cbFilters.AddString(saFilterList[i]);
}

static void Source_UpdateFilterComboBox()
{
	// Get data type setting
	Control pgSource = ImportWizDlg.GetItem(IDD_IW_SOURCE);
	int iFilterType = pgSource.GetCheckedRadioButton(IDC_DATATYPE_ASCII, IDC_DATATYPE_USERDEF);
	iFilterType -= IDC_DATATYPE_ASCII;

	// Get data file name
	/*
	LPCSTR lpcszDataFile = NULL;
	Button chkCompatibleFilters = ImportWizDlg.GetItem(IDC_DISPLAY_ONLY_COMPATIBLE_CHK, IDD_IW_SOURCE);
	if( chkCompatibleFilters.Check )
	{
		if( IS_DATAFROM_FILE )
			lpcszDataFile = s_strDataFile;
	}
	*/
	string strDataFile;
	if( IS_DATAFROM_FILE )
	{
		Button chkCompatibleFilters = ImportWizDlg.GetItem(IDC_DISPLAY_ONLY_COMPATIBLE_CHK, IDD_IW_SOURCE);
		if( chkCompatibleFilters.Check )
			strDataFile = s_strDataFile;
		else
			strDataFile = GetFilePath(s_strDataFile);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -