326 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			326 lines
		
	
	
		
			8.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| #if FRAMEWORK20
 | |
| using System;
 | |
| using System.Runtime.InteropServices;
 | |
| using System.Drawing;
 | |
| using System.ComponentModel;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace DevComponents.DotNetBar.Controls
 | |
| {
 | |
|     /// <summary>
 | |
|     /// Represents the PageNavigator control
 | |
|     /// </summary>
 | |
|     [ToolboxBitmap(typeof(PageNavigator), "PageNavigator.PageNavigator.ico"), ToolboxItem(true)]
 | |
|     [DefaultEvent("ValueChanged"), ComVisible(false)] //, Designer(typeof(Design.PageNavigatorDesigner))]
 | |
|     public class PageNavigator : BaseItemControl
 | |
|     {
 | |
|         #region Private Variables
 | |
| 
 | |
|         private PageNavigatorItem _PageNavItem;     // Navigation item
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Events
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Occurs when NavigateNextPage button is clicked
 | |
|         /// </summary>
 | |
|         [Description("Occurs when NavigateNextPage button is clicked.")]
 | |
|         public event EventHandler NavigateNextPage;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Occurs when NavigateToday button is clicked
 | |
|         /// </summary>
 | |
|         [Description("Occurs when NavigateToday button is clicked.")]
 | |
|         public event EventHandler NavigateToday;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Occurs when NavigatePreviousPage button is clicked
 | |
|         /// </summary>
 | |
|         [Description("Occurs when NavigatePreviousPage button is clicked.")]
 | |
|         public event EventHandler NavigatePreviousPage;
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Constructor
 | |
|         /// </summary>
 | |
|         public PageNavigator()
 | |
|         {
 | |
|             _PageNavItem = new PageNavigatorItem();
 | |
|             _PageNavItem.Style = eDotNetBarStyle.StyleManagerControlled;
 | |
|             this.Size = _PageNavItem.Size;
 | |
|             this.HostItem = _PageNavItem;
 | |
| 
 | |
|             HookEvents(true);
 | |
|         }
 | |
| 
 | |
|         #region DefaultSize
 | |
| 
 | |
|         /// <summary>
 | |
|         /// DefaultSize
 | |
|         /// </summary>
 | |
|         protected override Size DefaultSize
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 // Set a default size based upon
 | |
|                 // the current object layout orientation
 | |
| 
 | |
|                 int m = SystemInformation.VerticalScrollBarWidth;
 | |
|                 int n = m * 3;
 | |
| 
 | |
|                 if (_PageNavItem != null &&
 | |
|                     _PageNavItem.Orientation == eOrientation.Horizontal)
 | |
|                 {
 | |
|                     return (new Size(n, m));
 | |
|                 }
 | |
| 
 | |
|                 return (new Size(m, n));
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region Public properties
 | |
| 
 | |
|         #region Orientation
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the layout orientation. Default value is horizontal.
 | |
|         /// </summary>
 | |
|         [DefaultValue(eOrientation.Horizontal), Category("Appearance")]
 | |
|         [Description("Indicates control layout orientation.")]
 | |
|         public eOrientation Orientation
 | |
|         {
 | |
|             get { return (_PageNavItem.Orientation); }
 | |
| 
 | |
|             set
 | |
|             {
 | |
|                 if (_PageNavItem.Orientation != value)
 | |
|                 {
 | |
|                     _PageNavItem.Orientation = value;
 | |
| 
 | |
|                     this.RecalcLayout();
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region PreviousPageTooltip
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the tooltip for the PreviousPage button of the control
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(""), Localizable(true), Category("Appearance")]
 | |
|         [Description("Indicates tooltip for the PreviousPage button of the control.")]
 | |
|         public string PreviousPageTooltip
 | |
|         {
 | |
|             get { return (_PageNavItem.PreviousPageTooltip); }
 | |
|             set { _PageNavItem.PreviousPageTooltip = value; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region TodayTooltip
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the tooltip for the Today button
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(""), Localizable(true), Category("Appearance")]
 | |
|         [Description("Indicates tooltip for the TodayPage button of the control.")]
 | |
|         public string TodayTooltip
 | |
|         {
 | |
|             get { return (_PageNavItem.TodayTooltip); }
 | |
|             set { _PageNavItem.TodayTooltip = value; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region NextPageTooltip
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Gets or sets the tooltip for the NextPage button
 | |
|         /// </summary>
 | |
|         [Browsable(true), DefaultValue(""), Localizable(true), Category("Appearance")]
 | |
|         [Description("Indicates tooltip for the NextPage button of the control.")]
 | |
|         public string NextPageTooltip
 | |
|         {
 | |
|             get { return (_PageNavItem.NextPageTooltip); }
 | |
|             set { _PageNavItem.NextPageTooltip = value; }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Style
 | |
|         /// <summary>
 | |
|         /// Gets/Sets the visual style for the control.
 | |
|         /// </summary>
 | |
|         [Browsable(false), DefaultValue(eDotNetBarStyle.StyleManagerControlled)]
 | |
|         public override eDotNetBarStyle Style
 | |
|         {
 | |
|             get
 | |
|             {
 | |
|                 return base.Style;
 | |
|             }
 | |
|             set
 | |
|             {
 | |
|                 base.Style = value;
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region HookEvents
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Hooks or unhooks our control events
 | |
|         /// </summary>
 | |
|         /// <param name="hook">true to hook, false to unhook</param>
 | |
|         private void HookEvents(bool hook)
 | |
|         {
 | |
|             if (hook == true)
 | |
|             {
 | |
|                 _PageNavItem.NavigatePreviousPage += PageNavNavigatePreviousPage;
 | |
|                 _PageNavItem.NavigateNextPage += PageNavNavigateNextPage;
 | |
|                 _PageNavItem.NavigateToday += PageNavNavigateToday;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 _PageNavItem.NavigatePreviousPage -= PageNavNavigatePreviousPage;
 | |
|                 _PageNavItem.NavigateNextPage -= PageNavNavigateNextPage;
 | |
|                 _PageNavItem.NavigateToday -= PageNavNavigateToday;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Event handling
 | |
| 
 | |
|         #region PageNav_NavigatePreviousPage
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Handles NavigatePreviousPage events
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         void PageNavNavigatePreviousPage(object sender, EventArgs e)
 | |
|         {
 | |
|             OnNavigatePreviousPage();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Raises the NavigatePreviousPage event
 | |
|         /// </summary>
 | |
|         private void OnNavigatePreviousPage()
 | |
|         {
 | |
|             if (NavigatePreviousPage != null)
 | |
|                 NavigatePreviousPage(this, EventArgs.Empty);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region PageNav_NavigateToday
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Handles NavigateToday events
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         void PageNavNavigateToday(object sender, EventArgs e)
 | |
|         {
 | |
|             OnNavigateToday();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Raises the NavigateToday event
 | |
|         /// </summary>
 | |
|         private void OnNavigateToday()
 | |
|         {
 | |
|             if (NavigateToday != null)
 | |
|                 NavigateToday(this, EventArgs.Empty);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region PageNav_NavigateNextPage
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Handles NavigateNextPage events
 | |
|         /// </summary>
 | |
|         /// <param name="sender"></param>
 | |
|         /// <param name="e"></param>
 | |
|         void PageNavNavigateNextPage(object sender, EventArgs e)
 | |
|         {
 | |
|             OnNavigateNextPage();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Raises the NavigateNextPage event
 | |
|         /// </summary>
 | |
|         private void OnNavigateNextPage()
 | |
|         {
 | |
|             if (NavigateNextPage != null)
 | |
|                 NavigateNextPage(this, EventArgs.Empty);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region RecalcLayout
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Forces the button to perform internal layout.
 | |
|         /// </summary>
 | |
|         public override void RecalcLayout()
 | |
|         {
 | |
|             base.RecalcLayout();
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
| 
 | |
|         #region Dispose
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Dispose
 | |
|         /// </summary>
 | |
|         /// <param name="disposing"></param>
 | |
|         protected override void Dispose(bool disposing)
 | |
|         {
 | |
|             if (disposing == true)
 | |
|                 HookEvents(false);
 | |
| 
 | |
|             base.Dispose(disposing);
 | |
|         }
 | |
| 
 | |
|         #endregion
 | |
|     }
 | |
| 
 | |
|     #region enums
 | |
| 
 | |
|     /// <summary>
 | |
|     /// PageNavigator buttons
 | |
|     /// </summary>
 | |
|     public enum PageNavigatorButton
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Previous page
 | |
|         /// </summary>
 | |
|         PreviousPage,
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Today
 | |
|         /// </summary>
 | |
|         Today,
 | |
| 
 | |
|         /// <summary>
 | |
|         /// Next page
 | |
|         /// </summary>
 | |
|         NextPage
 | |
|     }
 | |
| 
 | |
|     #endregion
 | |
| }
 | |
| #endif |