Example #1
0
LRESULT CRoomListWnd::OnListItemDblClick(int idRealWnd, LPNMHDR pnmh, BOOL& bHandled)
{
	LPNMITEMACTIVATE lpnmItem = (LPNMITEMACTIVATE)pnmh;

	if(1001 == idRealWnd){ // 点击教室列表
		char strCheckBox[30];
		if(m_wndListCtrl.InSubItemCheckBox(lpnmItem->ptAction, lpnmItem->iItem)){
			sprintf(strCheckBox, "CHECKBOX CHANGED: %d", !m_wndListCtrl.GetCheckState(lpnmItem->iItem));
			MessageBoxA(NULL, strCheckBox, "", MB_OK);
		}

		//char strListItem[30];
		if(m_wndListCtrl.GetSelectedIndex() == lpnmItem->iItem){
			//sprintf(strListItem, "Clicked id: %d", lpnmItem->iItem);
			//MessageBoxA(NULL, strListItem, "", MB_OK);
			EndDialog(0);
			XMessage_ShowClassroom msg;
			SendXMessage(&msg);
		}
	
	}

	bHandled = FALSE;
	return S_OK;
}
Example #2
0
LRESULT CRoomListWnd::OnInitDialog(HWND hWnd, LPARAM lparam)
{
	if(m_wndListCtrl.Create( 
		GetViewHWND(), NULL, NULL, 
		WS_VISIBLE | WS_CHILD | LVS_REPORT | LVS_SHOWSELALWAYS | LVS_SINGLESEL ,  
		0, DlgControl_RoomListWin_Realwnd, NULL)  ==  NULL){
		return S_FALSE;
	}
	XMessage_GetRoomList msg;
    SendXMessage(&msg);
	_ColumnInit();

	return S_OK;
}
Example #3
0
HRESULT CRoomMgr::OnNetMessage( const CMessage& msg )
{
    switch(msg.GetMessageType())
    {
    case MSG_ACL_TYPE:
        const MSG_ACL* msgReal = dynamic_cast<const MSG_ACL*>(&msg);
        if(msgReal)
        {
            XMessage_GetRoomList_Result result;
            msgReal->GetRoomList(result.roomID);
            SendXMessage(&result);
        }
    }
    return S_OK;
}
Example #4
0
VOID CRoomListWnd::OnEnterRoomResult(XMessage_EnterRoom_Result *pMsg)
{
    if(pMsg != nullptr)
    {
        if(pMsg->retTag == 0)
        {
            EndDialog(0);
            XMessage_ShowClassroom msg;
		    SendXMessage(&msg);
        }
        else
        {
            MessageBox(_T("½øÈëʧ°Ü"));
        }
    }
}
Example #5
0
BOOL CLoginImpl::CheckLoginRequest( XMessage_Login* pMsg )
{
	CString& userName = pMsg->username;
	CString& pwd = pMsg->pwd;
	XMessage_LoginError error;
	if (userName.GetLength() == 0)
	{
		error.result = Result_UserName_LengthError;
	}
	else if (userName.Find(_T("sparta")))
	{
		error.result = Result_UserName_InvalidChar;
	}
	else if (pwd.GetLength() == 0)
	{
		error.result = Result_Pwd_LengthError;
	}

	SendXMessage(&error);
	return ResultSucceeded(error.result);
}
Example #6
0
int main(int argc, char *argv[])
{
	XDisplay=XOpenDisplay(NULL);



	const char* windowClassName = "SkypeTab";
	const char* wClPrefix = "--skypetab-class=";
	size_t wClPrefixLen = strlen(wClPrefix);
	for(int c=1; c<argc; c++)
	{
		if(strncmp(argv[c], wClPrefix, wClPrefixLen) == 0)
		{
			windowClassName=argv[c] + wClPrefixLen;
		}
	}

	Window instance = FindWindowByClass (windowClassName);
	if(instance!=0)
	{
		SendXMessage(instance, "ACT");
		printf("Activated previous instance\n");
		return 0;
	}

	char*newArgv[1024];
	memset(newArgv, 0, sizeof(newArgv));
	newArgv[0]="skype";
	for(int c=1; c<argc; c++)
		newArgv[c]=argv[c];

	execvp("skype", newArgv);
	int err=errno;

	char errS[1024];
	errS[0]=0;
	strerror_r(err, errS, 1024);
	printf("execvp(\"skype\", ...) failed: %i %s\n", err, errS);

}
Example #7
0
HRESULT CLoginImpl::OnNetMessage( const CMessage& msg )
{
	switch(msg.GetMessageType())
	{
	case MSG_ALI_TYPE:
		const MSG_ALI* msgReal = dynamic_cast<const MSG_ALI*>(&msg);
		if (msgReal)
		{
			XMessage_Login_Result loginResult;
			loginResult.success = msgReal->GetLoginResult()?FALSE:TRUE;
			loginResult.userToken = msgReal->GetToken();
			BYTE* pGuid = (byte *)msgReal->GetATLGUID();
			if (pGuid && 
				msgReal->GetATLGUIDLen()==sizeof(loginResult.guid)/sizeof(loginResult.guid[0]))
			{
				memcpy(loginResult.guid,pGuid,sizeof(loginResult.guid)/sizeof(loginResult.guid[0]));
			}
			SendXMessage(&loginResult);
		}
		break;
	}
	return S_OK;
}
Example #8
0
LRESULT CRoomListWnd::OnListItemDblClick(int idRealWnd, LPNMHDR pnmh, BOOL& bHandled)
{
	LPNMITEMACTIVATE lpnmItem = (LPNMITEMACTIVATE)pnmh;
    XMessage_EnterRoom msg;
    msg.roomId = 1000;
    msg.password = "******";
    msg.verificationCode = "111";
    SendXMessage(&msg);
    CString roomId;
    LVCOLUMN column;
//    m_wndListCtrl.GetItemText(lpnmItem->iItem, lpnmItem->iSubItem, roomId);
	//char strListItem[30];
	if(m_wndListCtrl.GetSelectedIndex() == lpnmItem->iItem)
    {
		//sprintf(strListItem, "Clicked id: %d", lpnmItem->iItem);
		//MessageBoxA(NULL, strListItem, "", MB_OK);
		
		
	}

	bHandled = FALSE;
	return S_OK;
}
static void *
winMultiWindowWMProc (void *pArg)
{
  WMProcArgPtr		pProcArg = (WMProcArgPtr)pArg;
  WMInfoPtr		pWMInfo = pProcArg->pWMInfo;
  
  /* Initialize the Window Manager */
  winInitMultiWindowWM (pWMInfo, pProcArg);
  
#if CYGMULTIWINDOW_DEBUG
  ErrorF ("winMultiWindowWMProc ()\n");
#endif

  /* Loop until we explicity break out */
  for (;;)
    {
      WMMsgNodePtr	pNode;

      /* Pop a message off of our queue */
      pNode = PopMessage (&pWMInfo->wmMsgQueue);
      if (pNode == NULL)
	{
	  /* Bail if PopMessage returns without a message */
	  /* NOTE: Remember that PopMessage is a blocking function. */
	  ErrorF ("winMultiWindowWMProc - Queue is Empty?\n");
	  pthread_exit (NULL);
	}

#if CYGMULTIWINDOW_DEBUG
      ErrorF ("winMultiWindowWMProc - %d ms MSG: %d ID: %d\n",
	      GetTickCount (), (int)pNode->msg.msg, (int)pNode->msg.dwID);
#endif
      
      /* Branch on the message type */
      switch (pNode->msg.msg)
	{
#if 0
	case WM_WM_MOVE:
	  ErrorF ("\tWM_WM_MOVE\n");
	  break;

	case WM_WM_SIZE:
	  ErrorF ("\tWM_WM_SIZE\n");
	  break;
#endif

	case WM_WM_RAISE:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_RAISE\n");
#endif

	  /* Raise the window */
	  XRaiseWindow (pWMInfo->pDisplay, pNode->msg.iWindow);
	  break;

	case WM_WM_LOWER:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_LOWER\n");
#endif

	  /* Lower the window */
	  XLowerWindow (pWMInfo->pDisplay, pNode->msg.iWindow);
	  break;

	case WM_WM_MAP:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_MAP\n");
#endif
	  {
	    XWindowAttributes		attr;
	    char			*pszName;
#if 0
	    XWMHints			*pHints;
#endif

	    /* Get the window attributes */
	    XGetWindowAttributes (pWMInfo->pDisplay,
				  pNode->msg.iWindow,
				  &attr);
	    if (!attr.override_redirect)
	      {
		/* Set the Windows window name */
		GetWindowName(pWMInfo->pDisplay, pNode->msg.iWindow, &pszName);
		SetWindowText (pNode->msg.hwndWindow, pszName);
		free (pszName);
	      }
	  }
	  break;

	case WM_WM_UNMAP:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_UNMAP\n");
#endif
	  
	  /* Unmap the window */
	  XUnmapWindow(pWMInfo->pDisplay, pNode->msg.iWindow);
	  break;

	case WM_WM_KILL:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_KILL\n");
#endif
	  {
	    int				i, n, found = 0;
	    Atom			*protocols;
	    
	    /* --- */
	    if (XGetWMProtocols (pWMInfo->pDisplay,
				 pNode->msg.iWindow,
				 &protocols,
				 &n))
	      {
		for (i = 0; i < n; ++i)
		  if (protocols[i] == pWMInfo->atmWmDelete)
		    ++found;
		
		XFree (protocols);
	      }

	    /* --- */
	    if (found)
	      SendXMessage (pWMInfo->pDisplay,
			    pNode->msg.iWindow,
			    pWMInfo->atmWmProtos,
			    pWMInfo->atmWmDelete);
	    else
	      XKillClient (pWMInfo->pDisplay,
			   pNode->msg.iWindow);
	  }
	  break;

	case WM_WM_ACTIVATE:
#if CYGMULTIWINDOW_DEBUG
	  ErrorF ("\tWM_WM_ACTIVATE\n");
#endif
	  
	  /* Set the input focus */
	  XSetInputFocus (pWMInfo->pDisplay,
			  pNode->msg.iWindow,
			  RevertToPointerRoot,
			  CurrentTime);
	  break;

	case WM_WM_X_EVENT:
	  /* Process all X events in the Window Manager event queue */
	  FlushXEvents (pWMInfo);
	  break;

	default:
	  ErrorF ("winMultiWindowWMProc - Unknown Message.\n");
	  pthread_exit (NULL);
	  break;
	}

      /* Free the retrieved message */
      free (pNode);

      /* Flush any pending events on our display */
      XFlush (pWMInfo->pDisplay);
    }

  /* Free the condition variable */
  pthread_cond_destroy (&pWMInfo->wmMsgQueue.pcNotEmpty);
  
  /* Free the mutex variable */
  pthread_mutex_destroy (&pWMInfo->wmMsgQueue.pmMutex);
  
  /* Free the passed-in argument */
  free (pProcArg);
  
#if CYGMULTIWINDOW_DEBUG
  ErrorF("-winMultiWindowWMProc ()\n");
#endif
}