public static void InsertStatus(UserInfo userInfo, string status) { TalkFrame talkFrame = LookupTalkFrame(userInfo); if (talkFrame != null) { talkFrame.InsertStatus(status); } }
public static void InsertError(UserInfo userInfo, string error) { TalkFrame talkFrame = LookupTalkFrame(userInfo); if (talkFrame != null) { talkFrame.InsertError(error); } }
private static void OnTalkFrameRemoved(object o, object page) { if (talkFrames.ContainsValue(page) == true) { TalkFrame talkFrame = page as TalkFrame; talkFrame.Message -= new StringEventHandler(OnSendMessage); PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[talkFrame.UserInfo]; SendStatus(peer, MyInfo.GetInstance().Name + " has closed the conversation Window..."); talkFrames.Remove(talkFrame.UserInfo); } }
private static Hashtable talkFrames = null; // [UserInfo] = TalkFrame #endregion Fields #region Methods public static TalkFrame AddTalkFrame(UserInfo userInfo) { TalkFrame talkFrame = LookupTalkFrame(userInfo); if (talkFrame != null) return(talkFrame); // Initialize Talk Frame talkFrame = new TalkFrame(userInfo); talkFrame.Message += new StringEventHandler(OnSendMessage); talkFrames.Add(userInfo, talkFrame); notebookViewer.AppendCustom(talkFrame, userInfo.Name, new Gtk.Image("TalkBubble", IconSize.Menu)); return(talkFrame); }
public static void Uninitialize() { foreach (UserInfo userInfo in talkFrames.Keys) { TalkFrame talkFrame = talkFrames[userInfo] as TalkFrame; // Remove Page From Notebook Viewer notebookViewer.RemoveCustom(talkFrame); } talkFrames.Clear(); talkFrames = null; // Remove Events From NotebookViewer notebookViewer.TabRemoved -= new ObjectEventHandler(OnTalkFrameRemoved); notebookViewer = null; }
public static TalkFrame AddTalkFrame(UserInfo userInfo) { TalkFrame talkFrame = LookupTalkFrame(userInfo); if (talkFrame != null) { return(talkFrame); } // Initialize Talk Frame talkFrame = new TalkFrame(userInfo); talkFrame.Message += new StringEventHandler(OnSendMessage); talkFrames.Add(userInfo, talkFrame); notebookViewer.AppendCustom(talkFrame, userInfo.Name, new Gtk.Image("TalkBubble", IconSize.Menu)); return(talkFrame); }
private static void OnTalkFrameRemoved(object o, object page) { Gtk.Application.Invoke(delegate { if (talkFrames.ContainsValue(page) == true) { TalkFrame talkFrame = page as TalkFrame; talkFrame.Message -= new StringEventHandler(OnSendMessage); PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[talkFrame.UserInfo]; if (peer != null) { UserInfo userInfo = MyInfo.GetInstance(); SendStatus(peer, userInfo.Name + " has closed the conversation Window..."); } talkFrames.Remove(talkFrame.UserInfo); } }); }
// ============================================ // PRIVATE (Methods) Event Handlers // ============================================ private static void OnSendMessage(object sender, string message) { TalkFrame talkFrame = sender as TalkFrame; PeerSocket peer = (PeerSocket)P2PManager.KnownPeers[talkFrame.UserInfo]; if (peer != null) { SendMessage(peer, message); Gtk.Application.Invoke(delegate { talkFrame.InsertMessage(MyInfo.GetInstance(), message); }); } else { Gtk.Application.Invoke(delegate { talkFrame.InsertError("Couldn't Send Message: " + message); }); } }
public static void InsertMessage(UserInfo userInfo, string message) { TalkFrame talkFrame = AddTalkFrame(userInfo); talkFrame.InsertMessage(userInfo, message); }