Example #1
0
        public void AddRoom(RoomObjExt room)
        {
            foreach (TabPage tmp in this.tabControl1.TabPages)
            {
                if (tmp.Tag == room)
                {
                    return;
                }
            }
            TabPage tp = new TabPage(room.Name);

            tp.Tag = room;

            ExtendedMessageView emv = new ExtendedMessageView(room);

            emv.Dock = DockStyle.Fill;
            tp.Controls.Add(emv);

            tabControl1.SelectedTab = tp;

            room.Bind();
            room.SetActive();
            this.tabControl1.TabPages.Add(tp);
            selectedTab = tp;
            tp.Select();

            room.NotificationUpdated += (x) =>
            {
                if (!(tp.Tag as RoomObjExt).active)
                {
                    if (x > 0)
                    {
                        string label = room.Name + "(" + x + ")";
                        tp.Invoke(new Action(() => tp.Text = label));
                    }
                }
                else
                {
                    tp.Invoke(new Action(() => tp.Text = room.Name));
                }
            };
        }