Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Documents / TextServicesDisplayAttribute.cs / 1 / TextServicesDisplayAttribute.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: TextServicesDisplayAttribute
//
// History:
// 08/01/2003 : yutakas - Ported from dotnet tree.
//
//---------------------------------------------------------------------------
using System.Runtime.InteropServices;
using System.Windows.Threading;
using System.Collections;
using System.Diagnostics;
using System.Windows.Media;
using System.Windows.Input;
using System.Windows.Documents;
using MS.Win32;
using System;
namespace System.Windows.Documents
{
//-----------------------------------------------------
//
// TextServicesDisplayAttribute class
//
//-----------------------------------------------------
///
/// The helper class to wrap TF_DISPLAYATTRIBUTE.
///
internal class TextServicesDisplayAttribute
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
internal TextServicesDisplayAttribute(UnsafeNativeMethods.TF_DISPLAYATTRIBUTE attr)
{
_attr = attr;
}
//------------------------------------------------------
//
// Internal Method
//
//------------------------------------------------------
///
/// Check if this is empty.
///
internal bool IsEmptyAttribute()
{
if (_attr.crText.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.crBk.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.crLine.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.lsStyle != UnsafeNativeMethods.TF_DA_LINESTYLE.TF_LS_NONE)
return false;
return true;
}
///
/// Apply the display attribute to to the given range.
///
internal void Apply(ITextPointer start, ITextPointer end)
{
//
//
#if NOT_YET
if (_attr.crText.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE)
{
}
if (_attr.crBk.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE)
{
}
if (_attr.lsStyle != UnsafeNativeMethods.TF_DA_LINESTYLE.TF_LS_NONE)
{
}
#endif
}
///
/// Convert TF_DA_COLOR to Color.
///
internal static Color GetColor(UnsafeNativeMethods.TF_DA_COLOR dacolor)
{
if (dacolor.type == UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_SYSCOLOR)
{
return GetSystemColor(dacolor.indexOrColorRef);
}
else if (dacolor.type == UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_COLORREF)
{
int color = dacolor.indexOrColorRef;
uint argb = (uint)FromWin32Value(color);
return Color.FromArgb((byte)((argb&0xff000000)>>24), (byte)((argb&0x00ff0000)>>16),(byte)((argb&0x0000ff00)>>8), (byte)(argb&0x000000ff));
}
return Color.FromArgb(0xff,0,0,0);
}
///
/// Line color of the composition line draw
///
internal Color LineColor
{
get
{
return GetColor(_attr.crLine);
}
}
///
/// Line style of the composition line draw
///
internal UnsafeNativeMethods.TF_DA_LINESTYLE LineStyle
{
get
{
return _attr.lsStyle;
}
}
///
/// Line bold of the composition line draw
///
internal bool IsBoldLine
{
get
{
return _attr.fBoldLine;
}
}
/**
* Shift count and bit mask for A, R, G, B components
*/
private const int AlphaShift = 24;
private const int RedShift = 16;
private const int GreenShift = 8;
private const int BlueShift = 0;
private const int Win32RedShift = 0;
private const int Win32GreenShift = 8;
private const int Win32BlueShift = 16;
private static int Encode(int alpha, int red, int green, int blue)
{
return red << RedShift | green << GreenShift | blue << BlueShift | alpha << AlphaShift;
}
private static int FromWin32Value(int value)
{
return Encode(255,
(value >> Win32RedShift) & 0xFF,
(value >> Win32GreenShift) & 0xFF,
(value >> Win32BlueShift) & 0xFF);
}
///
/// Query for system colors.
///
/// Same parameter as Win32's GetSysColor
/// The system color.
private static Color GetSystemColor(int index)
{
uint argb;
int color = SafeNativeMethods.GetSysColor(index);
argb = (uint)FromWin32Value(color);
return Color.FromArgb((byte)((argb&0xff000000)>>24), (byte)((argb&0x00ff0000)>>16),(byte)((argb&0x0000ff00)>>8), (byte)(argb&0x000000ff));
}
//-----------------------------------------------------
//
// Private Field
//
//------------------------------------------------------
private UnsafeNativeMethods.TF_DISPLAYATTRIBUTE _attr;
}
}
// 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: TextServicesDisplayAttribute
//
// History:
// 08/01/2003 : yutakas - Ported from dotnet tree.
//
//---------------------------------------------------------------------------
using System.Runtime.InteropServices;
using System.Windows.Threading;
using System.Collections;
using System.Diagnostics;
using System.Windows.Media;
using System.Windows.Input;
using System.Windows.Documents;
using MS.Win32;
using System;
namespace System.Windows.Documents
{
//-----------------------------------------------------
//
// TextServicesDisplayAttribute class
//
//-----------------------------------------------------
///
/// The helper class to wrap TF_DISPLAYATTRIBUTE.
///
internal class TextServicesDisplayAttribute
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
internal TextServicesDisplayAttribute(UnsafeNativeMethods.TF_DISPLAYATTRIBUTE attr)
{
_attr = attr;
}
//------------------------------------------------------
//
// Internal Method
//
//------------------------------------------------------
///
/// Check if this is empty.
///
internal bool IsEmptyAttribute()
{
if (_attr.crText.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.crBk.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.crLine.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE ||
_attr.lsStyle != UnsafeNativeMethods.TF_DA_LINESTYLE.TF_LS_NONE)
return false;
return true;
}
///
/// Apply the display attribute to to the given range.
///
internal void Apply(ITextPointer start, ITextPointer end)
{
//
//
#if NOT_YET
if (_attr.crText.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE)
{
}
if (_attr.crBk.type != UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_NONE)
{
}
if (_attr.lsStyle != UnsafeNativeMethods.TF_DA_LINESTYLE.TF_LS_NONE)
{
}
#endif
}
///
/// Convert TF_DA_COLOR to Color.
///
internal static Color GetColor(UnsafeNativeMethods.TF_DA_COLOR dacolor)
{
if (dacolor.type == UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_SYSCOLOR)
{
return GetSystemColor(dacolor.indexOrColorRef);
}
else if (dacolor.type == UnsafeNativeMethods.TF_DA_COLORTYPE.TF_CT_COLORREF)
{
int color = dacolor.indexOrColorRef;
uint argb = (uint)FromWin32Value(color);
return Color.FromArgb((byte)((argb&0xff000000)>>24), (byte)((argb&0x00ff0000)>>16),(byte)((argb&0x0000ff00)>>8), (byte)(argb&0x000000ff));
}
return Color.FromArgb(0xff,0,0,0);
}
///
/// Line color of the composition line draw
///
internal Color LineColor
{
get
{
return GetColor(_attr.crLine);
}
}
///
/// Line style of the composition line draw
///
internal UnsafeNativeMethods.TF_DA_LINESTYLE LineStyle
{
get
{
return _attr.lsStyle;
}
}
///
/// Line bold of the composition line draw
///
internal bool IsBoldLine
{
get
{
return _attr.fBoldLine;
}
}
/**
* Shift count and bit mask for A, R, G, B components
*/
private const int AlphaShift = 24;
private const int RedShift = 16;
private const int GreenShift = 8;
private const int BlueShift = 0;
private const int Win32RedShift = 0;
private const int Win32GreenShift = 8;
private const int Win32BlueShift = 16;
private static int Encode(int alpha, int red, int green, int blue)
{
return red << RedShift | green << GreenShift | blue << BlueShift | alpha << AlphaShift;
}
private static int FromWin32Value(int value)
{
return Encode(255,
(value >> Win32RedShift) & 0xFF,
(value >> Win32GreenShift) & 0xFF,
(value >> Win32BlueShift) & 0xFF);
}
///
/// Query for system colors.
///
/// Same parameter as Win32's GetSysColor
/// The system color.
private static Color GetSystemColor(int index)
{
uint argb;
int color = SafeNativeMethods.GetSysColor(index);
argb = (uint)FromWin32Value(color);
return Color.FromArgb((byte)((argb&0xff000000)>>24), (byte)((argb&0x00ff0000)>>16),(byte)((argb&0x0000ff00)>>8), (byte)(argb&0x000000ff));
}
//-----------------------------------------------------
//
// Private Field
//
//------------------------------------------------------
private UnsafeNativeMethods.TF_DISPLAYATTRIBUTE _attr;
}
}
// 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
- ServiceNotStartedException.cs
- LazyInitializer.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- figurelength.cs
- OleDbFactory.cs
- TreeViewItem.cs
- TreeNodeEventArgs.cs
- XmlCharCheckingWriter.cs
- RC2CryptoServiceProvider.cs
- QueryCursorEventArgs.cs
- Int32CAMarshaler.cs
- Thread.cs
- MemberCollection.cs
- TemplateXamlParser.cs
- ProviderIncompatibleException.cs
- LassoHelper.cs
- _Rfc2616CacheValidators.cs
- SecurityRuntime.cs
- HashCodeCombiner.cs
- DATA_BLOB.cs
- RuleSettingsCollection.cs
- LazyInitializer.cs
- SystemFonts.cs
- _ListenerRequestStream.cs
- PageThemeBuildProvider.cs
- IsolatedStoragePermission.cs
- FlowLayoutSettings.cs
- GroupedContextMenuStrip.cs
- IriParsingElement.cs
- IndexerNameAttribute.cs
- SqlTrackingWorkflowInstance.cs
- TagMapCollection.cs
- SQLInt64.cs
- ContentFileHelper.cs
- WebScriptMetadataMessageEncodingBindingElement.cs
- LocatorPart.cs
- SafeMILHandle.cs
- EventTrigger.cs
- CultureInfo.cs
- ScrollBar.cs
- DynamicControl.cs
- GeometryDrawing.cs
- AutoGeneratedFieldProperties.cs
- PartManifestEntry.cs
- FrugalMap.cs
- BamlLocalizationDictionary.cs
- GridView.cs
- JoinSymbol.cs
- InternalSafeNativeMethods.cs
- MetadataItem_Static.cs
- AbstractSvcMapFileLoader.cs
- SqlRowUpdatingEvent.cs
- WebUtil.cs
- AdapterSwitches.cs
- DesignerDataRelationship.cs
- Random.cs
- ActivityInterfaces.cs
- ToolTipService.cs
- ApplicationHost.cs
- PrimitiveOperationFormatter.cs
- Debug.cs
- BigIntegerStorage.cs
- WindowsTitleBar.cs
- ExternalCalls.cs
- NotFiniteNumberException.cs
- RSAOAEPKeyExchangeFormatter.cs
- Matrix3DConverter.cs
- SynthesizerStateChangedEventArgs.cs
- BamlRecordHelper.cs
- ProxyWebPart.cs
- HttpProxyTransportBindingElement.cs
- ToolStripDropDownItemDesigner.cs
- SoapCodeExporter.cs
- TypeUsageBuilder.cs
- Scalars.cs
- WebPartConnectionCollection.cs
- EngineSiteSapi.cs
- TextTreeInsertElementUndoUnit.cs
- ListParaClient.cs
- XmlSchemaImport.cs
- TypeInfo.cs
- KeyConverter.cs
- ScriptHandlerFactory.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- DbConnectionPool.cs
- Grant.cs
- FontStretchConverter.cs
- ReadOnlyPropertyMetadata.cs
- NumberFormatInfo.cs
- ResourceAttributes.cs
- ReadOnlyDataSource.cs
- MouseBinding.cs
- IndexingContentUnit.cs
- DirectionalLight.cs
- EventWaitHandle.cs
- JulianCalendar.cs
- HeaderedContentControl.cs
- ShapingWorkspace.cs
- RbTree.cs
- Visual3D.cs