Exemplo n.º 1
0
VOID AddHotkey(HWND hwndList, PSZ pszName, DWORD dwDefault)
{
	LVITEM lvi;
	char szINI[MAX_PATH];
	char szBuffer[100];
	INT x;
	PHOTKEY_DATA phd;

	GetModuleFileName(GetModuleHandle(NULL), szINI, MAX_PATH);
	for(x = lstrlen(szINI); x && szINI[x] != '\\'; x--);
	szINI[x] = '\0';
	lstrcat(szINI, "\\bwh.ini");

	phd = (PHOTKEY_DATA)HeapAlloc(GetProcessHeap(), 0, sizeof(HOTKEY_DATA));
	phd->pszName = pszName;
	phd->dwDefault = dwDefault;
	phd->dwValue = GetPrivateProfileInt("HOTKEYS", pszName, dwDefault, szINI);

	lvi.mask = LVIF_PARAM | LVIF_TEXT;
	lvi.pszText = pszName;
	lvi.lParam = (LPARAM)phd;
	lvi.iSubItem = 0;
	lvi.iItem = ListView_GetItemCount(hwndList);
	ListView_InsertItem(hwndList, &lvi);

	
	lvi.mask = LVIF_TEXT;
	lvi.iSubItem = 1;
	lvi.pszText = HotkeyToString(phd->dwValue, szBuffer);
	ListView_SetItem(hwndList, &lvi);
}
Exemplo n.º 2
0
VOID SetHotkey(HWND hwndList, DWORD dwKey)
{
	LVITEM lvi;
	char szBuffer[100];
	lvi.iItem = -1;

	lvi.iItem = ListView_GetNextItem(hwndList, lvi.iItem, LVIS_SELECTED);
	while(lvi.iItem != -1)
	{
		lvi.mask = LVIF_PARAM;
		lvi.iSubItem = 0;
		ListView_GetItem(hwndList, &lvi);
		
		if(dwKey == -1)
			PHOTKEY_DATA(lvi.lParam)->dwValue = PHOTKEY_DATA(lvi.lParam)->dwDefault;
		else
			PHOTKEY_DATA(lvi.lParam)->dwValue = dwKey;
		ListView_SetItem(hwndList, &lvi);
		
		lvi.mask = LVIF_TEXT;
		lvi.iSubItem = 1;
		lvi.pszText = HotkeyToString(PHOTKEY_DATA(lvi.lParam)->dwValue, szBuffer);
		ListView_SetItem(hwndList, &lvi);

		lvi.iItem = ListView_GetNextItem(hwndList, lvi.iItem, LVIS_SELECTED);
	}
}
void CWinHotkeyCtrl::UpdateText()
{
	CString sText;
	HotkeyToString(m_vkCode, m_fModSet, sText);
	SetWindowText((LPCTSTR)sText);
	SetSel(0x8fffffff, 0x8fffffff, FALSE);
}
Exemplo n.º 4
0
std::string Hotkey::PrettyPrint(GG::Key key, GG::Flags<GG::ModKey> mod)
{
    std::string ret = HotkeyToString(key, mod);
    ReplaceInString(ret, "GGK_", "");

    std::string ks = HotkeyToString(key, GG::MOD_KEY_NONE);
    ReplaceInString(ks, "GGK_", "");
    if(mod == GG::MOD_KEY_CTRL)
        return "CTRL+" + ks;
    if(mod == GG::MOD_KEY_SHIFT)
        return "SHIFT+" + ks;
    if(mod == GG::MOD_KEY_ALT)
        return "ALT+" + ks;
    ReplaceInString(ret, "MOD_KEY_", "");
    return ret;
}
Exemplo n.º 5
0
BOOL HotkeyToString(DWORD dwHk, CString& s)
{
    return HotkeyToString(LOBYTE(LOWORD(dwHk)), HIBYTE(LOWORD(dwHk)), s);
}
void CPPageAccelTbl::OnEndlabeleditList(NMHDR* pNMHDR, LRESULT* pResult)
{
	LV_DISPINFO* pDispInfo = (LV_DISPINFO*)pNMHDR;
	LV_ITEM* pItem = &pDispInfo->item;

	*pResult = FALSE;

	if (!m_list.m_fInPlaceDirty) {
		return;
	}

	if (pItem->iItem < 0) {
		return;
	}

	wmcmd& wc = m_wmcmds.GetAt((POSITION)m_list.GetItemData(pItem->iItem));

	switch (pItem->iSubItem) {
		case COL_KEY: {
			UINT cod, mod;
			CWinHotkeyCtrl* pWinHotkey = (CWinHotkeyCtrl*)m_list.GetDlgItem(IDC_WINHOTKEY1);
			pWinHotkey->GetWinHotkey(&cod, &mod);
			wc.fVirt = 0;
			if (mod & MOD_ALT) {
				wc.fVirt |= FALT;
			}
			if (mod & MOD_CONTROL) {
				wc.fVirt |= FCONTROL;
			}
			if (mod & MOD_SHIFT) {
				wc.fVirt |= FSHIFT;
			}
			wc.fVirt |= FVIRTKEY;
			wc.key = cod;

			CString str;
			HotkeyToString(cod, mod, str);
			m_list.SetItemText(pItem->iItem, pItem->iSubItem, str);

			*pResult = TRUE;
		}
		break;
		case COL_APPCMD: {
			int i = pItem->lParam;
			if (i >= 0 && i < _countof(g_CommandList)) {
				wc.appcmd = g_CommandList[i].appcmd;
				m_list.SetItemText(pItem->iItem, COL_APPCMD, pItem->pszText);
				*pResult = TRUE;
			}
		}
		break;
		case COL_MOUSE:
			wc.mouse = pItem->lParam;
			m_list.SetItemText(pItem->iItem, COL_MOUSE, pItem->pszText);
			break;
		case COL_MOUSE_FS:
			wc.mouseFS = pItem->lParam;
			m_list.SetItemText(pItem->iItem, COL_MOUSE_FS, pItem->pszText);
			break;
		case COL_RMCMD:
			wc.rmcmd = CStringA(CString(pItem->pszText)).Trim();
			wc.rmcmd.Replace(' ', '_');
			m_list.SetItemText(pItem->iItem, pItem->iSubItem, CString(wc.rmcmd));
			*pResult = TRUE;
			break;
		case COL_RMREPCNT:
			CString str = CString(pItem->pszText).Trim();
			wc.rmrepcnt = _tcstol(str, NULL, 10);
			str.Format(_T("%d"), wc.rmrepcnt);
			m_list.SetItemText(pItem->iItem, pItem->iSubItem, str);
			*pResult = TRUE;
			break;
	}

	if (*pResult) {
		SetModified();
	}
}
Exemplo n.º 7
0
std::string Hotkey::ToString() const
{ return HotkeyToString(m_key, m_mod_keys); }