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
- HostAdapter.cs
- MouseGestureValueSerializer.cs
- CodePrimitiveExpression.cs
- XmlDesignerDataSourceView.cs
- SqlClientFactory.cs
- ServerValidateEventArgs.cs
- QilList.cs
- Int64Animation.cs
- ToolbarAUtomationPeer.cs
- ApplicationCommands.cs
- WebBrowserUriTypeConverter.cs
- CollectionEditorDialog.cs
- TimeSpan.cs
- SmtpFailedRecipientsException.cs
- StylusPlugin.cs
- MachineKeySection.cs
- LambdaCompiler.Lambda.cs
- BreakRecordTable.cs
- Console.cs
- LookupBindingPropertiesAttribute.cs
- RotationValidation.cs
- PbrsForward.cs
- ClientCredentialsSecurityTokenManager.cs
- LockedBorderGlyph.cs
- WindowsScrollBar.cs
- Animatable.cs
- HtmlGenericControl.cs
- QilTypeChecker.cs
- WebConfigurationManager.cs
- _AutoWebProxyScriptWrapper.cs
- PageSetupDialog.cs
- ContainerFilterService.cs
- NativeMethodsCLR.cs
- ProtocolElement.cs
- TextBoxBase.cs
- Convert.cs
- CodeFieldReferenceExpression.cs
- AssociatedControlConverter.cs
- FixedHighlight.cs
- NumericExpr.cs
- HierarchicalDataTemplate.cs
- ProfileSection.cs
- CodeDefaultValueExpression.cs
- AuthenticatingEventArgs.cs
- ToolStripPanelRenderEventArgs.cs
- Compilation.cs
- Int64Animation.cs
- List.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- LabelLiteral.cs
- BitmapImage.cs
- BufferedReceiveManager.cs
- SafeNativeMethods.cs
- ExpressionWriter.cs
- Mutex.cs
- WindowsToolbarItemAsMenuItem.cs
- SrgsElement.cs
- ManipulationDevice.cs
- MsmqIntegrationProcessProtocolHandler.cs
- KeyConstraint.cs
- BrowserPolicyValidator.cs
- MaterialCollection.cs
- CommentAction.cs
- StylusPlugInCollection.cs
- GenerateTemporaryTargetAssembly.cs
- OrderedDictionaryStateHelper.cs
- newitemfactory.cs
- PrinterResolution.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- ExpressionEditorAttribute.cs
- ConnectionStringSettings.cs
- PersistenceContextEnlistment.cs
- compensatingcollection.cs
- StrongName.cs
- RuleProcessor.cs
- OneToOneMappingSerializer.cs
- SystemInfo.cs
- EntityDataSourceWrapper.cs
- TableFieldsEditor.cs
- MetafileHeader.cs
- MatrixTransform.cs
- DataGridTemplateColumn.cs
- MessageFault.cs
- TemplateControl.cs
- DataIdProcessor.cs
- objectquery_tresulttype.cs
- DataGridItemCollection.cs
- JobStaple.cs
- TreeView.cs
- Material.cs
- WindowsListViewItemCheckBox.cs
- FastEncoderWindow.cs
- HtmlContainerControl.cs
- WsdlBuildProvider.cs
- WebBrowserProgressChangedEventHandler.cs
- ProfileGroupSettingsCollection.cs
- XmlAttributeProperties.cs
- RenderTargetBitmap.cs
- _UriTypeConverter.cs
- XmlReader.cs