Esempio n. 1
0
        void ShowSessionItemMenu(SessionInfo info, Point location)
        {
            ContextMenu menu = new ContextMenu();

            MenuItem item1 = new MenuItem("删除", (s, e) =>
            {
                NIM.Session.SessionAPI.DeleteRecentSession(info.SessionType, info.Id, (a, b, c) =>
                {
                    DeleteSession(info);
                });
            });
            MenuItem item2 = new MenuItem("标记为已读", (s, e) =>
            {
                NIM.Session.SessionAPI.SetUnreadCountZero(info.SessionType, info.Id, (a, b, c) =>
                {
                    NIM.Session.SessionAPI.SetUnreadCountZero(info.SessionType, info.Id, null);
                    Update(info, b);
                });
            });

            MenuItem item3 = new MenuItem("查看", (s, e) =>
            {
                NIM.Messagelog.MessagelogAPI.QuerylogById(info.MsgId, (a, b, c) =>
                {
                    if (a != NIM.ResponseCode.kNIMResSuccess || c == null)
                    {
                        return;
                    }
                    Action action = () =>
                    {
                        MsgInfoForm form = new MsgInfoForm(c);
                        form.Show();
                    };
                    _sessionListBox.Invoke(action);
                });
            });

            string   itemText = info.IsPinnedOnTop ? "取消置顶" : "置顶";
            MenuItem item4    = new MenuItem(itemText, (s, e) =>
            {
                NIM.Session.SessionAPI.PinSessionOnTop(info.SessionType, info.Id, !info.IsPinnedOnTop, (a, b, c) =>
                {
                    DemoTrace.WriteLine("会话置顶:", a, b.Id, b.IsPinnedOnTop);
                    if (a == 200)
                    {
                        Update(info, b);
                    }
                });
            });

            menu.MenuItems.Add(item1);
            if (info.Status == NIM.Messagelog.NIMMsgLogStatus.kNIMMsgLogStatusUnread)
            {
                menu.MenuItems.Add(item2);
            }
            menu.MenuItems.Add(item3);
            menu.MenuItems.Add(item4);
            menu.Show(_sessionListBox, location);
        }
Esempio n. 2
0
        void ShowContextMenu(Point location, ListViewItem listItem)
        {
            ContextMenu contextMenu = new ContextMenu();
            var         msg         = listItem.Tag as NIM.NIMIMMessage;
            MenuItem    item1       = new MenuItem("查看详情", (s, e) =>
            {
                if (msg != null)
                {
                    MsgInfoForm form   = new MsgInfoForm(msg);
                    form.StartPosition = FormStartPosition.CenterParent;
                    form.Show();
                }
            });
            MenuItem item2 = new MenuItem("清空未读数", (s, e) =>
            {
                if (msg != null)
                {
                    NIM.Session.SessionAPI.SetUnreadCountZero(NIMSessionType.kNIMSessionTypeP2P, msg.SenderID,
                                                              (a, b, c) =>
                    {
                        DemoTrace.WriteLine("清空未读数:" + c.ToString());
                    });
                }
            });

            MenuItem item3 = new MenuItem("查询最近会话", (s, e) =>
            {
                if (msg != null)
                {
                    NIM.Session.SessionAPI.QueryAllRecentSession((x, y) =>
                    {
                        DemoTrace.WriteLine("total count:" + x.ToString() + " " + y.Dump());
                    });
                }
            });

            contextMenu.MenuItems.Add(item1);
            contextMenu.MenuItems.Add(item2);
            contextMenu.MenuItems.Add(item3);
            contextMenu.Show(_targetListView, location);
        }
Esempio n. 3
0
        void ShowContextMenu(Point location, ListViewItem listItem)
        {
            ContextMenu contextMenu = new ContextMenu();
            var         msg         = listItem.Tag as NIM.NIMIMMessage;
            MenuItem    item1       = new MenuItem("查看详情", (s, e) =>
            {
                if (msg != null)
                {
                    MsgInfoForm form   = new MsgInfoForm(msg);
                    form.StartPosition = FormStartPosition.CenterParent;
                    form.Show();
                }
            });
            MenuItem item2 = new MenuItem("清空未读数", (s, e) =>
            {
                if (msg != null)
                {
                    NIM.Session.SessionAPI.SetUnreadCountZero(NIMSessionType.kNIMSessionTypeP2P, msg.SenderID,
                                                              (a, b, c) =>
                    {
                        DemoTrace.WriteLine("清空未读数:" + c.ToString());
                    });
                }
            });

            MenuItem item3 = new MenuItem("查询最近会话", (s, e) =>
            {
                if (msg != null)
                {
                    NIM.Session.SessionAPI.QueryAllRecentSession((x, y) =>
                    {
                        DemoTrace.WriteLine("total count:" + x.ToString() + " " + y.Dump());
                    });
                }
            });

            MenuItem item4 = new MenuItem("群消息回执", (s, e) =>
            {
                List <NIMIMMessage> msgs = new List <NIMIMMessage>();
                msg.NeedTeamAck          = 1;
                msgs.Add(msg);
                NIM.Team.TeamAPI.MsgAckRead(msg.ReceiverID, msgs, (data) =>
                {
                });
            });

            MenuItem item5 = new MenuItem("群消息未读成员", (s, e) =>
            {
                msg.NeedTeamAck = 1;
                NIM.Team.TeamAPI.QueryMsgUnreadList(msg.ReceiverID, msg, (data) =>
                {
                });
            });

            contextMenu.MenuItems.Add(item1);
            contextMenu.MenuItems.Add(item2);
            contextMenu.MenuItems.Add(item3);
            contextMenu.MenuItems.Add(item4);
            contextMenu.MenuItems.Add(item5);
            contextMenu.Show(_targetListView, location);
        }