コード例 #1
0
        private void ReadUISettingsFrom(Stream s)
        {
            BinaryReader bR = new BinaryReader(s);

            byte version = bR.ReadByte();

            switch (version) //version
            {
            case 1:
            case 2:
                //form location
                this.Location = new Point(bR.ReadInt32(), bR.ReadInt32());

                //form size
                this.Size = new Size(bR.ReadInt32(), bR.ReadInt32());

                //form maximized
                if (Convert.ToBoolean(bR.ReadByte()))
                {
                    this.WindowState = FormWindowState.Maximized;
                }

                //form main container splitter position
                if (version > 1)
                {
                    mainContainer.SplitterDistance = mainContainer.Width - bR.ReadInt32();
                }

                //first chat panel settings
                if (Convert.ToBoolean(bR.ReadByte()))
                {
                    foreach (Control ctrl in mainContainer.Panel2.Controls)
                    {
                        MeshNetworkPanel panel = ctrl as MeshNetworkPanel;

                        if (panel != null)
                        {
                            panel.ReadSettingsFrom(bR);
                            break;
                        }
                    }
                }
                break;

            default:
                throw new Exception("Settings format version not supported.");
            }
        }
コード例 #2
0
        private void ShowSelectedChatView()
        {
            if (lstChats.SelectedItem != null)
            {
                if (_currentChatPanel != null)
                {
                    _currentChatPanel.TrimMessageList();
                }

                MeshNetworkPanel chatPanel = (lstChats.SelectedItem as ChatListItem).ChatPanel;
                chatPanel.BringToFront();
                chatPanel.SetFocusMessageEditor();

                _currentChatPanel = chatPanel;
            }
        }
コード例 #3
0
        private void chatPanel_SettingsModified(object sender, EventArgs e)
        {
            MeshNetworkPanel senderPanel = sender as MeshNetworkPanel;

            using (MemoryStream mS = new MemoryStream())
            {
                senderPanel.WriteSettingsTo(mS);

                foreach (Control ctrl in mainContainer.Panel2.Controls)
                {
                    MeshNetworkPanel panel = ctrl as MeshNetworkPanel;

                    if ((panel != null) && !panel.Equals(sender))
                    {
                        mS.Position = 0;
                        panel.ReadSettingsFrom(mS);
                    }
                }
            }
        }
コード例 #4
0
        private void WriteUISettingsTo(Stream s)
        {
            BinaryWriter bW = new BinaryWriter(s);

            bW.Write((byte)2); //version

            //form location
            bW.Write(this.Location.X);
            bW.Write(this.Location.Y);

            //form size
            bool maximized = this.WindowState == FormWindowState.Maximized;
            Size size;

            if (maximized)
            {
                size = new Size(960, 540);
            }
            else
            {
                size = this.Size;
            }

            bW.Write(size.Width);
            bW.Write(size.Height);

            //form maximized
            if (maximized)
            {
                bW.Write((byte)1);
            }
            else
            {
                bW.Write((byte)0);
            }

            //form main container splitter position
            bW.Write(mainContainer.Width - mainContainer.SplitterDistance);


            //write first chat panel settings
            bool panelFound = false;

            foreach (Control ctrl in mainContainer.Panel2.Controls)
            {
                MeshNetworkPanel panel = ctrl as MeshNetworkPanel;

                if (panel != null)
                {
                    bW.Write((byte)1);
                    panel.WriteSettingsTo(bW);

                    panelFound = true;
                    break;
                }
            }

            if (!panelFound)
            {
                bW.Write((byte)0);
            }
        }