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
- SoundPlayerAction.cs
- Int32CollectionConverter.cs
- XmlNavigatorFilter.cs
- ItemCollectionEditor.cs
- FragmentQueryProcessor.cs
- WorkflowInstance.cs
- KeyboardEventArgs.cs
- RequestValidator.cs
- FileUtil.cs
- SelectionRange.cs
- ArrayExtension.cs
- CdpEqualityComparer.cs
- IndicFontClient.cs
- PrimitiveSchema.cs
- Vars.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- EmptyEnumerator.cs
- SoapAttributes.cs
- FixedHighlight.cs
- DataRelation.cs
- StringResourceManager.cs
- MetadataArtifactLoaderCompositeFile.cs
- FastPropertyAccessor.cs
- EventEntry.cs
- SByteStorage.cs
- DataTableReaderListener.cs
- IndexedGlyphRun.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- CodeMemberField.cs
- PassportAuthentication.cs
- MustUnderstandSoapException.cs
- Globals.cs
- GenericEnumConverter.cs
- ImagingCache.cs
- ButtonColumn.cs
- LinqToSqlWrapper.cs
- sqlser.cs
- ObjectDataSourceEventArgs.cs
- CompoundFileIOPermission.cs
- MailWebEventProvider.cs
- SessionPageStateSection.cs
- UnauthorizedWebPart.cs
- LinqDataSourceUpdateEventArgs.cs
- FrameworkPropertyMetadata.cs
- OracleConnectionString.cs
- ConstrainedDataObject.cs
- StrongNamePublicKeyBlob.cs
- ParallelTimeline.cs
- printdlgexmarshaler.cs
- BigIntegerStorage.cs
- PathFigureCollectionConverter.cs
- HwndMouseInputProvider.cs
- OlePropertyStructs.cs
- ProcessHostFactoryHelper.cs
- HttpFileCollection.cs
- BitmapEditor.cs
- SerializerWriterEventHandlers.cs
- DeploymentSection.cs
- CharEnumerator.cs
- XmlCollation.cs
- CodeGenerator.cs
- ContainerControl.cs
- CategoryNameCollection.cs
- MimeTypePropertyAttribute.cs
- DataServiceProviderWrapper.cs
- NativeMethods.cs
- DataTransferEventArgs.cs
- WindowsTokenRoleProvider.cs
- CultureInfoConverter.cs
- WriteTimeStream.cs
- DelimitedListTraceListener.cs
- QilBinary.cs
- RepeatInfo.cs
- BooleanFacetDescriptionElement.cs
- ModifierKeysValueSerializer.cs
- TimeSpanSecondsConverter.cs
- DataGridParentRows.cs
- CompiledRegexRunnerFactory.cs
- ObjectQuery_EntitySqlExtensions.cs
- ComboBoxItem.cs
- ReliableSessionBindingElement.cs
- DragEvent.cs
- Utils.cs
- ToolStripDropDownItem.cs
- COAUTHINFO.cs
- SystemResources.cs
- EmptyEnumerator.cs
- MasterPageBuildProvider.cs
- Util.cs
- SessionPageStatePersister.cs
- ListItemCollection.cs
- PermissionSetTriple.cs
- BitmapEffectInputData.cs
- FlagsAttribute.cs
- SeverityFilter.cs
- PolicyManager.cs
- DateTimeConstantAttribute.cs
- ImageField.cs
- UpdateExpressionVisitor.cs
- PenContexts.cs