Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / OwnerDrawPropertyBag.cs / 1 / OwnerDrawPropertyBag.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System.Diagnostics; using System; using System.Drawing; using System.Diagnostics.CodeAnalysis; using System.Windows.Forms.Internal; using System.Windows.Forms; using Microsoft.Win32; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters; using System.Security.Permissions; ////// /// /// Class used to pass new font/color information around for "partial" ownerdraw list/treeview items. /// ///// [SuppressMessage("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] [Serializable] public class OwnerDrawPropertyBag : MarshalByRefObject, ISerializable { Font font = null; Color foreColor = Color.Empty; Color backColor = Color.Empty; Control.FontHandleWrapper fontWrapper = null; private static object internalSyncObject = new object(); /** * Constructor used in deserialization * Has to be protected because OwnerDrawPropertyBag is not sealed. FxCop Rule CA2229. */ protected OwnerDrawPropertyBag(SerializationInfo info, StreamingContext context) { foreach (SerializationEntry entry in info) { if (entry.Name == "Font") { // SEC font = (Font) entry.Value; } else if (entry.Name =="ForeColor") { // SEC foreColor =(Color)entry.Value; } else if (entry.Name =="BackColor") { // SEC backColor = (Color)entry.Value; } } } internal OwnerDrawPropertyBag(){ } /// /// /// public Font Font { get { return font; } set { font = value; } } ///[To be supplied.] ////// /// public Color ForeColor { get { return foreColor; } set { foreColor = value; } } ///[To be supplied.] ////// /// public Color BackColor { get { return backColor; } set { backColor = value; } } internal IntPtr FontHandle { get { if (fontWrapper == null) { fontWrapper = new Control.FontHandleWrapper(Font); } return fontWrapper.Handle; } } ///[To be supplied.] ////// /// Returns whether or not this property bag contains all default values (is empty) /// public virtual bool IsEmpty() { return (Font == null && foreColor.IsEmpty && backColor.IsEmpty); } ////// /// Copies the bag. Always returns a valid ODPB object /// public static OwnerDrawPropertyBag Copy(OwnerDrawPropertyBag value) { lock(internalSyncObject) { OwnerDrawPropertyBag ret = new OwnerDrawPropertyBag(); if (value == null) return ret; ret.backColor = value.backColor; ret.foreColor = value.foreColor; ret.Font = value.font; return ret; } } ////// /// ISerializable private implementation /// ///[SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)] void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context) { si.AddValue("BackColor", BackColor); si.AddValue("ForeColor", ForeColor); si.AddValue("Font", Font); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Windows.Forms { using System.Diagnostics; using System; using System.Drawing; using System.Diagnostics.CodeAnalysis; using System.Windows.Forms.Internal; using System.Windows.Forms; using Microsoft.Win32; using System.Runtime.Serialization; using System.Runtime.Serialization.Formatters; using System.Security.Permissions; ////// /// /// Class used to pass new font/color information around for "partial" ownerdraw list/treeview items. /// ///// [SuppressMessage("Microsoft.Usage", "CA2240:ImplementISerializableCorrectly")] [Serializable] public class OwnerDrawPropertyBag : MarshalByRefObject, ISerializable { Font font = null; Color foreColor = Color.Empty; Color backColor = Color.Empty; Control.FontHandleWrapper fontWrapper = null; private static object internalSyncObject = new object(); /** * Constructor used in deserialization * Has to be protected because OwnerDrawPropertyBag is not sealed. FxCop Rule CA2229. */ protected OwnerDrawPropertyBag(SerializationInfo info, StreamingContext context) { foreach (SerializationEntry entry in info) { if (entry.Name == "Font") { // SEC font = (Font) entry.Value; } else if (entry.Name =="ForeColor") { // SEC foreColor =(Color)entry.Value; } else if (entry.Name =="BackColor") { // SEC backColor = (Color)entry.Value; } } } internal OwnerDrawPropertyBag(){ } /// /// /// public Font Font { get { return font; } set { font = value; } } ///[To be supplied.] ////// /// public Color ForeColor { get { return foreColor; } set { foreColor = value; } } ///[To be supplied.] ////// /// public Color BackColor { get { return backColor; } set { backColor = value; } } internal IntPtr FontHandle { get { if (fontWrapper == null) { fontWrapper = new Control.FontHandleWrapper(Font); } return fontWrapper.Handle; } } ///[To be supplied.] ////// /// Returns whether or not this property bag contains all default values (is empty) /// public virtual bool IsEmpty() { return (Font == null && foreColor.IsEmpty && backColor.IsEmpty); } ////// /// Copies the bag. Always returns a valid ODPB object /// public static OwnerDrawPropertyBag Copy(OwnerDrawPropertyBag value) { lock(internalSyncObject) { OwnerDrawPropertyBag ret = new OwnerDrawPropertyBag(); if (value == null) return ret; ret.backColor = value.backColor; ret.foreColor = value.foreColor; ret.Font = value.font; return ret; } } ////// /// ISerializable private implementation /// ///[SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)] void ISerializable.GetObjectData(SerializationInfo si, StreamingContext context) { si.AddValue("BackColor", BackColor); si.AddValue("ForeColor", ForeColor); si.AddValue("Font", Font); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BufferModesCollection.cs
- RegexReplacement.cs
- ListParagraph.cs
- SspiSecurityToken.cs
- FrameAutomationPeer.cs
- OLEDB_Enum.cs
- ReliabilityContractAttribute.cs
- ComplexLine.cs
- TextHidden.cs
- PreviewPageInfo.cs
- AssemblyAssociatedContentFileAttribute.cs
- ModelPerspective.cs
- UIInitializationException.cs
- AbstractExpressions.cs
- Vertex.cs
- DataKeyArray.cs
- IApplicationTrustManager.cs
- AuthenticationServiceManager.cs
- Vertex.cs
- OdbcConnectionOpen.cs
- EntityConnectionStringBuilderItem.cs
- ToolStripDropDownItemDesigner.cs
- PopOutPanel.cs
- ParseNumbers.cs
- SelectionChangedEventArgs.cs
- BufferBuilder.cs
- TextEmbeddedObject.cs
- SortDescription.cs
- SchemaNames.cs
- EditorServiceContext.cs
- ThemeDictionaryExtension.cs
- FormView.cs
- BStrWrapper.cs
- DataBoundControlHelper.cs
- TrackBarRenderer.cs
- DbConnectionStringCommon.cs
- DataGridViewColumnConverter.cs
- ImageEditor.cs
- PostBackOptions.cs
- StickyNoteHelper.cs
- SqlBinder.cs
- LocatorPart.cs
- ToolStripItemEventArgs.cs
- ExecutedRoutedEventArgs.cs
- xml.cs
- OrderByExpression.cs
- PropertyFilterAttribute.cs
- QilExpression.cs
- TimersDescriptionAttribute.cs
- DocumentViewerHelper.cs
- ScrollItemPatternIdentifiers.cs
- ConfigurationConverterBase.cs
- ResourceDefaultValueAttribute.cs
- DataControlPagerLinkButton.cs
- StringToken.cs
- ParameterToken.cs
- ContentDisposition.cs
- SelectorAutomationPeer.cs
- TableCell.cs
- MLangCodePageEncoding.cs
- ThreadExceptionDialog.cs
- PreservationFileWriter.cs
- localization.cs
- ValidatorCompatibilityHelper.cs
- OrderByBuilder.cs
- ConnectionStringsExpressionBuilder.cs
- SQLBytes.cs
- TemplateBamlRecordReader.cs
- PagesChangedEventArgs.cs
- _AutoWebProxyScriptHelper.cs
- RenderCapability.cs
- NameSpaceEvent.cs
- PrePostDescendentsWalker.cs
- DES.cs
- MiniModule.cs
- CodeDomConfigurationHandler.cs
- BrowserCapabilitiesFactory.cs
- _FixedSizeReader.cs
- X509Certificate2Collection.cs
- Scanner.cs
- OrderPreservingPipeliningMergeHelper.cs
- SimpleBitVector32.cs
- QuestionEventArgs.cs
- ListViewContainer.cs
- MappingSource.cs
- XmlFormatExtensionPrefixAttribute.cs
- BinaryConverter.cs
- RegionIterator.cs
- UdpRetransmissionSettings.cs
- DbMetaDataFactory.cs
- ChoiceConverter.cs
- DocumentSchemaValidator.cs
- NetCodeGroup.cs
- Module.cs
- ArrayTypeMismatchException.cs
- DataGridCellsPresenter.cs
- Converter.cs
- EmptyReadOnlyDictionaryInternal.cs
- MsmqInputSessionChannel.cs
- ValidationHelper.cs