Пример #1
0
 /// <summary>
 /// Initializes a new instance of the CreateEventEditViewDelegate class.
 /// </summary>
 /// <param name="eventController">Event controller.</param>
 /// <param name="CalendarView">Calendar view.</param>
 /// <param name="DataSource">Data source.</param>
 public CreateEventEditViewDelegate(EKEventEditViewController eventController, DSCalendarView CalendarView, DSCalendarEventKitDataSource DataSource)
 {
     // save our controller reference
     this.eventController = eventController;
     this.mCalendarView   = CalendarView;
     this.mDatasource     = DataSource;
 }
Пример #2
0
        /// <summary>
        /// Shows the event editor.
        /// </summary>
        /// <param name="TheEvent">The event.</param>
        /// <param name="CalendarView">Calendar view.</param>
        /// <param name="targetView">Target view.</param>
        private void ShowEventEditor(EKEvent TheEvent, DSCalendarView CalendarView, object targetView)
        {
            if (targetView is DSCalendarCell)
            {
                mCenterDate = ((DSCalendarCell)targetView).CellInfo.Date;
            }
            else if (targetView is UIBarButtonItem)
            {
                mButton = (UIBarButtonItem)targetView;
            }

            mCalendarView = CalendarView;

            var eventController = new MonoTouch.EventKitUI.EKEventEditViewController();

            eventController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet;
            eventController.EventStore             = EventStore;
            eventController.Event = TheEvent;

            eventController.EditViewDelegate = new CreateEventEditViewDelegate(eventController, CalendarView, this);

            if (UIDevice.CurrentDevice.UserInterfaceIdiom == UIUserInterfaceIdiom.Pad)
            {
                //use the popoverview to present it
                if (PopController != null)
                {
                    //dissmis the existing one
                    PopController.Dismiss(true);
                }

                PopController = new UIPopoverController(eventController);
                PopController.PopoverContentSize = eventController.ContentSizeForViewInPopover;
                PopController.DidDismiss        += (object sender, EventArgs e) => { PopController = null; };
                if (targetView is UIBarButtonItem)
                {
                    PopController.PresentFromBarButtonItem((UIBarButtonItem)targetView, UIPopoverArrowDirection.Any, true);
                }
                else if (targetView is UIView)
                {
                    var aView = targetView as UIView;

                    var inset = new RectangleF(aView.Frame.Left, aView.Frame.Top, aView.Frame.Size.Width, 25);

                    //if (targetView is DSEventView) inset = aView.ConvertRectToView (aView.Frame, mCalendarView.CalendarGrid);
                    PopController.PresentFromRect(inset, mCalendarView.CalendarGrid, UIPopoverArrowDirection.Any, true);
                }
            }
            else
            {
                //present modally on the phone
                if (CalendarView.ParentViewController != null)
                {
                    CalendarView.ParentViewController.PresentViewController(eventController, true, null);
                }
            }
        }
Пример #3
0
 internal void ClearViews()
 {
     mCenterDate   = null;
     mCalendarView = null;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DSoft.UI.Calendar.ViewControlllers.DSCalendarViewController"/> class.
 /// </summary>
 public DSCalendarViewController()
 {
     mCalendarView = new DSCalendarView(RectangleF.Empty, this);
     this.View.AddSubview(mCalendarView);
 }