Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripSettings.cs / 1 / ToolStripSettings.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System; using System.Configuration; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Diagnostics.CodeAnalysis; using System.Drawing; using System.Text; using System.Text.RegularExpressions; ////// /// A settings class used by the ToolStripManager to save toolstrip settings. /// internal class ToolStripSettings : ApplicationSettingsBase { internal ToolStripSettings(string settingsKey) : base(settingsKey) {} [UserScopedSetting] [DefaultSettingValue("true")] public bool IsDefault { get { return (bool) this["IsDefault"]; } set { this["IsDefault"] = value; } } [UserScopedSetting] public string ItemOrder { get { return this["ItemOrder"] as string; } set { this["ItemOrder"] = value; } } [UserScopedSetting] public string Name { get { return this["Name"] as string; } set { this["Name"] = value; } } [UserScopedSetting] [DefaultSettingValue("0,0")] public Point Location { get { return (Point) this["Location"]; } set { this["Location"] = value; } } [UserScopedSetting] [DefaultSettingValue("0,0")] public Size Size { get { return (Size) this["Size"]; } set { this["Size"] = value; } } [UserScopedSetting] public string ToolStripPanelName { get { return this["ToolStripPanelName"] as string; } set { this["ToolStripPanelName"] = value; } } [UserScopedSetting] [DefaultSettingValue("true")] public bool Visible { get { return (bool) this["Visible"]; } set { this["Visible"] = value; } } public override void Save() { this.IsDefault = false; base.Save(); } } ////// /// Helper class used by ToolStripManager that implements most of the logic to save out and apply /// settings for toolstrips on a form. /// internal class ToolStripSettingsManager { private Form form; private string formKey; internal ToolStripSettingsManager(Form owner, string formKey) { this.form = owner; this.formKey = formKey; } internal void Load() { ArrayList savedToolStripSettingsObjects = new ArrayList(); foreach (ToolStrip toolStrip in FindToolStrips(true, form.Controls)) { if (toolStrip != null && !string.IsNullOrEmpty(toolStrip.Name)) { ToolStripSettings toolStripSettings = new ToolStripSettings(GetSettingsKey(toolStrip)); // Check if we have settings saved out for this toolstrip. If so, add it to our apply list. if (!toolStripSettings.IsDefault) { savedToolStripSettingsObjects.Add(new SettingsStub(toolStripSettings)); } } } ApplySettings(savedToolStripSettingsObjects); } internal void Save() { foreach (ToolStrip toolStrip in FindToolStrips(true, form.Controls)) { if (toolStrip != null && !string.IsNullOrEmpty(toolStrip.Name)) { ToolStripSettings toolStripSettings = new ToolStripSettings(GetSettingsKey(toolStrip)); SettingsStub stub = new SettingsStub(toolStrip); toolStripSettings.ItemOrder = stub.ItemOrder; toolStripSettings.Name = stub.Name; toolStripSettings.Location = stub.Location; toolStripSettings.Size = stub.Size; toolStripSettings.ToolStripPanelName = stub.ToolStripPanelName; toolStripSettings.Visible = stub.Visible; toolStripSettings.Save(); } } } internal static string GetItemOrder(ToolStrip toolStrip) { StringBuilder itemNames = new StringBuilder(toolStrip.Items.Count); for (int i = 0; i < toolStrip.Items.Count; i++) { itemNames.Append((toolStrip.Items[i].Name == null) ? "null" : toolStrip.Items[i].Name); if (i != toolStrip.Items.Count - 1) { itemNames.Append(","); } } return itemNames.ToString(); } private void ApplySettings(ArrayList toolStripSettingsToApply) { if (toolStripSettingsToApply.Count == 0) { return; } SuspendAllLayout(form); // iterate through all the toolstrips and build up a hash of where the items // are right now. DictionaryitemLocationHash = BuildItemOriginationHash(); // build up a hash of where we want the ToolStrips to go Dictionary
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XXXOnTypeBuilderInstantiation.cs
- ServicePointManager.cs
- FontEditor.cs
- SelectedDatesCollection.cs
- TypeValidationEventArgs.cs
- XD.cs
- ExecutionProperties.cs
- SqlInternalConnectionSmi.cs
- HttpWebRequest.cs
- Pointer.cs
- FacetValues.cs
- BroadcastEventHelper.cs
- XmlIlVisitor.cs
- DesignerActionUI.cs
- CharUnicodeInfo.cs
- InvalidDataException.cs
- ParameterModifier.cs
- Array.cs
- CapabilitiesUse.cs
- GridViewColumnHeader.cs
- StringCollection.cs
- DataRow.cs
- BufferedReadStream.cs
- ConfigurationPermission.cs
- Form.cs
- EdmScalarPropertyAttribute.cs
- EraserBehavior.cs
- StringToken.cs
- MenuBindingsEditor.cs
- MonitorWrapper.cs
- AtomParser.cs
- CodeCatchClauseCollection.cs
- Transform.cs
- HtmlTableRowCollection.cs
- RtfNavigator.cs
- DataServiceHost.cs
- AutomationPeer.cs
- RightsManagementManager.cs
- PageRanges.cs
- MessageQueueInstaller.cs
- ToolboxItemFilterAttribute.cs
- BaseCodePageEncoding.cs
- EnumerableCollectionView.cs
- SqlRewriteScalarSubqueries.cs
- RelatedPropertyManager.cs
- Internal.cs
- OutputCacheSection.cs
- WpfXamlMember.cs
- ColorConvertedBitmap.cs
- CodeDomComponentSerializationService.cs
- BlurBitmapEffect.cs
- DbMetaDataCollectionNames.cs
- XhtmlBasicLinkAdapter.cs
- DefaultBindingPropertyAttribute.cs
- TypeViewSchema.cs
- ListBoxChrome.cs
- SiteMapNodeCollection.cs
- FormViewCommandEventArgs.cs
- ResourceManagerWrapper.cs
- PropagatorResult.cs
- XmlDataProvider.cs
- SQLInt16.cs
- ChangePassword.cs
- TextRangeSerialization.cs
- assemblycache.cs
- StorageEntityTypeMapping.cs
- RegexCompilationInfo.cs
- SizeConverter.cs
- Model3DGroup.cs
- FixedDocumentPaginator.cs
- FunctionNode.cs
- StorageInfo.cs
- MessageFault.cs
- Mappings.cs
- WorkflowShape.cs
- DES.cs
- RegexFCD.cs
- XmlEncoding.cs
- ProjectedWrapper.cs
- ViewStateModeByIdAttribute.cs
- CompilerLocalReference.cs
- PerformanceCountersElement.cs
- StorageComplexPropertyMapping.cs
- InfoCardAsymmetricCrypto.cs
- ServiceInfo.cs
- Path.cs
- TiffBitmapDecoder.cs
- SchemaElementLookUpTableEnumerator.cs
- TraceHandlerErrorFormatter.cs
- TemplateXamlTreeBuilder.cs
- ApplicationProxyInternal.cs
- ReachSerializableProperties.cs
- PropertyChange.cs
- AuthorizationSection.cs
- TextTreeUndo.cs
- HotCommands.cs
- XPathDocument.cs
- Material.cs
- PartialTrustVisibleAssemblyCollection.cs
- GuidTagList.cs