Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/PhotoViewer/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WinForms/CS/PhotoViewer/DateFilter.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.Skins;

namespace PhotoViewer {
    public partial class DateFilter : XtraUserControl {
        private static readonly object selectionChanged = new object();
        public DateFilter() {
            InitializeComponent();
        }
        protected override void OnSizeChanged(EventArgs e) {
            base.OnSizeChanged(e);
            
            startDate.Location = new Point(DisplayRectangle.X + (DisplayRectangle.Width - startDate.Width) / 2, DisplayRectangle.Y + (panel1.Top - DisplayRectangle.Y - startDate.Height) / 2);
        }

        public DateTime StartDate { get { return allowFilterCheck.Checked ? startDate.SelectionStart: DateTime.MinValue; } }
        public DateTime EndDate { get { return allowFilterCheck.Checked ? startDate.SelectionEnd : DateTime.MinValue; } }
        public bool AllowFilter { get { return allowFilterCheck.Checked; } }

        protected void RaiseSelectionChanged() {
            EventHandler handler = Events[selectionChanged] as EventHandler;
            if(handler != null)
                handler(this, EventArgs.Empty);
        }
        public event EventHandler SelectionChanged {
            add { Events.AddHandler(selectionChanged, value); }
            remove { Events.RemoveHandler(selectionChanged, value); }
        }

        private void allowFilterCheck_CheckedChanged(object sender, EventArgs e) {
            RaiseSelectionChanged();
        }

        private void startDate_SelectionChanged(object sender, EventArgs e) {
            RaiseSelectionChanged();
        }

        private void endDate_SelectionChanged(object sender, EventArgs e) {
            RaiseSelectionChanged();
        }
    }
}