Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- StickyNoteContentControl.cs
- ByeOperation11AsyncResult.cs
- WebEncodingValidator.cs
- CommonDialog.cs
- InvokePatternIdentifiers.cs
- WebPartRestoreVerb.cs
- WS2007FederationHttpBinding.cs
- Drawing.cs
- DependencySource.cs
- EmptyStringExpandableObjectConverter.cs
- SqlWebEventProvider.cs
- ArraySegment.cs
- MissingManifestResourceException.cs
- cache.cs
- KeyToListMap.cs
- CustomErrorsSection.cs
- CredentialCache.cs
- PropertyInfoSet.cs
- ArrayTypeMismatchException.cs
- BufferAllocator.cs
- FollowerQueueCreator.cs
- IdleTimeoutMonitor.cs
- WinEventQueueItem.cs
- RijndaelCryptoServiceProvider.cs
- ErrorCodes.cs
- BidPrivateBase.cs
- CrossSiteScriptingValidation.cs
- XmlHelper.cs
- StorageModelBuildProvider.cs
- PopOutPanel.cs
- ColorConvertedBitmapExtension.cs
- WorkflowTraceTransfer.cs
- NativeMethods.cs
- Metadata.cs
- MouseEventArgs.cs
- SqlCacheDependencySection.cs
- BackgroundFormatInfo.cs
- StorageSetMapping.cs
- FilterException.cs
- EntityDataSourceEntitySetNameItem.cs
- ReferenceAssemblyAttribute.cs
- MaskedTextBoxTextEditorDropDown.cs
- COMException.cs
- tooltip.cs
- DataGridHeaderBorder.cs
- ManagedWndProcTracker.cs
- If.cs
- FaultContractInfo.cs
- LogicalExpressionTypeConverter.cs
- ProfileSection.cs
- AmbientValueAttribute.cs
- FlowDecision.cs
- CompoundFileStorageReference.cs
- CatalogZone.cs
- BinaryWriter.cs
- HorizontalAlignConverter.cs
- SiteMapNode.cs
- Grant.cs
- TypeUnloadedException.cs
- ItemsPresenter.cs
- SHA512Managed.cs
- WebHttpSecurityElement.cs
- DiffuseMaterial.cs
- Bidi.cs
- Rect.cs
- SqlNotificationEventArgs.cs
- ListItemParagraph.cs
- SqlDataSourceView.cs
- TableLayoutSettingsTypeConverter.cs
- QilList.cs
- Cursor.cs
- NullableFloatAverageAggregationOperator.cs
- TextElementCollection.cs
- CodeDirectionExpression.cs
- SQLDouble.cs
- TimeSpanValidator.cs
- RefExpr.cs
- CompoundFileReference.cs
- DashStyles.cs
- MatrixTransform.cs
- FunctionParameter.cs
- HttpListenerRequest.cs
- HtmlHistory.cs
- DocumentsTrace.cs
- SiteMapProvider.cs
- MenuRendererClassic.cs
- DataViewSettingCollection.cs
- HttpFileCollection.cs
- FileReservationCollection.cs
- DesignTimeParseData.cs
- HitTestWithGeometryDrawingContextWalker.cs
- PackagingUtilities.cs
- TargetInvocationException.cs
- AnnouncementEndpointElement.cs
- ObjectConverter.cs
- MemberInfoSerializationHolder.cs
- FileDialogCustomPlace.cs
- _RequestCacheProtocol.cs
- DateTimeOffsetConverter.cs
- XmlNode.cs