Example #1
0
	int ListView_SetCurSel (HWND hwnd , int pos) {
		ListView_Deselect(hwnd);
		ListView_SetItemState(hwnd , pos , LVIS_SELECTED , LVIS_SELECTED);
		ListView_SetSelectionMark(hwnd , pos);
		ListView_SetHotItem(hwnd , pos);
		ListView_EnsureVisible(hwnd , pos , 0);
		return 1;
	}
Example #2
0
//
//  FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND	- process the application menu
//  WM_PAINT	- Paint the main window
//  WM_DESTROY	- post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc;

	switch (message) 
	{
	case WM_TIMER:
		g_console.OnMessage(CMSG_REFRESH, NULL);
		break;
	case WM_NOTIFY:
			{
				LPNMHDR pnmh = (LPNMHDR)lParam;
				if(pnmh)
				{
					if(pnmh->hwndFrom == m_WndNetworks)
					{
						// message from the list view
						if(pnmh->code == LVN_ITEMCHANGED)
						{
							LPNMLISTVIEW lpn = (LPNMLISTVIEW)pnmh;				
							g_selected_item = lpn->iItem;
							ListView_GetItemText(m_WndNetworks, lpn->iItem, 0, g_ip_address, 1022); 
							ListView_SetHotItem(m_WndNetworks, g_selected_item);
						}
					}
					else if(pnmh->hwndFrom == m_WndFoundObjects)
					{
						// message from the list view
						if(pnmh->code == LVN_ITEMCHANGED)
						{
							LPNMLISTVIEW lpn = (LPNMLISTVIEW)pnmh;				
						}
					}
					else if(pnmh->hwndFrom == m_WndTab)
					{
						if(pnmh->code == TCN_SELCHANGE)
						{
							int iSel = TabCtrl_GetCurSel(m_WndTab);
							switch(iSel)
							{
							case 0:
								ShowWindow(m_WndFoundObjects,SW_HIDE);
								ShowWindow(m_WndNetworks,SW_SHOWNORMAL);
								break;
							case 1:
								ShowWindow(m_WndNetworks,SW_HIDE);
								ShowWindow(m_WndFoundObjects,SW_SHOWNORMAL);
								break;
							default:
								TRACE0("error, tab number not implemented!");
								break;
							}
						}
					}
				}
			}
			break;
	case WM_COMMAND:
		wmId    = LOWORD(wParam); 
		wmEvent = HIWORD(wParam); 
		// Parse the menu selections:
		switch (wmId)
		{
		case ID_SERVER_STARTSERVER:
			if(g_console.m_ServerEngine)
			{
				MessageBox(hWnd, "Server is already running", "Error", MB_OK);
			}
			else if(IDOK == DialogBox(hInst, (LPCTSTR)IDD_DIALOG_SERVER, hWnd, (DLGPROC)ConfigServer))
			{
				g_console.OnMessage(CMSG_STARTSERVER, NULL);						
			}
			break;
		case ID_SERVER_STOPSERVER:
			g_console.OnMessage(CMSG_STOPSERVER, NULL);			
			break;
		case ID_PEER_ADDPEER:
			if(IDOK == DialogBox(hInst, (LPCTSTR)IDD_DIALOG_IP, hWnd, (DLGPROC)ConfigIP))
			{
				g_console.OnMessage(CMSG_ADDPEER, NULL);			
			}
			break;
		case ID_PEER_REMOVEPEER:
			g_console.OnMessage(CMSG_REMOVEPEER, NULL);			
			break;
		case IDM_ABOUT:
			DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
	case WM_PAINT:
		hdc = BeginPaint(hWnd, &ps);
		// TODO: Add any drawing code here...
		EndPaint(hWnd, &ps);
		break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}
Example #3
0
static VOID
InitLangList(HWND hWnd, HIMAGELIST hImgList)
{
    HKEY hKey, hSubKey;
    TCHAR szBuf[MAX_PATH], szPreload[CCH_LAYOUT_ID + 1], szSub[CCH_LAYOUT_ID + 1];
    LAYOUT_ITEM lItem;
    DWORD dwIndex = 0, dwType, dwSize;
    LV_ITEM item = {0};
    HWND hList = GetDlgItem(hWnd, IDC_KEYLAYOUT_LIST);
    INT i, imgIndex;

    item.mask = LVIF_TEXT | LVIF_PARAM | LVIF_STATE | LVIF_IMAGE;

    if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Preload"),
        0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
    {
        dwSize = sizeof(lItem.ValName);

        while (RegEnumValue(hKey, dwIndex, lItem.ValName, &dwSize, NULL, &dwType, NULL, NULL) == ERROR_SUCCESS)
        {
            dwSize = sizeof(szPreload);
            RegQueryValueEx(hKey, lItem.ValName, NULL, NULL, (LPBYTE)szPreload, &dwSize);

            lItem.LangId = (LANGID)_tcstoul(szPreload, NULL, 16);

            GetLocaleInfo(lItem.LangId, LOCALE_SISO639LANGNAME, (LPTSTR)szBuf, sizeof(szBuf) / sizeof(TCHAR));
            lstrcpy(lItem.IndName, _tcsupr(szBuf));
            imgIndex = ImageList_AddIcon(hImgList, CreateLayoutIcon(lItem.IndName));

            GetLocaleInfo(lItem.LangId, LOCALE_SLANGUAGE, (LPTSTR)szBuf, sizeof(szBuf) / sizeof(TCHAR));
            lstrcpy(lItem.LangName, szBuf);

            // Does this keyboard layout have a substitute?
            // Then add the substitute instead of the Layout ID
            if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Keyboard Layout\\Substitutes"),
                             0, KEY_QUERY_VALUE, &hSubKey) == ERROR_SUCCESS)
            {
                dwSize = sizeof(szSub);

                if (RegQueryValueEx(hSubKey, szPreload, NULL, NULL, (LPBYTE)szSub, &dwSize) == ERROR_SUCCESS)
                {
                    lstrcpy(szPreload, szSub);
                }

                RegCloseKey(hSubKey);
            }

            GetLayoutName(szPreload, lItem.LayoutName);

            item.pszText = lItem.LangName;
            item.iItem   = (INT) dwIndex;
            item.lParam  = (LPARAM)_ttoi(lItem.ValName);
            item.iImage  = imgIndex;
            i = ListView_InsertItem(hList, &item);

            ListView_SetItemText(hList, i, 1, lItem.LayoutName);

            dwIndex++;

            if (lstrcmp(lItem.ValName, _T("1")) == 0)
            {
                (VOID) ListView_SetHotItem(hList, i);
            }
        }

        RegCloseKey(hKey);
    }
}