/// <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; }
/// <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); } } }
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); }