Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- HwndSubclass.cs
- DecimalConstantAttribute.cs
- StylusButtonEventArgs.cs
- ProfileSection.cs
- NativeMethods.cs
- MD5CryptoServiceProvider.cs
- NamespaceMapping.cs
- ProgressBar.cs
- ParagraphVisual.cs
- WebPartVerb.cs
- DataGridColumn.cs
- _ListenerRequestStream.cs
- XmlSchemaAnnotation.cs
- Utils.cs
- EntityContainer.cs
- ToolStripManager.cs
- InstanceCreationEditor.cs
- XmlQualifiedName.cs
- HWStack.cs
- UnionCqlBlock.cs
- TcpAppDomainProtocolHandler.cs
- Literal.cs
- PropertyChangingEventArgs.cs
- RegexEditorDialog.cs
- TextElementCollectionHelper.cs
- PaperSource.cs
- PtsHelper.cs
- CodeIndexerExpression.cs
- CaseInsensitiveOrdinalStringComparer.cs
- CodeMemberProperty.cs
- FontFamily.cs
- SQLGuidStorage.cs
- SubstitutionResponseElement.cs
- WebServiceClientProxyGenerator.cs
- Viewport3DVisual.cs
- TextBox.cs
- LinqDataSourceDisposeEventArgs.cs
- AuthenticationService.cs
- WebPartConnection.cs
- CodeAttributeArgument.cs
- ImageMapEventArgs.cs
- DbProviderFactory.cs
- EditingCoordinator.cs
- TransportSecurityHelpers.cs
- ConditionalAttribute.cs
- CompilerLocalReference.cs
- RadialGradientBrush.cs
- MatrixAnimationBase.cs
- QueryExpression.cs
- RIPEMD160Managed.cs
- MultiViewDesigner.cs
- FileVersionInfo.cs
- XamlReaderHelper.cs
- Container.cs
- ThreadStateException.cs
- ExpressionConverter.cs
- NativeMethods.cs
- ElementHostPropertyMap.cs
- PropertyChangedEventManager.cs
- ParseHttpDate.cs
- UnknownWrapper.cs
- SpellerInterop.cs
- DataGridViewColumnConverter.cs
- RunClient.cs
- ZoneMembershipCondition.cs
- DataObjectSettingDataEventArgs.cs
- SystemIcons.cs
- SurrogateSelector.cs
- SafeCertificateStore.cs
- _ContextAwareResult.cs
- WebPartMinimizeVerb.cs
- UInt16Converter.cs
- QilIterator.cs
- StructureChangedEventArgs.cs
- EntityUtil.cs
- TemplatePagerField.cs
- VisualStateGroup.cs
- DataMisalignedException.cs
- DateTimeOffsetAdapter.cs
- DesignerPainter.cs
- SocketException.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- UpDownEvent.cs
- HttpServerUtilityWrapper.cs
- ResourceType.cs
- D3DImage.cs
- ItemCollection.cs
- PartitionResolver.cs
- InheritablePropertyChangeInfo.cs
- DataListDesigner.cs
- UIElement3D.cs
- BaseTreeIterator.cs
- MonitoringDescriptionAttribute.cs
- WebPartTracker.cs
- AnnotationComponentManager.cs
- IdleTimeoutMonitor.cs
- MailWriter.cs
- BamlTreeNode.cs
- DetailsViewInsertEventArgs.cs
- ObjectManager.cs