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
- AnimationException.cs
- NgenServicingAttributes.cs
- JsonQNameDataContract.cs
- XmlDataSourceNodeDescriptor.cs
- InkCanvas.cs
- QilList.cs
- WebPartConnectionsConfigureVerb.cs
- MarkupObject.cs
- ListViewGroup.cs
- PenThreadWorker.cs
- MetabaseReader.cs
- ContainerControl.cs
- ResourceProviderFactory.cs
- Panel.cs
- CodePrimitiveExpression.cs
- TreeViewImageGenerator.cs
- XmlSchemaComplexContentRestriction.cs
- MetadataItemEmitter.cs
- RectAnimation.cs
- GeneralTransform.cs
- IgnoreDataMemberAttribute.cs
- FontUnitConverter.cs
- FilePrompt.cs
- XmlSchemaSimpleTypeRestriction.cs
- ManipulationCompletedEventArgs.cs
- DrawingVisual.cs
- ListControl.cs
- XmlSchemaGroupRef.cs
- ForwardPositionQuery.cs
- FlowDocument.cs
- BackgroundFormatInfo.cs
- GC.cs
- CookieParameter.cs
- IndependentAnimationStorage.cs
- ConfigXmlElement.cs
- ArglessEventHandlerProxy.cs
- RegularExpressionValidator.cs
- QueryRewriter.cs
- DetailsViewUpdateEventArgs.cs
- ClientOptions.cs
- BrowserDefinition.cs
- HttpListenerRequest.cs
- ReadOnlyNameValueCollection.cs
- HtmlInputReset.cs
- ResourceManagerWrapper.cs
- DefaultValueTypeConverter.cs
- BitmapEffectGroup.cs
- TypeSchema.cs
- DeferredSelectedIndexReference.cs
- BitmapEffectrendercontext.cs
- WebColorConverter.cs
- coordinatorscratchpad.cs
- EventPrivateKey.cs
- StateMachineDesignerPaint.cs
- TrackingStringDictionary.cs
- XmlAttributeAttribute.cs
- DataGridViewLinkColumn.cs
- TreeViewDataItemAutomationPeer.cs
- DocumentCollection.cs
- SecurityHeaderLayout.cs
- AppSettingsSection.cs
- TargetControlTypeAttribute.cs
- BasicExpandProvider.cs
- AppLevelCompilationSectionCache.cs
- MethodCallConverter.cs
- RequestTimeoutManager.cs
- DataGridDesigner.cs
- ProfilePropertyNameValidator.cs
- IPGlobalProperties.cs
- InvalidDataException.cs
- NodeLabelEditEvent.cs
- SaveFileDialog.cs
- CommunicationException.cs
- DataGridViewColumn.cs
- TransformDescriptor.cs
- LongAverageAggregationOperator.cs
- SrgsGrammar.cs
- DataGridViewDataConnection.cs
- DriveNotFoundException.cs
- ColorAnimationBase.cs
- SaveFileDialog.cs
- VirtualPathProvider.cs
- DecimalConstantAttribute.cs
- BitmapInitialize.cs
- DataRowComparer.cs
- ScrollEvent.cs
- SqlNodeAnnotations.cs
- DesignerTextViewAdapter.cs
- SecurityPolicySection.cs
- HuffModule.cs
- ModelItemCollectionImpl.cs
- HttpCacheParams.cs
- TextEffect.cs
- XmlAnyElementAttributes.cs
- ReadContentAsBinaryHelper.cs
- FusionWrap.cs
- sqlstateclientmanager.cs
- DodSequenceMerge.cs
- DateTimeConverter2.cs
- MediaContext.cs