Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / MS / Internal / Controls / StickyNote / StickyNoteHelper.cs / 1 / StickyNoteHelper.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Implementation of StickyNoteControl's internal helper classes.
//
// See spec at http://tabletpc/longhorn/Specs/StickyNoteControlSpec.mht
//
// History:
// 04/19/2004 - waynezen - Expose more properties and methods
// 02/17/2004 - waynezen - Moved to TabletFramework
// 10/06/2003 - waynezen - Added Ink and snippet image supports.
// 09/02/2003 - waynezen - Created.
//
//---------------------------------------------------------------------------
using MS.Internal.Annotations.Component;
using MS.Utility;
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Resources;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.Threading;
using System.Windows;
using System.Windows.Annotations;
using System.Windows.Annotations.Storage;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Resources;
using System.Windows.Markup;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.XPath;
namespace MS.Internal.Controls.StickyNote
{
//-------------------------------------------------------------------------------
//
// Internal Classes
//
//-------------------------------------------------------------------------------
#region Internal Classes
// This is a helper class which is used as a lock which can lock or unlock a specified flag. The usage looks like:
//
// public class Test
// {
// public void MethodA()
// {
// // A lock is needed in a scope which can block MethodB likes a event handler.
// using ( LockHelper.AutoLocker locker = new LockHelper.AutoLocker(InternalLocker, LockHelper.LockFlag.SliderValueChanged) )
// {
// // Do some work.
// }
// }
//
// public void MethodB()
// {
// // We don't want to handle the below if the locker is locked.
// if ( !InternalLocker.IsLocked() )
// {
// // Do some work.
// }
// }
// }
internal class LockHelper
{
[Flags]
public enum LockFlag
{
AnnotationChanged = 0x00000001,
DataChanged = 0x00000002,
}
public class AutoLocker : IDisposable
{
public AutoLocker(LockHelper helper, LockFlag flag)
{
if(helper == null)
{
throw new ArgumentNullException("helper");
}
Debug.Assert(!helper.IsLocked(flag));
_helper = helper;
_flag = flag;
// Lock the locker at the object's creation time.
_helper.Lock(_flag);
}
public void Dispose()
{
Debug.Assert(_helper.IsLocked(_flag));
// Unlock the locker when it's being disposed.
_helper.Unlock(_flag);
}
private AutoLocker() { }
private LockHelper _helper;
private LockFlag _flag;
}
public bool IsLocked(LockFlag flag)
{
return ( _backingStore & flag ) != 0;
}
private void Lock(LockFlag flag)
{
_backingStore |= flag;
}
private void Unlock(LockFlag flag)
{
_backingStore &= ( ~flag );
}
private LockFlag _backingStore;
}
// This class contains all constants which is used by StickyNoteControl component.
internal static class SNBConstants
{
//--------------------------------------------------------------------------------
//
// Internal Fields
//
//-------------------------------------------------------------------------------
#region Internal Fields
// The style ID of StickyNote's children
internal const string c_CloseButtonId = "PART_CloseButton";
internal const string c_TitleThumbId = "PART_TitleThumb";
internal const string c_BottomRightResizeThumbId = "PART_ResizeBottomRightThumb";
internal const string c_ContentControlId = "PART_ContentControl";
internal const string c_IconButtonId = "PART_IconButton";
internal const string c_CopyMenuId = "PART_CopyMenuItem";
internal const string c_PasteMenuId = "PART_PasteMenuItem";
internal const string c_ClipboardSeparatorId = "PART_ClipboardSeparator";
internal const string c_DeleteMenuId = "PART_DeleteMenuItem";
internal const string c_InkMenuId = "PART_InkMenuItem";
internal const string c_SelectMenuId = "PART_SelectMenuItem";
internal const string c_EraseMenuId = "PART_EraseMenuItem";
// CAF Resouce guids
internal const string MetaResourceName = "Meta Data"; // Snc MetaData
internal const string TextResourceName = "Text Data"; // Text
internal const string InkResourceName = "Ink Data"; // Ink
#endregion Internal Fields
}
#endregion Internal Classes
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: Implementation of StickyNoteControl's internal helper classes.
//
// See spec at http://tabletpc/longhorn/Specs/StickyNoteControlSpec.mht
//
// History:
// 04/19/2004 - waynezen - Expose more properties and methods
// 02/17/2004 - waynezen - Moved to TabletFramework
// 10/06/2003 - waynezen - Added Ink and snippet image supports.
// 09/02/2003 - waynezen - Created.
//
//---------------------------------------------------------------------------
using MS.Internal.Annotations.Component;
using MS.Utility;
using System;
using System.ComponentModel;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Reflection;
using System.Resources;
using System.Runtime.InteropServices;
using System.Runtime.Serialization;
using System.Security;
using System.Security.Permissions;
using System.Threading;
using System.Windows;
using System.Windows.Annotations;
using System.Windows.Annotations.Storage;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Resources;
using System.Windows.Markup;
using System.Windows.Shapes;
using System.Xml;
using System.Xml.XPath;
namespace MS.Internal.Controls.StickyNote
{
//-------------------------------------------------------------------------------
//
// Internal Classes
//
//-------------------------------------------------------------------------------
#region Internal Classes
// This is a helper class which is used as a lock which can lock or unlock a specified flag. The usage looks like:
//
// public class Test
// {
// public void MethodA()
// {
// // A lock is needed in a scope which can block MethodB likes a event handler.
// using ( LockHelper.AutoLocker locker = new LockHelper.AutoLocker(InternalLocker, LockHelper.LockFlag.SliderValueChanged) )
// {
// // Do some work.
// }
// }
//
// public void MethodB()
// {
// // We don't want to handle the below if the locker is locked.
// if ( !InternalLocker.IsLocked() )
// {
// // Do some work.
// }
// }
// }
internal class LockHelper
{
[Flags]
public enum LockFlag
{
AnnotationChanged = 0x00000001,
DataChanged = 0x00000002,
}
public class AutoLocker : IDisposable
{
public AutoLocker(LockHelper helper, LockFlag flag)
{
if(helper == null)
{
throw new ArgumentNullException("helper");
}
Debug.Assert(!helper.IsLocked(flag));
_helper = helper;
_flag = flag;
// Lock the locker at the object's creation time.
_helper.Lock(_flag);
}
public void Dispose()
{
Debug.Assert(_helper.IsLocked(_flag));
// Unlock the locker when it's being disposed.
_helper.Unlock(_flag);
}
private AutoLocker() { }
private LockHelper _helper;
private LockFlag _flag;
}
public bool IsLocked(LockFlag flag)
{
return ( _backingStore & flag ) != 0;
}
private void Lock(LockFlag flag)
{
_backingStore |= flag;
}
private void Unlock(LockFlag flag)
{
_backingStore &= ( ~flag );
}
private LockFlag _backingStore;
}
// This class contains all constants which is used by StickyNoteControl component.
internal static class SNBConstants
{
//--------------------------------------------------------------------------------
//
// Internal Fields
//
//-------------------------------------------------------------------------------
#region Internal Fields
// The style ID of StickyNote's children
internal const string c_CloseButtonId = "PART_CloseButton";
internal const string c_TitleThumbId = "PART_TitleThumb";
internal const string c_BottomRightResizeThumbId = "PART_ResizeBottomRightThumb";
internal const string c_ContentControlId = "PART_ContentControl";
internal const string c_IconButtonId = "PART_IconButton";
internal const string c_CopyMenuId = "PART_CopyMenuItem";
internal const string c_PasteMenuId = "PART_PasteMenuItem";
internal const string c_ClipboardSeparatorId = "PART_ClipboardSeparator";
internal const string c_DeleteMenuId = "PART_DeleteMenuItem";
internal const string c_InkMenuId = "PART_InkMenuItem";
internal const string c_SelectMenuId = "PART_SelectMenuItem";
internal const string c_EraseMenuId = "PART_EraseMenuItem";
// CAF Resouce guids
internal const string MetaResourceName = "Meta Data"; // Snc MetaData
internal const string TextResourceName = "Text Data"; // Text
internal const string InkResourceName = "Ink Data"; // Ink
#endregion Internal Fields
}
#endregion Internal Classes
}
// 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
- WeakReferenceKey.cs
- ScriptResourceHandler.cs
- HttpCapabilitiesBase.cs
- NamespaceCollection.cs
- PartialTrustHelpers.cs
- XmlHierarchicalEnumerable.cs
- StringDictionaryWithComparer.cs
- DropSourceBehavior.cs
- DataSetFieldSchema.cs
- ErrorHandler.cs
- SqlPersonalizationProvider.cs
- RtfControls.cs
- EntityContainer.cs
- SponsorHelper.cs
- ShaperBuffers.cs
- InvalidAsynchronousStateException.cs
- ButtonAutomationPeer.cs
- DataListItemCollection.cs
- ClientBuildManager.cs
- BindValidator.cs
- DataGridHeaderBorder.cs
- Image.cs
- StylusDevice.cs
- typedescriptorpermissionattribute.cs
- TreeNodeConverter.cs
- DllNotFoundException.cs
- PointLight.cs
- ContextStaticAttribute.cs
- EditingCommands.cs
- WindowsImpersonationContext.cs
- PageSettings.cs
- MethodBody.cs
- CodeAttachEventStatement.cs
- PointConverter.cs
- AssemblyHash.cs
- UnsafeNativeMethods.cs
- SchemaType.cs
- WebPageTraceListener.cs
- StorageRoot.cs
- LiteralDesigner.cs
- CodeCompileUnit.cs
- RoutedPropertyChangedEventArgs.cs
- AttributeEmitter.cs
- CreatingCookieEventArgs.cs
- SymLanguageType.cs
- DatatypeImplementation.cs
- Decoder.cs
- FormViewInsertedEventArgs.cs
- CompleteWizardStep.cs
- DrawListViewSubItemEventArgs.cs
- HttpContext.cs
- Parameter.cs
- GACMembershipCondition.cs
- CodeSubDirectory.cs
- LookupNode.cs
- ArraySegment.cs
- AnonymousIdentificationSection.cs
- ListenerSessionConnection.cs
- SoapSchemaMember.cs
- BitmapEffectvisualstate.cs
- sqlser.cs
- Helpers.cs
- AtomicFile.cs
- DiscoveryServiceExtension.cs
- BitmapEffectrendercontext.cs
- CookielessHelper.cs
- BoundField.cs
- HttpHeaderCollection.cs
- VariableAction.cs
- FunctionUpdateCommand.cs
- UseLicense.cs
- UmAlQuraCalendar.cs
- MessageDecoder.cs
- FocusTracker.cs
- MarkupObject.cs
- BatchWriter.cs
- UniqueID.cs
- Mapping.cs
- ObjectHandle.cs
- GridViewRowPresenter.cs
- MobileSysDescriptionAttribute.cs
- UdpRetransmissionSettings.cs
- ComplexType.cs
- DefaultPropertyAttribute.cs
- PrintDialogDesigner.cs
- ResourceWriter.cs
- PopOutPanel.cs
- Inflater.cs
- AnnotationResourceCollection.cs
- MarginsConverter.cs
- WindowsBrush.cs
- ModuleBuilderData.cs
- BlurEffect.cs
- RegexBoyerMoore.cs
- AssemblyBuilder.cs
- ByteAnimationBase.cs
- PageAsyncTaskManager.cs
- ResourceProperty.cs
- WizardForm.cs
- ColorTransformHelper.cs