PanelDesigner.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK