Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Adapters / XhtmlAdapters / XhtmlBasicPhoneCallAdapter.cs / 1305376 / XhtmlBasicPhoneCallAdapter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Globalization; 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 XhtmlPhoneCallAdapter : XhtmlControlAdapter { /// protected new PhoneCall Control { get { return base.Control as PhoneCall; } } /// public override void Render(XhtmlMobileTextWriter writer) { ConditionalClearPendingBreak(writer); Style style = Style; StyleFilter filter = writer.CurrentStyleClass.GetFilter(style); if ((filter & XhtmlConstants.Layout) != 0) { ConditionalEnterLayout(writer, style); } if (Device.CanInitiateVoiceCall) { String text = Control.Text; String phoneNumber = Control.PhoneNumber; if (text == null || text.Length == 0) { text = phoneNumber; } writer.WriteBeginTag("a"); if ((String)Device["supportsWtai"] == "true") { writer.Write(" href=\"wtai://wp/mc;"); } else { writer.Write(" href=\"tel:"); } foreach (char ch in phoneNumber) { if (ch >= '0' && ch <= '9' || ch == '#' || ch == '+') { writer.Write(ch); } } writer.Write("\""); ConditionalRenderCustomAttribute(writer, XhtmlConstants.AccessKeyCustomAttribute); String cssClass = GetCustomAttributeValue(XhtmlConstants.CssClassCustomAttribute); if (CssLocation != StyleSheetLocation.PhysicalFile) { String className = writer.GetCssFormatClassName(style); if (className != null) { writer.WriteAttribute ("class", className); } } else if (cssClass != null && cssClass.Length > 0) { writer.WriteAttribute ("class", cssClass, true /* encode */); } writer.Write(">"); writer.WriteEncodedText(text); writer.WriteEndTag("a"); ConditionalSetPendingBreakAfterInline(writer); } else { // Format the text string based on properties String text = String.Format( CultureInfo.CurrentCulture, Control.AlternateFormat, Control.Text, Control.PhoneNumber); String url = Control.AlternateUrl; // If URI specified, create a link. Otherwise, only text is displayed. if (url != null && url.Length > 0) { String cssClass = GetCustomAttributeValue(XhtmlConstants.CssClassCustomAttribute); String accessKey = GetCustomAttributeValue(XhtmlConstants.AccessKeyCustomAttribute); RenderBeginLink(writer, url, accessKey, style, cssClass); writer.WriteEncodedText(text); RenderEndLink(writer); ConditionalSetPendingBreakAfterInline(writer); } else { writer.WritePendingBreak(); ConditionalEnterFormat(writer, style); ConditionalRenderOpeningSpanElement(writer); writer.WriteEncodedText(text); ConditionalRenderClosingSpanElement(writer); ConditionalExitFormat(writer, style); ConditionalSetPendingBreak(writer); } } if ((filter & XhtmlConstants.Layout) != 0) { ConditionalExitLayout(writer, style); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System; using System.Globalization; 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 XhtmlPhoneCallAdapter : XhtmlControlAdapter { /// protected new PhoneCall Control { get { return base.Control as PhoneCall; } } /// public override void Render(XhtmlMobileTextWriter writer) { ConditionalClearPendingBreak(writer); Style style = Style; StyleFilter filter = writer.CurrentStyleClass.GetFilter(style); if ((filter & XhtmlConstants.Layout) != 0) { ConditionalEnterLayout(writer, style); } if (Device.CanInitiateVoiceCall) { String text = Control.Text; String phoneNumber = Control.PhoneNumber; if (text == null || text.Length == 0) { text = phoneNumber; } writer.WriteBeginTag("a"); if ((String)Device["supportsWtai"] == "true") { writer.Write(" href=\"wtai://wp/mc;"); } else { writer.Write(" href=\"tel:"); } foreach (char ch in phoneNumber) { if (ch >= '0' && ch <= '9' || ch == '#' || ch == '+') { writer.Write(ch); } } writer.Write("\""); ConditionalRenderCustomAttribute(writer, XhtmlConstants.AccessKeyCustomAttribute); String cssClass = GetCustomAttributeValue(XhtmlConstants.CssClassCustomAttribute); if (CssLocation != StyleSheetLocation.PhysicalFile) { String className = writer.GetCssFormatClassName(style); if (className != null) { writer.WriteAttribute ("class", className); } } else if (cssClass != null && cssClass.Length > 0) { writer.WriteAttribute ("class", cssClass, true /* encode */); } writer.Write(">"); writer.WriteEncodedText(text); writer.WriteEndTag("a"); ConditionalSetPendingBreakAfterInline(writer); } else { // Format the text string based on properties String text = String.Format( CultureInfo.CurrentCulture, Control.AlternateFormat, Control.Text, Control.PhoneNumber); String url = Control.AlternateUrl; // If URI specified, create a link. Otherwise, only text is displayed. if (url != null && url.Length > 0) { String cssClass = GetCustomAttributeValue(XhtmlConstants.CssClassCustomAttribute); String accessKey = GetCustomAttributeValue(XhtmlConstants.AccessKeyCustomAttribute); RenderBeginLink(writer, url, accessKey, style, cssClass); writer.WriteEncodedText(text); RenderEndLink(writer); ConditionalSetPendingBreakAfterInline(writer); } else { writer.WritePendingBreak(); ConditionalEnterFormat(writer, style); ConditionalRenderOpeningSpanElement(writer); writer.WriteEncodedText(text); ConditionalRenderClosingSpanElement(writer); ConditionalExitFormat(writer, style); ConditionalSetPendingBreak(writer); } } if ((filter & XhtmlConstants.Layout) != 0) { ConditionalExitLayout(writer, style); } } } } // 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
- AsyncResult.cs
- SimpleWebHandlerParser.cs
- HasCopySemanticsAttribute.cs
- SettingsBindableAttribute.cs
- UnmanagedHandle.cs
- KnownTypesProvider.cs
- GraphicsPathIterator.cs
- AbsoluteQuery.cs
- PersonalizationProviderHelper.cs
- EntityDataSourceContextDisposingEventArgs.cs
- WsdlBuildProvider.cs
- NetworkInformationPermission.cs
- CompiledXpathExpr.cs
- XmlDeclaration.cs
- CodeDOMProvider.cs
- BasicExpandProvider.cs
- GB18030Encoding.cs
- GrabHandleGlyph.cs
- NumberFormatter.cs
- XmlSchemaAppInfo.cs
- Size3D.cs
- ServiceBuildProvider.cs
- Int64KeyFrameCollection.cs
- _SSPISessionCache.cs
- InvalidPrinterException.cs
- CodeGeneratorOptions.cs
- RijndaelManagedTransform.cs
- ContainerSelectorBehavior.cs
- MobileComponentEditorPage.cs
- elementinformation.cs
- AppDomainCompilerProxy.cs
- OleAutBinder.cs
- DescendentsWalkerBase.cs
- RoleService.cs
- QueryableFilterUserControl.cs
- AgileSafeNativeMemoryHandle.cs
- Stroke.cs
- StringSorter.cs
- TraceContext.cs
- GeometryCollection.cs
- XmlSerializerAssemblyAttribute.cs
- URLString.cs
- BamlTreeMap.cs
- WebBrowsableAttribute.cs
- TableAdapterManagerHelper.cs
- CalloutQueueItem.cs
- Matrix.cs
- ItemMap.cs
- ActivityTypeCodeDomSerializer.cs
- KeyPressEvent.cs
- ScriptResourceAttribute.cs
- SoapAttributes.cs
- TextElementEditingBehaviorAttribute.cs
- ModifiableIteratorCollection.cs
- Monitor.cs
- HttpStreamMessageEncoderFactory.cs
- BulletDecorator.cs
- GridErrorDlg.cs
- CodeExpressionCollection.cs
- AvTrace.cs
- KeyManager.cs
- SqlDataSourceWizardForm.cs
- XpsSerializerWriter.cs
- ParallelEnumerable.cs
- XmlName.cs
- QueryPageSettingsEventArgs.cs
- InteropAutomationProvider.cs
- SerialPort.cs
- FillBehavior.cs
- ImageCodecInfoPrivate.cs
- CapabilitiesRule.cs
- InvalidDocumentContentsException.cs
- EmptyStringExpandableObjectConverter.cs
- ReflectEventDescriptor.cs
- WebPartAuthorizationEventArgs.cs
- DBSchemaTable.cs
- XmlSignatureManifest.cs
- ProcessModelInfo.cs
- TextTreeRootTextBlock.cs
- DynamicDataResources.Designer.cs
- CdpEqualityComparer.cs
- ImageClickEventArgs.cs
- BeginEvent.cs
- LayoutUtils.cs
- PhonemeConverter.cs
- SubpageParagraph.cs
- DateTimeSerializationSection.cs
- QueryOperationResponseOfT.cs
- ExceptionUtil.cs
- DynamicRouteExpression.cs
- DebugView.cs
- DecoderFallbackWithFailureFlag.cs
- NameValueFileSectionHandler.cs
- StateBag.cs
- SafeMemoryMappedViewHandle.cs
- CodeAttributeDeclarationCollection.cs
- DataExpression.cs
- TraceListener.cs
- TypeUnloadedException.cs
- WebPartConnectionCollection.cs