//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ using System; using System.Diagnostics; using System.IO; using System.Web; using System.Web.Mobile; using System.Web.UI; 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 { /* * MobileTextWriter class. All device-specific mobile text writers * inherit from this class. * * Copyright (c) 2000 Microsoft Corporation */ /// [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 MobileTextWriter : MultiPartWriter { private MobileCapabilities _device; private MultiPartWriter _multiPartWriter; private bool _partStarted = false; /// public MobileCapabilities Device { get { return _device; } } /// public MobileTextWriter(TextWriter writer, MobileCapabilities device) : base(writer) { _multiPartWriter = writer as MultiPartWriter; _device = device; } /// public virtual void EnterLayout(Style style) { } /// public virtual void ExitLayout(Style style, bool breakAfter) { } /// public virtual void ExitLayout(Style style) { ExitLayout(style, false); } /// public virtual void EnterFormat(Style style) { } /// public virtual void ExitFormat(Style style) { } /// public virtual void ExitFormat(Style style, bool breakAfter) { } /// public void EnterStyle(Style style) { EnterLayout(style); EnterFormat(style); } /// public void ExitStyle(Style style) { ExitFormat(style); ExitLayout(style); } ///////////////////////////////////////////////////////////////////////// // MultiPartWriter implementation. The MobileTextWriter class itself // does not support multipart writing, unless it is wrapped on top // of another writer that does. ///////////////////////////////////////////////////////////////////////// /// public override bool SupportsMultiPart { get { return _multiPartWriter != null && _multiPartWriter.SupportsMultiPart; } } /// public override void BeginResponse() { if (_multiPartWriter != null) { _multiPartWriter.BeginResponse(); } } /// public override void EndResponse() { if (_multiPartWriter != null) { _multiPartWriter.EndResponse(); } } /// public override void BeginFile(String url, String contentType, String charset) { if (_multiPartWriter != null) { _multiPartWriter.BeginFile(url, contentType, charset); } else if (_partStarted) { throw new Exception(SR.GetString(SR.MobileTextWriterNotMultiPart)); } else { if (contentType != null && contentType.Length > 0) { HttpContext.Current.Response.ContentType = contentType; } _partStarted = true; } } /// public override void EndFile() { if (_multiPartWriter != null) { _multiPartWriter.EndFile(); } } /// public override void AddResource(String url, String contentType) { if (_multiPartWriter != null) { _multiPartWriter.AddResource(url, contentType); } } } }