BOOL CTDLImportOutlookObjectsDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();

	// modify first column header
	m_lcFieldMapping.SetColumnText(0, CEnString(IDS_OUTLOOK_FIELDNAME));

	// take a copy of the master mapping and remove any unwanted fields before
	// passing to list control
	CTDCCsvColumnMapping aMapping;
	aMapping.Copy(m_aMasterMapping);

	RemoveUnwantedAttributes(aMapping);

	m_lcFieldMapping.SetColumnMapping(aMapping);

	// make sure we have the foreground focus because
	// the Outlook security popup can steal it.
	AfxGetMainWnd()->SetForegroundWindow();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CTDLFindTaskExpressionListCtrl::PreSubclassWindow() 
{
	// create child controls
	CreateControl(m_cbAttributes, ATTRIB_ID);
	CreateControl(m_cbOperators, OPERATOR_ID, FALSE);
	CreateControl(m_cbAndOr, ANDOR_ID, FALSE);
	CreateControl(m_dtcDate, DATE_ID);
	CreateControl(m_eTime, TIME_ID);
	CreateControl(m_cbListValues, LISTVALUES_ID);
	CreateControl(m_cbPriority, PRIORITY_ID);
	CreateControl(m_cbRisk, RISK_ID);

	CInputListCtrl::PreSubclassWindow(); // we need combo to be created first

	// build and/or combo too
	int nItem = m_cbAndOr.AddString(CEnString(IDS_FP_AND));
	m_cbAndOr.SetItemData(nItem, TRUE);
				
	nItem = m_cbAndOr.AddString(CEnString(IDS_FP_OR));
	m_cbAndOr.SetItemData(nItem, FALSE);

	// post message for our setup
	m_header.EnableTracking(FALSE);
	ShowGrid(TRUE, TRUE);

	InsertColumn(ATTRIB, CEnString(IDS_FT_ATTRIB), LVCFMT_LEFT, 120);
	InsertColumn(OPERATOR, CEnString(IDS_FT_MATCHES), LVCFMT_LEFT, 160);
	InsertColumn(VALUE, CEnString(IDS_FT_VALUE), LVCFMT_LEFT, 130);
	InsertColumn(ANDOR, CEnString(IDS_FT_ANDOR), LVCFMT_LEFT, 60);
	SetView(LVS_REPORT);
//	SetLastColumnStretchy(TRUE);

	AutoAdd(TRUE, FALSE);

	BuildListCtrl();

	SetColumnType(ATTRIB, ILCT_DROPLIST);
	SetColumnType(OPERATOR, ILCT_DROPLIST);
	SetColumnType(ANDOR, ILCT_DROPLIST);
}
void CTDLFindTaskExpressionListCtrl::PrepareControl(CWnd& ctrl, int nRow, int nCol)
{
	UNREFERENCED_PARAMETER(ctrl);

	if (!GetRuleCount())
		return;

	SEARCHPARAM& sp = m_aSearchParams[nRow];

	switch (nCol)
	{
	case ATTRIB:
		{
			ASSERT (&ctrl == &m_cbAttributes);
	
			m_cbAttributes.SelectAttribute(sp);
			CDialogHelper::RefreshMaxDropWidth(m_cbAttributes);
		}
		break;

	case OPERATOR:
		{
			ASSERT (&ctrl == &m_cbOperators);

			m_cbOperators.ResetContent();
			
			FIND_ATTRIBTYPE nType = sp.GetAttribType();
			
			switch (nType)
			{
			case FT_STRING:
				AddOperatorToCombo(FOP_SET);
				AddOperatorToCombo(FOP_NOT_SET);
				AddOperatorToCombo(FOP_EQUALS);
				AddOperatorToCombo(FOP_NOT_EQUALS);
				AddOperatorToCombo(FOP_INCLUDES);
				AddOperatorToCombo(FOP_NOT_INCLUDES);
				break;

			case FT_INTEGER:
			case FT_DOUBLE:
			case FT_TIME:
				AddOperatorToCombo(FOP_SET);
				AddOperatorToCombo(FOP_NOT_SET);
				AddOperatorToCombo(FOP_EQUALS);
				AddOperatorToCombo(FOP_NOT_EQUALS);
				AddOperatorToCombo(FOP_GREATER);
				AddOperatorToCombo(FOP_GREATER_OR_EQUAL);
				AddOperatorToCombo(FOP_LESS);
				AddOperatorToCombo(FOP_LESS_OR_EQUAL);
				break;

			case FT_DATE:
				AddOperatorToCombo(FOP_SET);
				AddOperatorToCombo(FOP_NOT_SET);
				// fall thru
			case FT_DATE_REL:
				AddOperatorToCombo(FOP_EQUALS);
				AddOperatorToCombo(FOP_NOT_EQUALS);
				AddOperatorToCombo(FOP_AFTER);
				AddOperatorToCombo(FOP_ON_OR_AFTER);
				AddOperatorToCombo(FOP_BEFORE);
				AddOperatorToCombo(FOP_ON_OR_BEFORE);
				break;

			case FT_BOOL:
				AddOperatorToCombo(FOP_SET);
				AddOperatorToCombo(FOP_NOT_SET);
				break;
			}
	
			CDialogHelper::SelectItemByData(m_cbOperators, (DWORD)sp.GetOperator());
		}
		break;

	case ANDOR:
		{
			ASSERT (&ctrl == &m_cbAndOr);

			if (sp.GetAnd())
				m_cbAndOr.SelectString(-1, CEnString(IDS_FP_AND));
			else
				m_cbAndOr.SelectString(-1, CEnString(IDS_FP_OR));
		}
		break;

	case VALUE:
		if (&ctrl == &m_dtcDate)
		{
			// if the rule does not yet have a date then set it now to
			// the current date because that's whats the date ctrl will default to
			if (!CDateHelper::IsDateSet(sp.ValueAsDate()))
			{
				sp.SetValue(COleDateTime::GetCurrentTime());
				SetItemText(nRow, nCol, sp.ValueAsDate().Format(VAR_DATEVALUEONLY));
			}
			else
			{
				m_dtcDate.SetTime(sp.ValueAsDouble());
			}
		}
		else if (&ctrl == &m_eTime)
		{
			m_eTime.SetTime(sp.ValueAsDouble(), (TCHAR)sp.GetFlags());
		}
		else if (&ctrl == &m_cbListValues)
		{
			m_cbListValues.ResetContent();

			TDCCUSTOMATTRIBUTEDEFINITION attribDef;

			if (CTDCCustomAttributeHelper::GetAttributeDef(sp.GetAttribute(), m_aAttribDefs, attribDef))
			{
				if (attribDef.IsList())
				{
					int nItem = attribDef.aDefaultListData.GetSize();

					while (nItem--)
						m_cbListValues.AddString(attribDef.aDefaultListData[nItem]);
					
					nItem = attribDef.aAutoListData.GetSize();

					while (nItem--)
						m_cbListValues.AddString(attribDef.aAutoListData[nItem]);
				}
			}
			else
			{
				switch (sp.GetAttribute())
				{
				case TDCA_CATEGORY: CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aCategory); break;
				case TDCA_ALLOCTO:	CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aAllocTo); break;
				case TDCA_ALLOCBY:	CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aAllocBy); break;
				case TDCA_VERSION:	CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aVersion); break;
				case TDCA_TAGS:		CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aTags); break;
				case TDCA_STATUS:	CDialogHelper::SetComboBoxItems(m_cbListValues, m_tldListContents.aStatus); break;
				}
			}

			m_cbListValues.SelectString(0, sp.ValueAsString());
		}
		else if (&ctrl == &m_cbPriority)
		{
			m_cbPriority.SetSelectedPriority(sp.ValueAsInteger());
		}
		else if (&ctrl == &m_cbRisk)
		{
			m_cbRisk.SetSelectedRisk(sp.ValueAsInteger());
		}
		break;
	}
}
void CTDLFindTaskExpressionListCtrl::PrepareControl(CWnd& ctrl, int nRow, int nCol)
{
	UNREFERENCED_PARAMETER(ctrl);

	if (!GetRuleCount())
		return;

	SEARCHPARAM& sp = m_aSearchParams[nRow];

	switch (nCol)
	{
	case ATTRIB:
		{
			ASSERT (&ctrl == &m_cbAttributes);
	
			m_cbAttributes.SelectAttribute(sp);
			CDialogHelper::RefreshMaxDropWidth(m_cbAttributes);
		}
		break;

	case OPERATOR:
		{
			ASSERT (&ctrl == &m_cbOperators);

			m_cbOperators.ResetContent();
			
			FIND_ATTRIBTYPE nType = sp.GetAttribType();
			
			switch (nType)
			{
			case FT_STRING:
				AddOperatorToCombo(FO_SET);
				AddOperatorToCombo(FO_NOT_SET);
				AddOperatorToCombo(FO_EQUALS);
				AddOperatorToCombo(FO_NOT_EQUALS);
				AddOperatorToCombo(FO_INCLUDES);
				AddOperatorToCombo(FO_NOT_INCLUDES);
				break;

			case FT_INTEGER:
			case FT_DOUBLE:
			case FT_TIME:
				AddOperatorToCombo(FO_SET);
				AddOperatorToCombo(FO_NOT_SET);
				AddOperatorToCombo(FO_EQUALS);
				AddOperatorToCombo(FO_NOT_EQUALS);
				AddOperatorToCombo(FO_GREATER);
				AddOperatorToCombo(FO_GREATER_OR_EQUAL);
				AddOperatorToCombo(FO_LESS);
				AddOperatorToCombo(FO_LESS_OR_EQUAL);
				break;

			case FT_DATE:
			case FT_DATE_REL:
				AddOperatorToCombo(FO_SET);
				AddOperatorToCombo(FO_NOT_SET);
				AddOperatorToCombo(FO_EQUALS);
				AddOperatorToCombo(FO_NOT_EQUALS);
				AddOperatorToCombo(FO_AFTER);
				AddOperatorToCombo(FO_ON_OR_AFTER);
				AddOperatorToCombo(FO_BEFORE);
				AddOperatorToCombo(FO_ON_OR_BEFORE);
				break;

			case FT_BOOL:
				AddOperatorToCombo(FO_SET);
				AddOperatorToCombo(FO_NOT_SET);
				break;
			}
	
			CDialogHelper::SelectItemByData(m_cbOperators, (DWORD)sp.GetOperator());
		}
		break;

	case ANDOR:
		{
			ASSERT (&ctrl == &m_cbAndOr);

			if (sp.GetAnd())
				m_cbAndOr.SelectString(-1, CEnString(IDS_FP_AND));
			else
				m_cbAndOr.SelectString(-1, CEnString(IDS_FP_OR));
		}
		break;

	case VALUE:
		switch (sp.GetAttribType())
		{
		case FT_DATE:
			ASSERT (&ctrl == &m_dtDate);

			// if the rule does not yet have a date then set it now to
			// the current date because that's whats the date ctrl will default to
			if (sp.ValueAsDate().m_dt <= 0)
			{
				sp.SetValue(COleDateTime::GetCurrentTime());
				SetItemText(nRow, nCol, sp.ValueAsDate().Format(VAR_DATEVALUEONLY));
			}
			else
				m_dtDate.SetTime(sp.ValueAsDouble());
			break;

		case FT_TIME:
			ASSERT (&ctrl == &m_eTime);
			m_eTime.SetTime(sp.ValueAsDouble(), (TCHAR)sp.GetFlags());
			break;
		}
		break;

	}
}
Esempio n. 5
0
void CToolsHelper::UpdateMenu(CCmdUI* pCmdUI, const CUserToolArray& tools, CMenuIconMgr& iconMgr)
{
	if (pCmdUI->m_pMenu)
	{
		CUserToolArray aTools;
		aTools.Copy(tools);
		
		// delete existing tool entries and their icons first
		for (int nTool = 0; nTool < m_nSize; nTool++)
		{
			pCmdUI->m_pMenu->DeleteMenu(pCmdUI->m_nID + nTool, MF_BYCOMMAND);
			iconMgr.DeleteImage(m_nStartID + nTool);
		}
		
		// if we have any tools to add we do it here
		if (aTools.GetSize())
		{
			// add valid tools only by first removing invalid items
			int nTool = aTools.GetSize();
			
			while (nTool--)
			{
				if (aTools[nTool].sToolName.IsEmpty() || aTools[nTool].sToolPath.IsEmpty())
					aTools.RemoveAt(nTool);
			}
			
			if (aTools.GetSize())
			{
				CSysImageList sil; // for menu icons
				VERIFY(sil.Initialize());
		
				int nPos = 0;
				
				for (nTool = 0; nTool < aTools.GetSize(); nTool++)
				{
					const USERTOOL& tool = aTools[nTool];
					CString sMenuItem;
					
					if (nPos < 9)
						sMenuItem.Format(_T("&%d %s"), nPos + 1, tool.sToolName);
					else
						sMenuItem = tool.sToolName;
					
					pCmdUI->m_pMenu->InsertMenu(pCmdUI->m_nIndex++, MF_BYPOSITION | MF_STRING, 
						m_nStartID + nTool, sMenuItem);

					iconMgr.SetImage(m_nStartID + nTool, GetToolIcon(sil, tool));
					
					nPos++;
				}
				
				
				// update end menu count
				pCmdUI->m_nIndex--; // point to last menu added
				pCmdUI->m_nIndexMax = pCmdUI->m_pMenu->GetMenuItemCount();
				
				pCmdUI->m_bEnableChanged = TRUE;    // all the added items are enabled
			}
		}
		
		// if nothing to add just re-add placeholder
		if (!aTools.GetSize())
		{
			pCmdUI->m_pMenu->InsertMenu(pCmdUI->m_nIndex, MF_BYPOSITION | MF_STRING | MF_GRAYED, 
				m_nStartID, CEnString(IDS_USERDEFINEDTOOLS));
		}
	}
}
Esempio n. 6
0
void CPreferencesToolPage::OnImport() 
{
	BOOL bContinue = TRUE;

	while (bContinue)
	{
		CFileOpenDialog dialog(IDS_IMPORTPREFS_TITLE, 
								_T("ini"), 
								NULL, 
								OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY | OFN_FILEMUSTEXIST, 
								CEnString(IDS_INIFILEFILTER));
		
		if (dialog.DoModal() == IDOK)
		{
			CIni ini(dialog.GetPathName());

			int nTools = ini.GetInt(_T("Tools"), _T("ToolCount"), 0);

			if (!nTools)
				bContinue = (AfxMessageBox(IDS_INIHASNOTOOLS, MB_YESNO) == IDYES);
			else
			{
				int nCurCount = m_lcTools.GetItemCount();

				for (int nTool = 0; nTool < nTools; nTool++)
				{
					CString sKey = Misc::MakeKey(_T("Tools\\Tool%d"), nTool + 1);
					
					CString sName = ini.GetString(sKey, _T("Name"));
					CString sPath = ini.GetString(sKey, _T("Path"));
					CString sIconPath = ini.GetString(sKey, _T("IconPath"));
					BOOL bRunMinimized = ini.GetBool(sKey, _T("RunMinimized"), FALSE);
					CString sCmdline = ini.GetString(sKey, _T("Cmdline"));

					// replace safe quotes with real quotes
					sCmdline.Replace(SAFEQUOTE, REALQUOTE);

					// add tool to list
 					int nImage = -1;
					
					nImage = m_ilSys.GetFileImageIndex(sPath);
					
					if (!sIconPath.IsEmpty()) 
						nImage = m_ilSys.GetFileImageIndex(sIconPath);
						
					int nIndex = m_lcTools.InsertItem(nCurCount + nTool, sName, nImage);

					m_lcTools.SetItemText(nIndex, 1, sPath);
					m_lcTools.SetItemText(nIndex, 2, sCmdline);
					m_lcTools.SetItemText(nIndex, 3, sIconPath);
					m_lcTools.SetItemData(nIndex, bRunMinimized);
				}

				bContinue = FALSE;

				CPreferencesPageBase::OnControlChange();
			}
		}
		else
			bContinue = FALSE; // cancelled
	}
}
CTDLFindTaskExpressionListCtrl::CTDLFindTaskExpressionListCtrl()
{
	SetAutoRowPrompt(CEnString(IDS_FP_NEW_RULE));
}
Esempio n. 8
0
void CExportDlg::OnOK()
{
	BOOL bExporterHasFileExt = m_mgrImportExport.ExporterHasFileExtension(s_nFormatOption);

	if (bExporterHasFileExt)
	{
		m_sExportPath.TrimLeft();
		m_sExportPath.TrimRight();

		// if the export path is relative we build a path based
		// on the exe path and check with the user
		if (::PathIsRelative(m_sExportPath))
		{
			CString sPath = FileMisc::GetModuleFileName(), sDrive, sFolder;

			FileMisc::SplitPath(sPath, &sDrive, &sFolder);
			FileMisc::MakePath(sPath, sDrive, sFolder, m_sExportPath);

			CString sMessage;

			if (m_nExportOption == ALLTASKLISTS)
			{
				sMessage.Format(IDS_ED_CONFIRMEXPORTPATHMULTI, sPath);
			}
			else
			{
				sMessage.Format(IDS_ED_CONFIRMEXPORTPATH, sPath);
			}

			UINT nRet = MessageBox(sMessage, CEnString(IDS_ED_CONFIRMEXPORTPATH_TITLE), MB_YESNO);

			if (nRet == IDNO)
			{
				// re-display dialog
				m_eExportPath.SetSel(0, -1);
				m_eExportPath.SetFocus();
				return;
			}
			else
			{
				m_sExportPath = sPath;
			}
		}

		// make sure the output folder is valid
		BOOL bBadFolder = (m_nExportOption == ALLTASKLISTS && !m_bExportOneFile) ?
			!FileMisc::CreateFolder(m_sExportPath) :
			!FileMisc::CreateFolderFromFilePath(m_sExportPath);

		if (bBadFolder)
		{
			CEnString sMessage(IDS_ED_NOMAKEEXPORTPATH, m_sExportPath);

			UINT nRet = MessageBox(sMessage, CEnString(IDS_ED_NOMAKEEXPORTPATH_TITLE), MB_OKCANCEL);

			// re-display dialog
			if (nRet == IDOK)
			{
				m_eExportPath.SetSel(0, -1);
				m_eExportPath.SetFocus();
				return;
			}
			else
			{
				EndDialog(IDCANCEL);
				return;
			}
		}
	}

	CDialog::OnOK();

	// make sure extension is right
	if (bExporterHasFileExt)
	{
		if (m_nExportOption == ACTIVETASKLIST || m_bExportOneFile)
		{
			ReplaceExtension(m_sExportPath, s_nFormatOption);
		}
	}

	if (!m_bSingleTaskList)
	{
		CPreferences prefs;
		prefs.WriteProfileInt(_T("Exporting"), _T("ExportOption"), m_nExportOption);

		if (bExporterHasFileExt)
		{
			if (m_nExportOption == ALLTASKLISTS)
			{
				prefs.WriteProfileString(_T("Exporting"), _T("LastFolder"), m_sExportPath);
			}
			else
			{
				prefs.WriteProfileString(_T("Exporting"), _T("LastFolder"), m_sFolderPath);
			}
		}
	}
}
Esempio n. 9
0
void CPasswordDialog::SetItemText(UINT nIDItem, UINT nIDText)
{
	s_mapText[nIDItem] = CEnString(nIDText);
}
Esempio n. 10
0
BOOL CWndPromptManager::SetComboPrompt(UINT nIDCombo, HWND hwndParent, UINT nIDPrompt)
{
	return SetComboPrompt(GetDlgItem(hwndParent, nIDCombo), CEnString(nIDPrompt));
}
Esempio n. 11
0
BOOL CWndPromptManager::SetComboPrompt(HWND hwndCombo, UINT nIDPrompt)
{
	return SetComboPrompt(hwndCombo, CEnString(nIDPrompt));
}
Esempio n. 12
0
BOOL CWndPromptManager::SetComboEditPrompt(UINT nIDCombo, HWND hwndParent, UINT nIDPrompt)
{
	return SetComboEditPrompt(nIDCombo, hwndParent, CEnString(nIDPrompt));
}
Esempio n. 13
0
BOOL CWndPromptManager::SetEditPrompt(HWND hwndEdit, UINT nIDPrompt)
{
	return SetEditPrompt(hwndEdit, CEnString(nIDPrompt));
}
Esempio n. 14
0
BOOL CWndPromptManager::SetPrompt(UINT nIDCtrl, HWND hwndParent, UINT nIDPrompt, UINT nCheckMsg, 
								  LRESULT lRes, int nVertOffset)
{
	return SetPrompt(nIDCtrl, hwndParent, CEnString(nIDPrompt), nCheckMsg, lRes, nVertOffset);
}
Esempio n. 15
0
BOOL CWndPromptManager::SetPrompt(HWND hWnd, UINT nIDPrompt, UINT nCheckMsg, LRESULT lRes, int nVertOffset)
{
	return SetPrompt(hWnd, CEnString(nIDPrompt), nCheckMsg, lRes, nVertOffset);
}
Esempio n. 16
0
void CTDLFilterBar::RefreshFilterControls(const CFilteredToDoCtrl& tdc)
{
	m_bWantHideParents = tdc.HasStyle(TDCS_ALWAYSHIDELISTPARENTS);

	// column visibility
	CTDCColumnIDArray aColumns;
	tdc.GetVisibleColumns(aColumns);

	SetVisibleFilters(aColumns);

	// get filter
	tdc.GetFilter(m_filter);
	m_nView = tdc.GetView();

	// get custom filter
	m_bCustomFilter = tdc.HasCustomFilter();
	m_sCustomFilter = tdc.GetCustomFilterName();

	if (m_bCustomFilter && m_sCustomFilter.IsEmpty())
		m_sCustomFilter = CEnString(IDS_UNNAMEDFILTER);
	
	// alloc to filter
	CStringArray aItems;

	tdc.GetAllocToNames(aItems);
	m_cbAllocToFilter.SetStrings(aItems);
	m_cbAllocToFilter.AddEmptyString(); // add blank item to top
	
	// alloc by filter
	tdc.GetAllocByNames(aItems);
	m_cbAllocByFilter.SetStrings(aItems);
	m_cbAllocByFilter.AddEmptyString(); // add blank item to top
	
	// category filter
	tdc.GetCategoryNames(aItems);
	m_cbCategoryFilter.SetStrings(aItems);
	m_cbCategoryFilter.AddEmptyString(); // add blank item to top
	
	// status filter
	tdc.GetStatusNames(aItems);
	m_cbStatusFilter.SetStrings(aItems);
	m_cbStatusFilter.AddEmptyString(); // add blank item to top
	
	// version filter
	tdc.GetVersionNames(aItems);
	m_cbVersionFilter.SetStrings(aItems);
	m_cbVersionFilter.AddEmptyString(); // add blank item to top
	
	// tag filter
	tdc.GetTagNames(aItems);
	m_cbTagFilter.SetStrings(aItems);
	m_cbTagFilter.AddEmptyString(); // add blank item to top
	
	// priority
	m_cbPriorityFilter.SetColors(m_aPriorityColors);
	m_cbPriorityFilter.InsertColor(0, NO_COLOR, CString((LPCTSTR)IDS_TDC_ANY)); // add a blank item
	
	// risk never needs changing
	
	// update UI
	UpdateData(FALSE);
	Invalidate();

	// disable controls if a custom filter.
	// just do a repos because this also handles enabled state
	ReposControls();
}