Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / WinForms / Managed / System / WinForms / OwnerDrawPropertyBag.cs / 1305376 / 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(){
}
///
///
/// [To be supplied.]
///
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;
}
}
///
///
/// 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(){
}
///
///
/// [To be supplied.]
///
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;
}
}
///
///
/// 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
- Drawing.cs
- HtmlUtf8RawTextWriter.cs
- XmlDocumentFragment.cs
- EnterpriseServicesHelper.cs
- MediaPlayer.cs
- Single.cs
- _ConnectOverlappedAsyncResult.cs
- ConfigXmlElement.cs
- IconConverter.cs
- Msmq.cs
- Set.cs
- FaultDesigner.cs
- RowCache.cs
- ThemeDictionaryExtension.cs
- XPathMultyIterator.cs
- SqlConnectionFactory.cs
- PageTheme.cs
- DataBoundControlActionList.cs
- WebPartHeaderCloseVerb.cs
- HtmlControlPersistable.cs
- BamlCollectionHolder.cs
- CodeCatchClauseCollection.cs
- StrokeSerializer.cs
- MachineKeySection.cs
- PolyLineSegment.cs
- AttributeCollection.cs
- CharEnumerator.cs
- SendActivityDesignerTheme.cs
- BooleanAnimationBase.cs
- HttpHandlerActionCollection.cs
- ManagementObject.cs
- UriTemplateMatchException.cs
- CacheDependency.cs
- MobileUserControlDesigner.cs
- GPRECT.cs
- ReadOnlyDictionary.cs
- WebPartVerb.cs
- CredentialCache.cs
- HyperLinkField.cs
- FileReader.cs
- ZoomPercentageConverter.cs
- UnknownBitmapEncoder.cs
- NullableDoubleSumAggregationOperator.cs
- DrawingImage.cs
- BitmapFrameDecode.cs
- DtdParser.cs
- SHA256.cs
- DataGridViewCellConverter.cs
- unitconverter.cs
- HighlightVisual.cs
- NavigationPropertyEmitter.cs
- TriggerBase.cs
- Label.cs
- FixedHyperLink.cs
- ExceptionTrace.cs
- DesignTable.cs
- DataGrid.cs
- GraphicsPath.cs
- TypeNameParser.cs
- HttpHeaderCollection.cs
- ServiceContractListItemList.cs
- ModuleBuilder.cs
- UnhandledExceptionEventArgs.cs
- TdsParserStateObject.cs
- DefaultValueAttribute.cs
- MemoryMappedView.cs
- MenuItemBinding.cs
- GridEntryCollection.cs
- OneOf.cs
- SamlDoNotCacheCondition.cs
- CapabilitiesSection.cs
- CodeMethodReturnStatement.cs
- Set.cs
- ScriptMethodAttribute.cs
- HttpResponseBase.cs
- CompositeScriptReferenceEventArgs.cs
- HierarchicalDataTemplate.cs
- HtmlGenericControl.cs
- HttpCachePolicyWrapper.cs
- XmlFormatReaderGenerator.cs
- XMLDiffLoader.cs
- RunWorkerCompletedEventArgs.cs
- Helpers.cs
- XmlQualifiedName.cs
- InheritanceRules.cs
- ModuleConfigurationInfo.cs
- HostingEnvironmentException.cs
- JapaneseLunisolarCalendar.cs
- SqlSupersetValidator.cs
- RowParagraph.cs
- BasicAsyncResult.cs
- NavigationProperty.cs
- ServiceHostFactory.cs
- counter.cs
- Rotation3DAnimationUsingKeyFrames.cs
- XsltException.cs
- SmiContext.cs
- ColorDialog.cs
- DbMetaDataFactory.cs
- sitestring.cs