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."); } }
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; } }
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); } } } }
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); } }