Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / MIT / System / Web / UI / MobileControls / Design / PanelDesigner.cs / 1305376 / PanelDesigner.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.Design.MobileControls
{
using System;
using System.Drawing;
using System.ComponentModel;
using System.Diagnostics;
using System.Web.UI.Design.MobileControls.Util;
using System.Web.UI.Design.MobileControls.Adapters;
using System.Web.UI.MobileControls;
using Microsoft.Win32;
using System.Globalization;
///
///
/// Provides design-time support for the
/// web control.
///
///
///
[
System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand,
Flags=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)
]
[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.")]
internal class PanelDesigner : MobileContainerDesigner
{
private Panel _panel;
private TemporaryBitmapFile _backgroundBmpFile = null;
private Size _defaultSize;
internal PanelDesigner()
{
_defaultSize = new Size(300, 45);
}
private bool ValidContainment
{
get
{
return (ContainmentStatus == ContainmentStatus.InForm ||
ContainmentStatus == ContainmentStatus.InPanel ||
ContainmentStatus == ContainmentStatus.InTemplateFrame);
}
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
SystemEvents.UserPreferenceChanged -=
new UserPreferenceChangedEventHandler(this.OnUserPreferenceChanged);
}
base.Dispose(disposing);
}
protected override Size GetDefaultSize()
{
return _defaultSize;
}
protected override String GetErrorMessage(out bool infoMode)
{
infoMode = false;
// Skip containment checking if the control is placed in MobileUserControl
if (DesignerAdapterUtil.InMobileUserControl(_panel))
{
return null;
}
if (DesignerAdapterUtil.InUserControl(_panel))
{
infoMode = true;
return MobileControlDesigner._userControlWarningMessage;
}
if (!DesignerAdapterUtil.InMobilePage(_panel))
{
return SR.GetString(SR.MobileControl_MobilePageErrorMessage);
}
if (!ValidContainment)
{
return SR.GetString(SR.MobileControl_FormPanelContainmentErrorMessage);
}
return null;
}
///
/// Initializes the designer with the Form control that this instance
/// of the designer is associated with.
///
///
/// The associated Form control.
///
///
public override void Initialize(IComponent component)
{
Debug.Assert(component is Panel,
"PanelDesigner.Initialize - Invalid Panel Control");
// This must be called first in order to get properties from runtime control.
base.Initialize(component);
_panel = (Panel) component;
SystemEvents.UserPreferenceChanged +=
new UserPreferenceChangedEventHandler(this.OnUserPreferenceChanged);
}
internal override void OnBackgroundImageChange(String message, bool infoMode)
{
if (message == null)
{
RemoveBehaviorStyle("backgroundImage");
SetBehaviorStyle("paddingTop", 8);
}
else
{
ImageCreator.CreateBackgroundImage(
ref _backgroundBmpFile,
String.Empty,
String.Empty,
message,
infoMode,
GetDefaultSize().Width
);
// redraw the background image here
SetBehaviorStyle("backgroundImage",
"url(" + _backgroundBmpFile.Url + ")");
SetBehaviorStyle(
"paddingTop",
_backgroundBmpFile.UnderlyingBitmap.Height + 8
);
}
}
private void OnUserPreferenceChanged(Object sender, UserPreferenceChangedEventArgs e)
{
if (e.Category == UserPreferenceCategory.Color)
{
bool infoMode;
String newMessage = GetErrorMessage(out infoMode);
OnBackgroundImageChange(newMessage, infoMode);
}
}
///
/// Adjust the appearance based on current status.
///
//protected override void SetStyleAttributes()
protected override void OnContainmentChanged()
{
base.OnContainmentChanged();
SetBehaviorStyle("marginRight",
ContainmentStatus == ContainmentStatus.AtTopLevel ? "30%" : "5px");
SetBehaviorStyle("marginTop", ValidContainment? "3px" : "5px");
SetBehaviorStyle("marginBottom", ValidContainment? "3px" : "5px");
SetBehaviorStyle("width", ValidContainment? "100%" : GetDefaultSize().Width.ToString(CultureInfo.InvariantCulture) + "px");
}
protected override void SetControlDefaultAppearance()
{
base.SetControlDefaultAppearance();
// Customize styles
SetBehaviorStyle("borderStyle", "dotted");
}
}
}
// 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
- UrlAuthorizationModule.cs
- OperationAbortedException.cs
- MultipartIdentifier.cs
- PoisonMessageException.cs
- CryptoConfig.cs
- rsa.cs
- ConstNode.cs
- TextTreeRootTextBlock.cs
- QuaternionKeyFrameCollection.cs
- ApplicationSecurityManager.cs
- NotSupportedException.cs
- Vector3dCollection.cs
- DbSource.cs
- filewebrequest.cs
- XmlDesignerDataSourceView.cs
- Pair.cs
- CodeObject.cs
- FunctionImportElement.cs
- DataTablePropertyDescriptor.cs
- URIFormatException.cs
- ButtonColumn.cs
- OutputCache.cs
- SafeNativeMethods.cs
- XmlHierarchicalDataSourceView.cs
- CompatibleIComparer.cs
- XmlSchemaSimpleContentExtension.cs
- CompensationToken.cs
- RectAnimationUsingKeyFrames.cs
- GridViewCancelEditEventArgs.cs
- ScriptingAuthenticationServiceSection.cs
- PageVisual.cs
- XmlSchemaInferenceException.cs
- ListControl.cs
- RSAOAEPKeyExchangeDeformatter.cs
- RowToFieldTransformer.cs
- PrimarySelectionGlyph.cs
- PropertyBuilder.cs
- SpeakCompletedEventArgs.cs
- MultiByteCodec.cs
- counter.cs
- EdmMember.cs
- TreeNode.cs
- SecurityTokenRequirement.cs
- XmlRootAttribute.cs
- SmtpNegotiateAuthenticationModule.cs
- DataFieldConverter.cs
- UMPAttributes.cs
- IgnoreFlushAndCloseStream.cs
- SqlCacheDependencyDatabaseCollection.cs
- SqlFormatter.cs
- X509AsymmetricSecurityKey.cs
- FontStretches.cs
- DrawingAttributes.cs
- StoryFragments.cs
- ComboBoxItem.cs
- ViewDesigner.cs
- ServiceParser.cs
- DbReferenceCollection.cs
- RemoteWebConfigurationHostServer.cs
- HitTestDrawingContextWalker.cs
- TextEncodedRawTextWriter.cs
- PathSegment.cs
- PerfService.cs
- Opcode.cs
- SerializationUtilities.cs
- TemplateControlParser.cs
- PropertyTabAttribute.cs
- MulticastNotSupportedException.cs
- _KerberosClient.cs
- ContainerAction.cs
- HyperlinkAutomationPeer.cs
- Point.cs
- ConnectionProviderAttribute.cs
- EntityViewGenerationConstants.cs
- RectangleHotSpot.cs
- BamlCollectionHolder.cs
- Attributes.cs
- FormsAuthenticationUser.cs
- SourceSwitch.cs
- LayoutEditorPart.cs
- CodeTypeReferenceSerializer.cs
- HtmlInputFile.cs
- ContentDisposition.cs
- XhtmlBasicTextBoxAdapter.cs
- BroadcastEventHelper.cs
- Socket.cs
- DataGridViewColumnHeaderCell.cs
- EraserBehavior.cs
- Parsers.cs
- HtmlInputButton.cs
- WorkflowServiceNamespace.cs
- Mappings.cs
- SecurityChannelFaultConverter.cs
- SchemaElement.cs
- ItemDragEvent.cs
- DesigntimeLicenseContextSerializer.cs
- TraceUtility.cs
- httpapplicationstate.cs
- TextEditorParagraphs.cs
- XmlNamespaceMappingCollection.cs