Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / ToolStripSettings.cs / 1305376 / 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
- StyleXamlParser.cs
- HostedElements.cs
- TransformCollection.cs
- SwitchLevelAttribute.cs
- EntitySetDataBindingList.cs
- OdbcReferenceCollection.cs
- TableLayoutCellPaintEventArgs.cs
- IImplicitResourceProvider.cs
- DataGridViewSelectedCellCollection.cs
- PictureBox.cs
- VSWCFServiceContractGenerator.cs
- MetadataCollection.cs
- PackageRelationship.cs
- DecimalStorage.cs
- ISCIIEncoding.cs
- XmlExceptionHelper.cs
- FixedSOMPageConstructor.cs
- EditorPartCollection.cs
- FacetValueContainer.cs
- AdCreatedEventArgs.cs
- ValidationEventArgs.cs
- XMLSchema.cs
- ResourceReferenceExpressionConverter.cs
- TableRowCollection.cs
- EntityDataSourceReferenceGroup.cs
- StylusPointProperties.cs
- DbDataRecord.cs
- DirectionalLight.cs
- ListViewDataItem.cs
- AddDataControlFieldDialog.cs
- NameScopePropertyAttribute.cs
- XmlAttributeProperties.cs
- CodeEntryPointMethod.cs
- smtpconnection.cs
- AsymmetricSecurityProtocol.cs
- EditorZoneAutoFormat.cs
- UrlMapping.cs
- RouteParser.cs
- SortQueryOperator.cs
- WindowsGraphics.cs
- CurrencyWrapper.cs
- PreservationFileReader.cs
- LicenseException.cs
- ReferenceConverter.cs
- ClientSettingsProvider.cs
- NumberFunctions.cs
- SessionPageStatePersister.cs
- VBIdentifierName.cs
- DrawingContextDrawingContextWalker.cs
- TypeContext.cs
- LongValidator.cs
- ComponentChangingEvent.cs
- HttpRuntimeSection.cs
- UpDownEvent.cs
- GlyphsSerializer.cs
- DictionarySectionHandler.cs
- CompilationSection.cs
- GeneralTransform3D.cs
- SafeArrayRankMismatchException.cs
- DisposableCollectionWrapper.cs
- ScriptHandlerFactory.cs
- IdentityReference.cs
- BindingNavigator.cs
- SerializationInfo.cs
- DrawingImage.cs
- PieceNameHelper.cs
- XmlWriterTraceListener.cs
- AutomationPropertyInfo.cs
- MatrixUtil.cs
- ScrollEvent.cs
- ProcessRequestAsyncResult.cs
- SafeFileMappingHandle.cs
- _Rfc2616CacheValidators.cs
- IsolatedStorageFile.cs
- StreamMarshaler.cs
- CredentialManagerDialog.cs
- ItemMap.cs
- StyleXamlParser.cs
- ProfilePropertySettings.cs
- ProcessHost.cs
- GridViewCommandEventArgs.cs
- ActivityExecutorDelegateInfo.cs
- ThicknessKeyFrameCollection.cs
- SynchronizationLockException.cs
- InvokeBinder.cs
- SqlGatherConsumedAliases.cs
- MappingException.cs
- RelationshipEndMember.cs
- ConfigXmlWhitespace.cs
- ListBox.cs
- DropTarget.cs
- ContextMenuService.cs
- ProfileWorkflowElement.cs
- CustomValidator.cs
- CategoryNameCollection.cs
- PngBitmapEncoder.cs
- GenericTypeParameterConverter.cs
- XmlLangPropertyAttribute.cs
- Application.cs
- ResourcesBuildProvider.cs