コード例 #1
0
ファイル: CControleTchat.cs プロジェクト: ykebaili/Timos
 private void m_timerEmpile_Tick(object sender, EventArgs e)
 {
     while (m_pileMessages.Count > 0)
     {
         CInfoMessage info = m_pileMessages.Pop();
         CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(sc2i.win32.data.CSc2iWin32DataClient.ContexteCourant);
         if (user.ReadIfExists(info.IdUserEnvoyeur))
         {
             ListViewItem item    = m_wndListeMessages.Items.Add("");
             string       strText = user.Acteur.IdentificationCourte + " > " + info.Message;
             item.Text = strText;
             item.Tag  = info;
             m_wndListeMessages.Visible = true;
             m_bRendVisible             = true;
         }
     }
     if (m_wndListeMessages.Items.Count > 0)
     {
         m_bFondColore = !m_bFondColore;
         m_wndListeMessages.BackColor = m_bFondColore ? Color.White : BackColor;
     }
     else
     {
         m_wndListeMessages.BackColor = BackColor;
     }
     if (m_bRendVisible && !Visible)
     {
         Visible = true;
     }
     m_bRendVisible = false;
 }
コード例 #2
0
ファイル: CControleTchat.cs プロジェクト: ykebaili/Timos
        //---------------------------------------------------------
        private void ShowMessage(string strMessage, int nIdUserFrom)
        {
            CDonneesActeurUtilisateur user = new CDonneesActeurUtilisateur(sc2i.win32.data.CSc2iWin32DataClient.ContexteCourant);

            if (!user.ReadIfExists(nIdUserFrom))
            {
                return;
            }
            if (strMessage != null && nIdUserFrom != m_nIdUtilisateurAutre && Visible && m_nIdUtilisateurAutre >= 0)
            {
                CInfoMessage info = new CInfoMessage(strMessage, nIdUserFrom);
                m_pileMessages.Push(info);
                return;
            }
            bool bChangementUtilisateur = false;

            if (nIdUserFrom >= 0)
            {
                if (nIdUserFrom != m_nIdUtilisateurAutre)
                {
                    bChangementUtilisateur = true;
                }
                if (bChangementUtilisateur)
                {
                    if (m_nIdUtilisateurAutre >= 0)
                    {
                        m_listeUserToMessage[m_nIdUtilisateurAutre] = m_txtMessage.Text;
                    }
                    if (m_listeUserToMessage.ContainsKey(nIdUserFrom))
                    {
                        m_txtMessage.Text = m_listeUserToMessage[nIdUserFrom];
                    }
                    else
                    {
                        m_txtMessage.Text = "";
                    }
                    m_nIdUtilisateurAutre = nIdUserFrom;
                    m_lblUser.Text        = user.Acteur.IdentiteComplete;
                }
            }
            foreach (ListViewItem item in new ArrayList(m_wndListeMessages.Items))
            {
                CInfoMessage info = (CInfoMessage)item.Tag;
                if (info.IdUserEnvoyeur == nIdUserFrom)
                {
                    AddMessage(info.Message, true);
                    m_wndListeMessages.Items.Remove(item);
                }
            }
            if (m_wndListeMessages.Items.Count == 0)
            {
                m_wndListeMessages.Visible = false;
            }

            if (!bChangementUtilisateur || strMessage != null)
            {
                AddMessage(strMessage, true);
            }
            m_bRendVisible = !Visible;
        }
コード例 #3
0
ファイル: CControleTchat.cs プロジェクト: ykebaili/Timos
        private void m_wndListeMessages_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            ListViewHitTestInfo info = m_wndListeMessages.HitTest(new Point(e.X, e.Y));

            if (info.Item != null)
            {
                CInfoMessage mes = (CInfoMessage)info.Item.Tag;
                OnMessage(mes.IdUserEnvoyeur, null);
            }
        }