void QmitkNavigationDataPlayerView::CreateConnections()
{
  connect( m_Controls->m_RdbSequential, SIGNAL(released()), this, SLOT(OnSelectPlayer()) );
  connect( m_Controls->m_RdbTimeBased, SIGNAL(released()), this, SLOT(OnSelectPlayer()) );
  connect( m_Controls->m_BtnOpenFile, SIGNAL(released()), this, SLOT(OnOpenFile()) );
  connect( m_Controls->m_ChkDisplay, SIGNAL(released()), this, SLOT(OnSetDisplay()) );
  connect( m_Controls->m_chkRepeat, SIGNAL(stateChanged(int)), this, SLOT(OnSetRepeat(int)) );
  connect( m_Controls->m_ChkMicroservice, SIGNAL(released()), this, SLOT(OnSetMicroservice()) );

  connect( m_Controls->m_SequentialWidget, SIGNAL(SignalUpdate()), this, SLOT(OnUpdate()) );
  connect( m_Controls->m_TimedWidget, SIGNAL(SignalUpdate()), this, SLOT(OnUpdate()) );

  this->SetInteractionComponentsEnabledState(false);
}
Beispiel #2
0
// -------------------------------------------------------------------------
// 函数		: KUiSelPlayer::OnClickButton
// 功能		: 响应点击按钮
// 参数		: KWndWindow* pWnd ---> 被点击的控件指针
// -------------------------------------------------------------------------
void KUiSelPlayer::OnClickButton(KWndButton* pWnd, bool bDoubleClick)
{
	// ---> 判断点中的是那个控件
	for (int i = 0; i < m_nNumPlayer; i ++)
	{
		if (pWnd == (KWndWindow*)&m_player[i])	// 点中了某个玩家信息框
		{
			OnSelectPlayer(i, !bDoubleClick);
            // 如果是双击,就仿真选择用户
            if (bDoubleClick)
            {
        		OnEnterGame();
            }
			return;
		}
	}

	if (pWnd == (KWndWindow*)&m_btnNew)
		OnNew();
	else if (pWnd == (KWndWindow*)&m_btnCancel)
		OnCancel();
	else if (pWnd == (KWndWindow*)&m_btnOk)
		OnEnterGame();
	else if (pWnd == (KWndWindow*)&m_btnDel)
		OnDel();
}
Beispiel #3
0
int KUiSelPlayer::OnKeyDown(unsigned int uKey)
{
	int			nRet = 1;
	KWndWindow* pActive = NULL;
	KWndButton* pToActive = NULL;
	switch (uKey)
	{
	case VK_RETURN:
		pActive = GetActiveBtn();
		if (pActive == NULL && m_btnOk.IsDisable() == FALSE)
			pActive = &m_btnOk;
		OnClickButton((KWndButton*)pActive, false);
		break;
	case VK_ESCAPE:
		OnCancel();
		nRet = 1;
		break;
	case VK_UP:
		pActive = GetActiveBtn();
		if (pActive == &m_btnCancel)
			pToActive = &m_btnDel;
		else if (pActive == &m_btnDel)
			pToActive = &m_btnNew;
		else if (pActive == &m_btnOk)
			pToActive = &m_btnCancel;
		else
			pToActive = &m_btnOk;
		nRet = 1;
		break;
	case VK_DOWN:
		pActive = GetActiveBtn();
		if (pActive == &m_btnOk)
			pToActive = &m_btnNew;
		else if (pActive == &m_btnNew)
			pToActive = &m_btnDel;
		else if (pActive == &m_btnCancel)
			pToActive = &m_btnOk;
		else
			pToActive = &m_btnCancel;
		nRet = 1;
		break;
	case VK_LEFT:
		if (m_nSelPlayer > 0)
			OnSelectPlayer(m_nSelPlayer - 1);
		else if (m_nSelPlayer < 0 && m_nNumPlayer > 0)
			OnSelectPlayer(0);
		m_btnDel.Enable(m_nSelPlayer >= 0);
		nRet = 1;
		break;
	case VK_RIGHT:
	case VK_SPACE:
		if (m_nSelPlayer < m_nNumPlayer - 1)
			OnSelectPlayer(m_nSelPlayer + 1);
		else if (m_nNumPlayer < 0 && m_nNumPlayer > 0)
			OnSelectPlayer(0);
		m_btnDel.Enable(m_nSelPlayer >= 0);
		nRet = 1;
		break;
	default:
		nRet = 0;
	}
	if (pToActive)
		pToActive->SetCursorAbove();
	return nRet;
}
Beispiel #4
0
// -------------------------------------------------------------------------
// 功能	: 更新
// -------------------------------------------------------------------------
void KUiSelPlayer::UpdateData()
{
	int nSel;
	m_nNumPlayer = g_LoginLogic.GetRoleCount(nSel);
	if (m_nNumPlayer > 0 && nSel < 0)
		m_nSelPlayer = 0;
	else
		m_nSelPlayer = nSel;

	int	x, y;
	//---调整子窗口位置----
	switch(m_nNumPlayer)
	{
	case 1:
		m_player[0].GetPosition(&x, &y);
		x = m_ChildPos[0];
		m_player[0].SetPosition(x, y);
		m_Name[0].GetPosition(&x, &y);
		x = m_ChildPos[1];
		m_Name[0].SetPosition(x, y);
        m_Level[0].GetPosition(&x, &y);
		x = m_ChildPos[2];
		m_Level[0].SetPosition(x, y);
        m_PlayerInfoBg[0].GetPosition(&x, &y);
		x = m_ChildPos[3];
		m_PlayerInfoBg[0].SetPosition(x, y);
		break;
	case 2:
		m_player[0].GetPosition(&x, &y);
		x = m_ChildPos[0] + m_ChildWndXOffset[0];
		m_player[0].SetPosition(x, y);
		x = m_ChildPos[0] + m_ChildWndXOffset[1];
		m_player[1].SetPosition(x, y);

		m_Name[0].GetPosition(&x, &y);
		x = m_ChildPos[1] + m_ChildWndXOffset[0];
		m_Name[0].SetPosition(x, y);
		x = m_ChildPos[1] + m_ChildWndXOffset[1];
		m_Name[1].SetPosition(x, y);

        m_Level[0].GetPosition(&x, &y);
		x = m_ChildPos[2] + m_ChildWndXOffset[0];
		m_Level[0].SetPosition(x, y);
		x = m_ChildPos[2] + m_ChildWndXOffset[1];
		m_Level[1].SetPosition(x, y);

        m_PlayerInfoBg[0].GetPosition(&x, &y);
		x = m_ChildPos[3] + m_ChildWndXOffset[0];
		m_PlayerInfoBg[0].SetPosition(x, y);
		x = m_ChildPos[3] + m_ChildWndXOffset[1];
		m_PlayerInfoBg[1].SetPosition(x, y);
		break;
	case 3:
		m_player[0].GetPosition(&x, &y);
		x = m_ChildPos[0];
		m_player[1].SetPosition(x, y + m_ChildWndYOffset);
		x += m_ChildWndXOffset[2];
		m_player[0].SetPosition(x, y);
		x = m_ChildPos[0] + m_ChildWndXOffset[3];
		m_player[2].SetPosition(x, y);

		m_Name[0].GetPosition(&x, &y);
		x = m_ChildPos[1];
		m_Name[1].SetPosition(x, y + m_ChildWndYOffset);
		x += m_ChildWndXOffset[2];
		m_Name[0].SetPosition(x, y);
		x = m_ChildPos[1] + m_ChildWndXOffset[3];
		m_Name[2].SetPosition(x, y);

        m_Level[0].GetPosition(&x, &y);
		x = m_ChildPos[2];
		m_Level[1].SetPosition(x, y + m_ChildWndYOffset);
		x += m_ChildWndXOffset[2];
		m_Level[0].SetPosition(x, y);
		x = m_ChildPos[2] + m_ChildWndXOffset[3];
		m_Level[2].SetPosition(x, y);

        m_PlayerInfoBg[0].GetPosition(&x, &y);
		x = m_ChildPos[3];
		m_PlayerInfoBg[1].SetPosition(x, y + m_ChildWndYOffset);
		x += m_ChildWndXOffset[2];
		m_PlayerInfoBg[0].SetPosition(x, y);
		x = m_ChildPos[3] + m_ChildWndXOffset[3];
		m_PlayerInfoBg[2].SetPosition(x, y);
		break;
	}

	int		i;
	char	szFileName[128];
	if (m_nNumPlayer > 0)
	{
		KIniFile	Ini;
		Ini.Load(SERIES_INI);

		for (i = 0; i < m_nNumPlayer; i++)
		{
			KRoleChiefInfo	Info;
			g_LoginLogic.GetRoleInfo(i, &Info);
			m_Name[i].SetText(Info.Name);
			m_Level[i].SetIntText(Info.nLevel);
			AddChild(&m_PlayerInfoBg[i]);
			AddChild(&m_player[i]);
			AddChild(&m_Name[i]);
			AddChild(&m_Level[i]);
			m_Gender[i] = Info.Gender;
			m_Attribute[i] = Info.Attribute;

			m_szSelPlayerSound[i][0] = 0;
			Ini.GetString(PROP_GetTitleString((OBJ_ATTRIBYTE_TYPE)Info.Attribute),
				Info.Gender ? "SelSound_f" : "SelSound_m", "",
				m_szSelPlayerSound[i], sizeof(m_szSelPlayerSound[i]));
			GetRoleImageName(szFileName, m_szPlayerImgPrefix, Info.Gender, Info.Attribute, 2);
			m_player[i].SetImage(ISI_T_SPR, szFileName);
			m_player[i].SetFrame(0);
		}

		if (m_nSelPlayer < 0)
			m_nSelPlayer = 0;

		OnSelectPlayer(m_nSelPlayer);
	}

	for (i = m_nNumPlayer; i < MAX_PLAYER_PER_ACCOUNT; i++)
	{
		m_player[i].LeaveAlone();
		m_Name[i].LeaveAlone();
		m_Level[i].LeaveAlone();
		m_PlayerInfoBg[i].LeaveAlone();
	}

	m_btnOk.BringToTop();
	m_btnCancel.BringToTop();
	m_btnDel.BringToTop();
	m_btnNew.BringToTop();

	m_btnNew.Enable(m_nNumPlayer < MAX_PLAYER_PER_ACCOUNT);
	m_btnDel.Enable(m_nNumPlayer > 0 && m_nSelPlayer >= 0);
	m_btnOk.Enable(m_nNumPlayer > 0 && m_nSelPlayer >= 0);

	unsigned long uTotalTime, uTimeOfPoint;
	g_LoginLogic.GetAccountLifeTime(uTotalTime, uTimeOfPoint);
	unsigned long uTimeLine = (uTotalTime - uTimeOfPoint);

	char	szInfo[256];
	int		nLen;
	KIniFile* pSetting = g_UiBase.GetCommConfigFile();

	szInfo[0] = '\0';
	nLen = 0;
	//----包月或包周----
	if (uTimeLine)
	{
		if (pSetting)
		{
			pSetting->GetString("InfoString", LIFE_TIME_LINE_ID,
				"", szInfo, sizeof(szInfo));
			nLen = strlen(szInfo);
		}
		time_t t;
		time(&t);
		t += uTimeLine;
		struct tm * lt = localtime(&t);
		assert(lt);
		//校正处理
		if (lt->tm_hour > 12)
		{
			t += 43200;//半天
			lt = localtime(&t);
			assert(lt);
		}
		nLen += sprintf(szInfo + nLen, " %d-%d-%d ",
			lt->tm_year + 1900, lt->tm_mon + 1, lt->tm_mday);
	}

	if (uTimeOfPoint || uTimeLine == 0)
	{
		if (uTimeLine)
			nLen = strlen(strcat(szInfo, "   "));

		int		nHours, nMinutes;
		nHours = uTimeOfPoint / 3600;
		uTimeOfPoint -= nHours * 3600;
		nMinutes = uTimeOfPoint / 60;

		char	szHour[16] = "hour(s)";
		char	szMinute[16] = "minute(s)";

		if (pSetting)
		{
			pSetting->GetString("InfoString",
				uTimeLine ? LIFE_TIME_AND_STRING_ID : LIFE_TIME_STRING_ID,
				"", szInfo + nLen, sizeof(szInfo) - nLen);
			nLen = strlen(szInfo);
			pSetting->GetString("InfoString", LIFE_TIME_HOUR_ID,
				"hour(s)", szHour, sizeof(szHour));
			pSetting->GetString("InfoString", LIFE_TIME_MINUTE_ID,
				"minute(s)", szMinute, sizeof(szMinute));
		}

		if (nHours)
		{
			nLen += sprintf(szInfo + nLen, "%d%s", nHours, szHour);
		}
		if (nMinutes || nHours == 0)
		{
			nLen += sprintf(szInfo + nLen, "%d%s", nMinutes, szMinute);
		}
		szInfo[nLen] = ' ';
		nLen ++;
		szInfo[nLen] = '\0';
	}

	m_LifeTimeText.SetText(szInfo, nLen);
	if (pSetting)
		g_UiBase.CloseCommConfigFile();
}