238 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			238 lines
		
	
	
		
			5.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
#if FRAMEWORK20
 | 
						|
using System;
 | 
						|
using System.Drawing;
 | 
						|
using System.Windows.Forms;
 | 
						|
 | 
						|
namespace DevComponents.DotNetBar.Schedule
 | 
						|
{
 | 
						|
    public class VScrollPanel : BaseItem
 | 
						|
    {
 | 
						|
        #region Events
 | 
						|
        public event EventHandler<EventArgs> ScrollBarChanged;
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Variables
 | 
						|
 | 
						|
        protected CalendarView CalendarView;    // CalendarView
 | 
						|
        private VScrollBarAdv _ScrollBar;       // Scroll bar
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Constructor
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="calendarView"></param>
 | 
						|
        public VScrollPanel(CalendarView calendarView)
 | 
						|
        {
 | 
						|
            CalendarView = calendarView;
 | 
						|
 | 
						|
            SetUpScrollBar();
 | 
						|
        }
 | 
						|
 | 
						|
        #region Public properties
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets and sets the panel Bounds
 | 
						|
        /// </summary>
 | 
						|
        public override Rectangle Bounds
 | 
						|
        {
 | 
						|
            get { return (base.Bounds); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                base.Bounds = value;
 | 
						|
 | 
						|
                UpdateScrollBar();
 | 
						|
            }
 | 
						|
        } 
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets and sets the control visibility
 | 
						|
        /// </summary>
 | 
						|
        public override bool Visible
 | 
						|
        {
 | 
						|
            get { return (base.Visible); }
 | 
						|
 | 
						|
            set
 | 
						|
            {
 | 
						|
                if (base.Visible != value)
 | 
						|
                {
 | 
						|
                    base.Visible = value;
 | 
						|
 | 
						|
                    ScrollBar.Visible = value;
 | 
						|
 | 
						|
                    if (value == true)
 | 
						|
                        ScrollBar.BringToFront();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the scrollBar
 | 
						|
        /// </summary>
 | 
						|
        public VScrollBarAdv ScrollBar
 | 
						|
        {
 | 
						|
            get { return (_ScrollBar); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Private properties
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the scrollBar SmallChange value
 | 
						|
        /// </summary>
 | 
						|
        protected virtual int ScrollPanelSmallChange
 | 
						|
        {
 | 
						|
            get { return (1); }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Gets the scrollBar Maximum value
 | 
						|
        /// </summary>
 | 
						|
        protected virtual int ScrollPanelMaximum
 | 
						|
        {
 | 
						|
            get { return (100); }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SetupScrollBar
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Performs scrollBar setup
 | 
						|
        /// </summary>
 | 
						|
        private void SetUpScrollBar()
 | 
						|
        {
 | 
						|
            _ScrollBar = new VScrollBarAdv();
 | 
						|
 | 
						|
            Control c = (Control)CalendarView.CalendarPanel.GetContainerControl(true);
 | 
						|
 | 
						|
            if (c != null)
 | 
						|
                c.Controls.Add(_ScrollBar);
 | 
						|
 | 
						|
            _ScrollBar.ValueChanged += ValueChanged;
 | 
						|
 | 
						|
            UpdateScrollBar();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region UpdateScrollBar
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Updates our scrollbar
 | 
						|
        /// </summary>
 | 
						|
        internal void UpdateScrollBar()
 | 
						|
        {
 | 
						|
            _ScrollBar.Location = Bounds.Location;
 | 
						|
            _ScrollBar.Height = Bounds.Height;
 | 
						|
            _ScrollBar.Width = Bounds.Width;
 | 
						|
 | 
						|
            _ScrollBar.LargeChange = Bounds.Height;
 | 
						|
            _ScrollBar.SmallChange = 1;
 | 
						|
            _ScrollBar.SmallChange = ScrollPanelSmallChange;
 | 
						|
            _ScrollBar.Maximum = ScrollPanelMaximum;
 | 
						|
 | 
						|
            int n = _ScrollBar.Maximum - _ScrollBar.LargeChange + 1;
 | 
						|
 | 
						|
            if (n < 0)
 | 
						|
            {
 | 
						|
                _ScrollBar.Maximum = Bounds.Height;
 | 
						|
                _ScrollBar.Value = 0;
 | 
						|
 | 
						|
                _ScrollBar.Enabled = false;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                _ScrollBar.Enabled = true;
 | 
						|
 | 
						|
                if (_ScrollBar.Value > n)
 | 
						|
                    _ScrollBar.Value = n;
 | 
						|
                else
 | 
						|
                    Refresh();
 | 
						|
            }
 | 
						|
 | 
						|
            OnScrollBarUpdate();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region DisableScrollBar
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Disables the scrollbar
 | 
						|
        /// </summary>
 | 
						|
        internal void DisableScrollBar()
 | 
						|
        {
 | 
						|
            _ScrollBar.Location = Bounds.Location;
 | 
						|
            _ScrollBar.Height = Bounds.Height;
 | 
						|
 | 
						|
            _ScrollBar.LargeChange = Bounds.Height;
 | 
						|
            _ScrollBar.SmallChange = 1;
 | 
						|
            _ScrollBar.SmallChange = ScrollPanelSmallChange;
 | 
						|
            _ScrollBar.Maximum = Bounds.Height;
 | 
						|
 | 
						|
            _ScrollBar.Value = 0;
 | 
						|
            _ScrollBar.Enabled = false;
 | 
						|
 | 
						|
            OnScrollBarUpdate();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region ValueChanged
 | 
						|
 | 
						|
        /// <param name="sender">object</param>
 | 
						|
        /// <param name="e">EventArgs</param>
 | 
						|
        void ValueChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            OnScrollBarUpdate();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// Passes the scroll onto others
 | 
						|
        /// </summary>
 | 
						|
        private void OnScrollBarUpdate()
 | 
						|
        {
 | 
						|
            if (ScrollBarChanged != null)
 | 
						|
                ScrollBarChanged(this, EventArgs.Empty);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IDisposable Members
 | 
						|
 | 
						|
        protected override void Dispose(bool disposing)
 | 
						|
        {
 | 
						|
            if (_ScrollBar != null)
 | 
						|
            {
 | 
						|
                _ScrollBar.ValueChanged -= ValueChanged;
 | 
						|
                _ScrollBar.Dispose();
 | 
						|
            }
 | 
						|
 | 
						|
            base.Dispose(disposing);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Paint
 | 
						|
 | 
						|
        public override void  Paint(ItemPaintArgs p)
 | 
						|
        {
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region Copy
 | 
						|
 | 
						|
        public override BaseItem Copy()
 | 
						|
        {
 | 
						|
            return (null);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif
 |