Exemplo n.º 1
0
        public static void InsertStatus(UserInfo userInfo, string status)
        {
            TalkFrame talkFrame = LookupTalkFrame(userInfo);

            if (talkFrame != null)
            {
                talkFrame.InsertStatus(status);
            }
        }
Exemplo n.º 2
0
        public static void InsertError(UserInfo userInfo, string error)
        {
            TalkFrame talkFrame = LookupTalkFrame(userInfo);

            if (talkFrame != null)
            {
                talkFrame.InsertError(error);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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);
                }
            });
        }
Exemplo n.º 8
0
        // ============================================
        // 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);
                });
            }
        }
Exemplo n.º 9
0
        public static void InsertMessage(UserInfo userInfo, string message)
        {
            TalkFrame talkFrame = AddTalkFrame(userInfo);

            talkFrame.InsertMessage(userInfo, message);
        }