Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Adapters / XhtmlAdapters / XhtmlBasicTextViewAdapter.cs / 1305376 / XhtmlBasicTextViewAdapter.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
using System;
using System.Security.Permissions;
using System.Web.Mobile;
using System.Web.UI.MobileControls;
using System.Web.UI.MobileControls.Adapters;
#if COMPILING_FOR_SHIPPED_SOURCE
namespace System.Web.UI.MobileControls.ShippedAdapterSource.XhtmlAdapters
#else
namespace System.Web.UI.MobileControls.Adapters.XhtmlAdapters
#endif
{
///
[AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)]
[Obsolete("The System.Web.Mobile.dll assembly has been deprecated and should no longer be used. For information about how to develop ASP.NET mobile applications, see http://go.microsoft.com/fwlink/?LinkId=157231.")]
public class XhtmlTextViewAdapter : XhtmlControlAdapter {
///
protected new TextView Control {
get {
return base.Control as TextView;
}
}
///
public override void Render(XhtmlMobileTextWriter writer) {
int beginElement = Control.FirstVisibleElementIndex;
int beginOffset = Control.FirstVisibleElementOffset;
int endElement = Control.LastVisibleElementIndex;
int endOffset = Control.LastVisibleElementOffset;
// ConditionalClearCachedEndTag() is for a device special case.
ConditionalClearCachedEndTag(writer, Control.Text);
ConditionalEnterStyle(writer, Style);
ConditionalRenderOpeningSpanElement(writer);
writer.WritePendingBreak();
for(int i = beginElement; i <= endElement; i++) {
int begin = (i == beginElement) ? beginOffset : 0;
int end;
if (i == endElement) {
if (endOffset <= begin) {
break;
}
end = endOffset;
}
else {
end = -1;
}
RenderElement(writer, i, begin, end);
}
// ConditionalSetPendingBreak should always be called *before* ConditionalExitStyle.
// ConditionalExitStyle may render a block element and clear the pending break.
ConditionalSetPendingBreak(writer);
ConditionalRenderClosingSpanElement(writer);
ConditionalExitStyle(writer, Style);
}
///
public void RenderElement(XhtmlMobileTextWriter writer, int index, int beginSubstring, int endSubstring) {
TextViewElement element = Control.GetElement(index);
writer.WritePendingBreak();
if (endSubstring == -1) {
endSubstring = element.Text.Length;
}
String text = element.Text;
if (beginSubstring > 0 || endSubstring < text.Length) {
text = text.Substring(beginSubstring, endSubstring - beginSubstring);
}
BooleanOption prevBold = Style.Font.Bold;
BooleanOption prevItalic = Style.Font.Italic;
if (element.IsBold) {
Style.Font.Bold = BooleanOption.True;
}
if (element.IsItalic) {
Style.Font.Italic = BooleanOption.True;
}
ConditionalEnterStyle(writer, Style);
if (element.Url != null) {
RenderBeginLink(writer, element.Url);
writer.WriteEncodedText(text);
RenderEndLink(writer);
}
else {
writer.WriteEncodedText(text);
}
if (element.BreakAfter) {
writer.SetPendingBreak();
}
ConditionalExitStyle(writer, Style);
Style.Font.Bold = prevBold;
Style.Font.Italic = prevItalic;
}
}
}
// 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
- Table.cs
- VariableBinder.cs
- Window.cs
- XmlSerializerNamespaces.cs
- ColumnResizeUndoUnit.cs
- XmlReflectionMember.cs
- MatrixCamera.cs
- EncoderNLS.cs
- SerializableAttribute.cs
- CodeCompileUnit.cs
- PeerApplication.cs
- BaseServiceProvider.cs
- ApplicationTrust.cs
- AncillaryOps.cs
- NativeActivityContext.cs
- IdentityReference.cs
- KeySpline.cs
- RegexCompiler.cs
- FirstQueryOperator.cs
- Expressions.cs
- EditCommandColumn.cs
- FocusChangedEventArgs.cs
- ScriptBehaviorDescriptor.cs
- Trigger.cs
- BufferedReadStream.cs
- InvalidPropValue.cs
- StoreAnnotationsMap.cs
- CodeTryCatchFinallyStatement.cs
- ButtonBaseAdapter.cs
- Transaction.cs
- SqlConnectionString.cs
- LinkedResourceCollection.cs
- DefinitionBase.cs
- PenThread.cs
- ProviderBase.cs
- Enum.cs
- RenderDataDrawingContext.cs
- TabItemAutomationPeer.cs
- RegionIterator.cs
- FontFamily.cs
- TrustLevelCollection.cs
- arabicshape.cs
- CodeDirectiveCollection.cs
- NullableFloatMinMaxAggregationOperator.cs
- TextElementEnumerator.cs
- SweepDirectionValidation.cs
- XmlToDatasetMap.cs
- UInt32.cs
- DeflateStream.cs
- SqlCrossApplyToCrossJoin.cs
- FileDialogPermission.cs
- basecomparevalidator.cs
- InputProcessorProfiles.cs
- Base64Stream.cs
- ConnectionAcceptor.cs
- RepeatInfo.cs
- TargetException.cs
- ExpressionDumper.cs
- Content.cs
- TileBrush.cs
- DeleteMemberBinder.cs
- Walker.cs
- Verify.cs
- BitmapSourceSafeMILHandle.cs
- Message.cs
- ConnectionsZone.cs
- ConstantProjectedSlot.cs
- SafeViewOfFileHandle.cs
- SvcMapFile.cs
- PageAsyncTask.cs
- Wildcard.cs
- WriteStateInfoBase.cs
- PagedDataSource.cs
- Ref.cs
- EnterpriseServicesHelper.cs
- GCHandleCookieTable.cs
- ComponentDispatcher.cs
- SerializationInfoEnumerator.cs
- WpfSharedXamlSchemaContext.cs
- RouteItem.cs
- VerificationAttribute.cs
- UnmanagedMemoryStream.cs
- ResourcePermissionBaseEntry.cs
- WorkflowServiceAttributesTypeConverter.cs
- WebPartCatalogAddVerb.cs
- ValueSerializer.cs
- _AutoWebProxyScriptWrapper.cs
- DataGridViewAccessibleObject.cs
- dataSvcMapFileLoader.cs
- LinkUtilities.cs
- HtmlFormParameterWriter.cs
- MemoryRecordBuffer.cs
- DataGridViewTextBoxEditingControl.cs
- TextParagraphProperties.cs
- CodeGotoStatement.cs
- InvalidOleVariantTypeException.cs
- TemplateBindingExpression.cs
- FatalException.cs
- SubqueryTrackingVisitor.cs
- WorkflowHostingEndpoint.cs