Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Adapters / ChtmlImageAdapter.cs / 1305376 / ChtmlImageAdapter.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Globalization; using System.Web.UI.MobileControls.Adapters; using System.Security.Permissions; #if COMPILING_FOR_SHIPPED_SOURCE namespace System.Web.UI.MobileControls.ShippedAdapterSource #else namespace System.Web.UI.MobileControls.Adapters #endif { /* * ChtmlImageAdapter class. */ ///[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 ChtmlImageAdapter : HtmlImageAdapter { /// protected internal override void RenderImage(HtmlMobileTextWriter writer) { String source = Control.ImageUrl; if (source.StartsWith(Constants.SymbolProtocol, StringComparison.Ordinal) && (Device.SupportsIModeSymbols || Device.SupportsJPhoneSymbols)) { if (Device.SupportsIModeSymbols) { writer.Write(""); writer.Write( source.Substring(Constants.SymbolProtocol.Length)); writer.Write(";"); } else { // The ImageUrl should be in the format "symbol:xyyy", // where x is group picture character (either G, E or F), // and yyy (length can vary) is the picture's character // code (in decimal). String symbolChars = source.Substring( Constants.SymbolProtocol.Length); char code = DecimalStringToChar(symbolChars.Substring(1)); writer.Write("\u001B$"); writer.Write(Char.ToUpper(symbolChars[0], CultureInfo.InvariantCulture)); writer.Write(code); writer.Write('\u000F'); } } else { base.RenderImage(writer); } } // Convert decimal string "xxx" to '\u00xx' private char DecimalStringToChar(String decimalString) { int codeValue = 0; int adj = 1; for (int i = decimalString.Length - 1; i >= 0; i--) { codeValue += DecimalCharToInt(decimalString[i]) * adj; adj *= 10; } return (char) codeValue; } // Convert decimal char 'x' to decimal integer value x private int DecimalCharToInt(char decimalChar) { int i; if (decimalChar >= '0' && decimalChar <= '9') { i = decimalChar - '0'; } else { throw new ArgumentException( SR.GetString(SR.ChtmlImageAdapterDecimalCodeExpectedAfterGroupChar), "ImageUrl"); } return i; } /// protected override void AddAttributes(HtmlMobileTextWriter writer) { AddAccesskeyAttribute(writer); AddJPhoneMultiMediaAttributes(writer); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- using System.Globalization; using System.Web.UI.MobileControls.Adapters; using System.Security.Permissions; #if COMPILING_FOR_SHIPPED_SOURCE namespace System.Web.UI.MobileControls.ShippedAdapterSource #else namespace System.Web.UI.MobileControls.Adapters #endif { /* * ChtmlImageAdapter class. */ ///[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 ChtmlImageAdapter : HtmlImageAdapter { /// protected internal override void RenderImage(HtmlMobileTextWriter writer) { String source = Control.ImageUrl; if (source.StartsWith(Constants.SymbolProtocol, StringComparison.Ordinal) && (Device.SupportsIModeSymbols || Device.SupportsJPhoneSymbols)) { if (Device.SupportsIModeSymbols) { writer.Write(""); writer.Write( source.Substring(Constants.SymbolProtocol.Length)); writer.Write(";"); } else { // The ImageUrl should be in the format "symbol:xyyy", // where x is group picture character (either G, E or F), // and yyy (length can vary) is the picture's character // code (in decimal). String symbolChars = source.Substring( Constants.SymbolProtocol.Length); char code = DecimalStringToChar(symbolChars.Substring(1)); writer.Write("\u001B$"); writer.Write(Char.ToUpper(symbolChars[0], CultureInfo.InvariantCulture)); writer.Write(code); writer.Write('\u000F'); } } else { base.RenderImage(writer); } } // Convert decimal string "xxx" to '\u00xx' private char DecimalStringToChar(String decimalString) { int codeValue = 0; int adj = 1; for (int i = decimalString.Length - 1; i >= 0; i--) { codeValue += DecimalCharToInt(decimalString[i]) * adj; adj *= 10; } return (char) codeValue; } // Convert decimal char 'x' to decimal integer value x private int DecimalCharToInt(char decimalChar) { int i; if (decimalChar >= '0' && decimalChar <= '9') { i = decimalChar - '0'; } else { throw new ArgumentException( SR.GetString(SR.ChtmlImageAdapterDecimalCodeExpectedAfterGroupChar), "ImageUrl"); } return i; } /// protected override void AddAttributes(HtmlMobileTextWriter writer) { AddAccesskeyAttribute(writer); AddJPhoneMultiMediaAttributes(writer); } } } // 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
- GridViewRowCollection.cs
- PeerApplication.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- DefinitionUpdate.cs
- SQLBytes.cs
- CommonRemoteMemoryBlock.cs
- EntityProviderServices.cs
- HostingPreferredMapPath.cs
- PreProcessInputEventArgs.cs
- ConditionalBranch.cs
- ConcurrencyMode.cs
- SqlDataSourceView.cs
- XmlCustomFormatter.cs
- Point4DConverter.cs
- HttpResponseBase.cs
- TimeSpanStorage.cs
- loginstatus.cs
- Control.cs
- BrowserCapabilitiesFactory.cs
- AdornerHitTestResult.cs
- Substitution.cs
- CodeValidator.cs
- DragDrop.cs
- DecoderExceptionFallback.cs
- ListenerPerfCounters.cs
- DataRowChangeEvent.cs
- PostBackOptions.cs
- ConstructorBuilder.cs
- BuildManager.cs
- HealthMonitoringSectionHelper.cs
- SmtpNtlmAuthenticationModule.cs
- XamlClipboardData.cs
- FlowDocumentScrollViewer.cs
- OperandQuery.cs
- MarkupObject.cs
- TextServicesLoader.cs
- ListViewDeleteEventArgs.cs
- RadioButtonFlatAdapter.cs
- ToolbarAUtomationPeer.cs
- ManualResetEventSlim.cs
- Cursors.cs
- AnimationClockResource.cs
- PngBitmapDecoder.cs
- CodeConditionStatement.cs
- UserControl.cs
- CultureData.cs
- RichTextBoxAutomationPeer.cs
- CodeArrayCreateExpression.cs
- CancelEventArgs.cs
- unsafeIndexingFilterStream.cs
- TransactionManager.cs
- DataTable.cs
- SimpleWorkerRequest.cs
- ContractsBCL.cs
- WorkerRequest.cs
- TextContainer.cs
- HttpRequest.cs
- TagNameToTypeMapper.cs
- CollectionView.cs
- XXXOnTypeBuilderInstantiation.cs
- RIPEMD160.cs
- CodeTypeOfExpression.cs
- GrabHandleGlyph.cs
- XmlSchemaSubstitutionGroup.cs
- StringArrayConverter.cs
- FamilyMapCollection.cs
- SQLMoneyStorage.cs
- WebPartMinimizeVerb.cs
- XmlSerializationWriter.cs
- HostingEnvironmentWrapper.cs
- GACMembershipCondition.cs
- SerializationFieldInfo.cs
- RequestStatusBarUpdateEventArgs.cs
- WebBaseEventKeyComparer.cs
- SafeLocalMemHandle.cs
- GlyphShapingProperties.cs
- BmpBitmapDecoder.cs
- CustomAssemblyResolver.cs
- SynchronousReceiveBehavior.cs
- RegexCharClass.cs
- ActivityExecutorDelegateInfo.cs
- DataTable.cs
- SiblingIterators.cs
- DBCommand.cs
- APCustomTypeDescriptor.cs
- counter.cs
- ResourceKey.cs
- XmlChoiceIdentifierAttribute.cs
- SkipQueryOptionExpression.cs
- TypeForwardedToAttribute.cs
- AsymmetricSignatureDeformatter.cs
- XmlRootAttribute.cs
- SafeFileMappingHandle.cs
- FontConverter.cs
- XMLSyntaxException.cs
- ImportedPolicyConversionContext.cs
- SemanticKeyElement.cs
- WebBrowserSiteBase.cs
- coordinatorfactory.cs
- ArraySortHelper.cs