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

📄 renumwizselectsymbolspage.cpp

📁 ResOrg 图形化管理Vc项目的资源ID的工具的源代码。 ResOrg - Manage and Renumber Resource Symbol IDs Introduction The
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	if (m_pEngine->Select(pSymbol) )
	{
		m_ctrlAvailableSymbols.RemoveSymbol(pSymbol);
		m_ctrlSelectedSymbols.AddSymbol(pSymbol);

		return TRUE;
	}
	return FALSE;
}
 

BOOL CRenumWizSelectSymbolsPage::IsSelected(CResourceSymbol* pSymbol) const
{
	return m_pEngine->IsSelected(pSymbol);
}


BOOL CRenumWizSelectSymbolsPage::Deselect(CResourceSymbol* pSymbol)
{
	if (m_pEngine->Deselect(pSymbol) )
	{
		m_ctrlSelectedSymbols.RemoveSymbol(pSymbol);
		m_ctrlAvailableSymbols.AddSymbol(pSymbol);

		return TRUE;
	}
	return FALSE;
}


/////////////////////////////////////////////////////////////////////////////
// CRenumWizSelectSymbolsPage message handlers

/******************************************************************************
 *	"Select" button handler
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnClickedSelect(void) 
{
	// Work out which control is focused (left or right):
	//
	//	*	If the left control is focused, add to the selection
	//	*	If the right control is focused, remove from the selection
	//
	// Note that we use a temporary list of symbols to prevent the list controls
	// being modified whilst their contents are being examined.
	switch (m_eSelMode)
	{
		case SEL_MODE_ADD:
			{
				m_ctrlAvailableSymbols.SetRedraw(FALSE);
				m_ctrlSelectedSymbols.SetRedraw(FALSE);

				CResourceSymbolList listSymbols;

				POSITION pos = m_ctrlAvailableSymbols.GetFirstSelectedItemPosition();
				while (NULL != pos)
				{
					int nItem = m_ctrlAvailableSymbols.GetNextSelectedItem(pos);
					ASSERT(nItem >= 0);

					CResourceSymbol* pSymbol = (CResourceSymbol*)m_ctrlAvailableSymbols.GetItemData(nItem);
					ASSERT(NULL != pSymbol);
					listSymbols.AddTail(pSymbol);
				}

				pos = listSymbols.GetHeadPosition();
				while (NULL != pos)
				{
					CResourceSymbol* pSymbol = listSymbols.GetNext(pos);
					Select(pSymbol);
				}
			
				m_ctrlAvailableSymbols.SetRedraw(TRUE);
				m_ctrlSelectedSymbols.SetRedraw(TRUE);
			}
			break;

		case SEL_MODE_REMOVE:
			{
				m_ctrlAvailableSymbols.SetRedraw(FALSE);
				m_ctrlSelectedSymbols.SetRedraw(FALSE);

				CResourceSymbolList listSymbols;

				POSITION pos = m_ctrlSelectedSymbols.GetFirstSelectedItemPosition();
				while (NULL != pos)
				{
					int nItem = m_ctrlSelectedSymbols.GetNextSelectedItem(pos);
					ASSERT(nItem >= 0);

					CResourceSymbol* pSymbol = (CResourceSymbol*)m_ctrlSelectedSymbols.GetItemData(nItem);
					ASSERT(NULL != pSymbol);
					listSymbols.AddTail(pSymbol);
				}

				pos = listSymbols.GetHeadPosition();
				while (NULL != pos)
				{
					CResourceSymbol* pSymbol = listSymbols.GetNext(pos);
					Deselect(pSymbol);
				}
			
				m_ctrlAvailableSymbols.SetRedraw(TRUE);
				m_ctrlSelectedSymbols.SetRedraw(TRUE);
			}
			break;

		default:
			ASSERT(FALSE);
			break;
	}
	SetAvailableControls();
}


/******************************************************************************
 *	"Select All" button handler
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnClickedSelectAll(void)
{
	int nItemCount = m_ctrlAvailableSymbols.GetItemCount();
	if (nItemCount > 0)
	{
		m_ctrlAvailableSymbols.SetRedraw(FALSE);
		m_ctrlSelectedSymbols.SetRedraw(FALSE);

		for (int nItem = nItemCount - 1; nItem >= 0; nItem--)
		{
			CResourceSymbol* pSymbol = (CResourceSymbol*)m_ctrlAvailableSymbols.GetItemData(nItem);
			ASSERT(NULL != pSymbol);
			Select(pSymbol);
		}
		m_ctrlAvailableSymbols.SetRedraw(TRUE);
		m_ctrlSelectedSymbols.SetRedraw(TRUE);

		SetMode(SEL_MODE_NONE);
	}
	SetAvailableControls();
}


/******************************************************************************
 *	"Deselect All" button handler
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnClickedDeselectAll(void)
{
	int nItemCount = m_ctrlSelectedSymbols.GetItemCount();
	if (nItemCount > 0)
	{
		m_ctrlAvailableSymbols.SetRedraw(FALSE);
		m_ctrlSelectedSymbols.SetRedraw(FALSE);

		for (int nItem = nItemCount - 1; nItem >= 0; nItem--)
		{
			CResourceSymbol* pSymbol = (CResourceSymbol*)m_ctrlSelectedSymbols.GetItemData(nItem);
			ASSERT(NULL != pSymbol);
			Deselect(pSymbol);
		}
		m_ctrlAvailableSymbols.SetRedraw(TRUE);
		m_ctrlSelectedSymbols.SetRedraw(TRUE);

		SetMode(SEL_MODE_NONE);
	}
	SetAvailableControls();
}


/******************************************************************************
 *	"Auto" button handler
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnClickedAutoSelect(void) 
{
	CRenumWizAutoSelectSymbolsDlg dlg;

	if (IDOK == dlg.DoModal() )
	{
		OnClickedDeselectAll();  // Deselect all symbols to start with

		m_ctrlAvailableSymbols.SetRedraw(FALSE);
		m_ctrlSelectedSymbols.SetRedraw(FALSE);

		POSITION pos = m_pEngine->m_listAvailableSymbols.GetHeadPosition();
		while (NULL != pos)
		{
			CResourceSymbol* pSymbol = m_pEngine->m_listAvailableSymbols.GetNext(pos);
			if (NULL != pSymbol)
			{
				BOOL bRenumberSymbol = TRUE;

				if (dlg.m_bRenumberConflicts)
				{
					// If this option is set only renumber conflicting symbols
					if (!pSymbol->HasConflicts() )
					{
						bRenumberSymbol = FALSE;
						continue;
					}
				}
				switch (pSymbol->GetType())
				{
					case SYM_RESOURCE:
						bRenumberSymbol = dlg.m_bRenumberResources;
						break;

					case SYM_BITMAP:
						bRenumberSymbol = dlg.m_bRenumberBitmaps;
						break;

					case SYM_CONTROL:
						bRenumberSymbol = dlg.m_bRenumberControls;
						break;

					case SYM_DIALOG:
						bRenumberSymbol = dlg.m_bRenumberDialogs;
						break;

					case SYM_MENU:
						bRenumberSymbol = dlg.m_bRenumberMenus;
						break;

					case SYM_ICON:
						bRenumberSymbol = dlg.m_bRenumberIcons;
						break;

					case SYM_PROMPT:
						bRenumberSymbol = dlg.m_bRenumberPrompts;
						break;

					case SYM_STRING:
						bRenumberSymbol = dlg.m_bRenumberStrings;
						break;

					case SYM_COMMAND:
						bRenumberSymbol = dlg.m_bRenumberCommands;
						break;

					default:
						break;
				}

				if (bRenumberSymbol)
				{
					Select(pSymbol);
				}
			}
		}
		m_ctrlAvailableSymbols.SetRedraw(TRUE);
		m_ctrlSelectedSymbols.SetRedraw(TRUE);

		SetAvailableControls();
	}
}


/******************************************************************************
 *	Called when an item changes in one of the list controls
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnItemchangedAvailSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	if (GetAvailableSymbolCount(TRUE) > 0)
	{
		SetMode(SEL_MODE_ADD);
	}
	else
	{
		SetMode(SEL_MODE_NONE);
	}
}


void CRenumWizSelectSymbolsPage::OnItemchangedSelectedSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	if (GetSelectedSymbolCount(TRUE) > 0)
	{
		SetMode(SEL_MODE_REMOVE);
	}
	else
	{
		SetMode(SEL_MODE_NONE);
	}
}


/******************************************************************************
 *	Called when one of the list controls receives the input focus
 *
 ******************************************************************************/

