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
- ConfigXmlText.cs
- ImpersonateTokenRef.cs
- ToolStripDropDownItem.cs
- DictionarySectionHandler.cs
- DynamicMethod.cs
- MultiBindingExpression.cs
- followingsibling.cs
- LockRecursionException.cs
- FixedSOMLineRanges.cs
- MulticastNotSupportedException.cs
- WebPartCollection.cs
- DbParameterHelper.cs
- Codec.cs
- FixedSOMGroup.cs
- WindowsImpersonationContext.cs
- MetaModel.cs
- NameValueConfigurationCollection.cs
- HealthMonitoringSection.cs
- StylusEditingBehavior.cs
- Point3DCollection.cs
- GridViewUpdatedEventArgs.cs
- WindowsStartMenu.cs
- OpacityConverter.cs
- SoapServerMessage.cs
- CheckBoxPopupAdapter.cs
- ByValueEqualityComparer.cs
- WSMessageEncoding.cs
- DirectoryNotFoundException.cs
- MediaTimeline.cs
- Oci.cs
- WizardSideBarListControlItem.cs
- ChildrenQuery.cs
- ImageClickEventArgs.cs
- DebugHandleTracker.cs
- DataControlFieldCell.cs
- ApplicationServiceManager.cs
- HelloOperationAsyncResult.cs
- SqlDataSourceFilteringEventArgs.cs
- MasterPageParser.cs
- CqlBlock.cs
- XmlUTF8TextWriter.cs
- ReadWriteSpinLock.cs
- BinaryMethodMessage.cs
- RepeaterItemCollection.cs
- TextTreePropertyUndoUnit.cs
- ElementsClipboardData.cs
- AssociatedControlConverter.cs
- DiffuseMaterial.cs
- SecurityManager.cs
- SafeThemeHandle.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- ThumbButtonInfo.cs
- VariantWrapper.cs
- DBBindings.cs
- ForwardPositionQuery.cs
- PackageRelationshipCollection.cs
- DependentList.cs
- XmlSchemaSubstitutionGroup.cs
- ObjectDataSourceMethodEditor.cs
- SoapClientProtocol.cs
- RoleService.cs
- OptimizerPatterns.cs
- RegionData.cs
- CharAnimationBase.cs
- DesignBindingConverter.cs
- Bidi.cs
- InkCanvasSelectionAdorner.cs
- ClientSettings.cs
- XmlNodeChangedEventArgs.cs
- FixedSchema.cs
- PeerNameResolver.cs
- PrimaryKeyTypeConverter.cs
- DataGridItemCollection.cs
- EntityContainerEntitySetDefiningQuery.cs
- CompModSwitches.cs
- CodeFieldReferenceExpression.cs
- WebPartConnectionsCloseVerb.cs
- Rect3DConverter.cs
- WpfPayload.cs
- ClientSettingsSection.cs
- PhysicalOps.cs
- XamlToRtfWriter.cs
- AdCreatedEventArgs.cs
- _DomainName.cs
- HtmlTableCellCollection.cs
- OciEnlistContext.cs
- EditorZoneBase.cs
- Baml6ConstructorInfo.cs
- MulticastDelegate.cs
- StaticExtensionConverter.cs
- XmlSchemaAppInfo.cs
- GradientStop.cs
- CodeActivityContext.cs
- ProtocolInformationWriter.cs
- CodeRemoveEventStatement.cs
- QueryExpr.cs
- HtmlUtf8RawTextWriter.cs
- D3DImage.cs
- WebScriptEnablingBehavior.cs
- MsmqSecureHashAlgorithm.cs