コード例 #1
0
ファイル: CirclePanel.cs プロジェクト: arran4/Dimension
        public CirclePanel(string url, UI.JoinCircleForm.CircleType circleType)
        {
            InitializeComponent();
            setupUserList();

            if (url.ToLower() == "http://lan/" || circleType == JoinCircleForm.CircleType.LAN)
            {
                initLAN();
                return;
            }
            this.circleType = circleType;
            this.url        = url;

            System.Security.Cryptography.SHA512Managed sha = new System.Security.Cryptography.SHA512Managed();

            circleHash = BitConverter.ToUInt64(sha.ComputeHash(Encoding.UTF8.GetBytes(url.ToLower())), 0);
            App.theCore.joinCircle(url);
            App.theCore.chatReceivedEvent += chatReceived;
            MainForm.colorChange          += colorChanged;
            ((MainForm)App.mainForm).setColors();


            System.Threading.Thread t = new System.Threading.Thread(joinLoop);
            t.IsBackground = true;
            t.Name         = "Circle join loop";
            t.Start();

            if (circleType == JoinCircleForm.CircleType.bootstrap)
            {
                App.settings.addStringToArrayNoDup("Bootstrap Circles Open", url);
            }
            else if (circleType == JoinCircleForm.CircleType.kademlia)
            {
                App.settings.addStringToArrayNoDup("Kademlia Circles Open", url);
            }
            if (isMono)
            {
                userListView.OwnerDraw = true;
            }
        }
コード例 #2
0
        public void addInternetCircle(System.Net.IPEndPoint[] endpoints, string url, UI.JoinCircleForm.CircleType circleType)
        {
            for (int i = 0; i < windowToolStrip.Items.Count; i++)
            {
                if (windowToolStrip.Items[i].Tag is UI.CirclePanel)
                {
                    if (((UI.CirclePanel)windowToolStrip.Items[i].Tag).url.ToLower() == url.ToLower())
                    {
                        select((ToolStripButton)windowToolStrip.Items[i]);
                        return;
                    }
                }
            }
            TabPage p = new TabPage("Internet Circle");

            if (url.StartsWith("#"))
            {
                p.Text = url;
            }
            else
            {
                string s = url;
                if (s.Contains("//"))
                {
                    s = s.Substring(s.IndexOf("//") + 2);
                }
                if (s.Contains("/"))
                {
                    s = s.Substring(0, s.IndexOf("/"));
                }
                p.Text = s;
            }
            UI.CirclePanel c = new UI.CirclePanel(url, circleType);
            c.Dock = DockStyle.Fill;

            addOrSelectPanel(p.Text, c, url);
        }