protected void OnButtonPickDatePeriodClicked(object sender, EventArgs e)
        {
            #region Widget creation
            Window parentWin = (Window)Toplevel;
            var selectDate = new Dialog ("Укажите период", parentWin, DialogFlags.DestroyWithParent);
            selectDate.Modal = true;
            selectDate.AddButton ("Отмена", ResponseType.Cancel);
            selectDate.AddButton ("Ok", ResponseType.Ok);

            periodSummary = new Label();
            selectDate.VBox.Add(periodSummary);

            HBox hbox = new HBox (true, 6);

            StartDateCalendar = new Calendar ();
            StartDateCalendar.DisplayOptions = DisplayOptions;
            StartDateCalendar.Date = StartDateOrNull ?? DateTime.Today;
            StartDateCalendar.DaySelected += StartDateCalendar_DaySelected;

            EndDateCalendar = new Calendar ();
            EndDateCalendar.DisplayOptions = DisplayOptions;
            EndDateCalendar.Date = EndDateOrNull ?? DateTime.Today;
            EndDateCalendar.DaySelected += EndDateCalendar_DaySelected;

            hbox.Add (StartDateCalendar);
            hbox.Add (EndDateCalendar);

            selectDate.VBox.Add (hbox);
            selectDate.ShowAll ();
            #endregion

            int response = selectDate.Run ();
            if (response == (int)ResponseType.Ok) {
                startDate = StartDateCalendar.GetDate ();
                endDate = EndDateCalendar.GetDate ();
                OnPeriodChanged ();
            }

            #region Destroy
            EndDateCalendar.Destroy ();
            StartDateCalendar.Destroy ();
            hbox.Destroy ();
            selectDate.Destroy ();
            #endregion
        }
Esempio n. 2
0
        protected void OnButtonEditDateClicked(object sender, EventArgs e)
        {
            Gtk.Window parentWin = (Gtk.Window) this.Toplevel;
            editDate = new Dialog(WithTime ? "Укажите дату и время" : "Укажите дату",
                parentWin, Gtk.DialogFlags.DestroyWithParent);
            editDate.Modal = true;
            editDate.AddButton ("Отмена", ResponseType.Cancel);
            editDate.AddButton ("Ok", ResponseType.Ok);
            TimeEntry timeEntry = null;
            if(WithTime)
            {
                HBox timeBox = new HBox();
                Label timeLabel = new Label("Время:");
                timeLabel.Angle = 1;
                timeBox.Add(timeLabel);
                timeEntry = new TimeEntry();
                timeEntry.DateTime = date ?? DateTime.Now.Date;
                timeEntry.AutocompleteStep = 5;
                timeBox.Add(timeEntry);
                editDate.VBox.Add(timeBox);
            }
            Calendar SelectDate = new Calendar ();
            SelectDate.DisplayOptions = CalendarDisplayOptions.ShowHeading  |
                CalendarDisplayOptions.ShowDayNames |
                    CalendarDisplayOptions.ShowWeekNumbers;
            SelectDate.DaySelectedDoubleClick += OnCalendarDaySelectedDoubleClick;
            SelectDate.Date = date ?? DateTime.Now.Date;

            editDate.VBox.Add(SelectDate);
            editDate.ShowAll();
            int response = editDate.Run ();
            if(response == (int)ResponseType.Ok)
            {
                DateOrNull = WithTime ? SelectDate.GetDate() + timeEntry.Time : SelectDate.GetDate();
            }
            SelectDate.Destroy();
            editDate.Destroy ();
        }