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
- VersionedStream.cs
- TreeNodeStyleCollection.cs
- ConfigurationPropertyCollection.cs
- TextStore.cs
- LinqDataView.cs
- BulletedList.cs
- FlowNode.cs
- XamlReader.cs
- ScriptControl.cs
- ViewValidator.cs
- StringPropertyBuilder.cs
- ipaddressinformationcollection.cs
- ValidatorCompatibilityHelper.cs
- DataGridViewSelectedRowCollection.cs
- NotifyCollectionChangedEventArgs.cs
- StyleSheetDesigner.cs
- TemplatePropertyEntry.cs
- AdapterDictionary.cs
- CombinedGeometry.cs
- SQLRoleProvider.cs
- ListViewItem.cs
- OSFeature.cs
- OwnerDrawPropertyBag.cs
- WebPartConnectionsEventArgs.cs
- TextLineResult.cs
- IndexedGlyphRun.cs
- PagesSection.cs
- Point3DAnimationUsingKeyFrames.cs
- PrimitiveType.cs
- ContentTextAutomationPeer.cs
- WebPartMinimizeVerb.cs
- CompositionDesigner.cs
- basenumberconverter.cs
- XpsFilter.cs
- FamilyMap.cs
- AssemblyName.cs
- DetailsViewUpdatedEventArgs.cs
- Preprocessor.cs
- PropertyManager.cs
- DataObject.cs
- AuthenticateEventArgs.cs
- MailBnfHelper.cs
- ContainsRowNumberChecker.cs
- WebSysDefaultValueAttribute.cs
- InvalidCastException.cs
- ThreadExceptionDialog.cs
- HWStack.cs
- EncoderBestFitFallback.cs
- CommentEmitter.cs
- HtmlMeta.cs
- RequestCache.cs
- SubMenuStyleCollectionEditor.cs
- VirtualizedItemPattern.cs
- SqlDeflator.cs
- StorageMappingFragment.cs
- DbMetaDataFactory.cs
- ServiceModelConfigurationSectionCollection.cs
- DictionaryBase.cs
- ClassHandlersStore.cs
- Pair.cs
- IfJoinedCondition.cs
- DynamicExpression.cs
- DataGridViewColumnEventArgs.cs
- ExtensionElement.cs
- Model3DGroup.cs
- LassoHelper.cs
- PolyBezierSegment.cs
- ProcessProtocolHandler.cs
- RequestCache.cs
- TypeDelegator.cs
- WmlPanelAdapter.cs
- XmlSchemaElement.cs
- CultureTableRecord.cs
- smtppermission.cs
- unitconverter.cs
- GlyphingCache.cs
- FileChangesMonitor.cs
- UrlMapping.cs
- SmiGettersStream.cs
- SafeSecurityHelper.cs
- CodeDomConfigurationHandler.cs
- TreeNodeCollectionEditorDialog.cs
- OraclePermission.cs
- PeerContact.cs
- InfiniteTimeSpanConverter.cs
- wgx_commands.cs
- ExpressionTextBoxAutomationPeer.cs
- ListView.cs
- DataSourceCache.cs
- SqlRowUpdatingEvent.cs
- DrawingBrush.cs
- SqlConnectionPoolProviderInfo.cs
- UnmanagedMemoryStreamWrapper.cs
- SQLMoneyStorage.cs
- XPathNodeInfoAtom.cs
- DocumentPageHost.cs
- _SingleItemRequestCache.cs
- OleDbWrapper.cs
- ListControl.cs
- AppDomainManager.cs