diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 00000000..1a9ee472
Binary files /dev/null and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index cc66daab..d93c5054 100755
--- a/.gitignore
+++ b/.gitignore
@@ -22,7 +22,8 @@ xcuserdata
*.moved-aside
*.xcuserstate
*.xcscmblueprint
-*.xcscheme
+.DS_Store
+##*.xcscheme
## Obj-C/Swift specific
*.hmap
@@ -34,14 +35,14 @@ xcuserdata
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
-Pods/
+Pods/*
# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts
-Carthage/Build
+Carthage/*
# fastlane
#
@@ -50,5 +51,54 @@ Carthage/Build
# For more information about the recommended setup visit:
# https://github.com/fastlane/fastlane/blob/master/docs/Gitignore.md
-fastlane/report.xml
-fastlane/screenshots
\ No newline at end of file
+fastlane/*
+
+.idea/*
+
+cmake-build-*/
+.idea/**/mongoSettings.xml
+*.iws
+out/
+.idea_modules/
+atlassian-ide-plugin.xml
+.idea/replstate.xml
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+xcuserdata/
+*.xcscmblueprint
+*.xccheckout
+*.moved-aside
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+*.hmap
+*.ipa
+*.dSYM.zip
+*.dSYM
+iOSInjectionProject/
+xcuserdata/
+*.xcscmblueprint
+*.xccheckout
+*.moved-aside
+*.pbxuser
+!default.pbxuser
+*.mode1v3
+!default.mode1v3
+*.mode2v3
+!default.mode2v3
+*.perspectivev3
+!default.perspectivev3
+*.hmap
+*.ipa
+*.dSYM.zip
+*.dSYM
+timeline.xctimeline
+playground.xcworkspace
+.accio/
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 00000000..5c98b428
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,2 @@
+# Default ignored files
+/workspace.xml
\ No newline at end of file
diff --git a/.idea/Calendar.iml b/.idea/Calendar.iml
new file mode 100644
index 00000000..74121dcb
--- /dev/null
+++ b/.idea/Calendar.iml
@@ -0,0 +1,2 @@
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 00000000..28a804d8
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 00000000..a2a42357
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/runConfigurations/UniversalCalendar.xml b/.idea/runConfigurations/UniversalCalendar.xml
new file mode 100644
index 00000000..0802ef6e
--- /dev/null
+++ b/.idea/runConfigurations/UniversalCalendar.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 00000000..94a25f7f
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/xcode.xml b/.idea/xcode.xml
new file mode 100644
index 00000000..518b0cac
--- /dev/null
+++ b/.idea/xcode.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 585dc798..7940b6f3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,12 @@
# CHANGELOG
+## v. 3.0
+- Drop EventKit/EventKitUI Dependencies.
+- Drop MonthPlannerEKViewController/DayPlannerEKViewController.
+- Support Carthage.
+- Support Mac Catalyst.
+- Deployment target is now iOS 11.0
+
## v. 2.0
- Deployment target is now iOS 8.0
diff --git a/Calendar.xcodeproj/project.pbxproj b/Calendar.xcodeproj/project.pbxproj
old mode 100755
new mode 100644
index cf96f263..8dadf758
--- a/Calendar.xcodeproj/project.pbxproj
+++ b/Calendar.xcodeproj/project.pbxproj
@@ -7,14 +7,16 @@
objects = {
/* Begin PBXBuildFile section */
+ 19290194C082371F9D97B3DF /* WeekViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19290C2D82B4D6236BB822BA /* WeekViewController.swift */; };
+ 1929092530FF5A55803D2505 /* MonthViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 19290FFD11D912E695FEDDCA /* MonthViewController.swift */; };
+ 19290AB66D0A8FF66FBB260B /* DayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 192904E8074D812872DD4926 /* DayViewController.swift */; };
+ 270216F224FAC05400022A24 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F3180D73E0004ADB86 /* CoreGraphics.framework */; };
720041BA1879B2B600F3C497 /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 720041B91879B2B600F3C497 /* Settings.bundle */; };
- 721CA1B41A9382990083F41A /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 721CA1B21A9382990083F41A /* Localizable.strings */; };
721DC18918219C4D00F9470C /* MainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 721DC18818219C4D00F9470C /* MainViewController.m */; };
7258E8B11A5A98DD007F88AF /* WeekSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7258E8B01A5A98DD007F88AF /* WeekSettingsViewController.m */; };
72734BB71B32E93800B2BA49 /* main-iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 72734BB61B32E93800B2BA49 /* main-iPhone.storyboard */; };
7275C4A01C46E87B0036C9A3 /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7275C49F1C46E87B0036C9A3 /* Launch Screen.storyboard */; };
72B5D8F2180D73E0004ADB86 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F1180D73E0004ADB86 /* Foundation.framework */; };
- 72B5D8F4180D73E0004ADB86 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F3180D73E0004ADB86 /* CoreGraphics.framework */; };
72B5D8F6180D73E0004ADB86 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F5180D73E0004ADB86 /* UIKit.framework */; };
72B5D8FC180D73E0004ADB86 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 72B5D8FA180D73E0004ADB86 /* InfoPlist.strings */; };
72B5D8FE180D73E0004ADB86 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 72B5D8FD180D73E0004ADB86 /* main.m */; };
@@ -25,20 +27,93 @@
72B5D90D180D73E0004ADB86 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F5180D73E0004ADB86 /* UIKit.framework */; };
72B5D915180D73E0004ADB86 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 72B5D913180D73E0004ADB86 /* InfoPlist.strings */; };
72B5D917180D73E0004ADB86 /* CalendarTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 72B5D916180D73E0004ADB86 /* CalendarTests.m */; };
- 72B5D922180D73F3004ADB86 /* EventKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D920180D73F3004ADB86 /* EventKit.framework */; };
- 72B5D923180D73F3004ADB86 /* EventKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D921180D73F3004ADB86 /* EventKitUI.framework */; };
72B5D928180D7476004ADB86 /* main-iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 72B5D927180D7476004ADB86 /* main-iPad.storyboard */; };
72E9B9161C919EF20070EDD3 /* settings.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 72E9B9151C919EF20070EDD3 /* settings.storyboard */; };
72E9B9191C91E3520070EDD3 /* MonthSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 72E9B9181C91E3520070EDD3 /* MonthSettingsViewController.m */; };
- 72EF07FF1A3D9DF8005699CA /* WeekViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 72EF07FE1A3D9DF8005699CA /* WeekViewController.m */; };
- 72EF08151A3DB8C6005699CA /* MonthViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 72EF080C1A3DB8C6005699CA /* MonthViewController.m */; };
72EF08181A3DB8C6005699CA /* YearViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 72EF080E1A3DB8C6005699CA /* YearViewController.m */; };
- 96A3FD1C9E6707E46CB36A87 /* Pods_CalendarDemo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F06A59852B476A0AA324A957 /* Pods_CalendarDemo.framework */; };
- BC32A4601D30FED600AB19D7 /* DayViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC32A45F1D30FED600AB19D7 /* DayViewController.m */; };
- BC32A4681D3101BB00AB19D7 /* MGCCalendarHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC32A4671D3101BB00AB19D7 /* MGCCalendarHeaderCell.xib */; };
+ CA15378724065AA6000A14C7 /* UniversalCalendar.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378524065AA6000A14C7 /* UniversalCalendar.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537D924065AE2000A14C7 /* MGCDayPlannerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378B24065AD8000A14C7 /* MGCDayPlannerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537DA24065AE2000A14C7 /* MGCYearCalendarMonthHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378C24065AD8000A14C7 /* MGCYearCalendarMonthHeaderView.h */; };
+ CA1537DB24065AE2000A14C7 /* MGCAlignedGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378D24065AD9000A14C7 /* MGCAlignedGeometry.h */; };
+ CA1537DC24065AE2000A14C7 /* MGCAllDayEventsViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378E24065AD9000A14C7 /* MGCAllDayEventsViewLayout.h */; };
+ CA1537DD24065AE2000A14C7 /* MGCMonthPlannerViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15378F24065AD9000A14C7 /* MGCMonthPlannerViewLayout.h */; };
+ CA1537DE24065AE2000A14C7 /* MGCCalendarHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379024065AD9000A14C7 /* MGCCalendarHeaderView.m */; };
+ CA1537DF24065AE2000A14C7 /* MGCMonthPlannerWeekView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379124065AD9000A14C7 /* MGCMonthPlannerWeekView.m */; };
+ CA1537E024065AE2000A14C7 /* MGCMonthPlannerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379224065AD9000A14C7 /* MGCMonthPlannerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537E124065AE2000A14C7 /* OSCache.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379324065AD9000A14C7 /* OSCache.m */; };
+ CA1537E224065AE2000A14C7 /* MGCYearCalendarMonthHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379424065AD9000A14C7 /* MGCYearCalendarMonthHeaderView.m */; };
+ CA1537E324065AE2000A14C7 /* MGCAllDayEventsViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379524065AD9000A14C7 /* MGCAllDayEventsViewLayout.m */; };
+ CA1537E424065AE2000A14C7 /* MGCMonthPlannerHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379624065AD9000A14C7 /* MGCMonthPlannerHeaderView.m */; };
+ CA1537E524065AE2000A14C7 /* MGCMonthPlannerHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379724065AD9000A14C7 /* MGCMonthPlannerHeaderView.h */; };
+ CA1537E624065AE2000A14C7 /* MGCMonthPlannerView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379824065AD9000A14C7 /* MGCMonthPlannerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537E724065AE2000A14C7 /* MGCStandardEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379924065AD9000A14C7 /* MGCStandardEventView.m */; };
+ CA1537E824065AE2000A14C7 /* MGCMonthPlannerWeekView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379A24065AD9000A14C7 /* MGCMonthPlannerWeekView.h */; };
+ CA1537E924065AE2000A14C7 /* MGCYearCalendarMonthCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379B24065AD9000A14C7 /* MGCYearCalendarMonthCell.h */; };
+ CA1537EA24065AE2000A14C7 /* MGCEventsRowView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379C24065ADA000A14C7 /* MGCEventsRowView.m */; };
+ CA1537EB24065AE2000A14C7 /* MGCMonthPlannerViewDayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379D24065ADA000A14C7 /* MGCMonthPlannerViewDayCell.m */; };
+ CA1537EC24065AE2000A14C7 /* MGCMonthPlannerBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA15379E24065ADA000A14C7 /* MGCMonthPlannerBackgroundView.h */; };
+ CA1537ED24065AE2000A14C7 /* MGCDayPlannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA15379F24065ADA000A14C7 /* MGCDayPlannerViewController.m */; };
+ CA1537EE24065AE2000A14C7 /* Constant.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537A024065ADA000A14C7 /* Constant.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537F024065AE2000A14C7 /* MGCMonthPlannerViewDayCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537A224065ADA000A14C7 /* MGCMonthPlannerViewDayCell.h */; };
+ CA1537F124065AE2000A14C7 /* MGCTimeRowsView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537A324065ADA000A14C7 /* MGCTimeRowsView.m */; };
+ CA1537F224065AE2000A14C7 /* MGCYearCalendarMonthCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537A424065ADA000A14C7 /* MGCYearCalendarMonthCell.m */; };
+ CA1537F324065AE2000A14C7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CA1537A624065ADA000A14C7 /* Localizable.strings */; };
+ CA1537F424065AE2000A14C7 /* MGCDayPlannerView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537A824065ADA000A14C7 /* MGCDayPlannerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537F524065AE2000A14C7 /* NSAttributedString+MGCAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537A924065ADB000A14C7 /* NSAttributedString+MGCAdditions.m */; };
+ CA1537F624065AE2000A14C7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CA1537AB24065ADB000A14C7 /* Localizable.strings */; };
+ CA1537F724065AE2000A14C7 /* MGCAlignedGeometry.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537AD24065ADB000A14C7 /* MGCAlignedGeometry.m */; };
+ CA1537F824065AE2000A14C7 /* MGCInteractiveEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537AE24065ADB000A14C7 /* MGCInteractiveEventView.m */; };
+ CA1537F924065AE2000A14C7 /* MGCDayColumnCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537AF24065ADB000A14C7 /* MGCDayColumnCell.h */; };
+ CA1537FA24065AE2000A14C7 /* MGCMonthPlannerViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537B024065ADC000A14C7 /* MGCMonthPlannerViewLayout.m */; };
+ CA1537FB24065AE2000A14C7 /* MGCMonthPlannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537B124065ADC000A14C7 /* MGCMonthPlannerView.m */; };
+ CA1537FC24065AE2000A14C7 /* MGCInteractiveEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537B224065ADC000A14C7 /* MGCInteractiveEventView.h */; };
+ CA1537FD24065AE2000A14C7 /* MGCDateRange.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537B324065ADC000A14C7 /* MGCDateRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA1537FE24065AE2000A14C7 /* NSCalendar+MGCAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537B424065ADC000A14C7 /* NSCalendar+MGCAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15380024065AE2000A14C7 /* MGCMonthPlannerBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537B624065ADD000A14C7 /* MGCMonthPlannerBackgroundView.m */; };
+ CA15380124065AE2000A14C7 /* MGCTimedEventsViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537B724065ADD000A14C7 /* MGCTimedEventsViewLayout.h */; };
+ CA15380324065AE2000A14C7 /* MGCEventCellLayoutAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537B924065ADE000A14C7 /* MGCEventCellLayoutAttributes.h */; };
+ CA15380424065AE2000A14C7 /* MGCEventCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537BA24065ADE000A14C7 /* MGCEventCell.h */; };
+ CA15380524065AE2000A14C7 /* MGCStandardEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537BB24065ADE000A14C7 /* MGCStandardEventView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15380624065AE2000A14C7 /* MGCEventKitSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537BC24065ADE000A14C7 /* MGCEventKitSupport.h */; };
+ CA15380724065AE2000A14C7 /* NSAttributedString+MGCAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537BD24065ADE000A14C7 /* NSAttributedString+MGCAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15380824065AE2000A14C7 /* MGCDayColumnCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537BE24065ADE000A14C7 /* MGCDayColumnCell.m */; };
+ CA15380924065AE2000A14C7 /* MGCEventCellLayoutAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537BF24065ADF000A14C7 /* MGCEventCellLayoutAttributes.m */; };
+ CA15380A24065AE2000A14C7 /* NSCalendar+MGCAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537C024065ADF000A14C7 /* NSCalendar+MGCAdditions.m */; };
+ CA15380B24065AE2000A14C7 /* MGCEventCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537C124065ADF000A14C7 /* MGCEventCell.m */; };
+ CA15380C24065AE2000A14C7 /* MGCReusableObjectQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537C224065ADF000A14C7 /* MGCReusableObjectQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15380D24065AE2000A14C7 /* MGCReusableObjectQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537C324065ADF000A14C7 /* MGCReusableObjectQueue.m */; };
+ CA15380F24065AE2000A14C7 /* MGCYearCalendarView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537C524065ADF000A14C7 /* MGCYearCalendarView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15381024065AE2000A14C7 /* MGCTimeRowsView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537C624065AE0000A14C7 /* MGCTimeRowsView.h */; };
+ CA15381124065AE2000A14C7 /* OSCache.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537C724065AE0000A14C7 /* OSCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15381224065AE2000A14C7 /* MGCCalendarHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537C824065AE0000A14C7 /* MGCCalendarHeaderView.h */; };
+ CA15381324065AE2000A14C7 /* MGCYearCalendarView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537C924065AE0000A14C7 /* MGCYearCalendarView.m */; };
+ CA15381424065AE2000A14C7 /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CA24065AE0000A14C7 /* OrderedDictionary.m */; };
+ CA15381524065AE2000A14C7 /* MGCEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CB24065AE0000A14C7 /* MGCEventView.m */; };
+ CA15381624065AE2000A14C7 /* MGCMonthMiniCalendarView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CC24065AE0000A14C7 /* MGCMonthMiniCalendarView.m */; };
+ CA15381724065AE2000A14C7 /* MGCTimedEventsViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CD24065AE1000A14C7 /* MGCTimedEventsViewLayout.m */; };
+ CA15381824065AE2000A14C7 /* MGCMonthPlannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CE24065AE1000A14C7 /* MGCMonthPlannerViewController.m */; };
+ CA15381924065AE2000A14C7 /* MGCEventKitSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537CF24065AE1000A14C7 /* MGCEventKitSupport.m */; };
+ CA15381A24065AE2000A14C7 /* MGCCalendarHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537D024065AE1000A14C7 /* MGCCalendarHeaderCell.m */; };
+ CA15381B24065AE2000A14C7 /* OrderedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537D124065AE1000A14C7 /* OrderedDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15381C24065AE2000A14C7 /* MGCCalendarHeaderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537D224065AE1000A14C7 /* MGCCalendarHeaderCell.h */; };
+ CA15381D24065AE2000A14C7 /* MGCEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537D324065AE2000A14C7 /* MGCEventView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15381E24065AE2000A14C7 /* MGCEventsRowView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537D424065AE2000A14C7 /* MGCEventsRowView.h */; };
+ CA15382024065AE2000A14C7 /* MGCMonthMiniCalendarView.h in Headers */ = {isa = PBXBuildFile; fileRef = CA1537D624065AE2000A14C7 /* MGCMonthMiniCalendarView.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ CA15382124065AE2000A14C7 /* MGCDateRange.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537D724065AE2000A14C7 /* MGCDateRange.m */; };
+ CA15382224065AE2000A14C7 /* MGCDayPlannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = CA1537D824065AE2000A14C7 /* MGCDayPlannerView.m */; };
+ CA15382524065C80000A14C7 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F3180D73E0004ADB86 /* CoreGraphics.framework */; };
+ CA15382624065C88000A14C7 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F5180D73E0004ADB86 /* UIKit.framework */; };
+ CA15382724065C91000A14C7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 72B5D8F1180D73E0004ADB86 /* Foundation.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
+ 270216F324FAC06B00022A24 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 72B5D8E6180D73E0004ADB86 /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = CA15378224065AA6000A14C7;
+ remoteInfo = UniversalCalendar;
+ };
72B5D90E180D73E0004ADB86 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 72B5D8E6180D73E0004ADB86 /* Project object */;
@@ -49,62 +124,23 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
- 072E5EFE1C338559007711A0 /* Constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constant.h; sourceTree = ""; };
- 1F0C1F1B722A7E607C88C0FE /* Pods-CalendarDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CalendarDemo.debug.xcconfig"; path = "Pods/Target Support Files/Pods-CalendarDemo/Pods-CalendarDemo.debug.xcconfig"; sourceTree = ""; };
- 28486480EAA57CF147A3825F /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ 192904E8074D812872DD4926 /* DayViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DayViewController.swift; sourceTree = ""; };
+ 19290C2D82B4D6236BB822BA /* WeekViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WeekViewController.swift; sourceTree = ""; };
+ 19290C8C215F90F0DF0256D5 /* CalendarDemo-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CalendarDemo-Bridging-Header.h"; sourceTree = ""; };
+ 19290FFD11D912E695FEDDCA /* MonthViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MonthViewController.swift; sourceTree = ""; };
+ 27CD957524FB5D7A000C5A97 /* CalendarDemo.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = CalendarDemo.entitlements; path = CalendarDemo/CalendarDemo.entitlements; sourceTree = ""; };
720041B91879B2B600F3C497 /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; };
- 720DAE511C6269D900DF8AAA /* NSAttributedString+MGCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSAttributedString+MGCAdditions.h"; sourceTree = ""; };
- 720DAE521C6269D900DF8AAA /* NSAttributedString+MGCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSAttributedString+MGCAdditions.m"; sourceTree = ""; };
- 720DAE541C66531300DF8AAA /* MGCEventKitSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventKitSupport.m; sourceTree = ""; };
- 720DAE561C66534A00DF8AAA /* MGCEventKitSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MGCEventKitSupport.h; sourceTree = ""; };
721A12A11CB585CF00749F18 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; };
- 721CA1B31A9382990083F41A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; };
- 721CA1B51A9382A80083F41A /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; };
721DC18718219C4D00F9470C /* MainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainViewController.h; sourceTree = ""; };
721DC18818219C4D00F9470C /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainViewController.m; sourceTree = ""; };
- 72271A501815C33600DE96FE /* MGCDateRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDateRange.h; sourceTree = ""; };
- 72271A511815C33600DE96FE /* MGCDateRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDateRange.m; sourceTree = ""; };
- 722A55F71892B58B0097B8FB /* MGCMonthPlannerViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewLayout.h; sourceTree = ""; };
- 722A55F81892B58B0097B8FB /* MGCMonthPlannerViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewLayout.m; sourceTree = ""; };
722ABE331CB19BAC00713ED3 /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; };
- 722ABE391CB19C6600713ED3 /* CalendarLib.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = CalendarLib.podspec; sourceTree = ""; };
- 7233530F18397DD90079B240 /* MGCEventCellLayoutAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventCellLayoutAttributes.h; sourceTree = ""; };
- 7233531018397DD90079B240 /* MGCEventCellLayoutAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventCellLayoutAttributes.m; sourceTree = ""; };
723925AF188B0AE800DE9578 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; };
- 723A2BAB181449F500834697 /* NSCalendar+MGCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCalendar+MGCAdditions.h"; sourceTree = ""; };
- 723A2BAC181449F500834697 /* NSCalendar+MGCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCalendar+MGCAdditions.m"; sourceTree = ""; };
- 7248240C18D352AE0067D0D7 /* MGCYearCalendarMonthCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarMonthCell.h; sourceTree = ""; };
- 7248240D18D352AE0067D0D7 /* MGCYearCalendarMonthCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarMonthCell.m; sourceTree = ""; };
- 7248241118D355D10067D0D7 /* MGCYearCalendarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarView.h; sourceTree = ""; };
- 7248241218D355D10067D0D7 /* MGCYearCalendarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarView.m; sourceTree = ""; };
- 7248241618D36DFE0067D0D7 /* MGCYearCalendarMonthHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarMonthHeaderView.h; sourceTree = ""; };
- 7248241718D36DFE0067D0D7 /* MGCYearCalendarMonthHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarMonthHeaderView.m; sourceTree = ""; };
- 724E03C4183F8F6A00490FC5 /* MGCDayColumnCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayColumnCell.h; sourceTree = ""; };
- 724E03C5183F8F6A00490FC5 /* MGCDayColumnCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayColumnCell.m; sourceTree = ""; };
7258E8AF1A5A98DD007F88AF /* WeekSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeekSettingsViewController.h; sourceTree = ""; };
7258E8B01A5A98DD007F88AF /* WeekSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeekSettingsViewController.m; sourceTree = ""; };
726C2037182D6F66004AEE13 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
726C2038182D6F66004AEE13 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = ""; };
- 72707CDB18858F9600830A8E /* MGCMonthPlannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerView.h; sourceTree = ""; };
- 72707CDC18858F9600830A8E /* MGCMonthPlannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerView.m; sourceTree = ""; };
- 72707CE0188592AC00830A8E /* MGCMonthPlannerViewDayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewDayCell.h; sourceTree = ""; };
- 72707CE1188592AC00830A8E /* MGCMonthPlannerViewDayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewDayCell.m; sourceTree = ""; };
72734BB61B32E93800B2BA49 /* main-iPhone.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "main-iPhone.storyboard"; sourceTree = ""; };
7275C49F1C46E87B0036C9A3 /* Launch Screen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; };
- 72780F8F1CB6D0DF00CA5513 /* MGCAlignedGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCAlignedGeometry.h; sourceTree = ""; };
- 72780F901CB6D0DF00CA5513 /* MGCAlignedGeometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCAlignedGeometry.m; sourceTree = ""; };
- 727A94B018F3B9C300260D6E /* MGCEventsRowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventsRowView.h; sourceTree = ""; };
- 727A94B118F3B9C300260D6E /* MGCEventsRowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventsRowView.m; sourceTree = ""; };
- 727A94B618F3D28F00260D6E /* MGCEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventView.h; sourceTree = ""; };
- 727A94B718F3D28F00260D6E /* MGCEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventView.m; sourceTree = ""; };
- 727A94BB18F3D2E000260D6E /* MGCStandardEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCStandardEventView.h; sourceTree = ""; };
- 727A94BC18F3D2E000260D6E /* MGCStandardEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCStandardEventView.m; sourceTree = ""; };
- 728438151A3A308900477A5C /* MGCAllDayEventsViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCAllDayEventsViewLayout.h; sourceTree = ""; };
- 728438161A3A308900477A5C /* MGCAllDayEventsViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCAllDayEventsViewLayout.m; sourceTree = ""; };
- 7290307C1A5031EF008C58D3 /* MGCTimeRowsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCTimeRowsView.h; sourceTree = ""; };
- 7290307D1A5031EF008C58D3 /* MGCTimeRowsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCTimeRowsView.m; sourceTree = ""; };
- 72AE50281A641419004DAF44 /* MGCInteractiveEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCInteractiveEventView.h; sourceTree = ""; };
- 72AE50291A641419004DAF44 /* MGCInteractiveEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCInteractiveEventView.m; sourceTree = ""; };
72B5D8EE180D73E0004ADB86 /* CalendarDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CalendarDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
72B5D8F1180D73E0004ADB86 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
72B5D8F3180D73E0004ADB86 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
@@ -121,51 +157,85 @@
72B5D912180D73E0004ADB86 /* CalendarTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "CalendarTests-Info.plist"; sourceTree = ""; };
72B5D914180D73E0004ADB86 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
72B5D916180D73E0004ADB86 /* CalendarTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CalendarTests.m; sourceTree = ""; };
- 72B5D920180D73F3004ADB86 /* EventKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EventKit.framework; path = System/Library/Frameworks/EventKit.framework; sourceTree = SDKROOT; };
- 72B5D921180D73F3004ADB86 /* EventKitUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = EventKitUI.framework; path = System/Library/Frameworks/EventKitUI.framework; sourceTree = SDKROOT; };
72B5D927180D7476004ADB86 /* main-iPad.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = "main-iPad.storyboard"; sourceTree = ""; };
- 72B5D92C180D7840004ADB86 /* MGCEventCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventCell.h; sourceTree = ""; };
- 72B5D92D180D7840004ADB86 /* MGCEventCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventCell.m; sourceTree = ""; };
- 72B5D951180D9A93004ADB86 /* MGCTimedEventsViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCTimedEventsViewLayout.h; sourceTree = ""; };
- 72B5D952180D9A93004ADB86 /* MGCTimedEventsViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCTimedEventsViewLayout.m; sourceTree = ""; };
- 72DD627418155AAD00D270DB /* MGCDayPlannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerView.h; sourceTree = ""; };
- 72DD627518155AAD00D270DB /* MGCDayPlannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerView.m; sourceTree = ""; };
- 72E13E8D18EDA1A200F1D740 /* MGCMonthPlannerBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerBackgroundView.h; sourceTree = ""; };
- 72E13E8E18EDA1A200F1D740 /* MGCMonthPlannerBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerBackgroundView.m; sourceTree = ""; };
- 72E13E9318EE0D7A00F1D740 /* MGCMonthPlannerWeekView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerWeekView.h; sourceTree = ""; };
- 72E13E9418EE0D7A00F1D740 /* MGCMonthPlannerWeekView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerWeekView.m; sourceTree = ""; };
- 72E82BBB1A80E197008B3E2F /* MGCDayPlannerEKViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerEKViewController.h; sourceTree = ""; };
- 72E82BBC1A80E197008B3E2F /* MGCDayPlannerEKViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerEKViewController.m; sourceTree = ""; };
- 72E82BC91A83A3FF008B3E2F /* MGCMonthPlannerEKViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerEKViewController.h; sourceTree = ""; };
- 72E82BCA1A83A3FF008B3E2F /* MGCMonthPlannerEKViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerEKViewController.m; sourceTree = ""; };
- 72E8D24D18F98F1C00024582 /* MGCMonthMiniCalendarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthMiniCalendarView.h; sourceTree = ""; };
- 72E8D24E18F98F1C00024582 /* MGCMonthMiniCalendarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthMiniCalendarView.m; sourceTree = ""; };
- 72E8D25718FC474500024582 /* MGCReusableObjectQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCReusableObjectQueue.h; sourceTree = ""; };
- 72E8D25818FC474500024582 /* MGCReusableObjectQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCReusableObjectQueue.m; sourceTree = ""; };
- 72E9B90E1C8E34020070EDD3 /* MGCMonthPlannerHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerHeaderView.h; sourceTree = ""; };
- 72E9B90F1C8E34020070EDD3 /* MGCMonthPlannerHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerHeaderView.m; sourceTree = ""; };
72E9B9151C919EF20070EDD3 /* settings.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = settings.storyboard; sourceTree = ""; };
72E9B9171C91E3520070EDD3 /* MonthSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonthSettingsViewController.h; sourceTree = ""; };
72E9B9181C91E3520070EDD3 /* MonthSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MonthSettingsViewController.m; sourceTree = ""; };
- 72EF07F21A3D8D13005699CA /* MGCDayPlannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerViewController.h; sourceTree = ""; };
- 72EF07F31A3D8D13005699CA /* MGCDayPlannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerViewController.m; sourceTree = ""; };
- 72EF07FD1A3D9DF8005699CA /* WeekViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WeekViewController.h; sourceTree = ""; };
- 72EF07FE1A3D9DF8005699CA /* WeekViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WeekViewController.m; sourceTree = ""; };
- 72EF08031A3DA597005699CA /* MGCMonthPlannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewController.h; sourceTree = ""; };
- 72EF08041A3DA597005699CA /* MGCMonthPlannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewController.m; sourceTree = ""; };
- 72EF080B1A3DB8C6005699CA /* MonthViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MonthViewController.h; sourceTree = ""; };
- 72EF080C1A3DB8C6005699CA /* MonthViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MonthViewController.m; sourceTree = ""; };
72EF080D1A3DB8C6005699CA /* YearViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YearViewController.h; sourceTree = ""; };
72EF080E1A3DB8C6005699CA /* YearViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YearViewController.m; sourceTree = ""; };
- BC32A45E1D30FED500AB19D7 /* DayViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DayViewController.h; sourceTree = ""; };
- BC32A45F1D30FED600AB19D7 /* DayViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DayViewController.m; sourceTree = ""; };
- BC32A4611D31003C00AB19D7 /* MGCCalendarHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCCalendarHeaderView.h; sourceTree = ""; };
- BC32A4621D31003C00AB19D7 /* MGCCalendarHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCCalendarHeaderView.m; sourceTree = ""; };
- BC32A4641D3100D600AB19D7 /* MGCCalendarHeaderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCCalendarHeaderCell.h; sourceTree = ""; };
- BC32A4651D3100D600AB19D7 /* MGCCalendarHeaderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCCalendarHeaderCell.m; sourceTree = ""; };
- BC32A4671D3101BB00AB19D7 /* MGCCalendarHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MGCCalendarHeaderCell.xib; sourceTree = ""; };
- EA537021B8BB04EA0A609FA9 /* Pods-CalendarDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CalendarDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-CalendarDemo/Pods-CalendarDemo.release.xcconfig"; sourceTree = ""; };
- F06A59852B476A0AA324A957 /* Pods_CalendarDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CalendarDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ CA15378324065AA6000A14C7 /* UniversalCalendar.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = UniversalCalendar.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+ CA15378524065AA6000A14C7 /* UniversalCalendar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UniversalCalendar.h; sourceTree = ""; };
+ CA15378624065AA6000A14C7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ CA15378B24065AD8000A14C7 /* MGCDayPlannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerViewController.h; sourceTree = ""; };
+ CA15378C24065AD8000A14C7 /* MGCYearCalendarMonthHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarMonthHeaderView.h; sourceTree = ""; };
+ CA15378D24065AD9000A14C7 /* MGCAlignedGeometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCAlignedGeometry.h; sourceTree = ""; };
+ CA15378E24065AD9000A14C7 /* MGCAllDayEventsViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCAllDayEventsViewLayout.h; sourceTree = ""; };
+ CA15378F24065AD9000A14C7 /* MGCMonthPlannerViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewLayout.h; sourceTree = ""; };
+ CA15379024065AD9000A14C7 /* MGCCalendarHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCCalendarHeaderView.m; sourceTree = ""; };
+ CA15379124065AD9000A14C7 /* MGCMonthPlannerWeekView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerWeekView.m; sourceTree = ""; };
+ CA15379224065AD9000A14C7 /* MGCMonthPlannerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewController.h; sourceTree = ""; };
+ CA15379324065AD9000A14C7 /* OSCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OSCache.m; sourceTree = ""; };
+ CA15379424065AD9000A14C7 /* MGCYearCalendarMonthHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarMonthHeaderView.m; sourceTree = ""; };
+ CA15379524065AD9000A14C7 /* MGCAllDayEventsViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCAllDayEventsViewLayout.m; sourceTree = ""; };
+ CA15379624065AD9000A14C7 /* MGCMonthPlannerHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerHeaderView.m; sourceTree = ""; };
+ CA15379724065AD9000A14C7 /* MGCMonthPlannerHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerHeaderView.h; sourceTree = ""; };
+ CA15379824065AD9000A14C7 /* MGCMonthPlannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerView.h; sourceTree = ""; };
+ CA15379924065AD9000A14C7 /* MGCStandardEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCStandardEventView.m; sourceTree = ""; };
+ CA15379A24065AD9000A14C7 /* MGCMonthPlannerWeekView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerWeekView.h; sourceTree = ""; };
+ CA15379B24065AD9000A14C7 /* MGCYearCalendarMonthCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarMonthCell.h; sourceTree = ""; };
+ CA15379C24065ADA000A14C7 /* MGCEventsRowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventsRowView.m; sourceTree = ""; };
+ CA15379D24065ADA000A14C7 /* MGCMonthPlannerViewDayCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewDayCell.m; sourceTree = ""; };
+ CA15379E24065ADA000A14C7 /* MGCMonthPlannerBackgroundView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerBackgroundView.h; sourceTree = ""; };
+ CA15379F24065ADA000A14C7 /* MGCDayPlannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerViewController.m; sourceTree = ""; };
+ CA1537A024065ADA000A14C7 /* Constant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Constant.h; sourceTree = ""; };
+ CA1537A124065ADA000A14C7 /* MGCCalendarHeaderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MGCCalendarHeaderCell.xib; sourceTree = ""; };
+ CA1537A224065ADA000A14C7 /* MGCMonthPlannerViewDayCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewDayCell.h; sourceTree = ""; };
+ CA1537A324065ADA000A14C7 /* MGCTimeRowsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCTimeRowsView.m; sourceTree = ""; };
+ CA1537A424065ADA000A14C7 /* MGCYearCalendarMonthCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarMonthCell.m; sourceTree = ""; };
+ CA1537A724065ADA000A14C7 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Localizable.strings; sourceTree = ""; };
+ CA1537A824065ADA000A14C7 /* MGCDayPlannerView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerView.h; sourceTree = ""; };
+ CA1537A924065ADB000A14C7 /* NSAttributedString+MGCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSAttributedString+MGCAdditions.m"; sourceTree = ""; };
+ CA1537AC24065ADB000A14C7 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Localizable.strings; sourceTree = ""; };
+ CA1537AD24065ADB000A14C7 /* MGCAlignedGeometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCAlignedGeometry.m; sourceTree = ""; };
+ CA1537AE24065ADB000A14C7 /* MGCInteractiveEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCInteractiveEventView.m; sourceTree = ""; };
+ CA1537AF24065ADB000A14C7 /* MGCDayColumnCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDayColumnCell.h; sourceTree = ""; };
+ CA1537B024065ADC000A14C7 /* MGCMonthPlannerViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewLayout.m; sourceTree = ""; };
+ CA1537B124065ADC000A14C7 /* MGCMonthPlannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerView.m; sourceTree = ""; };
+ CA1537B224065ADC000A14C7 /* MGCInteractiveEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCInteractiveEventView.h; sourceTree = ""; };
+ CA1537B324065ADC000A14C7 /* MGCDateRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCDateRange.h; sourceTree = ""; };
+ CA1537B424065ADC000A14C7 /* NSCalendar+MGCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSCalendar+MGCAdditions.h"; sourceTree = ""; };
+ CA1537B624065ADD000A14C7 /* MGCMonthPlannerBackgroundView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerBackgroundView.m; sourceTree = ""; };
+ CA1537B724065ADD000A14C7 /* MGCTimedEventsViewLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCTimedEventsViewLayout.h; sourceTree = ""; };
+ CA1537B924065ADE000A14C7 /* MGCEventCellLayoutAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventCellLayoutAttributes.h; sourceTree = ""; };
+ CA1537BA24065ADE000A14C7 /* MGCEventCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventCell.h; sourceTree = ""; };
+ CA1537BB24065ADE000A14C7 /* MGCStandardEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCStandardEventView.h; sourceTree = ""; };
+ CA1537BC24065ADE000A14C7 /* MGCEventKitSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventKitSupport.h; sourceTree = ""; };
+ CA1537BD24065ADE000A14C7 /* NSAttributedString+MGCAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSAttributedString+MGCAdditions.h"; sourceTree = ""; };
+ CA1537BE24065ADE000A14C7 /* MGCDayColumnCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayColumnCell.m; sourceTree = ""; };
+ CA1537BF24065ADF000A14C7 /* MGCEventCellLayoutAttributes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventCellLayoutAttributes.m; sourceTree = ""; };
+ CA1537C024065ADF000A14C7 /* NSCalendar+MGCAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSCalendar+MGCAdditions.m"; sourceTree = ""; };
+ CA1537C124065ADF000A14C7 /* MGCEventCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventCell.m; sourceTree = ""; };
+ CA1537C224065ADF000A14C7 /* MGCReusableObjectQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCReusableObjectQueue.h; sourceTree = ""; };
+ CA1537C324065ADF000A14C7 /* MGCReusableObjectQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCReusableObjectQueue.m; sourceTree = ""; };
+ CA1537C524065ADF000A14C7 /* MGCYearCalendarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCYearCalendarView.h; sourceTree = ""; };
+ CA1537C624065AE0000A14C7 /* MGCTimeRowsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCTimeRowsView.h; sourceTree = ""; };
+ CA1537C724065AE0000A14C7 /* OSCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSCache.h; sourceTree = ""; };
+ CA1537C824065AE0000A14C7 /* MGCCalendarHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCCalendarHeaderView.h; sourceTree = ""; };
+ CA1537C924065AE0000A14C7 /* MGCYearCalendarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCYearCalendarView.m; sourceTree = ""; };
+ CA1537CA24065AE0000A14C7 /* OrderedDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OrderedDictionary.m; sourceTree = ""; };
+ CA1537CB24065AE0000A14C7 /* MGCEventView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventView.m; sourceTree = ""; };
+ CA1537CC24065AE0000A14C7 /* MGCMonthMiniCalendarView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthMiniCalendarView.m; sourceTree = ""; };
+ CA1537CD24065AE1000A14C7 /* MGCTimedEventsViewLayout.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCTimedEventsViewLayout.m; sourceTree = ""; };
+ CA1537CE24065AE1000A14C7 /* MGCMonthPlannerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerViewController.m; sourceTree = ""; };
+ CA1537CF24065AE1000A14C7 /* MGCEventKitSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCEventKitSupport.m; sourceTree = ""; };
+ CA1537D024065AE1000A14C7 /* MGCCalendarHeaderCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCCalendarHeaderCell.m; sourceTree = ""; };
+ CA1537D124065AE1000A14C7 /* OrderedDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OrderedDictionary.h; sourceTree = ""; };
+ CA1537D224065AE1000A14C7 /* MGCCalendarHeaderCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCCalendarHeaderCell.h; sourceTree = ""; };
+ CA1537D324065AE2000A14C7 /* MGCEventView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventView.h; sourceTree = ""; };
+ CA1537D424065AE2000A14C7 /* MGCEventsRowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCEventsRowView.h; sourceTree = ""; };
+ CA1537D624065AE2000A14C7 /* MGCMonthMiniCalendarView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGCMonthMiniCalendarView.h; sourceTree = ""; };
+ CA1537D724065AE2000A14C7 /* MGCDateRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDateRange.m; sourceTree = ""; };
+ CA1537D824065AE2000A14C7 /* MGCDayPlannerView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerView.m; sourceTree = ""; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -173,12 +243,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
- 72B5D922180D73F3004ADB86 /* EventKit.framework in Frameworks */,
- 72B5D923180D73F3004ADB86 /* EventKitUI.framework in Frameworks */,
- 72B5D8F4180D73E0004ADB86 /* CoreGraphics.framework in Frameworks */,
+ 270216F224FAC05400022A24 /* CoreGraphics.framework in Frameworks */,
72B5D8F6180D73E0004ADB86 /* UIKit.framework in Frameworks */,
72B5D8F2180D73E0004ADB86 /* Foundation.framework in Frameworks */,
- 96A3FD1C9E6707E46CB36A87 /* Pods_CalendarDemo.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -192,131 +259,31 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ CA15378024065AA6000A14C7 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CA15382724065C91000A14C7 /* Foundation.framework in Frameworks */,
+ CA15382624065C88000A14C7 /* UIKit.framework in Frameworks */,
+ CA15382524065C80000A14C7 /* CoreGraphics.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
- 072E5EFD1C338534007711A0 /* Header&Constants */ = {
- isa = PBXGroup;
- children = (
- 072E5EFE1C338559007711A0 /* Constant.h */,
- );
- name = "Header&Constants";
- sourceTree = "";
- };
- 723345D81A3BA75300BAE7A9 /* Events view */ = {
- isa = PBXGroup;
- children = (
- 727A94B618F3D28F00260D6E /* MGCEventView.h */,
- 727A94B718F3D28F00260D6E /* MGCEventView.m */,
- 727A94BB18F3D2E000260D6E /* MGCStandardEventView.h */,
- 727A94BC18F3D2E000260D6E /* MGCStandardEventView.m */,
- );
- name = "Events view";
- sourceTree = "";
- };
- 723925AB188B040200DE9578 /* EventKit */ = {
- isa = PBXGroup;
- children = (
- 720DAE541C66531300DF8AAA /* MGCEventKitSupport.m */,
- 720DAE561C66534A00DF8AAA /* MGCEventKitSupport.h */,
- 72E82BBB1A80E197008B3E2F /* MGCDayPlannerEKViewController.h */,
- 72E82BBC1A80E197008B3E2F /* MGCDayPlannerEKViewController.m */,
- 72E82BC91A83A3FF008B3E2F /* MGCMonthPlannerEKViewController.h */,
- 72E82BCA1A83A3FF008B3E2F /* MGCMonthPlannerEKViewController.m */,
- );
- name = EventKit;
- sourceTree = "";
- };
- 723A2BA9181432F700834697 /* Collection view layouts */ = {
- isa = PBXGroup;
- children = (
- 728438151A3A308900477A5C /* MGCAllDayEventsViewLayout.h */,
- 728438161A3A308900477A5C /* MGCAllDayEventsViewLayout.m */,
- 72B5D951180D9A93004ADB86 /* MGCTimedEventsViewLayout.h */,
- 72B5D952180D9A93004ADB86 /* MGCTimedEventsViewLayout.m */,
- 7233530F18397DD90079B240 /* MGCEventCellLayoutAttributes.h */,
- 7233531018397DD90079B240 /* MGCEventCellLayoutAttributes.m */,
- );
- name = "Collection view layouts";
- sourceTree = "";
- };
- 723A2BAA1814331000834697 /* Collection view cells & subviews */ = {
- isa = PBXGroup;
- children = (
- BC32A4641D3100D600AB19D7 /* MGCCalendarHeaderCell.h */,
- BC32A4651D3100D600AB19D7 /* MGCCalendarHeaderCell.m */,
- BC32A4671D3101BB00AB19D7 /* MGCCalendarHeaderCell.xib */,
- 724E03C4183F8F6A00490FC5 /* MGCDayColumnCell.h */,
- 724E03C5183F8F6A00490FC5 /* MGCDayColumnCell.m */,
- 72B5D92C180D7840004ADB86 /* MGCEventCell.h */,
- 72B5D92D180D7840004ADB86 /* MGCEventCell.m */,
- 7290307C1A5031EF008C58D3 /* MGCTimeRowsView.h */,
- 7290307D1A5031EF008C58D3 /* MGCTimeRowsView.m */,
- 72AE50281A641419004DAF44 /* MGCInteractiveEventView.h */,
- 72AE50291A641419004DAF44 /* MGCInteractiveEventView.m */,
- );
- name = "Collection view cells & subviews";
- sourceTree = "";
- };
- 7248240A18D351F90067D0D7 /* Year calendar */ = {
- isa = PBXGroup;
- children = (
- 72E8D24D18F98F1C00024582 /* MGCMonthMiniCalendarView.h */,
- 72E8D24E18F98F1C00024582 /* MGCMonthMiniCalendarView.m */,
- 7248240C18D352AE0067D0D7 /* MGCYearCalendarMonthCell.h */,
- 7248240D18D352AE0067D0D7 /* MGCYearCalendarMonthCell.m */,
- 7248241118D355D10067D0D7 /* MGCYearCalendarView.h */,
- 7248241218D355D10067D0D7 /* MGCYearCalendarView.m */,
- 7248241618D36DFE0067D0D7 /* MGCYearCalendarMonthHeaderView.h */,
- 7248241718D36DFE0067D0D7 /* MGCYearCalendarMonthHeaderView.m */,
- );
- name = "Year calendar";
- sourceTree = "";
- };
- 72707CDF1885925100830A8E /* cells */ = {
- isa = PBXGroup;
- children = (
- 72707CE0188592AC00830A8E /* MGCMonthPlannerViewDayCell.h */,
- 72707CE1188592AC00830A8E /* MGCMonthPlannerViewDayCell.m */,
- 72E13E8D18EDA1A200F1D740 /* MGCMonthPlannerBackgroundView.h */,
- 72E13E8E18EDA1A200F1D740 /* MGCMonthPlannerBackgroundView.m */,
- 72E13E9318EE0D7A00F1D740 /* MGCMonthPlannerWeekView.h */,
- 72E13E9418EE0D7A00F1D740 /* MGCMonthPlannerWeekView.m */,
- 72E9B90E1C8E34020070EDD3 /* MGCMonthPlannerHeaderView.h */,
- 72E9B90F1C8E34020070EDD3 /* MGCMonthPlannerHeaderView.m */,
- );
- name = cells;
- sourceTree = "";
- };
- 72936D7F185671DB00635BD9 /* Month planner */ = {
- isa = PBXGroup;
- children = (
- 72707CDB18858F9600830A8E /* MGCMonthPlannerView.h */,
- 72707CDC18858F9600830A8E /* MGCMonthPlannerView.m */,
- 72EF08031A3DA597005699CA /* MGCMonthPlannerViewController.h */,
- 72EF08041A3DA597005699CA /* MGCMonthPlannerViewController.m */,
- 72707CDF1885925100830A8E /* cells */,
- 722A55F71892B58B0097B8FB /* MGCMonthPlannerViewLayout.h */,
- 722A55F81892B58B0097B8FB /* MGCMonthPlannerViewLayout.m */,
- 727A94B018F3B9C300260D6E /* MGCEventsRowView.h */,
- 727A94B118F3B9C300260D6E /* MGCEventsRowView.m */,
- );
- name = "Month planner";
- sourceTree = "";
- };
72B5D8E5180D73E0004ADB86 = {
isa = PBXGroup;
children = (
- 722ABE391CB19C6600713ED3 /* CalendarLib.podspec */,
+ 27CD957524FB5D7A000C5A97 /* CalendarDemo.entitlements */,
723925AF188B0AE800DE9578 /* README.md */,
722ABE331CB19BAC00713ED3 /* LICENSE */,
721A12A11CB585CF00749F18 /* CHANGELOG.md */,
- 72CD8BAA18228A7500F12339 /* Lib */,
72B5D8F7180D73E0004ADB86 /* Demo */,
72B5D910180D73E0004ADB86 /* Tests */,
+ CA15378424065AA6000A14C7 /* UniversalCalendar */,
72B5D8F0180D73E0004ADB86 /* Frameworks */,
72B5D8EF180D73E0004ADB86 /* Products */,
- F2CB583699A83B6039A63559 /* Pods */,
);
sourceTree = "";
};
@@ -325,6 +292,7 @@
children = (
72B5D8EE180D73E0004ADB86 /* CalendarDemo.app */,
72B5D909180D73E0004ADB86 /* CalendarTests.xctest */,
+ CA15378324065AA6000A14C7 /* UniversalCalendar.framework */,
);
name = Products;
sourceTree = "";
@@ -332,14 +300,10 @@
72B5D8F0180D73E0004ADB86 /* Frameworks */ = {
isa = PBXGroup;
children = (
- 72B5D920180D73F3004ADB86 /* EventKit.framework */,
- 72B5D921180D73F3004ADB86 /* EventKitUI.framework */,
72B5D8F1180D73E0004ADB86 /* Foundation.framework */,
72B5D8F3180D73E0004ADB86 /* CoreGraphics.framework */,
72B5D8F5180D73E0004ADB86 /* UIKit.framework */,
72B5D90A180D73E0004ADB86 /* XCTest.framework */,
- 28486480EAA57CF147A3825F /* Pods.framework */,
- F06A59852B476A0AA324A957 /* Pods_CalendarDemo.framework */,
);
name = Frameworks;
sourceTree = "";
@@ -354,14 +318,8 @@
72B5D927180D7476004ADB86 /* main-iPad.storyboard */,
72734BB61B32E93800B2BA49 /* main-iPhone.storyboard */,
72E9B9151C919EF20070EDD3 /* settings.storyboard */,
- 72EF080B1A3DB8C6005699CA /* MonthViewController.h */,
- 72EF080C1A3DB8C6005699CA /* MonthViewController.m */,
72EF080D1A3DB8C6005699CA /* YearViewController.h */,
72EF080E1A3DB8C6005699CA /* YearViewController.m */,
- BC32A45E1D30FED500AB19D7 /* DayViewController.h */,
- BC32A45F1D30FED600AB19D7 /* DayViewController.m */,
- 72EF07FD1A3D9DF8005699CA /* WeekViewController.h */,
- 72EF07FE1A3D9DF8005699CA /* WeekViewController.m */,
7258E8AF1A5A98DD007F88AF /* WeekSettingsViewController.h */,
7258E8B01A5A98DD007F88AF /* WeekSettingsViewController.m */,
72E9B9171C91E3520070EDD3 /* MonthSettingsViewController.h */,
@@ -369,6 +327,10 @@
72B5D903180D73E0004ADB86 /* Images.xcassets */,
72B5D8F8180D73E0004ADB86 /* Supporting Files */,
7275C49F1C46E87B0036C9A3 /* Launch Screen.storyboard */,
+ 19290C2D82B4D6236BB822BA /* WeekViewController.swift */,
+ 19290FFD11D912E695FEDDCA /* MonthViewController.swift */,
+ 192904E8074D812872DD4926 /* DayViewController.swift */,
+ 19290C8C215F90F0DF0256D5 /* CalendarDemo-Bridging-Header.h */,
);
name = Demo;
path = CalendarDemo;
@@ -405,72 +367,161 @@
name = "Supporting Files";
sourceTree = "";
};
- 72B5D954180DB304004ADB86 /* Day planner */ = {
+ CA15378424065AA6000A14C7 /* UniversalCalendar */ = {
isa = PBXGroup;
children = (
- 72DD627418155AAD00D270DB /* MGCDayPlannerView.h */,
- 72DD627518155AAD00D270DB /* MGCDayPlannerView.m */,
- BC32A4611D31003C00AB19D7 /* MGCCalendarHeaderView.h */,
- BC32A4621D31003C00AB19D7 /* MGCCalendarHeaderView.m */,
- 72EF07F21A3D8D13005699CA /* MGCDayPlannerViewController.h */,
- 72EF07F31A3D8D13005699CA /* MGCDayPlannerViewController.m */,
- 723A2BAA1814331000834697 /* Collection view cells & subviews */,
- 723A2BA9181432F700834697 /* Collection view layouts */,
- );
- name = "Day planner";
+ CA1537A024065ADA000A14C7 /* Constant.h */,
+ CA1537A524065ADA000A14C7 /* en.lproj */,
+ CA1537AA24065ADB000A14C7 /* fr.lproj */,
+ CA15378D24065AD9000A14C7 /* MGCAlignedGeometry.h */,
+ CA1537AD24065ADB000A14C7 /* MGCAlignedGeometry.m */,
+ CA15378E24065AD9000A14C7 /* MGCAllDayEventsViewLayout.h */,
+ CA15379524065AD9000A14C7 /* MGCAllDayEventsViewLayout.m */,
+ CA1537D224065AE1000A14C7 /* MGCCalendarHeaderCell.h */,
+ CA1537D024065AE1000A14C7 /* MGCCalendarHeaderCell.m */,
+ CA1537A124065ADA000A14C7 /* MGCCalendarHeaderCell.xib */,
+ CA1537C824065AE0000A14C7 /* MGCCalendarHeaderView.h */,
+ CA15379024065AD9000A14C7 /* MGCCalendarHeaderView.m */,
+ CA1537B324065ADC000A14C7 /* MGCDateRange.h */,
+ CA1537D724065AE2000A14C7 /* MGCDateRange.m */,
+ CA1537AF24065ADB000A14C7 /* MGCDayColumnCell.h */,
+ CA1537BE24065ADE000A14C7 /* MGCDayColumnCell.m */,
+ CA1537A824065ADA000A14C7 /* MGCDayPlannerView.h */,
+ CA1537D824065AE2000A14C7 /* MGCDayPlannerView.m */,
+ CA15378B24065AD8000A14C7 /* MGCDayPlannerViewController.h */,
+ CA15379F24065ADA000A14C7 /* MGCDayPlannerViewController.m */,
+ CA1537BA24065ADE000A14C7 /* MGCEventCell.h */,
+ CA1537C124065ADF000A14C7 /* MGCEventCell.m */,
+ CA1537B924065ADE000A14C7 /* MGCEventCellLayoutAttributes.h */,
+ CA1537BF24065ADF000A14C7 /* MGCEventCellLayoutAttributes.m */,
+ CA1537BC24065ADE000A14C7 /* MGCEventKitSupport.h */,
+ CA1537CF24065AE1000A14C7 /* MGCEventKitSupport.m */,
+ CA1537D424065AE2000A14C7 /* MGCEventsRowView.h */,
+ CA15379C24065ADA000A14C7 /* MGCEventsRowView.m */,
+ CA1537D324065AE2000A14C7 /* MGCEventView.h */,
+ CA1537CB24065AE0000A14C7 /* MGCEventView.m */,
+ CA1537B224065ADC000A14C7 /* MGCInteractiveEventView.h */,
+ CA1537AE24065ADB000A14C7 /* MGCInteractiveEventView.m */,
+ CA1537D624065AE2000A14C7 /* MGCMonthMiniCalendarView.h */,
+ CA1537CC24065AE0000A14C7 /* MGCMonthMiniCalendarView.m */,
+ CA15379E24065ADA000A14C7 /* MGCMonthPlannerBackgroundView.h */,
+ CA1537B624065ADD000A14C7 /* MGCMonthPlannerBackgroundView.m */,
+ CA15379724065AD9000A14C7 /* MGCMonthPlannerHeaderView.h */,
+ CA15379624065AD9000A14C7 /* MGCMonthPlannerHeaderView.m */,
+ CA15379824065AD9000A14C7 /* MGCMonthPlannerView.h */,
+ CA1537B124065ADC000A14C7 /* MGCMonthPlannerView.m */,
+ CA15379224065AD9000A14C7 /* MGCMonthPlannerViewController.h */,
+ CA1537CE24065AE1000A14C7 /* MGCMonthPlannerViewController.m */,
+ CA1537A224065ADA000A14C7 /* MGCMonthPlannerViewDayCell.h */,
+ CA15379D24065ADA000A14C7 /* MGCMonthPlannerViewDayCell.m */,
+ CA15378F24065AD9000A14C7 /* MGCMonthPlannerViewLayout.h */,
+ CA1537B024065ADC000A14C7 /* MGCMonthPlannerViewLayout.m */,
+ CA15379A24065AD9000A14C7 /* MGCMonthPlannerWeekView.h */,
+ CA15379124065AD9000A14C7 /* MGCMonthPlannerWeekView.m */,
+ CA1537C224065ADF000A14C7 /* MGCReusableObjectQueue.h */,
+ CA1537C324065ADF000A14C7 /* MGCReusableObjectQueue.m */,
+ CA1537BB24065ADE000A14C7 /* MGCStandardEventView.h */,
+ CA15379924065AD9000A14C7 /* MGCStandardEventView.m */,
+ CA1537B724065ADD000A14C7 /* MGCTimedEventsViewLayout.h */,
+ CA1537CD24065AE1000A14C7 /* MGCTimedEventsViewLayout.m */,
+ CA1537C624065AE0000A14C7 /* MGCTimeRowsView.h */,
+ CA1537A324065ADA000A14C7 /* MGCTimeRowsView.m */,
+ CA15379B24065AD9000A14C7 /* MGCYearCalendarMonthCell.h */,
+ CA1537A424065ADA000A14C7 /* MGCYearCalendarMonthCell.m */,
+ CA15378C24065AD8000A14C7 /* MGCYearCalendarMonthHeaderView.h */,
+ CA15379424065AD9000A14C7 /* MGCYearCalendarMonthHeaderView.m */,
+ CA1537C524065ADF000A14C7 /* MGCYearCalendarView.h */,
+ CA1537C924065AE0000A14C7 /* MGCYearCalendarView.m */,
+ CA1537BD24065ADE000A14C7 /* NSAttributedString+MGCAdditions.h */,
+ CA1537A924065ADB000A14C7 /* NSAttributedString+MGCAdditions.m */,
+ CA1537B424065ADC000A14C7 /* NSCalendar+MGCAdditions.h */,
+ CA1537C024065ADF000A14C7 /* NSCalendar+MGCAdditions.m */,
+ CA1537D124065AE1000A14C7 /* OrderedDictionary.h */,
+ CA1537CA24065AE0000A14C7 /* OrderedDictionary.m */,
+ CA1537C724065AE0000A14C7 /* OSCache.h */,
+ CA15379324065AD9000A14C7 /* OSCache.m */,
+ CA15378524065AA6000A14C7 /* UniversalCalendar.h */,
+ CA15378624065AA6000A14C7 /* Info.plist */,
+ );
+ path = UniversalCalendar;
sourceTree = "";
};
- 72CD8BAA18228A7500F12339 /* Lib */ = {
+ CA1537A524065ADA000A14C7 /* en.lproj */ = {
isa = PBXGroup;
children = (
- 072E5EFD1C338534007711A0 /* Header&Constants */,
- 721CA1B21A9382990083F41A /* Localizable.strings */,
- 72E8D25718FC474500024582 /* MGCReusableObjectQueue.h */,
- 72E8D25818FC474500024582 /* MGCReusableObjectQueue.m */,
- 72271A501815C33600DE96FE /* MGCDateRange.h */,
- 72271A511815C33600DE96FE /* MGCDateRange.m */,
- 723A2BAB181449F500834697 /* NSCalendar+MGCAdditions.h */,
- 723A2BAC181449F500834697 /* NSCalendar+MGCAdditions.m */,
- 720DAE511C6269D900DF8AAA /* NSAttributedString+MGCAdditions.h */,
- 720DAE521C6269D900DF8AAA /* NSAttributedString+MGCAdditions.m */,
- 72780F8F1CB6D0DF00CA5513 /* MGCAlignedGeometry.h */,
- 72780F901CB6D0DF00CA5513 /* MGCAlignedGeometry.m */,
- 723925AB188B040200DE9578 /* EventKit */,
- 723345D81A3BA75300BAE7A9 /* Events view */,
- 72B5D954180DB304004ADB86 /* Day planner */,
- 72936D7F185671DB00635BD9 /* Month planner */,
- 7248240A18D351F90067D0D7 /* Year calendar */,
- );
- name = Lib;
- path = CalendarLib;
+ CA1537A624065ADA000A14C7 /* Localizable.strings */,
+ );
+ path = en.lproj;
sourceTree = "";
};
- F2CB583699A83B6039A63559 /* Pods */ = {
+ CA1537AA24065ADB000A14C7 /* fr.lproj */ = {
isa = PBXGroup;
children = (
- 1F0C1F1B722A7E607C88C0FE /* Pods-CalendarDemo.debug.xcconfig */,
- EA537021B8BB04EA0A609FA9 /* Pods-CalendarDemo.release.xcconfig */,
+ CA1537AB24065ADB000A14C7 /* Localizable.strings */,
);
- name = Pods;
+ path = fr.lproj;
sourceTree = "";
};
/* End PBXGroup section */
+/* Begin PBXHeadersBuildPhase section */
+ CA15377E24065AA6000A14C7 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CA1537EE24065AE2000A14C7 /* Constant.h in Headers */,
+ CA15381B24065AE2000A14C7 /* OrderedDictionary.h in Headers */,
+ CA15381124065AE2000A14C7 /* OSCache.h in Headers */,
+ CA1537FE24065AE2000A14C7 /* NSCalendar+MGCAdditions.h in Headers */,
+ CA15380724065AE2000A14C7 /* NSAttributedString+MGCAdditions.h in Headers */,
+ CA15380F24065AE2000A14C7 /* MGCYearCalendarView.h in Headers */,
+ CA15380524065AE2000A14C7 /* MGCStandardEventView.h in Headers */,
+ CA15380C24065AE2000A14C7 /* MGCReusableObjectQueue.h in Headers */,
+ CA1537E624065AE2000A14C7 /* MGCMonthPlannerView.h in Headers */,
+ CA1537E024065AE2000A14C7 /* MGCMonthPlannerViewController.h in Headers */,
+ CA15382024065AE2000A14C7 /* MGCMonthMiniCalendarView.h in Headers */,
+ CA1537FD24065AE2000A14C7 /* MGCDateRange.h in Headers */,
+ CA1537F424065AE2000A14C7 /* MGCDayPlannerView.h in Headers */,
+ CA1537D924065AE2000A14C7 /* MGCDayPlannerViewController.h in Headers */,
+ CA15381224065AE2000A14C7 /* MGCCalendarHeaderView.h in Headers */,
+ CA15381D24065AE2000A14C7 /* MGCEventView.h in Headers */,
+ CA15381E24065AE2000A14C7 /* MGCEventsRowView.h in Headers */,
+ CA1537E924065AE2000A14C7 /* MGCYearCalendarMonthCell.h in Headers */,
+ CA1537DA24065AE2000A14C7 /* MGCYearCalendarMonthHeaderView.h in Headers */,
+ CA1537F024065AE2000A14C7 /* MGCMonthPlannerViewDayCell.h in Headers */,
+ CA15380624065AE2000A14C7 /* MGCEventKitSupport.h in Headers */,
+ CA15380424065AE2000A14C7 /* MGCEventCell.h in Headers */,
+ CA1537FC24065AE2000A14C7 /* MGCInteractiveEventView.h in Headers */,
+ CA15380124065AE2000A14C7 /* MGCTimedEventsViewLayout.h in Headers */,
+ CA1537DC24065AE2000A14C7 /* MGCAllDayEventsViewLayout.h in Headers */,
+ CA1537E524065AE2000A14C7 /* MGCMonthPlannerHeaderView.h in Headers */,
+ CA15380324065AE2000A14C7 /* MGCEventCellLayoutAttributes.h in Headers */,
+ CA1537EC24065AE2000A14C7 /* MGCMonthPlannerBackgroundView.h in Headers */,
+ CA15381C24065AE2000A14C7 /* MGCCalendarHeaderCell.h in Headers */,
+ CA1537DB24065AE2000A14C7 /* MGCAlignedGeometry.h in Headers */,
+ CA15378724065AA6000A14C7 /* UniversalCalendar.h in Headers */,
+ CA1537F924065AE2000A14C7 /* MGCDayColumnCell.h in Headers */,
+ CA15381024065AE2000A14C7 /* MGCTimeRowsView.h in Headers */,
+ CA1537DD24065AE2000A14C7 /* MGCMonthPlannerViewLayout.h in Headers */,
+ CA1537E824065AE2000A14C7 /* MGCMonthPlannerWeekView.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
/* Begin PBXNativeTarget section */
72B5D8ED180D73E0004ADB86 /* CalendarDemo */ = {
isa = PBXNativeTarget;
buildConfigurationList = 72B5D91A180D73E0004ADB86 /* Build configuration list for PBXNativeTarget "CalendarDemo" */;
buildPhases = (
- D502B293157A24324B0C1F8D /* [CP] Check Pods Manifest.lock */,
72B5D8EA180D73E0004ADB86 /* Sources */,
72B5D8EB180D73E0004ADB86 /* Frameworks */,
72B5D8EC180D73E0004ADB86 /* Resources */,
- 834773CCABB3FAEA9BD07C84 /* [CP] Embed Pods Frameworks */,
- BB74956EF84371AD80E5FE3C /* [CP] Copy Pods Resources */,
);
buildRules = (
);
dependencies = (
+ 270216F424FAC06B00022A24 /* PBXTargetDependency */,
);
name = CalendarDemo;
productName = Calendar;
@@ -495,17 +546,41 @@
productReference = 72B5D909180D73E0004ADB86 /* CalendarTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
+ CA15378224065AA6000A14C7 /* UniversalCalendar */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = CA15378A24065AA6000A14C7 /* Build configuration list for PBXNativeTarget "UniversalCalendar" */;
+ buildPhases = (
+ CA15377E24065AA6000A14C7 /* Headers */,
+ CA15377F24065AA6000A14C7 /* Sources */,
+ CA15378024065AA6000A14C7 /* Frameworks */,
+ CA15378124065AA6000A14C7 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = UniversalCalendar;
+ productName = UniversalCalendar;
+ productReference = CA15378324065AA6000A14C7 /* UniversalCalendar.framework */;
+ productType = "com.apple.product-type.framework";
+ };
/* End PBXNativeTarget section */
/* Begin PBXProject section */
72B5D8E6180D73E0004ADB86 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0810;
+ LastUpgradeCheck = 1160;
ORGANIZATIONNAME = "Julien Martin";
TargetAttributes = {
72B5D8ED180D73E0004ADB86 = {
- DevelopmentTeam = 9L2H2A796T;
+ DevelopmentTeam = 48YJ4C47HX;
+ LastSwiftMigration = 1160;
+ };
+ CA15378224065AA6000A14C7 = {
+ CreatedOnToolsVersion = 10.3;
+ DevelopmentTeam = 48YJ4C47HX;
+ ProvisioningStyle = Manual;
};
};
};
@@ -514,6 +589,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
+ English,
en,
fr,
Base,
@@ -525,6 +601,7 @@
targets = (
72B5D8ED180D73E0004ADB86 /* CalendarDemo */,
72B5D908180D73E0004ADB86 /* CalendarTests */,
+ CA15378224065AA6000A14C7 /* UniversalCalendar */,
);
};
/* End PBXProject section */
@@ -536,10 +613,8 @@
files = (
720041BA1879B2B600F3C497 /* Settings.bundle in Resources */,
72E9B9161C919EF20070EDD3 /* settings.storyboard in Resources */,
- BC32A4681D3101BB00AB19D7 /* MGCCalendarHeaderCell.xib in Resources */,
7275C4A01C46E87B0036C9A3 /* Launch Screen.storyboard in Resources */,
72B5D8FC180D73E0004ADB86 /* InfoPlist.strings in Resources */,
- 721CA1B41A9382990083F41A /* Localizable.strings in Resources */,
72B5D904180D73E0004ADB86 /* Images.xcassets in Resources */,
72B5D928180D7476004ADB86 /* main-iPad.storyboard in Resources */,
72734BB71B32E93800B2BA49 /* main-iPhone.storyboard in Resources */,
@@ -554,55 +629,16 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXShellScriptBuildPhase section */
- 834773CCABB3FAEA9BD07C84 /* [CP] Embed Pods Frameworks */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "[CP] Embed Pods Frameworks";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CalendarDemo/Pods-CalendarDemo-frameworks.sh\"\n";
- showEnvVarsInLog = 0;
- };
- BB74956EF84371AD80E5FE3C /* [CP] Copy Pods Resources */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- inputPaths = (
- );
- name = "[CP] Copy Pods Resources";
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-CalendarDemo/Pods-CalendarDemo-resources.sh\"\n";
- showEnvVarsInLog = 0;
- };
- D502B293157A24324B0C1F8D /* [CP] Check Pods Manifest.lock */ = {
- isa = PBXShellScriptBuildPhase;
+ CA15378124065AA6000A14C7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- );
- inputPaths = (
- );
- name = "[CP] Check Pods Manifest.lock";
- outputPaths = (
+ CA1537F624065AE2000A14C7 /* Localizable.strings in Resources */,
+ CA1537F324065AE2000A14C7 /* Localizable.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
- shellPath = /bin/sh;
- shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n";
- showEnvVarsInLog = 0;
};
-/* End PBXShellScriptBuildPhase section */
+/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
72B5D8EA180D73E0004ADB86 /* Sources */ = {
@@ -610,14 +646,14 @@
buildActionMask = 2147483647;
files = (
72E9B9191C91E3520070EDD3 /* MonthSettingsViewController.m in Sources */,
- 72EF07FF1A3D9DF8005699CA /* WeekViewController.m in Sources */,
- 72EF08151A3DB8C6005699CA /* MonthViewController.m in Sources */,
72EF08181A3DB8C6005699CA /* YearViewController.m in Sources */,
72B5D902180D73E0004ADB86 /* AppDelegate.m in Sources */,
721DC18918219C4D00F9470C /* MainViewController.m in Sources */,
72B5D8FE180D73E0004ADB86 /* main.m in Sources */,
7258E8B11A5A98DD007F88AF /* WeekSettingsViewController.m in Sources */,
- BC32A4601D30FED600AB19D7 /* DayViewController.m in Sources */,
+ 19290194C082371F9D97B3DF /* WeekViewController.swift in Sources */,
+ 1929092530FF5A55803D2505 /* MonthViewController.swift in Sources */,
+ 19290AB66D0A8FF66FBB260B /* DayViewController.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -629,9 +665,54 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ CA15377F24065AA6000A14C7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ CA1537F524065AE2000A14C7 /* NSAttributedString+MGCAdditions.m in Sources */,
+ CA15380D24065AE2000A14C7 /* MGCReusableObjectQueue.m in Sources */,
+ CA15381724065AE2000A14C7 /* MGCTimedEventsViewLayout.m in Sources */,
+ CA1537E724065AE2000A14C7 /* MGCStandardEventView.m in Sources */,
+ CA1537F224065AE2000A14C7 /* MGCYearCalendarMonthCell.m in Sources */,
+ CA1537E124065AE2000A14C7 /* OSCache.m in Sources */,
+ CA15381824065AE2000A14C7 /* MGCMonthPlannerViewController.m in Sources */,
+ CA15381524065AE2000A14C7 /* MGCEventView.m in Sources */,
+ CA15380B24065AE2000A14C7 /* MGCEventCell.m in Sources */,
+ CA1537EB24065AE2000A14C7 /* MGCMonthPlannerViewDayCell.m in Sources */,
+ CA15382224065AE2000A14C7 /* MGCDayPlannerView.m in Sources */,
+ CA15381924065AE2000A14C7 /* MGCEventKitSupport.m in Sources */,
+ CA15381624065AE2000A14C7 /* MGCMonthMiniCalendarView.m in Sources */,
+ CA15381A24065AE2000A14C7 /* MGCCalendarHeaderCell.m in Sources */,
+ CA1537E424065AE2000A14C7 /* MGCMonthPlannerHeaderView.m in Sources */,
+ CA1537E324065AE2000A14C7 /* MGCAllDayEventsViewLayout.m in Sources */,
+ CA15380924065AE2000A14C7 /* MGCEventCellLayoutAttributes.m in Sources */,
+ CA15381324065AE2000A14C7 /* MGCYearCalendarView.m in Sources */,
+ CA1537EA24065AE2000A14C7 /* MGCEventsRowView.m in Sources */,
+ CA1537FB24065AE2000A14C7 /* MGCMonthPlannerView.m in Sources */,
+ CA15380A24065AE2000A14C7 /* NSCalendar+MGCAdditions.m in Sources */,
+ CA1537ED24065AE2000A14C7 /* MGCDayPlannerViewController.m in Sources */,
+ CA1537DF24065AE2000A14C7 /* MGCMonthPlannerWeekView.m in Sources */,
+ CA15380824065AE2000A14C7 /* MGCDayColumnCell.m in Sources */,
+ CA15380024065AE2000A14C7 /* MGCMonthPlannerBackgroundView.m in Sources */,
+ CA1537E224065AE2000A14C7 /* MGCYearCalendarMonthHeaderView.m in Sources */,
+ CA1537F824065AE2000A14C7 /* MGCInteractiveEventView.m in Sources */,
+ CA1537FA24065AE2000A14C7 /* MGCMonthPlannerViewLayout.m in Sources */,
+ CA1537F124065AE2000A14C7 /* MGCTimeRowsView.m in Sources */,
+ CA15381424065AE2000A14C7 /* OrderedDictionary.m in Sources */,
+ CA15382124065AE2000A14C7 /* MGCDateRange.m in Sources */,
+ CA1537F724065AE2000A14C7 /* MGCAlignedGeometry.m in Sources */,
+ CA1537DE24065AE2000A14C7 /* MGCCalendarHeaderView.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
+ 270216F424FAC06B00022A24 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = CA15378224065AA6000A14C7 /* UniversalCalendar */;
+ targetProxy = 270216F324FAC06B00022A24 /* PBXContainerItemProxy */;
+ };
72B5D90F180D73E0004ADB86 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 72B5D8ED180D73E0004ADB86 /* CalendarDemo */;
@@ -640,15 +721,6 @@
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
- 721CA1B21A9382990083F41A /* Localizable.strings */ = {
- isa = PBXVariantGroup;
- children = (
- 721CA1B31A9382990083F41A /* en */,
- 721CA1B51A9382A80083F41A /* fr */,
- );
- name = Localizable.strings;
- sourceTree = "";
- };
72B5D8FA180D73E0004ADB86 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
@@ -667,6 +739,22 @@
name = InfoPlist.strings;
sourceTree = "";
};
+ CA1537A624065ADA000A14C7 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ CA1537A724065ADA000A14C7 /* en */,
+ );
+ name = Localizable.strings;
+ sourceTree = "";
+ };
+ CA1537AB24065ADB000A14C7 /* Localizable.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ CA1537AC24065ADB000A14C7 /* fr */,
+ );
+ name = Localizable.strings;
+ sourceTree = "";
+ };
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -677,14 +765,22 @@
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -705,7 +801,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
TARGETED_DEVICE_FAMILY = "1,2";
@@ -719,14 +815,22 @@
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
@@ -742,8 +846,9 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+ IPHONEOS_DEPLOYMENT_TARGET = 11.1;
SDKROOT = iphoneos;
+ SWIFT_COMPILATION_MODE = wholemodule;
TARGETED_DEVICE_FAMILY = "1,2";
VALIDATE_PRODUCT = YES;
};
@@ -751,20 +856,30 @@
};
72B5D91B180D73E0004ADB86 /* Debug */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = 1F0C1F1B722A7E607C88C0FE /* Pods-CalendarDemo.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = CalendarDemo/CalendarDemo.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- DEVELOPMENT_TEAM = 9L2H2A796T;
+ DEVELOPMENT_TEAM = 48YJ4C47HX;
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CalendarDemo/Calendar-Prefix.pch";
+ HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = "$(SRCROOT)/CalendarDemo/Calendar-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.jmartin.${PRODUCT_NAME:rfc1034identifier}";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ OTHER_LDFLAGS = "$(inherited)";
+ PRODUCT_BUNDLE_IDENTIFIER = com.haithngn.CalendarDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
+ SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx";
+ SUPPORTS_MACCATALYST = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "CalendarDemo/CalendarDemo-Bridging-Header.h";
+ SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = app;
};
@@ -772,20 +887,32 @@
};
72B5D91C180D73E0004ADB86 /* Release */ = {
isa = XCBuildConfiguration;
- baseConfigurationReference = EA537021B8BB04EA0A609FA9 /* Pods-CalendarDemo.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
+ CLANG_ENABLE_MODULES = YES;
+ CODE_SIGN_ENTITLEMENTS = CalendarDemo/CalendarDemo.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- DEVELOPMENT_TEAM = 9L2H2A796T;
+ CODE_SIGN_STYLE = Manual;
+ DEVELOPMENT_TEAM = "";
+ FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "CalendarDemo/Calendar-Prefix.pch";
+ HEADER_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = "$(SRCROOT)/CalendarDemo/Calendar-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
- PRODUCT_BUNDLE_IDENTIFIER = "com.jmartin.${PRODUCT_NAME:rfc1034identifier}";
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+ OTHER_LDFLAGS = "$(inherited)";
+ PRODUCT_BUNDLE_IDENTIFIER = com.haithngn.CalendarDemo;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
+ SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx";
+ SUPPORTS_MACCATALYST = YES;
+ SWIFT_OBJC_BRIDGING_HEADER = "CalendarDemo/CalendarDemo-Bridging-Header.h";
+ SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
WRAPPER_EXTENSION = app;
};
@@ -794,6 +921,7 @@
72B5D91E180D73E0004ADB86 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
@@ -815,6 +943,7 @@
72B5D91F180D73E0004ADB86 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
+ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
@@ -829,6 +958,104 @@
};
name = Release;
};
+ CA15378824065AA6000A14C7 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = dwarf;
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = 48YJ4C47HX;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ INFOPLIST_FILE = UniversalCalendar/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.1;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.haithngn.universalcalendar;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
+ SKIP_INSTALL = YES;
+ SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Debug;
+ };
+ CA15378924065AA6000A14C7 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_NONNULL = YES;
+ CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
+ CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+ CLANG_CXX_LIBRARY = "libc++";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
+ CODE_SIGN_IDENTITY = "Apple Development";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
+ CODE_SIGN_STYLE = Manual;
+ COPY_PHASE_STRIP = NO;
+ CURRENT_PROJECT_VERSION = 1;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ DEFINES_MODULE = YES;
+ DEVELOPMENT_TEAM = 48YJ4C47HX;
+ DYLIB_COMPATIBILITY_VERSION = 1;
+ DYLIB_CURRENT_VERSION = 1;
+ DYLIB_INSTALL_NAME_BASE = "@rpath";
+ GCC_C_LANGUAGE_STANDARD = gnu11;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+ INFOPLIST_FILE = UniversalCalendar/Info.plist;
+ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
+ IPHONEOS_DEPLOYMENT_TARGET = 11.1;
+ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
+ MTL_ENABLE_DEBUG_INFO = NO;
+ MTL_FAST_MATH = YES;
+ PRODUCT_BUNDLE_IDENTIFIER = com.haithngn.universalcalendar;
+ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
+ PROVISIONING_PROFILE_SPECIFIER = "";
+ "PROVISIONING_PROFILE_SPECIFIER[sdk=macosx*]" = "";
+ SKIP_INSTALL = YES;
+ SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx";
+ TARGETED_DEVICE_FAMILY = "1,2";
+ VERSIONING_SYSTEM = "apple-generic";
+ VERSION_INFO_PREFIX = "";
+ };
+ name = Release;
+ };
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -859,6 +1086,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
+ CA15378A24065AA6000A14C7 /* Build configuration list for PBXNativeTarget "UniversalCalendar" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ CA15378824065AA6000A14C7 /* Debug */,
+ CA15378924065AA6000A14C7 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
/* End XCConfigurationList section */
};
rootObject = 72B5D8E6180D73E0004ADB86 /* Project object */;
diff --git a/Calendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Calendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/Calendar.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/Calendar.xcodeproj/xcshareddata/xcschemes/UniversalCalendar.xcscheme b/Calendar.xcodeproj/xcshareddata/xcschemes/UniversalCalendar.xcscheme
new file mode 100644
index 00000000..60229bd1
--- /dev/null
+++ b/Calendar.xcodeproj/xcshareddata/xcschemes/UniversalCalendar.xcscheme
@@ -0,0 +1,76 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/CalendarDemo.xcscheme b/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/CalendarDemo.xcscheme
new file mode 100644
index 00000000..eaa658cd
--- /dev/null
+++ b/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/CalendarDemo.xcscheme
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/xcschememanagement.plist b/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100644
index 00000000..6e55dc3f
--- /dev/null
+++ b/Calendar.xcodeproj/xcuserdata/tritran.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,39 @@
+
+
+
+
+ SchemeUserState
+
+ CalendarDemo.xcscheme
+
+ isShown
+
+ orderHint
+ 5
+
+ UniversalCalendar.xcscheme_^#shared#^_
+
+ orderHint
+ 6
+
+
+ SuppressBuildableAutocreation
+
+ 72B5D8ED180D73E0004ADB86
+
+ primary
+
+
+ 72B5D908180D73E0004ADB86
+
+ primary
+
+
+ CA15378224065AA6000A14C7
+
+ primary
+
+
+
+
+
diff --git a/Calendar.xcworkspace/contents.xcworkspacedata b/Calendar.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 2f7852b6..00000000
--- a/Calendar.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
diff --git a/Calendar.xcworkspace/xcshareddata/Calendar.xccheckout b/Calendar.xcworkspace/xcshareddata/Calendar.xccheckout
deleted file mode 100644
index 4ae52494..00000000
--- a/Calendar.xcworkspace/xcshareddata/Calendar.xccheckout
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
- IDESourceControlProjectFavoriteDictionaryKey
-
- IDESourceControlProjectIdentifier
- FB1B9293-44FA-4831-90B6-74F8DA2E076E
- IDESourceControlProjectName
- Calendar
- IDESourceControlProjectOriginsDictionary
-
- C52FA12F0F638351E8AE774D6995B04A15747832
- https://github.com/jumartin/Calendar.git
-
- IDESourceControlProjectPath
- Calendar.xcworkspace
- IDESourceControlProjectRelativeInstallPathDictionary
-
- C52FA12F0F638351E8AE774D6995B04A15747832
- ..
-
- IDESourceControlProjectURL
- https://github.com/jumartin/Calendar.git
- IDESourceControlProjectVersion
- 111
- IDESourceControlProjectWCCIdentifier
- C52FA12F0F638351E8AE774D6995B04A15747832
- IDESourceControlProjectWCConfigurations
-
-
- IDESourceControlRepositoryExtensionIdentifierKey
- public.vcs.git
- IDESourceControlWCCIdentifierKey
- C52FA12F0F638351E8AE774D6995B04A15747832
- IDESourceControlWCCName
- Calendar
-
-
-
-
diff --git a/CalendarDemo/CalendarDemo-Bridging-Header.h b/CalendarDemo/CalendarDemo-Bridging-Header.h
new file mode 100644
index 00000000..625004b7
--- /dev/null
+++ b/CalendarDemo/CalendarDemo-Bridging-Header.h
@@ -0,0 +1,8 @@
+//
+// Use this file to import your target's public headers that you would like to expose to Swift.
+//
+
+#import "MainViewController.h"
+#import "NSCalendar+MGCAdditions.h"
+#import "NSAttributedString+MGCAdditions.h"
+#import "Constant.h"
diff --git a/CalendarDemo/CalendarDemo.entitlements b/CalendarDemo/CalendarDemo.entitlements
new file mode 100644
index 00000000..1038fb44
--- /dev/null
+++ b/CalendarDemo/CalendarDemo.entitlements
@@ -0,0 +1,12 @@
+
+
+
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.network.client
+
+ com.apple.security.personal-information.calendars
+
+
+
diff --git a/CalendarDemo/DayViewController.h b/CalendarDemo/DayViewController.h
deleted file mode 100644
index 820a35f6..00000000
--- a/CalendarDemo/DayViewController.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// DayViewController.h
-// Calendar
-//
-// Copyright © 2016 Julien Martin. All rights reserved.
-//
-
-#import "MGCDayPlannerEKViewController.h"
-#import "MainViewController.h"
-
-
-@protocol DayViewControllerDelegate
-
-@end
-
-
-@interface DayViewController : MGCDayPlannerEKViewController
-
-@property (nonatomic, weak) id delegate;
-
-@end
-
diff --git a/CalendarDemo/DayViewController.m b/CalendarDemo/DayViewController.m
deleted file mode 100644
index 8979e2a4..00000000
--- a/CalendarDemo/DayViewController.m
+++ /dev/null
@@ -1,125 +0,0 @@
-//
-// DayViewController.h
-// Calendar
-//
-// Copyright © 2016 Julien Martin. All rights reserved.
-//
-
-#import "DayViewController.h"
-#import "MGCDateRange.h"
-#import "NSCalendar+MGCAdditions.h"
-#import "NSAttributedString+MGCAdditions.h"
-#import "Constant.h"
-#import "MGCCalendarHeaderView.h"
-
-@implementation DayViewController
-
-@dynamic delegate;
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- self.dayPlannerView.backgroundColor = [UIColor clearColor];
- self.dayPlannerView.backgroundView = [UIView new];
- self.dayPlannerView.backgroundView.backgroundColor = [UIColor whiteColor];
-
- if (isiPad) {
- //NSLog(@"---------------- iPAD ------------------");
- self.dayPlannerView.dateFormat = @"eee\nd MMM";
- self.dayPlannerView.dayHeaderHeight = 50;
- }
- else{
- //NSLog(@"---------------- iPhone ------------------");
- self.dayPlannerView.dateFormat = @"eee\nd \nMMM";
- self.dayPlannerView.dayHeaderHeight = 60;
- }
-}
-
-#pragma mark - MGCDayPlannerViewController
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view canCreateNewEventOfType:(MGCEventType)type atDate:(NSDate*)date
-{
- NSDateComponents *comps = [self.calendar components:NSCalendarUnitWeekday fromDate:date];
- return comps.weekday != 1;
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view didScroll:(MGCDayPlannerScrollType)scrollType
-{
- NSDate *date = [view dateAtPoint:view.center rounded:YES];
- if (date && [self.delegate respondsToSelector:@selector(calendarViewController:didShowDate:)]) {
- [self.delegate calendarViewController:self didShowDate:date];
- }
-}
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view canMoveEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date toType:(MGCEventType)targetType date:(NSDate*)targetDate
-{
- NSDateComponents *comps = [self.calendar components:NSCalendarUnitWeekday fromDate:targetDate];
- return (comps.weekday != 1 && comps.weekday != 7);
-}
-
-- (NSAttributedString*)dayPlannerView:(MGCDayPlannerView *)view attributedStringForDayHeaderAtDate:(NSDate *)date
-{
-
- static NSDateFormatter *dateFormatter = nil;
- if (dateFormatter == nil) {
- dateFormatter = [NSDateFormatter new];
- dateFormatter.dateFormat = @"eee d";
- }
-
- NSString *dayStr = [dateFormatter stringFromDate:date];
-
- UIFont *font = [UIFont systemFontOfSize:15];
- NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:dayStr attributes:@{ NSFontAttributeName: font }];
-
- if ([self.calendar mgc_isDate:date sameDayAsDate:[NSDate date]]) {
- UIFont *boldFont = [UIFont boldSystemFontOfSize:15];
-
- MGCCircleMark *mark = [MGCCircleMark new];
- mark.yOffset = boldFont.descender - mark.margin;
-
- NSUInteger dayStringStart = [dayStr rangeOfString:@" "].location + 1;
- [attrStr addAttributes:@{ NSFontAttributeName: boldFont, NSForegroundColorAttributeName: [UIColor whiteColor], MGCCircleMarkAttributeName: mark } range:NSMakeRange(dayStringStart, dayStr.length - dayStringStart)];
-
- [attrStr processCircleMarksInRange:NSMakeRange(0, attrStr.length)];
- }
-
- NSMutableParagraphStyle *para = [NSMutableParagraphStyle new];
- para.alignment = NSTextAlignmentCenter;
- [attrStr addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(0, attrStr.length)];
-
- return attrStr;
-}
-
-#pragma mark - CalendarControllerNavigation
-
-- (void)moveToDate:(NSDate*)date animated:(BOOL)animated
-{
- if (!self.dayPlannerView.dateRange || [self.dayPlannerView.dateRange containsDate:date]) {
- [self.dayPlannerView scrollToDate:date options:MGCDayPlannerScrollDateTime animated:animated];
- }
-}
-
-- (void)moveToNextPageAnimated:(BOOL)animated
-{
- NSDate *date;
- [self.dayPlannerView pageForwardAnimated:animated date:&date];
- //NSLog(@"paging forward to %@", date);
-}
-
-- (void)moveToPreviousPageAnimated:(BOOL)animated
-{
- NSDate *date;
- [self.dayPlannerView pageBackwardsAnimated:animated date:&date];
- //NSLog(@"paging backwards to %@", date);
-}
-
-- (NSDate*)centerDate
-{
- NSDate *date = [self.dayPlannerView dateAtPoint:self.dayPlannerView.center rounded:NO];
- return date;
-}
-
-@end
diff --git a/CalendarDemo/DayViewController.swift b/CalendarDemo/DayViewController.swift
new file mode 100644
index 00000000..61568503
--- /dev/null
+++ b/CalendarDemo/DayViewController.swift
@@ -0,0 +1,86 @@
+//
+// TwoDaysViewController.swift
+// CalendarDemo
+//
+// Created by Hai Nguyen Thanh on 8/30/20.
+// Copyright © 2020 Julien Martin. All rights reserved.
+//
+
+import UIKit
+import UniversalCalendar
+
+class DayViewController: MGCDayPlannerViewController , CalendarViewControllerNavigation {
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ self.dayPlannerView.numberOfVisibleDays = 2
+ }
+
+ private(set) var centerDate: Date! = Date()
+
+ func move(to date: Date!, animated: Bool) {
+ }
+
+ func moveToNextPage(animated: Bool) {
+ }
+
+ func moveToPreviousPage(animated: Bool) {
+ }
+}
+
+extension DayViewController {
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, attributedStringFor mark: MGCDayPlannerTimeMark, time ti: TimeInterval) -> NSAttributedString! {
+// fatalError("dayPlannerView(_:attributedStringFor:time:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, attributedStringForDayHeaderAt date: Date!) -> NSAttributedString! {
+// fatalError("dayPlannerView(_:attributedStringForDayHeaderAt:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, numberOfDimmedTimeRangesAt date: Date!) -> Int {
+// fatalError("dayPlannerView(_:numberOfDimmedTimeRangesAt:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, dimmedTimeRangeAt index: UInt, date: Date!) -> MGCDateRange! {
+// fatalError("dayPlannerView(_:dimmedTimeRangeAt:date:) has not been implemented")
+// }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didScroll scrollType: MGCDayPlannerScrollType) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didEndScrolling scrollType: MGCDayPlannerScrollType) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, willDisplay date: Date!) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didEndDisplaying date: Date!) {
+ }
+
+ open override func dayPlannerViewDidZoom(_ view: MGCDayPlannerView!) {
+ }
+
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, shouldSelectEventOf type: MGCEventType, at index: UInt, date: Date!) -> Bool {
+// fatalError("dayPlannerView(_:shouldSelectEventOf:at:date:) has not been implemented")
+// }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didSelectEventOf type: MGCEventType, at index: UInt, date: Date!) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didDeselectEventOf type: MGCEventType, at index: UInt, date: Date!) {
+ }
+}
+
+extension DayViewController {
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, numberOfEventsOf type: MGCEventType, at date: Date!) -> Int {
+ return 0
+ }
+
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, viewForEventOf type: MGCEventType, at index: UInt, date: Date!) -> MGCEventView! {
+// fatalError("dayPlannerView(_:viewForEventOf:at:date:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, dateRangeForEventOf type: MGCEventType, at index: UInt, date: Date!) -> MGCDateRange! {
+// fatalError("dayPlannerView(_:dateRangeForEventOf:at:date:) has not been implemented")
+// }
+}
diff --git a/CalendarDemo/MainViewController.m b/CalendarDemo/MainViewController.m
index cb15a1cb..80a46a5d 100755
--- a/CalendarDemo/MainViewController.m
+++ b/CalendarDemo/MainViewController.m
@@ -6,13 +6,11 @@
//
#import "MainViewController.h"
-#import "WeekViewController.h"
-#import "MonthViewController.h"
#import "YearViewController.h"
-#import "DayViewController.h"
#import "NSCalendar+MGCAdditions.h"
#import "WeekSettingsViewController.h"
#import "MonthSettingsViewController.h"
+#import "CalendarDemo-Swift.h"
typedef enum : NSUInteger
@@ -24,7 +22,7 @@
} CalendarViewType;
-@interface MainViewController ()
+@interface MainViewController ()
@property (nonatomic, strong) NSDateFormatter *dateFormatter;
@property (nonatomic) EKCalendarChooser *calendarChooser;
@@ -91,7 +89,7 @@ - (void)viewDidAppear:(BOOL)animated
if (self.firstTimeAppears) {
NSDate *date = [self.calendar mgc_startOfWeekForDate:[NSDate date]];
- [self.calendarViewController moveToDate:date animated:NO];
+// [self.calendarViewController moveToDate:date animated:NO];
self.firstTimeAppears = NO;
}
}
@@ -136,35 +134,31 @@ - (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id
-
-@property (nonatomic, weak) id delegate;
-
-@end
diff --git a/CalendarDemo/MonthViewController.m b/CalendarDemo/MonthViewController.m
deleted file mode 100755
index bc0074cd..00000000
--- a/CalendarDemo/MonthViewController.m
+++ /dev/null
@@ -1,118 +0,0 @@
-//
-// MonthViewController.m
-// CalendarDemo - Graphical Calendars Library for iOS
-//
-// Copyright (c) 2014-2015 Julien Martin. All rights reserved.
-//
-
-#import "MonthViewController.h"
-#import "NSCalendar+MGCAdditions.h"
-#import "NSAttributedString+MGCAdditions.h"
-#import "Constant.h"
-
-
-@implementation MonthViewController
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- //self.monthPlannerView.dateFormat = @"dd MMM\nYYYY";
-}
-
-#pragma mark - MGCMonthPlannerViewController
-
-- (void)monthPlannerViewDidScroll:(MGCMonthPlannerView *)view
-{
- [super monthPlannerViewDidScroll:view];
-
- NSDate *date = [self.monthPlannerView dayAtPoint:self.monthPlannerView.center];
- if (date && [self.delegate respondsToSelector:@selector(calendarViewController:didShowDate:)]) {
- [self.delegate calendarViewController:self didShowDate:date];
- }
-}
-
-- (NSAttributedString*)monthPlannerView:(MGCMonthPlannerView *)view attributedStringForDayHeaderAtDate:(NSDate *)date
-{
- //return nil;
-
- static NSDateFormatter *dateFormatter = nil;
- if (dateFormatter == nil) {
- dateFormatter = [NSDateFormatter new];
- }
-
- dateFormatter.dateFormat = @"d";
- NSString *dayStr = [dateFormatter stringFromDate:date];
-
- NSString *str = dayStr;
-
- if (dayStr.integerValue == 1) {
- dateFormatter.dateFormat = @"MMM d";
- str = [dateFormatter stringFromDate:date];
- }
-
- UIFont *font = [UIFont systemFontOfSize:isiPad ? 15 : 12];
- NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:str attributes:@{ NSFontAttributeName: font }];
-
- if ([self.calendar mgc_isDate:date sameDayAsDate:[NSDate date]]) {
- UIFont *boldFont = [UIFont boldSystemFontOfSize:isiPad ? 15 : 12];
-
- MGCCircleMark *mark = [MGCCircleMark new];
- mark.yOffset = boldFont.descender - mark.margin;
-
- [attrStr addAttributes:@{ NSFontAttributeName: boldFont, NSForegroundColorAttributeName: [UIColor whiteColor], MGCCircleMarkAttributeName: mark} range:[str rangeOfString:dayStr]];
-
- [attrStr processCircleMarksInRange:NSMakeRange(0, attrStr.length)];
- }
-
- NSMutableParagraphStyle *para = [NSMutableParagraphStyle new];
- para.alignment = NSTextAlignmentRight;
- para.tailIndent = -6;
-
- [attrStr addAttributes:@{ NSParagraphStyleAttributeName: para } range:NSMakeRange(0, attrStr.length)];
-
- return attrStr;
-}
-
-#pragma mark - CalendarViewControllerNavigation
-
-- (NSDate*)centerDate
-{
- MGCDateRange *visibleRange = [self.monthPlannerView visibleDays];
- if (visibleRange)
- {
- NSUInteger dayCount = [self.calendar components:NSCalendarUnitDay fromDate:visibleRange.start toDate:visibleRange.end options:0].day;
- NSDateComponents *comp = [NSDateComponents new];
- comp.day = dayCount / 2;
- NSDate *centerDate = [self.calendar dateByAddingComponents:comp toDate:visibleRange.start options:0];
- return [self.calendar mgc_startOfWeekForDate:centerDate];
- }
- return nil;
-}
-
-- (void)moveToDate:(NSDate*)date animated:(BOOL)animated
-{
- if (!self.monthPlannerView.dateRange || [self.monthPlannerView.dateRange containsDate:date]) {
- [self.monthPlannerView scrollToDate:date alignment:MGCMonthPlannerScrollAlignmentWeekRow animated:animated];
- }
-}
-
-- (void)moveToNextPageAnimated:(BOOL)animated
-{
- NSDate *date = [self.calendar mgc_nextStartOfMonthForDate:self.monthPlannerView.visibleDays.start];
- [self moveToDate:date animated:animated];
-}
-
-- (void)moveToPreviousPageAnimated:(BOOL)animated
-{
- NSDate *date = [self.calendar mgc_startOfMonthForDate:self.monthPlannerView.visibleDays.start];
- if ([self.monthPlannerView.visibleDays.start isEqualToDate:date]) {
- NSDateComponents *comps = [NSDateComponents new];
- comps.month = -1;
- date = [self.calendar dateByAddingComponents:comps toDate:date options:0];
- }
- [self moveToDate:date animated:animated];
-}
-
-@end
diff --git a/CalendarDemo/MonthViewController.swift b/CalendarDemo/MonthViewController.swift
new file mode 100644
index 00000000..909286bb
--- /dev/null
+++ b/CalendarDemo/MonthViewController.swift
@@ -0,0 +1,26 @@
+//
+// Created by Hai Nguyen Thanh on 8/30/20.
+// Copyright (c) 2020 Julien Martin. All rights reserved.
+//
+
+import UniversalCalendar
+
+class MonthViewController: MGCMonthPlannerViewController, CalendarViewControllerNavigation {
+ var centerDate: Date!
+
+ func move(to date: Date!, animated: Bool) {
+
+ }
+
+ func moveToNextPage(animated: Bool) {
+
+ }
+
+ func moveToPreviousPage(animated: Bool) {
+
+ }
+
+ override func viewDidLoad() {
+ super.viewDidLoad()
+ }
+}
diff --git a/CalendarDemo/WeekSettingsViewController.h b/CalendarDemo/WeekSettingsViewController.h
index da778a35..b06e9d3f 100755
--- a/CalendarDemo/WeekSettingsViewController.h
+++ b/CalendarDemo/WeekSettingsViewController.h
@@ -6,7 +6,7 @@
//
#import
-#import "WeekViewController.h"
+#import "CalendarDemo-Swift.h"
@protocol WeekSettingsViewControllerDelegate;
diff --git a/CalendarDemo/WeekSettingsViewController.m b/CalendarDemo/WeekSettingsViewController.m
index f49c436d..bed7d992 100755
--- a/CalendarDemo/WeekSettingsViewController.m
+++ b/CalendarDemo/WeekSettingsViewController.m
@@ -9,7 +9,7 @@
#import "MGCDateRange.h"
#import "NSCalendar+MGCAdditions.h"
#import "MGCStandardEventView.h"
-
+#import "CalendarDemo-Swift.h"
@interface CustomEventView : MGCStandardEventView
@end
@@ -141,7 +141,7 @@ - (void)viewDidLoad
self.eventMovingSwitch.on = self.dayPlannerView.canMoveEvents;
self.eventSelectionSwitch.on = self.dayPlannerView.allowsSelection;
- self.dimmedTimeRangeSwitch.on = self.weekViewController.showDimmedTimeRanges;
+// self.dimmedTimeRangeSwitch.on = self.weekViewController.showDimmedTimeRanges;
// Uncomment the following line to preserve selection between presentations.
// self.clearsSelectionOnViewWillAppear = NO;
@@ -301,7 +301,7 @@ - (IBAction)switchToggled:(UISwitch*)sender
[self.dayPlannerView reloadAllEvents];
}
else if (sender == self.dimmedTimeRangeSwitch) {
- self.weekViewController.showDimmedTimeRanges = sender.on;
+// self.weekViewController.showDimmedTimeRanges = sender.on;
[self.dayPlannerView reloadDimmedTimeRanges];
}
}
diff --git a/CalendarDemo/WeekViewController.h b/CalendarDemo/WeekViewController.h
deleted file mode 100755
index 6f242b59..00000000
--- a/CalendarDemo/WeekViewController.h
+++ /dev/null
@@ -1,22 +0,0 @@
-//
-// WeekViewController.h
-// CalendarDemo - Graphical Calendars Library for iOS
-//
-// Copyright (c) 2014-2015 Julien Martin. All rights reserved.
-//
-
-#import "MGCDayPlannerEKViewController.h"
-#import "MainViewController.h"
-
-
-@protocol WeekViewControllerDelegate
-
-@end
-
-
-@interface WeekViewController : MGCDayPlannerEKViewController
-
-@property (nonatomic, weak) id delegate;
-@property (nonatomic) BOOL showDimmedTimeRanges;
-
-@end
diff --git a/CalendarDemo/WeekViewController.m b/CalendarDemo/WeekViewController.m
deleted file mode 100755
index e7c4cb2b..00000000
--- a/CalendarDemo/WeekViewController.m
+++ /dev/null
@@ -1,177 +0,0 @@
-//
-// WeekViewController.m
-// CalendarDemo - Graphical Calendars Library for iOS
-//
-// Copyright (c) 2014-2015 Julien Martin. All rights reserved.
-//
-
-#import "WeekViewController.h"
-#import "MGCDateRange.h"
-#import "NSCalendar+MGCAdditions.h"
-#import "NSAttributedString+MGCAdditions.h"
-#import "Constant.h"
-
-
-@implementation WeekViewController
-
-@dynamic delegate;
-
-#pragma mark - UIViewController
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- self.dayPlannerView.backgroundColor = [UIColor clearColor];
- self.dayPlannerView.backgroundView = [UIView new];
- self.dayPlannerView.backgroundView.backgroundColor = [UIColor whiteColor];
-
- if (isiPad) {
- //NSLog(@"---------------- iPAD ------------------");
- self.dayPlannerView.dateFormat = @"eee\nd MMM";
- self.dayPlannerView.dayHeaderHeight = 50;
- }
- else{
- //NSLog(@"---------------- iPhone ------------------");
- self.dayPlannerView.dateFormat = @"eee\nd \nMMM";
- self.dayPlannerView.dayHeaderHeight = 60;
- }
-}
-
-#pragma mark - MGCDayPlannerViewController
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view canCreateNewEventOfType:(MGCEventType)type atDate:(NSDate*)date
-{
- NSDateComponents *comps = [self.calendar components:NSCalendarUnitWeekday fromDate:date];
- return comps.weekday != 1;
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view didScroll:(MGCDayPlannerScrollType)scrollType
-{
- NSDate *date = [view dateAtPoint:view.center rounded:YES];
- if (date && [self.delegate respondsToSelector:@selector(calendarViewController:didShowDate:)]) {
- [self.delegate calendarViewController:self didShowDate:date];
- }
-}
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view canMoveEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date toType:(MGCEventType)targetType date:(NSDate*)targetDate
-{
- NSDateComponents *comps = [self.calendar components:NSCalendarUnitWeekday fromDate:targetDate];
- return (comps.weekday != 1 && comps.weekday != 7);
-}
-
-/*
-// test for custom time drawing
-- (NSAttributedString*)dayPlannerView:(MGCDayPlannerView *)view attributedStringForTimeMark:(MGCDayPlannerTimeMark)mark time:(NSTimeInterval)ti
-{
- if (mark == MGCDayPlannerTimeMarkFloating) return nil;
-
- NSDate *date = [NSDate dateWithTimeInterval:ti sinceDate:[self.calendar mgc_startOfDayForDate:[NSDate date]]];
-
- NSMutableParagraphStyle *style = [NSMutableParagraphStyle new];
- style.alignment = NSTextAlignmentRight;
-
- UIColor *color = mark == MGCDayPlannerTimeMarkHeader ? [UIColor lightGrayColor] : [UIColor redColor];
-
- static NSDateFormatter *dateFormatter = nil;
- if (dateFormatter == nil) {
- dateFormatter = [NSDateFormatter new];
- }
- dateFormatter.dateFormat = mark == MGCDayPlannerTimeMarkHeader ? @"h a" : @"h:mm a";
-
-
- NSString *s = [dateFormatter stringFromDate:date];
- return [[NSAttributedString alloc]initWithString:s attributes:@{ NSParagraphStyleAttributeName: style, NSFontAttributeName: [UIFont systemFontOfSize:12], NSForegroundColorAttributeName: color }];
-}
-*/
-
-- (NSAttributedString*)dayPlannerView:(MGCDayPlannerView *)view attributedStringForDayHeaderAtDate:(NSDate *)date
-{
-
- static NSDateFormatter *dateFormatter = nil;
- if (dateFormatter == nil) {
- dateFormatter = [NSDateFormatter new];
- dateFormatter.dateFormat = @"eee d";
- }
-
- NSString *dayStr = [dateFormatter stringFromDate:date];
-
- UIFont *font = [UIFont systemFontOfSize:15];
- NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:dayStr attributes:@{ NSFontAttributeName: font }];
-
- if ([self.calendar mgc_isDate:date sameDayAsDate:[NSDate date]]) {
- UIFont *boldFont = [UIFont boldSystemFontOfSize:15];
-
- MGCCircleMark *mark = [MGCCircleMark new];
- mark.yOffset = boldFont.descender - mark.margin;
-
- NSUInteger dayStringStart = [dayStr rangeOfString:@" "].location + 1;
- [attrStr addAttributes:@{ NSFontAttributeName: boldFont, NSForegroundColorAttributeName: [UIColor whiteColor], MGCCircleMarkAttributeName: mark } range:NSMakeRange(dayStringStart, dayStr.length - dayStringStart)];
-
- [attrStr processCircleMarksInRange:NSMakeRange(0, attrStr.length)];
- }
-
- NSMutableParagraphStyle *para = [NSMutableParagraphStyle new];
- para.alignment = NSTextAlignmentCenter;
- [attrStr addAttribute:NSParagraphStyleAttributeName value:para range:NSMakeRange(0, attrStr.length)];
-
- return attrStr;
-}
-
-- (NSInteger)dayPlannerView:(MGCDayPlannerView *)view numberOfDimmedTimeRangesAtDate:(NSDate *)date
-{
- if (!self.showDimmedTimeRanges) return 0;
- return [self.calendar isDateInWeekend:date] ? 1 : 2;
-}
-
-- (MGCDateRange*)dayPlannerView:(MGCDayPlannerView *)view dimmedTimeRangeAtIndex:(NSUInteger)index date:(NSDate *)date
-{
- NSDate *start, *end;
-
- if ([self.calendar isDateInWeekend:date] || index == 0) {
- start = [self.calendar dateBySettingHour:0 minute:0 second:0 ofDate:date options:0];
- }
- else {
- start = [self.calendar dateBySettingHour:19 minute:0 second:0 ofDate:date options:0];
- }
-
- if ([self.calendar isDateInWeekend:date] || index == 1) {
- end = [self.calendar dateBySettingHour:23 minute:59 second:0 ofDate:date options:0];
- }
- else {
- end = [self.calendar dateBySettingHour:8 minute:59 second:0 ofDate:date options:0];
- }
- return [MGCDateRange dateRangeWithStart:start end:end];
-}
-
-
-#pragma mark - CalendarControllerNavigation
-
-- (void)moveToDate:(NSDate*)date animated:(BOOL)animated
-{
- if (!self.dayPlannerView.dateRange || [self.dayPlannerView.dateRange containsDate:date]) {
- [self.dayPlannerView scrollToDate:date options:MGCDayPlannerScrollDateTime animated:animated];
- }
-}
-
-- (void)moveToNextPageAnimated:(BOOL)animated
-{
- NSDate *date;
- [self.dayPlannerView pageForwardAnimated:animated date:&date];
- //NSLog(@"paging forward to %@", date);
-}
-
-- (void)moveToPreviousPageAnimated:(BOOL)animated
-{
- NSDate *date;
- [self.dayPlannerView pageBackwardsAnimated:animated date:&date];
- //NSLog(@"paging backwards to %@", date);
-}
-
-- (NSDate*)centerDate
-{
- NSDate *date = [self.dayPlannerView dateAtPoint:self.dayPlannerView.center rounded:NO];
- return date;
-}
-
-@end
diff --git a/CalendarDemo/WeekViewController.swift b/CalendarDemo/WeekViewController.swift
new file mode 100644
index 00000000..5112b97e
--- /dev/null
+++ b/CalendarDemo/WeekViewController.swift
@@ -0,0 +1,87 @@
+//
+// WeekViewController.swift
+// CalendarDemo
+//
+// Created by Hai Nguyen Thanh on 8/30/20.
+// Copyright © 2020 Julien Martin. All rights reserved.
+//
+
+import UIKit
+import UniversalCalendar
+
+class WeekViewController: MGCDayPlannerViewController, CalendarViewControllerNavigation {
+ override func viewDidLoad() {
+ super.viewDidLoad()
+
+ self.dayPlannerView.numberOfVisibleDays = 7
+ }
+
+ private(set) var centerDate: Date! = Date()
+
+ func move(to date: Date!, animated: Bool) {
+ }
+
+ func moveToNextPage(animated: Bool) {
+ }
+
+ func moveToPreviousPage(animated: Bool) {
+ }
+}
+
+extension WeekViewController {
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, attributedStringFor mark: MGCDayPlannerTimeMark, time ti: TimeInterval) -> NSAttributedString! {
+// fatalError("dayPlannerView(_:attributedStringFor:time:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, attributedStringForDayHeaderAt date: Date!) -> NSAttributedString! {
+// fatalError("dayPlannerView(_:attributedStringForDayHeaderAt:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, numberOfDimmedTimeRangesAt date: Date!) -> Int {
+// fatalError("dayPlannerView(_:numberOfDimmedTimeRangesAt:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, dimmedTimeRangeAt index: UInt, date: Date!) -> MGCDateRange! {
+// fatalError("dayPlannerView(_:dimmedTimeRangeAt:date:) has not been implemented")
+// }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didScroll scrollType: MGCDayPlannerScrollType) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didEndScrolling scrollType: MGCDayPlannerScrollType) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, willDisplay date: Date!) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didEndDisplaying date: Date!) {
+ }
+
+ open override func dayPlannerViewDidZoom(_ view: MGCDayPlannerView!) {
+ }
+
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, shouldSelectEventOf type: MGCEventType, at index: UInt, date: Date!) -> Bool {
+// fatalError("dayPlannerView(_:shouldSelectEventOf:at:date:) has not been implemented")
+// }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didSelectEventOf type: MGCEventType, at index: UInt, date: Date!) {
+ }
+
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, didDeselectEventOf type: MGCEventType, at index: UInt, date: Date!) {
+ }
+}
+
+extension WeekViewController {
+ open override func dayPlannerView(_ view: MGCDayPlannerView!, numberOfEventsOf type: MGCEventType, at date: Date!) -> Int {
+ return 0
+ }
+
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, viewForEventOf type: MGCEventType, at index: UInt, date: Date!) -> MGCEventView! {
+// fatalError("dayPlannerView(_:viewForEventOf:at:date:) has not been implemented")
+// }
+//
+// open override func dayPlannerView(_ view: MGCDayPlannerView!, dateRangeForEventOf type: MGCEventType, at index: UInt, date: Date!) -> MGCDateRange! {
+// fatalError("dayPlannerView(_:dateRangeForEventOf:at:date:) has not been implemented")
+// }
+}
+
diff --git a/CalendarDemo/main-iPad.storyboard b/CalendarDemo/main-iPad.storyboard
index 33d7bdb0..15a6b129 100755
--- a/CalendarDemo/main-iPad.storyboard
+++ b/CalendarDemo/main-iPad.storyboard
@@ -1,8 +1,10 @@
-
-
+
+
+
-
+
+
@@ -23,11 +25,11 @@
-
-
+
+
-
+
@@ -42,7 +44,7 @@
-
+
@@ -64,33 +66,33 @@
-
+
@@ -131,7 +133,7 @@
-
+
@@ -141,7 +143,7 @@
-
+
@@ -149,7 +151,61 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CalendarDemo/main-iPhone.storyboard b/CalendarDemo/main-iPhone.storyboard
index 13b18de0..e30cec58 100644
--- a/CalendarDemo/main-iPhone.storyboard
+++ b/CalendarDemo/main-iPhone.storyboard
@@ -1,9 +1,10 @@
-
-
+
+
+
-
-
+
+
@@ -15,15 +16,15 @@
-
+
-
+
-
+
-
+
@@ -45,7 +46,7 @@
-
+
@@ -61,7 +62,7 @@
-
+
@@ -104,7 +105,7 @@
-
+
@@ -116,7 +117,7 @@
-
+
diff --git a/CalendarDocs/DayPlannerView.png b/CalendarDocs/DayPlannerView.png
index 9deba929..065cb026 100644
Binary files a/CalendarDocs/DayPlannerView.png and b/CalendarDocs/DayPlannerView.png differ
diff --git a/CalendarDocs/MonthPlannerView.png b/CalendarDocs/MonthPlannerView.png
index 9968a472..9d4ae1df 100644
Binary files a/CalendarDocs/MonthPlannerView.png and b/CalendarDocs/MonthPlannerView.png differ
diff --git a/CalendarDocs/MonthPlannerView2.png b/CalendarDocs/MonthPlannerView2.png
index 4c699fc3..5ee2a331 100644
Binary files a/CalendarDocs/MonthPlannerView2.png and b/CalendarDocs/MonthPlannerView2.png differ
diff --git a/CalendarDocs/osx_2days.png b/CalendarDocs/osx_2days.png
new file mode 100644
index 00000000..88b7159b
Binary files /dev/null and b/CalendarDocs/osx_2days.png differ
diff --git a/CalendarDocs/osx_month.png b/CalendarDocs/osx_month.png
new file mode 100644
index 00000000..23627b0b
Binary files /dev/null and b/CalendarDocs/osx_month.png differ
diff --git a/CalendarDocs/osx_week.png b/CalendarDocs/osx_week.png
new file mode 100644
index 00000000..2e5f3e78
Binary files /dev/null and b/CalendarDocs/osx_week.png differ
diff --git a/CalendarDocs/osx_year.png b/CalendarDocs/osx_year.png
new file mode 100644
index 00000000..2f888bcc
Binary files /dev/null and b/CalendarDocs/osx_year.png differ
diff --git a/CalendarLib.podspec b/CalendarLib.podspec
deleted file mode 100644
index 3bf164d4..00000000
--- a/CalendarLib.podspec
+++ /dev/null
@@ -1,17 +0,0 @@
-Pod::Spec.new do |s|
- s.name = "CalendarLib"
- s.version = "2.0"
- s.summary = "A set of views and controllers for displaying and scheduling events on iOS"
- s.homepage = "https://github.com/jumartin/Calendar"
- s.license = "MIT"
- s.author = { "Julien Martin" => "julienmartin@hotmail.com" }
- s.platform = :ios, "8.0"
- s.source = { :git => "https://github.com/jumartin/Calendar.git", :tag => s.version.to_s }
- s.screenshots = [ "https://raw.githubusercontent.com/jumartin/Calendar/master/CalendarDocs/DayPlannerView.jpg", "https://raw.githubusercontent.com/jumartin/Calendar/master/CalendarDocs/MonthPlannerView.jpg", "https://raw.githubusercontent.com/jumartin/Calendar/master/CalendarDocs/YearView.jpg"]
- s.source_files = "CalendarLib/**/*.{h,m}"
- s.public_header_files = "CalendarLib/{MGCDateRange.h,NSCalendar+MGCAdditions.h,NSAttributedString+MGCAdditions.h,MGCDayPlannerEKViewController.h,MGCMonthPlannerEKViewController.h,MGCEventView.h,MGCStandardEventView.h,MGCDayPlannerView.h,MGCDayPlannerViewController.h,MGCMonthPlannerView.h,MGCMonthPlannerViewController.h,MGCMonthMiniCalendarView.h,MGCYearCalendarView.h,MGCReusableObjectQueue.h}"
- s.resource_bundle = { 'CalendarLib' => ['CalendarLib/*.lproj'] }
- s.frameworks = "EventKit", "EventKitUI", "UIKit", "Foundation", "CoreGraphics"
- s.dependency "OSCache", "~> 1.2"
- s.dependency "OrderedDictionary", "~> 1.2"
-end
diff --git a/CalendarLib/MGCDayPlannerEKViewController.h b/CalendarLib/MGCDayPlannerEKViewController.h
deleted file mode 100755
index e690ad6d..00000000
--- a/CalendarLib/MGCDayPlannerEKViewController.h
+++ /dev/null
@@ -1,61 +0,0 @@
-//
-// MGCDayPlannerEKViewController.h
-// Graphical Calendars Library for iOS
-//
-// Distributed under the MIT License
-// Get the latest version from here:
-//
-// https://github.com/jumartin/Calendar
-//
-// Copyright (c) 2014-2015 Julien Martin
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-
-#import
-#import
-#import "MGCDayPlannerViewController.h"
-
-
-@protocol MGCDayPlannerEKViewControllerDelegate;
-
-
-@interface MGCDayPlannerEKViewController : MGCDayPlannerViewController
-
-@property (nonatomic) NSCalendar *calendar;
-@property (nonatomic) NSSet *visibleCalendars;
-@property (nonatomic, readonly) EKEventStore *eventStore;
-@property (nonatomic, weak) id delegate;
-
-/** designated initializer */
-- (instancetype)initWithEventStore:(EKEventStore*)eventStore;
-- (void)reloadEvents;
-
-@end
-
-
-@protocol MGCDayPlannerEKViewControllerDelegate
-
-
-@optional
-
-- (void)dayPlannerEKEViewController:(MGCDayPlannerEKViewController*)vc willPresentEventViewController:(EKEventViewController*)eventViewController;
-- (UINavigationController*)dayPlannerEKViewController:(MGCDayPlannerEKViewController*)vc navigationControllerForPresentingEventViewController:(EKEventViewController*)eventViewController;
-
-@end
diff --git a/CalendarLib/MGCDayPlannerEKViewController.m b/CalendarLib/MGCDayPlannerEKViewController.m
deleted file mode 100755
index 257cf1b9..00000000
--- a/CalendarLib/MGCDayPlannerEKViewController.m
+++ /dev/null
@@ -1,542 +0,0 @@
-//
-// MGCDayPlannerEKViewController.m
-// Graphical Calendars Library for iOS
-//
-// Distributed under the MIT License
-// Get the latest version from here:
-//
-// https://github.com/jumartin/Calendar
-//
-// Copyright (c) 2014-2015 Julien Martin
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-
-#import
-
-#import "MGCDayPlannerEKViewController.h"
-#import "MGCStandardEventView.h"
-#import "NSCalendar+MGCAdditions.h"
-#import "MGCDateRange.h"
-#import "OSCache.h"
-#import "MGCEventKitSupport.h"
-
-
-typedef enum {
- TimedEventType = 1,
- AllDayEventType = 2,
- AnyEventType = TimedEventType|AllDayEventType
-} EventType;
-
-
-static const NSUInteger cacheSize = 400; // size of the cache (in days)
-static NSString* const EventCellReuseIdentifier = @"EventCellReuseIdentifier";
-
-
-@interface MGCDayPlannerEKViewController ()
-
-@property (nonatomic) MGCEventKitSupport *eventKitSupport;
-@property (nonatomic) dispatch_queue_t bgQueue; // dispatch queue for loading events
-@property (nonatomic) NSMutableOrderedSet *daysToLoad; // dates for months of which we want to load events
-@property (nonatomic) NSCache *eventsCache;
-@property (nonatomic) NSUInteger createdEventType;
-@property (nonatomic, copy) NSDate *createdEventDate;
-
-@end
-
-
-@implementation MGCDayPlannerEKViewController
-
-@synthesize calendar = _calendar;
-
-- (instancetype)initWithEventStore:(EKEventStore*)eventStore
-{
- if (self = [super initWithNibName:nil bundle:nil]) {
- _eventKitSupport = [[MGCEventKitSupport alloc]initWithEventStore:eventStore];
- }
- return self;
-}
-
-- (void)reloadEvents
-{
- for (NSDate *date in self.daysToLoad) {
- [self.dayPlannerView setActivityIndicatorVisible:NO forDate:date];
- }
- [self.daysToLoad removeAllObjects];
-
- [self.eventsCache removeAllObjects];
- [self fetchEventsInDateRange:self.dayPlannerView.visibleDays];
- [self.dayPlannerView reloadAllEvents];
-}
-
-- (void)showEditControllerForEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
-
- MGCEventView *view = [self.dayPlannerView eventViewOfType:type atIndex:index date:date];
-
- MGCEKEventViewController *eventController = [MGCEKEventViewController new];
- eventController.event = ev;
- eventController.delegate = self;
- eventController.allowsEditing = YES;
- eventController.allowsCalendarPreview = YES;
-
- UINavigationController *nc = nil;
- if ([self.delegate respondsToSelector:@selector(dayPlannerEKViewController:navigationControllerForPresentingEventViewController:)]) {
- nc = [self.delegate dayPlannerEKViewController:self navigationControllerForPresentingEventViewController:eventController];
- }
-
- if (nc) {
- [nc pushViewController:eventController animated:YES];
- }
- else {
- nc = [[UINavigationController alloc]initWithRootViewController:eventController];
- nc.modalPresentationStyle = UIModalPresentationPopover;
- eventController.presentationController.delegate = self;
-
- [self showDetailViewController:nc sender:self];
-
- CGRect visibleRect = CGRectIntersection(self.dayPlannerView.bounds, [self.dayPlannerView convertRect:view.bounds fromView:view]);
- UIPopoverPresentationController *popController = nc.popoverPresentationController;
- popController.permittedArrowDirections = UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight;
- popController.delegate = self;
- popController.sourceView = self.dayPlannerView;
- popController.sourceRect = visibleRect;
- }
-}
-
-- (void)showPopoverForNewEvent:(EKEvent*)ev
-{
- EKEventEditViewController *eventController = [EKEventEditViewController new];
- eventController.event = ev;
- eventController.eventStore = self.eventStore;
- eventController.editViewDelegate = self; // called only when event is deleted
- eventController.modalInPopover = YES;
- eventController.modalPresentationStyle = UIModalPresentationPopover;
- eventController.presentationController.delegate = self;
-
- [self showDetailViewController:eventController sender:self];
-
- CGRect cellRect = [self.dayPlannerView rectForNewEventOfType:self.createdEventType atDate:self.createdEventDate];
- CGRect visibleRect = CGRectIntersection(self.dayPlannerView.bounds, cellRect);
-
- UIPopoverPresentationController *popController = eventController.popoverPresentationController;
- popController.permittedArrowDirections = UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight;
- popController.delegate = self;
- popController.sourceView = self.dayPlannerView;
- popController.sourceRect = visibleRect;
-}
-
-#pragma mark - UIViewController
-
-- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
-{
- return [self initWithEventStore:nil];
-}
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter]removeObserver:self];
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reloadEvents) name:EKEventStoreChangedNotification object:self.eventStore];
-
- self.eventsCache = [[OSCache alloc]init];
- self.eventsCache.countLimit = cacheSize;
- //self.eventsCache.delegate = self;
-
- self.bgQueue = dispatch_queue_create("MGCDayPlannerEKViewController.bgQueue", NULL);
-
- [self.eventKitSupport checkEventStoreAccessForCalendar:^(BOOL granted) {
- if (granted) {
- NSArray *calendars = [self.eventStore calendarsForEntityType:EKEntityTypeEvent];
- self.visibleCalendars = [NSSet setWithArray:calendars];
- [self reloadEvents];
- }
- }];
-
- self.dayPlannerView.calendar = self.calendar;
- [self.dayPlannerView registerClass:MGCStandardEventView.class forEventViewWithReuseIdentifier:EventCellReuseIdentifier];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
-}
-
-#pragma mark - Properties
-
-- (NSCalendar*)calendar
-{
- if (_calendar == nil) {
- _calendar = [NSCalendar currentCalendar];
- }
- return _calendar;
-}
-
-- (void)setCalendar:(NSCalendar*)calendar
-{
- _calendar = calendar;
- self.dayPlannerView.calendar = calendar;
-}
-
-- (EKEventStore*)eventStore
-{
- return self.eventKitSupport.eventStore;
-}
-
-- (void)setVisibleCalendars:(NSSet*)visibleCalendars
-{
- _visibleCalendars = visibleCalendars;
- [self.dayPlannerView reloadAllEvents];
-}
-
-#pragma mark - Loading events
-
-- (void)fetchEventsInDateRange:(MGCDateRange*)range
-{
- range.start = [self.calendar mgc_startOfDayForDate:range.start];
- range.end = [self.calendar mgc_nextStartOfDayForDate:range.end];
-
- [range enumerateDaysWithCalendar:self.calendar usingBlock:^(NSDate *date, BOOL *stop) {
- NSDate *dayEnd = [self.calendar mgc_nextStartOfDayForDate:date];
- NSArray *events = [self fetchEventsFrom:date to:dayEnd calendars:nil];
- [self.eventsCache setObject:events forKey:date];
- }];
-}
-
-- (NSArray*)fetchEventsFrom:(NSDate*)startDate to:(NSDate*)endDate calendars:(NSArray*)calendars
-{
- NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:calendars];
-
- if (self.eventKitSupport.accessGranted) {
- NSArray *events = [self.eventStore eventsMatchingPredicate:predicate];
- if (events) {
- return [events sortedArrayUsingSelector:@selector(compareStartDateWithEvent:)];
- }
- }
-
- return [NSArray array];
-}
-
-// returns the events dictionary for given date
-// try to load it from the cache, or create it if needed
-- (NSArray*)eventsForDay:(NSDate*)date
-{
- NSDate *dayStart = [self.calendar mgc_startOfDayForDate:date];
-
- NSArray *events = [self.eventsCache objectForKey:dayStart];
-
- if (!events) { // cache miss: create dictionary...
- NSDate *dayEnd = [self.calendar mgc_nextStartOfDayForDate:dayStart];
- events = [self fetchEventsFrom:dayStart to:dayEnd calendars:nil];
- [self.eventsCache setObject:events forKey:dayStart];
- }
-
- return events;
-}
-
-- (NSArray*)eventsOfType:(EventType)type forDay:(NSDate*)date
-{
- NSArray *events = [self eventsForDay:date];
-
- NSMutableArray *filteredEvents = [NSMutableArray new];
- [events enumerateObjectsUsingBlock:^(EKEvent *ev, NSUInteger idx, BOOL *stop) {
-
- if ([self.visibleCalendars containsObject:ev.calendar]) {
- if (type & AllDayEventType && ev.isAllDay)
- [filteredEvents addObject:ev];
- else if (type & TimedEventType && !ev.isAllDay)
- [filteredEvents addObject:ev];
- }
- }];
-
- return filteredEvents;
-}
-
-- (EKEvent*)eventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- NSArray *events = nil;
-
- if (type == MGCAllDayEventType) {
- events = [self eventsOfType:AllDayEventType forDay:date];
- }
- else if (type == MGCTimedEventType) {
- events = [self eventsOfType:TimedEventType forDay:date];
- }
-
- return [events objectAtIndex:index];
-}
-
-- (void)bg_loadEventsAtDate:(NSDate*)date
-{
- //NSLog(@"bg_loadEventsAtDate: %@", date);
-
- NSDate *dayStart = [self.calendar mgc_startOfDayForDate:date];
-
- [self eventsOfType:AnyEventType forDay:dayStart];
-
- dispatch_async(dispatch_get_main_queue(), ^{
- [self.dayPlannerView reloadEventsAtDate:date];
- [self.dayPlannerView setActivityIndicatorVisible:NO forDate:dayStart];
- });
-}
-
-- (void)bg_loadOneDay
-{
- __block NSDate *date;
-
- dispatch_sync(dispatch_get_main_queue(), ^{
- if ((date = [self.daysToLoad firstObject])) {
- [self.daysToLoad removeObject:date];
- }
-
- if (![self.dayPlannerView.visibleDays containsDate:date]) {
- date = nil;
- }
- });
-
- if (date) {
- [self bg_loadEventsAtDate:date];
- }
-}
-
-- (BOOL)loadEventsAtDate:(NSDate*)date
-{
- NSDate *dayStart = [self.calendar mgc_startOfDayForDate:date];
-
- if (![self.eventsCache objectForKey:dayStart]) {
- [self.dayPlannerView setActivityIndicatorVisible:YES forDate:dayStart];
-
- if (!self.daysToLoad) {
- self.daysToLoad = [NSMutableOrderedSet orderedSet];
- }
-
- [self.daysToLoad addObject:dayStart];
-
- dispatch_async(self.bgQueue, ^{ [self bg_loadOneDay]; });
-
- return YES;
- }
- return NO;
-}
-
-#pragma mark - MGCDayPlannerViewDataSource
-
-- (NSInteger)dayPlannerView:(MGCDayPlannerView*)weekView numberOfEventsOfType:(MGCEventType)type atDate:(NSDate*)date
-{
- NSInteger count = 0;
-
- if (![self loadEventsAtDate:date]) {
- if (type == MGCAllDayEventType) {
- count = [[self eventsOfType:AllDayEventType forDay:date]count];
- }
- else {
- count = [[self eventsOfType:TimedEventType forDay:date]count];
- }
- }
- return count;
-}
-
-- (MGCEventView*)dayPlannerView:(MGCDayPlannerView*)view viewForEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
-
- MGCStandardEventView *evCell = (MGCStandardEventView*)[view dequeueReusableViewWithIdentifier:EventCellReuseIdentifier forEventOfType:type atIndex:index date:date];
- evCell.font = [UIFont systemFontOfSize:11];
- evCell.title = ev.title;
- evCell.subtitle = ev.location;
- evCell.color = [UIColor colorWithCGColor:ev.calendar.CGColor];
- evCell.style = MGCStandardEventViewStylePlain|MGCStandardEventViewStyleSubtitle;
- evCell.style |= (type == MGCAllDayEventType) ?: MGCStandardEventViewStyleBorder;
- return evCell;
-}
-
-- (MGCDateRange*)dayPlannerView:(MGCDayPlannerView*)view dateRangeForEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
-
- NSDate *end = ev.endDate;
- if (type == MGCAllDayEventType) {
- end = [self.calendar mgc_nextStartOfDayForDate:end];
- }
-
- return [MGCDateRange dateRangeWithStart:ev.startDate end:end];
-}
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view shouldStartMovingEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
- return ev.calendar.allowsContentModifications;
-}
-
-- (BOOL)dayPlannerView:(MGCDayPlannerView*)view canMoveEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date toType:(MGCEventType)targetType date:(NSDate*)targetDate
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
- return ev.calendar.allowsContentModifications;
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view moveEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date toType:(MGCEventType)targetType date:(NSDate*)targetDate
-{
- EKEvent *ev = [self eventOfType:type atIndex:index date:date];
-
- if (ev) {
- NSDateComponents *duration = [self.calendar components:NSMinuteCalendarUnit fromDate:ev.startDate toDate:ev.endDate options:0];
- if (ev.allDay && targetType == MGCTimedEventType) {
- duration.minute = view.durationForNewTimedEvent / 60;
- }
- NSDate *end = [self.calendar dateByAddingComponents:duration toDate:targetDate options:0];
-
- // allDay property has to be set before start and end dates !
- ev.allDay = (targetType == MGCAllDayEventType);
- ev.startDate = targetDate;
- ev.endDate = end;
-
- [self.eventKitSupport saveEvent:ev completion:^(BOOL completion) {
- [self.dayPlannerView endInteraction];
- }];
- }
-}
-
-- (MGCEventView*)dayPlannerView:(MGCDayPlannerView*)view viewForNewEventOfType:(MGCEventType)type atDate:(NSDate*)date
-{
- EKCalendar *defaultCalendar = [self.eventStore defaultCalendarForNewEvents];
-
- MGCStandardEventView *evCell = [MGCStandardEventView new];
- evCell.title = NSLocalizedString(@"New Event", nil);
- evCell.color = [UIColor colorWithCGColor:defaultCalendar.CGColor];
- return evCell;
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView *)view createNewEventOfType:(MGCEventType)type atDate:(NSDate*)date
-{
- self.createdEventType = type;
- self.createdEventDate = date;
-
- EKEvent *ev = [EKEvent eventWithEventStore:self.eventStore];
- ev.startDate = date;
-
- NSDateComponents *comps = [NSDateComponents new];
- comps.day = ((NSInteger) view.durationForNewTimedEvent) / (60 * 60 * 24);
- comps.hour = (((NSInteger) view.durationForNewTimedEvent) / (60 * 60)) - (comps.day * 24);
- comps.minute = (((NSInteger) view.durationForNewTimedEvent) / 60) - (comps.day * 24 * 60) - (comps.hour * 60);
- comps.second = ((NSInteger) round(view.durationForNewTimedEvent)) % 60;
-
- ev.endDate = [self.calendar dateByAddingComponents:comps toDate:date options:0];
- ev.allDay = (type == MGCAllDayEventType) ? YES : NO;
-
- [self showPopoverForNewEvent:ev];
-}
-
-#pragma mark - MGCDayPlannerViewDelegate
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view didSelectEventOfType:(MGCEventType)type atIndex:(NSUInteger)index date:(NSDate*)date
-{
- [self showEditControllerForEventOfType:type atIndex:index date:date];
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view willDisplayDate:(NSDate*)date
-{
- //NSLog(@"will display %@", date);
- BOOL loading = [self loadEventsAtDate:date];
- if (!loading) {
- [self.dayPlannerView setActivityIndicatorVisible:NO forDate:date];
- }
-}
-
-- (void)dayPlannerView:(MGCDayPlannerView*)view didEndDisplayingDate:(NSDate*)date
-{
- //NSLog(@"did end displaying %@", date);
- [self.daysToLoad removeObject:date];
-}
-
-#pragma mark - EKEventEditViewDelegate
-
-- (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action
-{
- [self dismissViewControllerAnimated:YES completion:nil];
- [self.dayPlannerView endInteraction];
- self.createdEventDate = nil;
-}
-
-#pragma mark - EKEventViewDelegate
-
-- (void)eventViewController:(EKEventViewController *)controller didCompleteWithAction:(EKEventViewAction)action
-{
- [self.dayPlannerView deselectEvent];
- if (controller.presentingViewController) {
- [self dismissViewControllerAnimated:YES completion:nil];
- } else {
- [controller.navigationController popViewControllerAnimated:YES];
- }
-}
-
-#pragma mark - UIPopoverPresentationControllerDelegate
-
-//- (UIViewController*)presentationController:(UIPresentationController *)controller viewControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)style
-//{
-// if ([controller.presentedViewController isKindOfClass:EKEventEditViewController.class]) {
-// return controller.presentedViewController;
-// }
-// else {
-// UINavigationController *nc = [[UINavigationController alloc]initWithRootViewController:controller.presentedViewController];
-// nc.delegate = self;
-// return nc;
-// }
-//}
-
-
-- (void)popoverPresentationController:(UIPopoverPresentationController *)popoverPresentationController willRepositionPopoverToRect:(inout CGRect *)rect inView:(inout UIView *__autoreleasing _Nonnull *)view
-{
- CGRect cellRect;
- if (self.createdEventDate) {
- cellRect = [self.dayPlannerView rectForNewEventOfType:self.createdEventType atDate:self.createdEventDate];
- }
- else {
- UIView *cell = self.dayPlannerView.selectedEventView;
- cellRect = [self.dayPlannerView convertRect:cell.bounds fromView:cell];
- }
- CGRect visibleRect = CGRectIntersection(self.dayPlannerView.bounds, cellRect);
- if (CGRectIsNull(visibleRect)) {
- rect->origin.x = cellRect.origin.x;
- rect->origin.y = fminf(cellRect.origin.y, CGRectGetMaxY(self.dayPlannerView.bounds));
- rect->size.width = cellRect.size.width;
- }
- else {
- *rect = visibleRect;
- }
-}
-
-- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController
-{
- [self.dayPlannerView deselectEvent];
-}
-
-#pragma mark - UINavigationControllerDelegate
-
-//- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
-//{
-//}
-
-@end
-
diff --git a/CalendarLib/MGCMonthPlannerEKViewController.h b/CalendarLib/MGCMonthPlannerEKViewController.h
deleted file mode 100755
index 6b396c67..00000000
--- a/CalendarLib/MGCMonthPlannerEKViewController.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//
-// MGCMonthPlannerEKViewController.h
-// Graphical Calendars Library for iOS
-//
-// Distributed under the MIT License
-// Get the latest version from here:
-//
-// https://github.com/jumartin/Calendar
-//
-// Copyright (c) 2014-2015 Julien Martin
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-
-#import
-#import "MGCMonthPlannerViewController.h"
-
-
-@interface MGCMonthPlannerEKViewController : MGCMonthPlannerViewController
-
-@property (nonatomic) NSCalendar *calendar;
-@property (nonatomic) NSSet *visibleCalendars;
-@property (nonatomic, readonly) EKEventStore *eventStore;
-
-/** designated initializer */
-- (instancetype)initWithEventStore:(EKEventStore*)eventStore;
-- (void)reloadEvents;
-
-@end
diff --git a/CalendarLib/MGCMonthPlannerEKViewController.m b/CalendarLib/MGCMonthPlannerEKViewController.m
deleted file mode 100755
index 9935522e..00000000
--- a/CalendarLib/MGCMonthPlannerEKViewController.m
+++ /dev/null
@@ -1,544 +0,0 @@
-//
-// MGCMonthPlannerEKViewController.m
-// Graphical Calendars Library for iOS
-//
-// Distributed under the MIT License
-// Get the latest version from here:
-//
-// https://github.com/jumartin/Calendar
-//
-// Copyright (c) 2014-2015 Julien Martin
-//
-// Permission is hereby granted, free of charge, to any person obtaining a copy
-// of this software and associated documentation files (the "Software"), to deal
-// in the Software without restriction, including without limitation the rights
-// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-// copies of the Software, and to permit persons to whom the Software is
-// furnished to do so, subject to the following conditions:
-//
-// The above copyright notice and this permission notice shall be included in all
-// copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-// SOFTWARE.
-//
-
-#import
-
-#import "MGCMonthPlannerEKViewController.h"
-#import "MGCStandardEventView.h"
-#import "NSCalendar+MGCAdditions.h"
-#import "OSCache.h"
-#import "MGCEventKitSupport.h"
-
-
-static NSString* const EventCellReuseIdentifier = @"EventCellReuseIdentifier";
-
-
-@interface MGCMonthPlannerEKViewController ()
-
-@property (nonatomic) MGCEventKitSupport *eventKitSupport;
-@property (nonatomic) NSCache *cachedMonths; // cache of events: { month_startDate: { day: [events] } }
-@property (nonatomic) dispatch_queue_t bgQueue; // dispatch queue for loading events
-@property (nonatomic) NSMutableOrderedSet *datesForMonthsToLoad; // dates for months of which we want to load events
-@property (nonatomic) MGCDateRange *visibleMonths; // range of months currently shown
-@property (nonatomic) EKEvent *movedEvent;
-@property (nonatomic) NSDateFormatter *dateFormatter;
-
-@end
-
-
-@implementation MGCMonthPlannerEKViewController
-
-// designated initializer
-- (instancetype)initWithEventStore:(EKEventStore*)eventStore
-{
- if (self = [super initWithNibName:nil bundle:nil]) {
- _eventKitSupport = [[MGCEventKitSupport alloc]initWithEventStore:eventStore];
-
- }
- return self;
-}
-
-- (void)reloadEvents
-{
- [self.cachedMonths removeAllObjects];
- [self loadEventsIfNeeded];
-}
-
-- (void)showEditControllerForEventAtIndex:(NSUInteger)index date:(NSDate*)date rect:(CGRect)rect
-{
- EKEvent *ev = [self eventAtIndex:index date:date];
- if (!ev) return;
-
- MGCEKEventViewController *eventController = [MGCEKEventViewController new];
- eventController.event = ev;
- eventController.delegate = self;
- eventController.allowsEditing = YES;
- eventController.allowsCalendarPreview = YES;
-
- UINavigationController *nc = nil;
-// if ([self.delegate respondsToSelector:@selector(dayPlannerEKViewController:navigationControllerForPresentingEventViewController:)]) {
-// nc = [self.delegate dayPlannerEKViewController:self navigationControllerForPresentingEventViewController:eventController];
-// }
-//
- if (nc) {
- [nc pushViewController:eventController animated:YES];
- }
- else {
- nc = [[UINavigationController alloc]initWithRootViewController:eventController];
- nc.modalPresentationStyle = UIModalPresentationPopover;
- eventController.presentationController.delegate = self;
-
- [self showDetailViewController:nc sender:self];
-
- //CGRect visibleRect = CGRectIntersection(self.monthPlannerView.bounds, [self.monthPlannerView convertRect:view.bounds fromView:view]);
- UIPopoverPresentationController *popController = nc.popoverPresentationController;
- popController.permittedArrowDirections = UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight;
- popController.delegate = self;
- popController.sourceView = self.monthPlannerView;
- popController.sourceRect = rect;
- }
-}
-
-- (void)showPopoverForNewEvent:(EKEvent*)ev withCell:(MGCEventView*)cell
-{
- EKEventEditViewController *eventController = [EKEventEditViewController new];
- eventController.event = ev;
- eventController.eventStore = self.eventStore;
- eventController.editViewDelegate = self; // called only when event is deleted
- eventController.modalInPopover = YES;
- eventController.modalPresentationStyle = UIModalPresentationPopover;
- eventController.presentationController.delegate = self;
-
- [self showDetailViewController:eventController sender:self];
-
- UIPopoverPresentationController *popController = eventController.popoverPresentationController;
- popController.permittedArrowDirections = UIPopoverArrowDirectionLeft|UIPopoverArrowDirectionRight;
- popController.delegate = self;
- popController.sourceView = cell;
- popController.sourceRect = cell.bounds;
-}
-
-#pragma mark - UIViewController
-
-- (id)initWithNibName:(NSString*)nibNameOrNil bundle:(NSBundle*)nibBundleOrNil
-{
- return [self initWithEventStore:nil];
-}
-
-- (void)dealloc
-{
- [[NSNotificationCenter defaultCenter]removeObserver:self];
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(reloadEvents) name:EKEventStoreChangedNotification object:self.eventStore];
-
- self.cachedMonths = [[OSCache alloc]init];
-
- self.bgQueue = dispatch_queue_create("MGCMonthPlannerEKViewController.bgQueue", NULL);
-
- self.dateFormatter = [NSDateFormatter new];
- self.dateFormatter.dateStyle = NSDateFormatterNoStyle;
- self.dateFormatter.timeStyle = NSDateFormatterShortStyle;
-
- [self.eventKitSupport checkEventStoreAccessForCalendar:^(BOOL granted) {
- if (granted) {
- NSArray *calendars = [self.eventStore calendarsForEntityType:EKEntityTypeEvent];
- self.visibleCalendars = [NSSet setWithArray:calendars];
- [self reloadEvents];
- }
- }];
-
- self.monthPlannerView.calendar = self.calendar;
- [self.monthPlannerView registerClass:MGCStandardEventView.class forEventCellReuseIdentifier:EventCellReuseIdentifier];
-}
-
-- (void)viewDidAppear:(BOOL)animated
-{
- [super viewDidAppear:animated];
-
- [self loadEventsIfNeeded];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // nothing special to do here, the cache of events cachedMonths will clear by itself.
-}
-
-#pragma mark - Properties
-
-
-- (void)setCalendar:(NSCalendar *)calendar
-{
- _calendar = calendar;
- self.dateFormatter.calendar = calendar;
- self.monthPlannerView.calendar = calendar;
-}
-
-- (EKEventStore*)eventStore
-{
- return self.eventKitSupport.eventStore;
-}
-
-- (void)setVisibleCalendars:(NSSet*)visibleCalendars
-{
- _visibleCalendars = visibleCalendars;
- [self.monthPlannerView reloadEvents];
-}
-
-#pragma mark - Events loading
-
-- (NSArray*)eventsAtDate:(NSDate*)date
-{
- NSDate *firstOfMonth = [self.calendar mgc_startOfMonthForDate:date];
- NSMutableDictionary *days = [self.cachedMonths objectForKey:firstOfMonth];
-
- NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(EKEvent *ev, NSDictionary *bindings) {
- return [self.visibleCalendars containsObject:ev.calendar];
- }];
-
- NSArray *events = [[days objectForKey:date]filteredArrayUsingPredicate:pred];
-
- return events;
-}
-
-- (EKEvent*)eventAtIndex:(NSUInteger)index date:(NSDate*)date
-{
- NSArray *events = [self eventsAtDate:date];
- EKEvent *ev = [events objectAtIndex:index];
- return ev;
-}
-
-- (MGCDateRange*)visibleMonthsRange
-{
- MGCDateRange *visibleMonthsRange = nil;
-
- MGCDateRange *visibleDaysRange = [self.monthPlannerView visibleDays];
- if (visibleDaysRange) {
- NSDate *start = [self.calendar mgc_startOfMonthForDate:visibleDaysRange.start];
- NSDate *end = [self.calendar mgc_nextStartOfMonthForDate:visibleDaysRange.end];
- visibleMonthsRange = [MGCDateRange dateRangeWithStart:start end:end];
- }
-
- return visibleMonthsRange;
-}
-
-// returns an array of all events happening between startDate and endDate, sorted by start date
-- (NSArray*)fetchEventsFrom:(NSDate*)startDate to:(NSDate*)endDate calendars:(NSArray*)calendars
-{
- NSPredicate *predicate = [self.eventStore predicateForEventsWithStartDate:startDate endDate:endDate calendars:calendars];
-
- if (self.eventKitSupport.accessGranted) {
- NSArray *events = [self.eventStore eventsMatchingPredicate:predicate];
- if (events) {
- return [events sortedArrayUsingSelector:@selector(compareStartDateWithEvent:)];
- }
- }
-
- return [NSArray array];
-}
-
-- (NSDictionary*)allEventsInDateRange:(MGCDateRange*)range
-{
- NSArray *events = [self fetchEventsFrom:range.start to:range.end calendars:nil];
-
- NSUInteger numDaysInRange = [range components:NSCalendarUnitDay forCalendar:self.calendar].day;
- NSMutableDictionary *eventsPerDay = [NSMutableDictionary dictionaryWithCapacity:numDaysInRange];
-
- for (EKEvent *ev in events)
- {
- NSDate *start = [self.calendar mgc_startOfDayForDate:ev.startDate];
- MGCDateRange *eventRange = [MGCDateRange dateRangeWithStart:start end:ev.endDate];
- [eventRange intersectDateRange:range];
-
- [eventRange enumerateDaysWithCalendar:self.calendar usingBlock:^(NSDate *date, BOOL *stop){
- NSMutableArray *events = [eventsPerDay objectForKey:date];
- if (!events) {
- events = [NSMutableArray array];
- [eventsPerDay setObject:events forKey:date];
- }
-
- [events addObject:ev];
- }];
- }
-
- return eventsPerDay;
-}
-
-//- (void)cacheEvents:(NSDictionary*)events forMonthStartingAtDate:(NSDate*)date
-//{
-// [self.cachedMonths setObject:events forKey:date];
-// //[self.datesForMonthsToLoad removeObject:date];
-//
-// NSDate *rangeEnd = [self.calendar mgc_nextStartOfMonthForDate:date];
-// MGCDateRange *range = [MGCDateRange dateRangeWithStart:date end:rangeEnd];
-// [self.monthPlannerView reloadEventsInRange:range];
-//}
-
-- (void)bg_loadMonthStartingAtDate:(NSDate*)date
-{
- NSDate *end = [self.calendar mgc_nextStartOfMonthForDate:date];
- MGCDateRange *range = [MGCDateRange dateRangeWithStart:date end:end];
-
- NSDictionary *dic = [self allEventsInDateRange:range];
-
- dispatch_async(dispatch_get_main_queue(), ^{
-
- [self.cachedMonths setObject:dic forKey:date];
- //[self.datesForMonthsToLoad removeObject:date];
-
- NSDate *rangeEnd = [self.calendar mgc_nextStartOfMonthForDate:date];
- MGCDateRange *range = [MGCDateRange dateRangeWithStart:date end:rangeEnd];
- [self.monthPlannerView reloadEventsInRange:range];
-
- //[self cacheEvents:dic forMonthStartingAtDate:date];
- });
-}
-
-- (void)bg_loadOneMonth
-{
- __block NSDate *date;
-
- dispatch_sync(dispatch_get_main_queue(), ^{
- date = [self.datesForMonthsToLoad firstObject];
- if (date) {
- [self.datesForMonthsToLoad removeObject:date];
- }
-
- if (![self.monthPlannerView.visibleDays intersectsDateRange:self.visibleMonths]) {
- date = nil;
- }
- });
-
- if (date) {
- [self bg_loadMonthStartingAtDate:date];
- }
-}
-
-- (void)addMonthToLoadingQueue:(NSDate*)monthStart
-{
- if (!self.datesForMonthsToLoad) {
- self.datesForMonthsToLoad = [NSMutableOrderedSet orderedSet];
- }
-
- [self.datesForMonthsToLoad addObject:monthStart];
-
- dispatch_async(self.bgQueue, ^{ [self bg_loadOneMonth]; });
-}
-
-- (void)loadEventsIfNeeded
-{
- [self.datesForMonthsToLoad removeAllObjects];
-
- MGCDateRange *visibleRange = [self visibleMonthsRange];
-
- NSUInteger months = [visibleRange components:NSCalendarUnitMonth forCalendar:self.calendar].month;
-
- for (int i = 0; i < months; i++)
- {
- NSDateComponents *dc = [NSDateComponents new];
- dc.month = i;
- NSDate *date = [self.calendar dateByAddingComponents:dc toDate:visibleRange.start options:0];
-
- if (![self.cachedMonths objectForKey:date])
- [self addMonthToLoadingQueue:date];
- }
-}
-
-#pragma mark - MGCMonthPlannerViewDataSource
-
-- (NSInteger)monthPlannerView:(MGCMonthPlannerView*)view numberOfEventsAtDate:(NSDate*)date
-{
- NSUInteger count = [[self eventsAtDate:date]count];
- return count;
-}
-
-- (MGCDateRange*)monthPlannerView:(MGCMonthPlannerView *)view dateRangeForEventAtIndex:(NSUInteger)index date:(NSDate *)date
-{
- NSArray *events = [self eventsAtDate:date];
- EKEvent *ev = [events objectAtIndex:index];
-
- MGCDateRange *range = nil;
- if (ev)
- {
- range = [MGCDateRange dateRangeWithStart:ev.startDate end:ev.endDate];
- }
-
- return range;
-}
-
-- (MGCEventView*)monthPlannerView:(MGCMonthPlannerView*)view cellForEventAtIndex:(NSUInteger)index date:(NSDate *)date
-{
- NSArray *events = [self eventsAtDate:date];
- EKEvent *ev = [events objectAtIndex:index];
-
- MGCStandardEventView *evCell = nil;
- if (ev)
- {
- evCell = (MGCStandardEventView*)[view dequeueReusableCellWithIdentifier:EventCellReuseIdentifier forEventAtIndex:index date:date];
- evCell.title = ev.title;
- evCell.subtitle = ev.location;
- evCell.detail = [self.dateFormatter stringFromDate:ev.startDate];
- evCell.color = [UIColor colorWithCGColor:ev.calendar.CGColor];
-
- NSDate *start = [self.calendar mgc_startOfDayForDate:ev.startDate];
- NSDate *end = [self.calendar mgc_nextStartOfDayForDate:ev.endDate];
- MGCDateRange *range = [MGCDateRange dateRangeWithStart:start end:end];
- NSInteger numDays = [range components:NSCalendarUnitDay forCalendar:self.calendar].day;
-
- evCell.style = (ev.isAllDay || numDays > 1 ? MGCStandardEventViewStylePlain : MGCStandardEventViewStyleDefault|MGCStandardEventViewStyleDot);
- evCell.style |= ev.isAllDay ?: MGCStandardEventViewStyleDetail;
- }
- return evCell;
-}
-
-- (BOOL)monthPlannerView:(MGCMonthPlannerView*)view canMoveCellForEventAtIndex:(NSUInteger)index date:(NSDate*)date
-{
- NSArray *events = [self eventsAtDate:date];
- EKEvent *ev = [events objectAtIndex:index];
- return (ev.calendar.allowsContentModifications);
-}
-
-- (MGCEventView*)monthPlannerView:(MGCMonthPlannerView*)view cellForNewEventAtDate:(NSDate*)date
-{
- EKCalendar *defaultCalendar = [self.eventStore defaultCalendarForNewEvents];
-
- MGCStandardEventView *evCell = [MGCStandardEventView new];
- evCell.title = NSLocalizedString(@"New Event", nil);
- evCell.color = [UIColor colorWithCGColor:defaultCalendar.CGColor];
- return evCell;
-}
-
-#pragma mark - MGCMonthPlannerViewDelegate
-
-- (void)monthPlannerViewDidScroll:(MGCMonthPlannerView *)view
-{
- MGCDateRange *visibleMonths = [self visibleMonthsRange];
-
- if (![visibleMonths isEqual:self.visibleMonths]) {
- self.visibleMonths = visibleMonths;
- [self loadEventsIfNeeded];
- }
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view didSelectEventAtIndex:(NSUInteger)index date:(NSDate *)date
-{
- MGCEventView *cell = [view cellForEventAtIndex:index date:date];
- if (cell) {
- CGRect rect = [view convertRect:cell.bounds fromView:cell];
- [self showEditControllerForEventAtIndex:index date:date rect:rect];
- }
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view didDeselectEventAtIndex:(NSUInteger)index date:(NSDate *)date
-{
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view didSelectDayCellAtDate:(NSDate *)date
-{
- NSLog(@"selected day at : %@", date);
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view didShowCell:(MGCEventView*)cell forNewEventAtDate:(NSDate*)date
-{
- EKEvent *ev = [EKEvent eventWithEventStore:self.eventStore];
- ev.startDate = date;
- ev.endDate = date;
- ev.allDay = YES;
-
- [self showPopoverForNewEvent:ev withCell:cell];
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view willStartMovingEventAtIndex:(NSUInteger)index date:(NSDate*)date
-{
- EKEvent *ev = [self eventAtIndex:index date:date];
- NSAssert(ev, @"Can't find event at index %lu date %@", (unsigned long)index, date);
- self.movedEvent = ev;
-}
-
-- (void)monthPlannerView:(MGCMonthPlannerView*)view didMoveEventAtIndex:(NSUInteger)index date:(NSDate*)dateOld toDate:(NSDate*)dateNew
-{
- NSAssert(self.movedEvent, @"moved event is nil !");
-
- NSDateComponents *comp = [self.calendar components:NSCalendarUnitMinute fromDate:self.movedEvent.startDate toDate:self.movedEvent.endDate options:0];
- NSDate *endNew = [self.calendar dateByAddingComponents:comp toDate:dateNew options:0];
-
- self.movedEvent.startDate = dateNew;
- self.movedEvent.endDate = endNew;
-
- //NSLog(@"will move ev from %@ to %@", dateOld, dateNew);
- [self.eventKitSupport saveEvent:self.movedEvent completion:^(BOOL completion) {
- [self.monthPlannerView endInteraction];
- }];
-
- self.movedEvent = nil;
-
- [self.monthPlannerView endInteraction];
-}
-
-#pragma mark - EKEventEditViewDelegate
-
-- (void)eventEditViewController:(EKEventEditViewController *)controller didCompleteWithAction:(EKEventEditViewAction)action
-{
- [self dismissViewControllerAnimated:YES completion:nil];
- [self.monthPlannerView endInteraction];
-}
-
-#pragma mark - EKEventViewDelegate
-
-- (void)eventViewController:(EKEventViewController *)controller didCompleteWithAction:(EKEventViewAction)action
-{
- [self.monthPlannerView deselectEvent];
- if (controller.presentingViewController) {
- [self dismissViewControllerAnimated:YES completion:nil];
- } else {
- [controller.navigationController popViewControllerAnimated:YES];
- }
-}
-
-#pragma mark - UIPopoverPresentationControllerDelegate
-
-//- (UIViewController*)presentationController:(UIPresentationController *)controller viewControllerForAdaptivePresentationStyle:(UIModalPresentationStyle)style
-//{
-// if ([controller.presentedViewController isKindOfClass:EKEventEditViewController.class]) {
-// return controller.presentedViewController;
-// }
-// else {
-// UINavigationController *nc = [[UINavigationController alloc]initWithRootViewController:controller.presentedViewController];
-// nc.delegate = self;
-// return nc;
-// }
-//}
-
-- (void)popoverPresentationController:(UIPopoverPresentationController *)popoverPresentationController willRepositionPopoverToRect:(inout CGRect *)rect inView:(inout UIView *__autoreleasing _Nonnull *)view
-{
- MGCEventView *cell = self.monthPlannerView.selectedEventView;
- if (cell) {
- CGRect newRect = [self.monthPlannerView convertRect:cell.bounds fromView:cell];
- *rect = newRect;
- }
-}
-
-- (void)popoverPresentationControllerDidDismissPopover:(UIPopoverPresentationController *)popoverPresentationController
-{
- [self.monthPlannerView deselectEvent];
-}
-
-#pragma mark - UINavigationControllerDelegate
-
-//- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
-//{
-//}
-
-@end
diff --git a/Podfile b/Podfile
deleted file mode 100644
index 3b942a78..00000000
--- a/Podfile
+++ /dev/null
@@ -1,6 +0,0 @@
-source 'https://github.com/CocoaPods/Specs.git'
-use_frameworks!
-
-target "CalendarDemo" do
-pod 'CalendarLib' , :path => '.'
-end
diff --git a/Podfile.lock b/Podfile.lock
deleted file mode 100644
index 1932e9ee..00000000
--- a/Podfile.lock
+++ /dev/null
@@ -1,22 +0,0 @@
-PODS:
- - CalendarLib (2.0):
- - OrderedDictionary (~> 1.2)
- - OSCache (~> 1.2)
- - OrderedDictionary (1.2)
- - OSCache (1.2.1)
-
-DEPENDENCIES:
- - CalendarLib (from `.`)
-
-EXTERNAL SOURCES:
- CalendarLib:
- :path: "."
-
-SPEC CHECKSUMS:
- CalendarLib: 6b0f0bcd4cdf21e2090c999ffee7609fcaf52483
- OrderedDictionary: 9cc5d69c5c5314ad696ed1839190724e83d534c7
- OSCache: 826996b68e8542a8a3d8af1ab0a0fc3070d8f357
-
-PODFILE CHECKSUM: f0c33ba38eb3de386c34bcd88371a475e11b702a
-
-COCOAPODS: 1.0.1
diff --git a/Pods/Manifest.lock b/Pods/Manifest.lock
deleted file mode 100644
index 1932e9ee..00000000
--- a/Pods/Manifest.lock
+++ /dev/null
@@ -1,22 +0,0 @@
-PODS:
- - CalendarLib (2.0):
- - OrderedDictionary (~> 1.2)
- - OSCache (~> 1.2)
- - OrderedDictionary (1.2)
- - OSCache (1.2.1)
-
-DEPENDENCIES:
- - CalendarLib (from `.`)
-
-EXTERNAL SOURCES:
- CalendarLib:
- :path: "."
-
-SPEC CHECKSUMS:
- CalendarLib: 6b0f0bcd4cdf21e2090c999ffee7609fcaf52483
- OrderedDictionary: 9cc5d69c5c5314ad696ed1839190724e83d534c7
- OSCache: 826996b68e8542a8a3d8af1ab0a0fc3070d8f357
-
-PODFILE CHECKSUM: f0c33ba38eb3de386c34bcd88371a475e11b702a
-
-COCOAPODS: 1.0.1
diff --git a/Pods/OSCache/LICENSE.md b/Pods/OSCache/LICENSE.md
deleted file mode 100644
index f1b63c7d..00000000
--- a/Pods/OSCache/LICENSE.md
+++ /dev/null
@@ -1,20 +0,0 @@
-OSCache
-version 1.2.1, Decembet 18th, 2015
-
-Copyright (C) 2014 Charcoal Design
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
\ No newline at end of file
diff --git a/Pods/OSCache/README.md b/Pods/OSCache/README.md
deleted file mode 100644
index cc10b7b0..00000000
--- a/Pods/OSCache/README.md
+++ /dev/null
@@ -1,114 +0,0 @@
-[](https://travis-ci.org/nicklockwood/OSCache)
-
-Purpose
---------------
-
-**OSCache** is an open-source re-implementation of [`NSCache`](https://developer.apple.com/library/mac/documentation/cocoa/reference/NSCache_Class/Reference/Reference.html) that behaves in a predictable, debuggable way. **OSCache** is an LRU (Least-Recently-Used) cache, meaning that objects will be discarded oldest-first based on the last time they were accessed. **OSCache** will automatically empty itself in the event of a memory warning.
-
-**OSCache** inherits from `NSCache` for convenience (so it can be used more easily as a drop-in replacement), but does not rely on any inherited behaviour.
-
-**OSCache** implements all of the NSCache methods, but does not currently support anything relating to `NSDiscardableContent` and will always return `NO` for `evictsObjectsWithDiscardedContent` regardless of the value you set it to.
-
-
-Supported OS & SDK Versions
------------------------------
-
-* Supported build target - iOS 9.1 / tvOS 9.1 / Mac OS 10.11 (Xcode 7.1, Apple LLVM compiler 7.1)
-* Earliest supported deployment target - iOS 7.0 / tvOS 9.0 / Mac OS 10.10
-* Earliest compatible deployment target - iOS 4.3 / tvOS 9.0 / Mac OS 10.6
-
-*NOTE:* 'Supported' means that the library has been tested with this version. 'Compatible' means that the library should work on this OS version (i.e. it doesn't rely on any unavailable SDK features) but is no longer being tested for compatibility and may require tweaking or bug fixes to run correctly.
-
-
-ARC Compatibility
-------------------
-
-**OSCache** requires ARC. If you wish to use **OSCache** in a non-ARC project, just add the `-fobjc-arc` compiler flag to the `OSCache.m` class. To do this, go to the Build Phases tab in your target settings, open the Compile Sources group, double-click `OSCache.m` in the list and type `-fobjc-arc` into the popover.
-
-If you wish to convert your whole project to ARC, comment out the `#error` line in `OSCache.m`, then run the Edit > Refactor > Convert to Objective-C ARC... tool in Xcode and make sure all files that you wish to use ARC for (including `OSCache.m`) are checked.
-
-
-Installation
---------------
-
-To install **OSCache** into your app, drag the `OSCache.h` and `.m` files into your project. Create and use `OSCache` instances exactly as you would a normal `NSCache`.
-
-
-Properties & Methods
----------------------
-
-In addition to all of the inherited NSCache methods, OSCache adds the following:
-
- @property (nonatomic, readonly) NSUInteger count;
-
-The total number of items currently stored in the cache;
-
- @property (nonatomic, readonly) totalCost;
-
-The total cost of all items currently stored in the cache;
-
- - (void)enumerateKeysAndObjectsUsingBlock:(void (^)(id key, id obj, BOOL *stop))block;
-
-Enumerates the keys and values stored in the cache.
-
-
-OSCacheDelegate
---------------
-
-The **OSCache** delegate now implements the `OSCacheDelegate` protocol, which is a superset of `NSCacheDelegate`. You can declare your delegate as supporting either the `OSCacheDelegate` or `NSCacheDelegate` protocols; either will work without warnings.
-
-`OSCacheDelegate` adds the following optional method:
-
- - (BOOL)cache:(OSCache *)cache shouldEvictObject:(id)entry;
-
-This method is called before **OSCache** evicts an object from the cache, giving you an opportunity to veto the eviction. You can use this method to implement your own cache clearing criteria (e.g. you could decide to only empty the cache if another cache is already empty).
-
-The method will only be called as the result of adding an item to the cache, or in the event of a memory warning; it is not called if you explicitly remove and object using `-removeObjectForKey:` or `-removeAllObjects`. Objects will always be evicted in order of least recently used.
-
-
-Performance
---------------
-
-When the cache still has space in it, reading, writing and removing entries has constant time (O(1)). When the cache is full, insertion time degrades to linear (O(n)), but reading and removal remain constant.
-
-For this reason, you should ideally size your cache so that it will never get full, but if that isn't possible, it's better to select a smaller size, as very large sizes will degrade significantly in performance when they fill up.
-
-
-Release Notes
----------------
-
-Version 1.2.1
-
-- Fixed bug where `enumerateKeysAndObjectsUsingBlock:` returned internal wrapper instead of cached object
-- Added lightweight generics annotations
-
-Version 1.2
-
-- Substantially improved insertion performance when cache is full
-- Fixed bug where private container objects were passed to delegate instead of cached object
-- Added enumeration and subscripting access for cached objects and keys
-
-Version 1.1.2
-
-- Added nullability annotations
-- Fixed nullability error in Xcode 7
-- Fixed unit tests for Xcode 6.3 + 7
-
-Version 1.1.1
-
-- Fixed bug where sequence numbers would not be resequenced if an overflow happens when reading from cache
-
-Version 1.1
-
-- Exposed the `-count` and `-totalCost` properties
-- Added `OSCacheDelegate` protocol, which is a superset of `NSCacheDelegate`
-- Added optional `-cache:shouldEvictObject:` delegate method
-- If cache is cleared as the result of a memory warning, `-cache:shouldEvictObject:` and `-cache:willEvictObject:` is now called for each item
-- Now uses sequence numbers instead of time for sorting cache items (more reliable)
-- Now uses `NSLock` instead of `dispatch_semaphore` (more appropriate)
-- `OSCache` still behaves as if it inherits from `NSCache`, but no longer actually does so, avoiding possible breakage if Apple changes the `NSCache` implementation in future
-- Added unit tests
-
-Version 1.0
-
-- First Release
diff --git a/Pods/OrderedDictionary/LICENCE.md b/Pods/OrderedDictionary/LICENCE.md
deleted file mode 100644
index 17c4d927..00000000
--- a/Pods/OrderedDictionary/LICENCE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-OrderedDictionary
-
-Version 1.2, September 28th, 2014
-
-Copyright (C) 2010 Charcoal Design
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-3. This notice may not be removed or altered from any source distribution.
\ No newline at end of file
diff --git a/Pods/OrderedDictionary/OrderedDictionary/OrderedDictionary.m b/Pods/OrderedDictionary/OrderedDictionary/OrderedDictionary.m
deleted file mode 100755
index 8a89a234..00000000
--- a/Pods/OrderedDictionary/OrderedDictionary/OrderedDictionary.m
+++ /dev/null
@@ -1,352 +0,0 @@
-//
-// OrderedDictionary.m
-//
-// Version 1.2
-//
-// Created by Nick Lockwood on 21/09/2010.
-// Copyright 2010 Charcoal Design
-//
-// Distributed under the permissive zlib license
-// Get the latest version from here:
-//
-// https://github.com/nicklockwood/OrderedDictionary
-//
-// This software is provided 'as-is', without any express or implied
-// warranty. In no event will the authors be held liable for any damages
-// arising from the use of this software.
-//
-// Permission is granted to anyone to use this software for any purpose,
-// including commercial applications, and to alter it and redistribute it
-// freely, subject to the following restrictions:
-//
-// 1. The origin of this software must not be misrepresented; you must not
-// claim that you wrote the original software. If you use this software
-// in a product, an acknowledgment in the product documentation would be
-// appreciated but is not required.
-//
-// 2. Altered source versions must be plainly marked as such, and must not be
-// misrepresented as being the original software.
-//
-// 3. This notice may not be removed or altered from any source distribution.
-//
-
-#import "OrderedDictionary.h"
-
-
-#pragma GCC diagnostic ignored "-Wobjc-missing-property-synthesis"
-#pragma GCC diagnostic ignored "-Wdirect-ivar-access"
-#pragma GCC diagnostic ignored "-Wgnu"
-
-
-#import
-#if !__has_feature(objc_arc)
-#error This class requires automatic reference counting
-#endif
-
-
-@implementation OrderedDictionary
-{
- @protected
- NSArray *_values;
- NSOrderedSet *_keys;
-}
-
-+ (instancetype)dictionaryWithContentsOfFile:(NSString *)path
-{
- return [self dictionaryWithDictionary:[NSDictionary dictionaryWithContentsOfFile:path]];
-}
-
-+ (instancetype)dictionaryWithContentsOfURL:(NSURL *)url
-{
- return [self dictionaryWithDictionary:[NSDictionary dictionaryWithContentsOfURL:url]];
-}
-
-- (instancetype)initWithContentsOfFile:(NSString *)path
-{
- return [self initWithDictionary:[NSDictionary dictionaryWithContentsOfFile:path]];
-}
-
-- (instancetype)initWithContentsOfURL:(NSURL *)url
-{
- return [self initWithDictionary:[NSDictionary dictionaryWithContentsOfURL:url]];
-}
-
-- (instancetype)initWithObjects:(NSArray *)objects forKeys:(NSArray *)keys
-{
- if ((self = [super init]))
- {
- _values = [objects copy];
- _keys = [NSOrderedSet orderedSetWithArray:keys];
-
- NSParameterAssert([_keys count] == [_values count]);
- }
- return self;
-}
-
-- (instancetype)initWithObjects:(const __unsafe_unretained id [])objects forKeys:(const __unsafe_unretained id [])keys count:(NSUInteger)count
-{
- if ((self = [super init]))
- {
- _values = [[NSArray alloc] initWithObjects:objects count:count];
- _keys = [[NSOrderedSet alloc] initWithObjects:keys count:count];
-
- NSParameterAssert([_values count] == count);
- NSParameterAssert([_keys count] == count);
- }
- return self;
-}
-
-- (Class)classForCoder
-{
- return [self class];
-}
-
-- (instancetype)initWithCoder:(NSCoder *)decoder
-{
- if ((self = [super init]))
- {
- _values = [decoder decodeObjectOfClass:[NSArray class] forKey:@"values"];
- _keys = [decoder decodeObjectOfClass:[NSOrderedSet class] forKey:@"keys"];
- }
- return self;
-}
-
-- (void)encodeWithCoder:(NSCoder *)coder
-{
- [coder encodeObject:_values forKey:@"values"];
- [coder encodeObject:_keys forKey:@"keys"];
-}
-
-- (instancetype)copyWithZone:(__unused NSZone *)zone
-{
- return self;
-}
-
-- (instancetype)mutableCopyWithZone:(NSZone *)zone
-{
- return [[MutableOrderedDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (NSArray *)allKeys
-{
- return [_keys array];
-}
-
-- (NSArray *)allValues
-{
- return [_values copy];
-}
-
-- (NSUInteger)count
-{
- return [_keys count];
-}
-
-- (NSUInteger)indexOfKey:(id)key {
- return [_keys indexOfObject:key];
-}
-
-- (id)objectForKey:(id)key
-{
- NSUInteger index = [_keys indexOfObject:key];
- if (index != NSNotFound)
- {
- return _values[index];
- }
- return nil;
-
-}
-
-- (NSEnumerator *)keyEnumerator
-{
- return [_keys objectEnumerator];
-}
-
-- (NSEnumerator *)reverseKeyEnumerator
-{
- return [_keys reverseObjectEnumerator];
-}
-
-- (NSEnumerator *)objectEnumerator
-{
- return [_values objectEnumerator];
-}
-
-- (NSEnumerator *)reverseObjectEnumerator
-{
- return [_values reverseObjectEnumerator];
-}
-
-- (void)enumerateKeysAndObjectsWithIndexUsingBlock:(void (^)(id key, id obj, NSUInteger idx, BOOL *stop))block
-{
- [_keys enumerateObjectsUsingBlock:^(id key, NSUInteger idx, BOOL *stop) {
- block(key, self->_values[idx], idx, stop);
- }];
-}
-
-- (id)keyAtIndex:(NSUInteger)index
-{
- return _keys[index];
-}
-
-- (id)objectAtIndex:(NSUInteger)index
-{
- return _values[index];
-}
-
-- (id)objectAtIndexedSubscript:(NSUInteger)index
-{
- return _values[index];
-}
-
-@end
-
-
-@implementation MutableOrderedDictionary
-
-#define _mutableValues ((NSMutableArray *)_values)
-#define _mutableKeys ((NSMutableOrderedSet *)_keys)
-
-+ (instancetype)dictionaryWithCapacity:(NSUInteger)count
-{
- return [(MutableOrderedDictionary *)[self alloc] initWithCapacity:count];
-}
-
-- (instancetype)initWithObjects:(const __unsafe_unretained id [])objects forKeys:(const __unsafe_unretained id [])keys count:(NSUInteger)count
-{
- if ((self = [super init]))
- {
- _values = [[NSMutableArray alloc] initWithObjects:objects count:count];
- _keys = [[NSMutableOrderedSet alloc] initWithObjects:keys count:count];
- }
- return self;
-}
-
-- (id)initWithCapacity:(NSUInteger)capacity
-{
- if ((self = [super init]))
- {
- _values = [[NSMutableArray alloc] initWithCapacity:capacity];
- _keys = [[NSMutableOrderedSet alloc] initWithCapacity:capacity];
- }
- return self;
-}
-
-- (id)init
-{
- return [self initWithCapacity:0];
-}
-
-- (instancetype)initWithCoder:(NSCoder *)decoder
-{
- if ((self = [super init]))
- {
- _values = [decoder decodeObjectOfClass:[NSMutableArray class] forKey:@"values"];
- _keys = [decoder decodeObjectOfClass:[NSMutableOrderedSet class] forKey:@"keys"];
- }
- return self;
-}
-
-- (id)copyWithZone:(NSZone *)zone
-{
- return [[OrderedDictionary allocWithZone:zone] initWithDictionary:self];
-}
-
-- (void)addEntriesFromDictionary:(NSDictionary *)otherDictionary
-{
- [otherDictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, __unused BOOL *stop) {
- [self setObject:obj forKey:key];
- }];
-}
-
-- (void)insertObject:(id)object forKey:(id)key atIndex:(NSUInteger)index
-{
- [self removeObjectForKey:key];
- [_mutableKeys insertObject:key atIndex:index];
- [_mutableValues insertObject:object atIndex:index];
-}
-
-- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)object
-{
- _mutableValues[index] = object;
-}
-
-- (void)setObject:(id)object atIndexedSubscript:(NSUInteger)index
-{
- _mutableValues[index] = object;
-}
-
-- (void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2
-{
- [_mutableKeys exchangeObjectAtIndex:idx1 withObjectAtIndex:idx2];
- [_mutableValues exchangeObjectAtIndex:idx1 withObjectAtIndex:idx2];
-}
-
-- (void)removeAllObjects
-{
- [_mutableKeys removeAllObjects];
- [_mutableValues removeAllObjects];
-}
-
-- (void)removeObjectAtIndex:(NSUInteger)index
-{
- [_mutableKeys removeObjectAtIndex:index];
- [_mutableValues removeObjectAtIndex:index];
-}
-
-- (void)removeObjectForKey:(id)key
-{
- NSUInteger index = [self->_keys indexOfObject:key];
- if (index != NSNotFound)
- {
- [self removeObjectAtIndex:index];
- }
-}
-
-- (void)removeObjectsForKeys:(NSArray *)keyArray
-{
- for (id key in [keyArray copy])
- {
- [self removeObjectForKey:key];
- }
-}
-
-- (void)setDictionary:(NSDictionary *)otherDictionary
-{
- [_mutableKeys removeAllObjects];
- [_mutableKeys addObjectsFromArray:[otherDictionary allKeys]];
- [_mutableValues setArray:[otherDictionary allValues]];
-}
-
-- (void)setObject:(id)object forKey:(id)key
-{
- NSUInteger index = [_keys indexOfObject:key];
- if (index != NSNotFound)
- {
- _mutableValues[index] = object;
- }
- else
- {
- [_mutableKeys addObject:key];
- [_mutableValues addObject:object];
- }
-}
-
-- (void)setValue:(id)value forKey:(NSString *)key
-{
- if (value)
- {
- [self setObject:value forKey:key];
- }
- else
- {
- [self removeObjectForKey:key];
- }
-}
-
-- (void)setObject:(id)object forKeyedSubscript:(id )key
-{
- [self setObject:object forKey:key];
-}
-
-@end
diff --git a/Pods/OrderedDictionary/README.md b/Pods/OrderedDictionary/README.md
deleted file mode 100644
index aa09be4d..00000000
--- a/Pods/OrderedDictionary/README.md
+++ /dev/null
@@ -1,69 +0,0 @@
-[](https://travis-ci.org/nicklockwood/OrderedDictionary)
-
-
-Purpose
---------------
-
-The order of objects stored in an NSDictionary is undefined. Often it is useful to be able to loop through a set of key/value pairs and have the objects returned in the order in which they were inserted. This library provides two classes, OrderedDictionary and MutableOrderedDictionary that implement that behaviour.
-
-
-Supported OS & SDK Versions
------------------------------
-
-* Supported build target - iOS 8.0 / Mac OS 10.9 (Xcode 6.0, Apple LLVM compiler 6.0)
-* Earliest supported deployment target - iOS 5.0 / Mac OS 10.7
-* Earliest compatible deployment target - iOS 4.3 / Mac OS 10.6
-
-NOTE: 'Supported' means that the library has been tested with this version. 'Compatible' means that the library should work on this OS version (i.e. it doesn't rely on any unavailable SDK features) but is no longer being tested for compatibility and may require tweaking or bug fixes to run correctly.
-
-
-ARC Compatibility
-------------------
-
-OrderedDictionary requires ARC. If you wish to use OrderedDictionary in a non-ARC project, just add the -fobjc-arc compiler flag to the OrderedDictionary.m class. To do this, go to the Build Phases tab in your target settings, open the Compile Sources group, double-click OrderedDictionary.m in the list and type -fobjc-arc into the popover.
-
-If you wish to convert your whole project to ARC, comment out the #error line in OrderedDictionary.m, then run the Edit > Refactor > Convert to Objective-C ARC... tool in Xcode and make sure all files that you wish to use ARC for (including OrderedDictionary.m) are checked.
-
-
-Thread Safety
---------------
-
-Access to an OrderedDictionary is inherently thread safe because it is immutable. Access to a MutableOrderedDictionary is not thread safe unless you ensure that no thread attempts to read from the dictionary whilst another is writing to it.
-
-
-Installation
---------------
-
-To install OrderedDictionary into your app, drag the OrderedDictionary.h and .m files into your project.
-
-
-Release Notes
----------------
-
-Version 1.2
-
-- Now supports NSCoding
-- Now supports reading and writing from a property list (order and mutability preserved)
-- Added keyAtIndex: method
-- Added replaceObjectAtIndex:withObject: and setObject:atIndexedSubscript: methods
-- Added exchangeObjectAtIndex:withObjectAtIndex: method
-- setObject:forKeyedSubscript: now works with non-string keys
-- Now uses NSOrderedSet internally, for better performance
-- Added unit tests
-
-Version 1.1.1
-
-- Added enumerateKeysAndObjectsWithIndexUsingBlock: method
-- Now conforms to -Weverything warning level
-
-Version 1.1
-
-- Now requires ARC
-- Updated to remove warnings in latest iOS
-- Removed OrderedMutableDictionary variant
-- Now complies to -Wextra warning level
-- Added podspec
-
-Version 1.0
-
-- Initial release
\ No newline at end of file
diff --git a/Pods/Pods.xcodeproj/project.pbxproj b/Pods/Pods.xcodeproj/project.pbxproj
deleted file mode 100644
index 0e9f9138..00000000
--- a/Pods/Pods.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,1323 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- 0BD8EEF83D60B467C0D92522C179EF3F /* MGCReusableObjectQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = D8A75E26ECCE9E325A71FE30987EDF49 /* MGCReusableObjectQueue.m */; };
- 10040D2BC447B188F90C6D1358FF833B /* MGCDayPlannerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 69ADBAC255FCEC8B18E2D22CEB022244 /* MGCDayPlannerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 10440B43B679E057C81AE26E6737C71A /* Pods-CalendarDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F46BB6ABD311E312D5CE6A1A3521632F /* Pods-CalendarDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 12E7AF496E5CBE616581F40EA8CC55FF /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 184D1D2346ED6E14A32ADF6A8380122B /* UIKit.framework */; };
- 15382445402A28617FCA964461A6B4BA /* MGCMonthPlannerViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 0EC117D89CD9649F60918F291C163452 /* MGCMonthPlannerViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 165AC579BF526F5FA7BC861EB1E98A5E /* MGCYearCalendarMonthHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = CB2C94953057A7A4E757F95D59B4E75B /* MGCYearCalendarMonthHeaderView.m */; };
- 16C92160004A461104976AE8D9ECECC1 /* CalendarLib-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = AF033CC11CFDD51637546D1E566D7555 /* CalendarLib-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 19F22C8E0461D90DCB5CAA2E2FD67B02 /* MGCTimedEventsViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = A021769F55E122F239757FDC93C0B8B7 /* MGCTimedEventsViewLayout.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 1A9BC91D8D76AC397062ACE2EB451390 /* MGCMonthPlannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 934AC6397F68D5F15DA64421BE08C1A4 /* MGCMonthPlannerView.m */; };
- 283AE0B9767480D604A0F53E39522C3D /* MGCDayPlannerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C8709F47F1202384A6577453DF2E776 /* MGCDayPlannerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 283F36B27EFB452A37D27FBDAD6EB173 /* MGCEventKitSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = CF0F9DD62CFDC941842A2D67F57E9289 /* MGCEventKitSupport.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 29E8849D9EE6CF5F258DCD59CAE90BA3 /* MGCDateRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DE721EBDAE294A03673CD1248B07ABC /* MGCDateRange.m */; };
- 2BEB9A448F785B4ABD58E7E5A0C0AAB8 /* MGCEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = 15CA1070A72D5B616A44BC999DC6575F /* MGCEventView.m */; };
- 3260AFF8730CC2F514A4B476F6E3B1C9 /* MGCEventsRowView.m in Sources */ = {isa = PBXBuildFile; fileRef = C08DFD4AF9A6CEA2A502ACD58A728303 /* MGCEventsRowView.m */; };
- 346A291DD56A77A5080532CCF8C8C0DA /* MGCDayColumnCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 3BA83E09087DAB7A93486006F5D66EC7 /* MGCDayColumnCell.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 35029C6B4FA6AD6A0553D5BA04E025EA /* MGCAlignedGeometry.m in Sources */ = {isa = PBXBuildFile; fileRef = CF4B07529A2197D70A55B6D7B5BCECBD /* MGCAlignedGeometry.m */; };
- 35168AD739FC86E090E22E4D715D77BD /* MGCReusableObjectQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 96410F223170B0D6732DB4AB7632821F /* MGCReusableObjectQueue.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 35F955276513957B6951657920F606D1 /* Pods-CalendarDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 25233512573BAC19936AB8B585997361 /* Pods-CalendarDemo-dummy.m */; };
- 37DBF567D2C4D15EC52DD728B4A4C2ED /* MGCMonthPlannerBackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F7F98D1CBD468157CC87E1534FD297D /* MGCMonthPlannerBackgroundView.m */; };
- 3C1CC6C04D875D926256FFAB09BA85EC /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E475E0EAF339997987B1A35247D49DE /* CoreGraphics.framework */; };
- 3D8DB0D93E99C225519CB0B964BB76F0 /* MGCMonthPlannerWeekView.m in Sources */ = {isa = PBXBuildFile; fileRef = EC30C1BC622800CC72FA23CF9CB8AB40 /* MGCMonthPlannerWeekView.m */; };
- 3E7B77774073428F0EDBA7F9B27B498D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D064917209003916B29AF2C1D58E6B7 /* Foundation.framework */; };
- 3F0BCD07266D82C97C13C958CA64C33D /* MGCDayPlannerEKViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7B32538B37024E5C7870BF811F48A57C /* MGCDayPlannerEKViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 3F5F2CEFF434DDCA14403D6B50D9D5DC /* OrderedDictionary-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D39AF81A0F8E48F554E38EC0E237D15 /* OrderedDictionary-dummy.m */; };
- 40270C224A640E091730C3F668E3633D /* MGCDateRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EA301017D15B64FEE4ACA4D179F98E6 /* MGCDateRange.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 4397926F702DA9AE79D00C59106E2099 /* Constant.h in Headers */ = {isa = PBXBuildFile; fileRef = A14FC8E1DA423047B4BD53F770157AA2 /* Constant.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 44C3A8E49CF779F8E6C61A9E1F51A74D /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = D2176FE612DD0596CE7C681E14BEEA3D /* en.lproj */; };
- 4865DF5B9828CC1A6D9134053729AD4C /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D064917209003916B29AF2C1D58E6B7 /* Foundation.framework */; };
- 4922375228078DC8286BD4E99CD1EE21 /* OSCache.m in Sources */ = {isa = PBXBuildFile; fileRef = 7B109FCF8326A98A81D6FE07BA9A2CE3 /* OSCache.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
- 49B450EAE456ECB2647A3D637CC1B852 /* MGCMonthPlannerViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 361E02A32A0D91554059D7DA815376ED /* MGCMonthPlannerViewLayout.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 4B0870E36D23BD129E6C0280E2808F3E /* MGCEventCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F8642DF879250346F1FFEF4BD8D9BE06 /* MGCEventCell.m */; };
- 53BC63EF2BFA0161AD495D4705E5B73D /* MGCMonthPlannerHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C2884C2460A111F124151B5DC9ED17D /* MGCMonthPlannerHeaderView.m */; };
- 54986D8A0769E0968396794DB5CF53AD /* MGCEventsRowView.h in Headers */ = {isa = PBXBuildFile; fileRef = 3A1AFEA81FE3EEF9BD457D565C2F56F7 /* MGCEventsRowView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 5553D815BA0ECF462F0454F8CF32B6C9 /* MGCEventKitSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 7247DD48FFD9C0A9A6592AFF50EAB445 /* MGCEventKitSupport.m */; };
- 573CA837DA4F7C1B9371A8A283001B90 /* MGCMonthPlannerBackgroundView.h in Headers */ = {isa = PBXBuildFile; fileRef = 952C7E727EED0A50DA45041DE31137F8 /* MGCMonthPlannerBackgroundView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 575AD525B5810BD268D31DE10E9D981C /* MGCYearCalendarMonthCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 9AEA7D2CB8BE37041E07C43FD98BD53E /* MGCYearCalendarMonthCell.m */; };
- 5B5865D94AE1962D0BDE732CCCA5FCB4 /* NSCalendar+MGCAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 23A81DC455C8A11ABDE63E387401038A /* NSCalendar+MGCAdditions.m */; };
- 5BDF04C89F0F2C5BF48B3FD813AA5E2E /* MGCStandardEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = E9CF035F29148878B13673869A38496E /* MGCStandardEventView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 61F3B5E100AF6B8DFCBD8EC07A31735E /* MGCAllDayEventsViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 1BD5A1B70C24D5E15C7902A3810AD71B /* MGCAllDayEventsViewLayout.m */; };
- 666876A324A754DE9EC656D6B4A75C8A /* MGCTimeRowsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 639E8D3DEC720A9B52315E961AE4C21F /* MGCTimeRowsView.m */; };
- 6B8A6D46DE2B271A9CF861E8EBA075D5 /* MGCEventCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 5E45A50DA2DE157EEED14F329472CFCD /* MGCEventCell.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 72A71ECA963D06465DFD8B3E12AD41BE /* MGCDayPlannerEKViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7860FA75B2828CFF3C94D193ED84E8F4 /* MGCDayPlannerEKViewController.m */; };
- 75EA39995111C0925C1F8793C0F19255 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D064917209003916B29AF2C1D58E6B7 /* Foundation.framework */; };
- 7A02B3D0D0A5C4F9A05668A732FDF73F /* OrderedDictionary-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 334F0D464F275262D14ACFCE6E1E9D68 /* OrderedDictionary-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 7CB4DDDC12B79389CFC8C49DCF39C1A2 /* OSCache-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 30DC81CEC32D28A3FA47B4D4057E07E1 /* OSCache-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 84A07A7FFF9C2A776980FEE43091F865 /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = D83C7B4870A7AC1B7D6EA9D800818168 /* fr.lproj */; };
- 853E943F3A44E653A19A993E22E885C0 /* MGCMonthPlannerView.h in Headers */ = {isa = PBXBuildFile; fileRef = 1FE16E5343143115FF8D70DB3E614D7E /* MGCMonthPlannerView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 85EE00D6E106AFF3B3D6A5CE1EAAD041 /* MGCDayColumnCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D826449F2F9E350884A3E4683683487 /* MGCDayColumnCell.m */; };
- 8A637532D7C717B031F5479C9DFDCF96 /* OrderedDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = E63EF56F13F78687828039FC20CB4645 /* OrderedDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 8AAB64C0FF8986D4580019BB0F37066D /* MGCYearCalendarMonthCell.h in Headers */ = {isa = PBXBuildFile; fileRef = 484752CE8E4D5723FC9E1A2BA7FE6DE7 /* MGCYearCalendarMonthCell.h */; settings = {ATTRIBUTES = (Project, ); }; };
- 8C5F4307DCA368C7F9DB7ED256DA31D1 /* MGCDayPlannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 43488965D4CAA1FDD110FDD5A4BF085E /* MGCDayPlannerViewController.m */; };
- 8D2AC2F545A689196AD380EB39531B0A /* MGCMonthPlannerEKViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 035838A3E1D5E440BB9A3B651CB0622E /* MGCMonthPlannerEKViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 9C706FCCF0E309E935E3D2FE5A591D07 /* CalendarLib-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = B1870F870C6857E28D9CE5AF9B2A1098 /* CalendarLib-dummy.m */; };
- 9C8B2BAEF1120713575CAD5BE1DD916E /* MGCMonthMiniCalendarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C99F8B5BDB75CF001C1E1E7A4121D4E /* MGCMonthMiniCalendarView.m */; };
- A4E3633A2C1959A55C3CFDFDFD37FBC2 /* NSCalendar+MGCAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CBDCA5399E009C1D573DE21980363BB9 /* NSCalendar+MGCAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- A76C549C7C4534A81AD9B6ACA732DDB8 /* MGCEventCellLayoutAttributes.m in Sources */ = {isa = PBXBuildFile; fileRef = 4585227A1FC9C596796A9E3CA5C4D56E /* MGCEventCellLayoutAttributes.m */; };
- A82B51DBD620C3F9150E16E71B1125FD /* MGCMonthPlannerHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4BDB84AF839AEE748D67C6C78AC17D1A /* MGCMonthPlannerHeaderView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AB3FE3B79D8358BDB3E3C508558276B4 /* MGCTimeRowsView.h in Headers */ = {isa = PBXBuildFile; fileRef = 77C49D72D796EFAA8308A1D0B15E8D25 /* MGCTimeRowsView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- AB467272C402ACAEBE8E72A7FEA04A55 /* MGCTimedEventsViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = 40F8F6F011D72119E3CF3F18A91BCDAF /* MGCTimedEventsViewLayout.m */; };
- AEF45D844795868F471C231D4DBADA86 /* EventKitUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4A2FC2AF2409E900FA1C0219F88231A5 /* EventKitUI.framework */; };
- B34A1260B1EC1E724AC20BBD8329671F /* MGCAlignedGeometry.h in Headers */ = {isa = PBXBuildFile; fileRef = D87993AA397DD65C4DECA997776FE0B2 /* MGCAlignedGeometry.h */; settings = {ATTRIBUTES = (Project, ); }; };
- B4479162A06A4B6E1321D7C5A73581A4 /* MGCStandardEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = 6E47DD2122985745BFECD98CDF38DADE /* MGCStandardEventView.m */; };
- B74FE528568313CE30EA6D663738BB34 /* MGCYearCalendarView.h in Headers */ = {isa = PBXBuildFile; fileRef = 68B7B88BE0B1447662D1EAB5590D5939 /* MGCYearCalendarView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- B826786804B51980ECAEA62B1B41B2BC /* OrderedDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 2BE2EA39F8FE5E48E7B9712F35754B74 /* OrderedDictionary.m */; settings = {COMPILER_FLAGS = "-DOS_OBJECT_USE_OBJC=0"; }; };
- BC129756EB184EB7B54FC078D77EAE6F /* CalendarLib.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 474F46F9D3CD4C66494C6398945993BC /* CalendarLib.bundle */; };
- BC32A46E1D31055C00AB19D7 /* MGCCalendarHeaderCell.h in Headers */ = {isa = PBXBuildFile; fileRef = BC32A4691D31055C00AB19D7 /* MGCCalendarHeaderCell.h */; };
- BC32A46F1D31055C00AB19D7 /* MGCCalendarHeaderCell.m in Sources */ = {isa = PBXBuildFile; fileRef = BC32A46A1D31055C00AB19D7 /* MGCCalendarHeaderCell.m */; };
- BC32A4711D31055C00AB19D7 /* MGCCalendarHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC32A46B1D31055C00AB19D7 /* MGCCalendarHeaderCell.xib */; };
- BC32A4721D31055C00AB19D7 /* MGCCalendarHeaderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = BC32A46B1D31055C00AB19D7 /* MGCCalendarHeaderCell.xib */; };
- BC32A4731D31055C00AB19D7 /* MGCCalendarHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = BC32A46C1D31055C00AB19D7 /* MGCCalendarHeaderView.h */; };
- BC32A4741D31055C00AB19D7 /* MGCCalendarHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = BC32A46D1D31055C00AB19D7 /* MGCCalendarHeaderView.m */; };
- BC3300D03E96ADC4526AC9CFE3110876 /* MGCAllDayEventsViewLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 36C709E8D3709828F4CDCC6F9E8B8F1F /* MGCAllDayEventsViewLayout.h */; settings = {ATTRIBUTES = (Project, ); }; };
- BC4DAE0E1E3ED7AEF78839F4815A0211 /* MGCMonthPlannerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F33A77B1C88FA226CA3F123445A1AB4 /* MGCMonthPlannerViewController.m */; };
- BE3DF61E19CE6628EFBC28FC4E5249F1 /* MGCYearCalendarView.m in Sources */ = {isa = PBXBuildFile; fileRef = 56C8D6DE7DAE5F35E652CCE40F50B208 /* MGCYearCalendarView.m */; };
- C172318723A82A556756CE7A10ED572B /* EventKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 84B7B1DA5EB4C3FA05D4BB2B2B9700FD /* EventKit.framework */; };
- C2E9436B5AD60E85AD494381590EBEC4 /* MGCMonthPlannerViewDayCell.h in Headers */ = {isa = PBXBuildFile; fileRef = EA47F11125BF0BED9FC31F762B3C5EAA /* MGCMonthPlannerViewDayCell.h */; settings = {ATTRIBUTES = (Project, ); }; };
- C604B7A49ABD9407AA6E50F1D1B4BF3B /* MGCMonthPlannerViewLayout.m in Sources */ = {isa = PBXBuildFile; fileRef = F70A86D4E3C34B4408539DE36D34D85E /* MGCMonthPlannerViewLayout.m */; };
- C7C218477AEAAFD0EA27A58A9573F231 /* MGCEventCellLayoutAttributes.h in Headers */ = {isa = PBXBuildFile; fileRef = 60DA0727BCAAE002FE5C811A4E13B6DA /* MGCEventCellLayoutAttributes.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CBC4E2B6ED53D394ACEE641727ABD9F2 /* MGCMonthPlannerWeekView.h in Headers */ = {isa = PBXBuildFile; fileRef = 682F557D317E6B35EF72FB6490A1B17F /* MGCMonthPlannerWeekView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- CBE4FB461D2A7FEC45F3F58EB90D2906 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7D064917209003916B29AF2C1D58E6B7 /* Foundation.framework */; };
- D03C03FB5C6CA1F143621A42605C78A6 /* NSAttributedString+MGCAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = D51543B38B03130DB1C1328336A7210A /* NSAttributedString+MGCAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
- D4AF7DE5DD942DA2C7819174168125C8 /* MGCYearCalendarMonthHeaderView.h in Headers */ = {isa = PBXBuildFile; fileRef = 4EA158124FBDD717544FED9263FBD303 /* MGCYearCalendarMonthHeaderView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- D865046DF81EB3FB4A8D12EB03740124 /* MGCInteractiveEventView.m in Sources */ = {isa = PBXBuildFile; fileRef = 272436DEBAF47D9A85D674C955A18A5E /* MGCInteractiveEventView.m */; };
- DEF1FBD0689397BC6AB8BDA6BB8AB78A /* OrderedDictionary.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 71D6E0D174F4DE38CD29304BC2BA2282 /* OrderedDictionary.framework */; };
- DF0507A59387E5CBE881FD0E56A6EFCC /* OSCache.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0AC2F4E580C735F08DDD3E5212CA9F43 /* OSCache.framework */; };
- E9AE3F473F8DBF38B493A0680606EDDA /* MGCMonthPlannerViewDayCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D5747BE9957E0A918225217BBE905449 /* MGCMonthPlannerViewDayCell.m */; };
- EC8FF04893A567958DF9E6CE758D24EB /* OSCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 84EFFEA70CE3F29C1F727328CD11F594 /* OSCache.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F091908CE32B34A524ABBD458D4C2FDA /* NSAttributedString+MGCAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 0F8285ABCC5BD108881B8D64CDE642EC /* NSAttributedString+MGCAdditions.m */; };
- F0BFAF44B9F2E107744B1EC5ED51A912 /* OSCache-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D312E569E43BEDEAB80ABB313B2DA37B /* OSCache-dummy.m */; };
- F25B2B6D821D0E1D771058D5FF140FD3 /* MGCMonthMiniCalendarView.h in Headers */ = {isa = PBXBuildFile; fileRef = CE13CF28836D0DBD67E1C1547545C67A /* MGCMonthMiniCalendarView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- F5D52A699620031B048F46462041E2F2 /* MGCInteractiveEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0658BFDB814DEB3ECCDA99ECA7521DD9 /* MGCInteractiveEventView.h */; settings = {ATTRIBUTES = (Project, ); }; };
- F73109644FB32F739BF1198430F0A34F /* MGCMonthPlannerEKViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DEADC186D2B7AD760C9F3F892E3DC97 /* MGCMonthPlannerEKViewController.m */; };
- FA3B1812DFF8E7491ED66C2395EFB8AC /* MGCEventView.h in Headers */ = {isa = PBXBuildFile; fileRef = DD8B59A20F855C881309ECC830CB2A24 /* MGCEventView.h */; settings = {ATTRIBUTES = (Public, ); }; };
- FC40921F50ED56C61523597E5D292C4D /* MGCDayPlannerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 025D804BECA3FA4FB3437E02C746D838 /* MGCDayPlannerView.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- 116AD1AD124691B81F860EABA00AFA9D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 2673FB444CAD63D7872199869D12B242;
- remoteInfo = "CalendarLib-CalendarLib";
- };
- 34A195D9FB4A9B50F0F1B11ED70A896D /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = C4C32B98A88C3F59ADE6A79B82E1867F;
- remoteInfo = OrderedDictionary;
- };
- 4C01AAE245FE633F3DEA17EE7B779B6B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 954B3024145E89BE4F9E6E9D69C08294;
- remoteInfo = CalendarLib;
- };
- 9380B5DACC543EBA205B2EE9EA115A29 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 14730700B2D60DF9994CA196CE7ADE3C;
- remoteInfo = OSCache;
- };
- 983B1F146273EC8F5F8DF62B5F4778BD /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = C4C32B98A88C3F59ADE6A79B82E1867F;
- remoteInfo = OrderedDictionary;
- };
- 9DD2E24E413DC847B0033DF85707DD8B /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = 14730700B2D60DF9994CA196CE7ADE3C;
- remoteInfo = OSCache;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- 025D804BECA3FA4FB3437E02C746D838 /* MGCDayPlannerView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MGCDayPlannerView.m; sourceTree = ""; };
- 035838A3E1D5E440BB9A3B651CB0622E /* MGCMonthPlannerEKViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerEKViewController.h; sourceTree = ""; };
- 03ED48CF8AC5E601600DC1AF567A32DB /* OSCache-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OSCache-prefix.pch"; sourceTree = ""; };
- 058EE5E1389071701541D945B395BB8D /* ResourceBundle-CalendarLib-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-CalendarLib-Info.plist"; sourceTree = ""; };
- 0621FC5DD83F68E761116875B059412C /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
- 0658BFDB814DEB3ECCDA99ECA7521DD9 /* MGCInteractiveEventView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCInteractiveEventView.h; sourceTree = ""; };
- 08E408886344FC31ED4A170A9DC261D8 /* Pods-CalendarDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-CalendarDemo.debug.xcconfig"; sourceTree = ""; };
- 0AC2F4E580C735F08DDD3E5212CA9F43 /* OSCache.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = OSCache.framework; sourceTree = BUILT_PRODUCTS_DIR; };
- 0EC117D89CD9649F60918F291C163452 /* MGCMonthPlannerViewController.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewController.h; sourceTree = ""; };
- 0F7F98D1CBD468157CC87E1534FD297D /* MGCMonthPlannerBackgroundView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MGCMonthPlannerBackgroundView.m; sourceTree = ""; };
- 0F8285ABCC5BD108881B8D64CDE642EC /* NSAttributedString+MGCAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSAttributedString+MGCAdditions.m"; sourceTree = ""; };
- 15CA1070A72D5B616A44BC999DC6575F /* MGCEventView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MGCEventView.m; sourceTree = ""; };
- 184D1D2346ED6E14A32ADF6A8380122B /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
- 1B19161673C40175196589DF322D71AD /* CalendarLib.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = CalendarLib.xcconfig; sourceTree = ""; };
- 1BD5A1B70C24D5E15C7902A3810AD71B /* MGCAllDayEventsViewLayout.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MGCAllDayEventsViewLayout.m; sourceTree = ""; };
- 1FE16E5343143115FF8D70DB3E614D7E /* MGCMonthPlannerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerView.h; sourceTree = ""; };
- 23A81DC455C8A11ABDE63E387401038A /* NSCalendar+MGCAdditions.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "NSCalendar+MGCAdditions.m"; sourceTree = ""; };
- 25233512573BAC19936AB8B585997361 /* Pods-CalendarDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-CalendarDemo-dummy.m"; sourceTree = ""; };
- 272436DEBAF47D9A85D674C955A18A5E /* MGCInteractiveEventView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = MGCInteractiveEventView.m; sourceTree = ""; };
- 28F9BDA61B9C749A357770C19ACD3B8A /* OSCache.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = OSCache.xcconfig; sourceTree = ""; };
- 2BE2EA39F8FE5E48E7B9712F35754B74 /* OrderedDictionary.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; name = OrderedDictionary.m; path = OrderedDictionary/OrderedDictionary.m; sourceTree = ""; };
- 2C8709F47F1202384A6577453DF2E776 /* MGCDayPlannerView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCDayPlannerView.h; sourceTree = ""; };
- 30DC81CEC32D28A3FA47B4D4057E07E1 /* OSCache-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OSCache-umbrella.h"; sourceTree = ""; };
- 334F0D464F275262D14ACFCE6E1E9D68 /* OrderedDictionary-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "OrderedDictionary-umbrella.h"; sourceTree = ""; };
- 34023C9D2F76E5CD4716B8BEBB929B92 /* OSCache.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = OSCache.modulemap; sourceTree = ""; };
- 361E02A32A0D91554059D7DA815376ED /* MGCMonthPlannerViewLayout.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = MGCMonthPlannerViewLayout.h; sourceTree = "