Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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(){
}
///
///
/// [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
- EncoderBestFitFallback.cs
- AutomationPeer.cs
- SelectionEditor.cs
- EndEvent.cs
- DatasetMethodGenerator.cs
- SchemaNotation.cs
- CodeRegionDirective.cs
- ExpressionUtilities.cs
- AbandonedMutexException.cs
- SqlDataSourceCommandEventArgs.cs
- ToolboxItemCollection.cs
- TrackingStringDictionary.cs
- DelegateHelpers.cs
- UserControl.cs
- DataMember.cs
- BindingMemberInfo.cs
- DictionaryMarkupSerializer.cs
- CustomCategoryAttribute.cs
- Size.cs
- CopyOfAction.cs
- FullTextState.cs
- UpdatableGenericsFeature.cs
- TemplateControlBuildProvider.cs
- GuidTagList.cs
- DataGridViewRowPostPaintEventArgs.cs
- OrderPreservingPipeliningSpoolingTask.cs
- SerializationSectionGroup.cs
- XmlSchemaProviderAttribute.cs
- CodeNamespaceCollection.cs
- codemethodreferenceexpression.cs
- CompositeCollectionView.cs
- AdapterUtil.cs
- SmiXetterAccessMap.cs
- ServiceDescription.cs
- WebPartTracker.cs
- BindingWorker.cs
- SQlBooleanStorage.cs
- CalendarDesigner.cs
- Nullable.cs
- RegexStringValidator.cs
- WebEvents.cs
- ExtensionSimplifierMarkupObject.cs
- BufferedStream.cs
- ConnectionProviderAttribute.cs
- Types.cs
- DtdParser.cs
- SecurityKeyUsage.cs
- MethodImplAttribute.cs
- XmlImplementation.cs
- HierarchicalDataSourceConverter.cs
- RegexFCD.cs
- UIPropertyMetadata.cs
- Tuple.cs
- GuidelineSet.cs
- XsltInput.cs
- EventProxy.cs
- WmiPutTraceRecord.cs
- ChannelEndpointElementCollection.cs
- ControlValuePropertyAttribute.cs
- SqlProfileProvider.cs
- DataGridViewMethods.cs
- UIPermission.cs
- QilList.cs
- SiteMapNodeItem.cs
- SemaphoreSecurity.cs
- WebConfigurationManager.cs
- NamedPipeConnectionPoolSettingsElement.cs
- NonSerializedAttribute.cs
- WindowsTokenRoleProvider.cs
- Typography.cs
- ColumnClickEvent.cs
- TimeoutException.cs
- xdrvalidator.cs
- ClientSettingsStore.cs
- Visitors.cs
- Evaluator.cs
- ChangeBlockUndoRecord.cs
- Schema.cs
- HandlerFactoryCache.cs
- TemplateBuilder.cs
- TimeStampChecker.cs
- URL.cs
- SelectedGridItemChangedEvent.cs
- XhtmlStyleClass.cs
- InputMethod.cs
- ResourceCollectionInfo.cs
- XmlElementList.cs
- CompensationDesigner.cs
- DataComponentMethodGenerator.cs
- WebCategoryAttribute.cs
- DataPagerFieldCollection.cs
- IUnknownConstantAttribute.cs
- errorpatternmatcher.cs
- BitmapSource.cs
- SchemaConstraints.cs
- DriveNotFoundException.cs
- ObjectDataSourceChooseMethodsPanel.cs
- RemotingAttributes.cs
- ResourcePermissionBaseEntry.cs
- BindableTemplateBuilder.cs