void CRenumWizSelectSymbolsPage::OnSetfocusAvailSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	if (GetAvailableSymbolCount(TRUE) > 0)
	{
		SetMode(SEL_MODE_ADD);
	}
}


void CRenumWizSelectSymbolsPage::OnSetfocusSelectedSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	if (GetSelectedSymbolCount() > 0)
	{
		SetMode(SEL_MODE_REMOVE);
	}
}


void CRenumWizSelectSymbolsPage::OnDblClickAvailableSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	CResourceSymbolList listSymbols;
	m_ctrlAvailableSymbols.GetSelection(listSymbols);

	if (listSymbols.GetCount() > 0)
	{
		m_ctrlSelectedSymbols.SetRedraw(FALSE);
		m_ctrlAvailableSymbols.SetRedraw(FALSE);

		POSITION pos = listSymbols.GetHeadPosition();
		while (NULL != pos)
		{
			CResourceSymbol* pSymbol = listSymbols.GetNext(pos);
			if (NULL != pSymbol)
			{
				Select(pSymbol);
			}
		}
		m_ctrlAvailableSymbols.SetRedraw(TRUE);
		m_ctrlSelectedSymbols.SetRedraw(TRUE);
	}
}


void CRenumWizSelectSymbolsPage::OnDblClickSelectedSymbols(NMHDR* pNMHDR, LRESULT* pResult) 
{
	UNREFERENCED_PARAMETER(pNMHDR);
	UNREFERENCED_PARAMETER(pResult);

	CResourceSymbolList listSymbols;
	m_ctrlSelectedSymbols.GetSelection(listSymbols);

	if (listSymbols.GetCount() > 0)
	{
		m_ctrlAvailableSymbols.SetRedraw(FALSE);
		m_ctrlSelectedSymbols.SetRedraw(FALSE);

		POSITION pos = listSymbols.GetHeadPosition();
		while (NULL != pos)
		{
			CResourceSymbol* pSymbol = listSymbols.GetNext(pos);
			if (NULL != pSymbol)
			{
				Deselect(pSymbol);
			}
		}
		m_ctrlSelectedSymbols.SetRedraw(TRUE);
		m_ctrlAvailableSymbols.SetRedraw(TRUE);
	}
}


⌨️ 快捷键说明

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