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; }
//--------------------------------------------------------- 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; }
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); } }