├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── feature_request.md │ └── improvement.md ├── .gitignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SlidePilot.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved └── xcshareddata │ └── xcschemes │ └── SlidePilot.xcscheme ├── SlidePilot ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon.appiconset │ │ ├── AppIcon 1024x1024.png │ │ ├── AppIcon 128x128.png │ │ ├── AppIcon 16x16.png │ │ ├── AppIcon 256x256-1.png │ │ ├── AppIcon 256x256.png │ │ ├── AppIcon 32x32-1.png │ │ ├── AppIcon 32x32.png │ │ ├── AppIcon 512x512-1.png │ │ ├── AppIcon 512x512.png │ │ ├── AppIcon 64x64.png │ │ └── Contents.json │ ├── BlackCurtain.imageset │ │ ├── Contents.json │ │ ├── WhiteCurtain.png │ │ └── WhiteCurtain@2x.png │ ├── Canvas.imageset │ │ ├── Canvas.png │ │ ├── Canvas@2x.png │ │ ├── Canvas@3x.png │ │ └── Contents.json │ ├── CanvasTB.imageset │ │ ├── CanvasTB.png │ │ ├── CanvasTB@2x.png │ │ └── Contents.json │ ├── CanvasWhite.imageset │ │ ├── CanvasWhite.png │ │ ├── CanvasWhite@2x.png │ │ ├── CanvasWhite@3x.png │ │ └── Contents.json │ ├── Circle.imageset │ │ ├── Circle.png │ │ ├── Circle@2x.png │ │ └── Contents.json │ ├── CirclePointer.imageset │ │ ├── CirclePointer.png │ │ ├── CirclePointer@2x.png │ │ ├── CirclePointer@3x.png │ │ └── Contents.json │ ├── ClockColor.colorset │ │ └── Contents.json │ ├── Close.imageset │ │ ├── Close.png │ │ ├── Close@2x.png │ │ ├── Close@3x.png │ │ └── Contents.json │ ├── CloseTB.imageset │ │ ├── CloseTB.png │ │ ├── CloseTB@2x.png │ │ └── Contents.json │ ├── Contents.json │ ├── Cursor.imageset │ │ ├── Contents.json │ │ ├── Cursor.png │ │ └── Cursor@2x.png │ ├── CursorAppearance.imageset │ │ ├── Contents.json │ │ ├── CursorAppearance.png │ │ └── CursorAppearance@2x.png │ ├── DividerColor.colorset │ │ └── Contents.json │ ├── Dot.imageset │ │ ├── Contents.json │ │ ├── Dot.png │ │ └── Dot@2x.png │ ├── DotPointer.imageset │ │ ├── Contents.json │ │ ├── DotPointer.png │ │ ├── DotPointer@2x.png │ │ └── DotPointer@3x.png │ ├── Draw.imageset │ │ ├── Contents.json │ │ ├── Draw.png │ │ └── Draw@2x.png │ ├── Eraser.imageset │ │ ├── Contents.json │ │ ├── Eraser.png │ │ ├── Eraser@2x.png │ │ └── Eraser@3x.png │ ├── EraserTB.imageset │ │ ├── Contents.json │ │ ├── EraserTB.png │ │ └── EraserTB@2x.png │ ├── GeneralIcon.imageset │ │ ├── Contents.json │ │ ├── GeneralIcon.png │ │ ├── GeneralIcon@2x.png │ │ └── GeneralIcon@3x.png │ ├── Hand.imageset │ │ ├── Contents.json │ │ ├── Hand.png │ │ └── Hand@2x.png │ ├── Individual.imageset │ │ ├── Contents.json │ │ ├── Individual.png │ │ └── Individual@2x.png │ ├── LayoutDoubleOff.imageset │ │ ├── Contents.json │ │ ├── LayoutDoubleOff.png │ │ ├── LayoutDoubleOff@2x.png │ │ └── LayoutDoubleOff@3x.png │ ├── LayoutDoubleOn.imageset │ │ ├── Contents.json │ │ ├── LayoutDoubleOn.png │ │ ├── LayoutDoubleOn@2x.png │ │ └── LayoutDoubleOn@3x.png │ ├── LayoutIcon.imageset │ │ ├── Contents.json │ │ ├── LayoutIcon.png │ │ ├── LayoutIcon@2x.png │ │ └── LayoutIcon@3x.png │ ├── LayoutSingleOff.imageset │ │ ├── Contents.json │ │ ├── LayoutSingleOff.png │ │ ├── LayoutSingleOff@2x.png │ │ └── LayoutSingleOff@3x.png │ ├── LayoutSingleOn.imageset │ │ ├── Contents.json │ │ ├── LayoutSingleOn.png │ │ ├── LayoutSingleOn@2x.png │ │ └── LayoutSingleOn@3x.png │ ├── LayoutTripleLeftOff.imageset │ │ ├── Contents.json │ │ ├── LayoutTripleLeftOff.png │ │ ├── LayoutTripleLeftOff@2x.png │ │ └── LayoutTripleLeftOff@3x.png │ ├── LayoutTripleLeftOn.imageset │ │ ├── Contents.json │ │ ├── LayoutTripleLeftOn.png │ │ ├── LayoutTripleLeftOn@2x.png │ │ └── LayoutTripleLeftOn@3x.png │ ├── LayoutTripleRightOff.imageset │ │ ├── Contents.json │ │ ├── LayoutTripleRightOff.png │ │ ├── LayoutTripleRightOff@2x.png │ │ └── LayoutTripleRightOff@3x.png │ ├── LayoutTripleRightOn.imageset │ │ ├── Contents.json │ │ ├── LayoutTripleRightOn.png │ │ ├── LayoutTripleRightOn@2x.png │ │ └── LayoutTripleRightOn@3x.png │ ├── NextSlide.imageset │ │ ├── Contents.json │ │ ├── NextSlide.png │ │ └── NextSlide@2x.png │ ├── OverTimeColor.colorset │ │ └── Contents.json │ ├── Pointer.imageset │ │ ├── Contents.json │ │ ├── Pointer.png │ │ └── Pointer@2x.png │ ├── PointerIcon.imageset │ │ ├── Contents.json │ │ ├── PointerIcon.png │ │ ├── PointerIcon@2x.png │ │ └── PointerIcon@3x.png │ ├── RemoteIcon.imageset │ │ ├── Contents.json │ │ ├── RemoteIcon.png │ │ ├── RemoteIcon@2x.png │ │ └── RemoteIcon@3x.png │ ├── RemoteIconLG.imageset │ │ ├── Contents.json │ │ └── RemoteIconLG.png │ ├── RunningTimeColor.colorset │ │ └── Contents.json │ ├── Target.imageset │ │ ├── Contents.json │ │ ├── Target.png │ │ └── Target@2x.png │ ├── TargetColor.imageset │ │ ├── Contents.json │ │ ├── TargetColor.png │ │ └── TargetColor@2x.png │ ├── TargetPointer.imageset │ │ ├── Contents.json │ │ ├── TargetPointer.png │ │ ├── TargetPointer@2x.png │ │ └── TargetPointer@3x.png │ ├── TargetPointerColor.imageset │ │ ├── Contents.json │ │ ├── TargetPointerColor.png │ │ ├── TargetPointerColor@2x.png │ │ └── TargetPointerColor@3x.png │ ├── WarningTriangle.imageset │ │ ├── Contents.json │ │ ├── WarningTriangle.png │ │ ├── WarningTriangle@2x.png │ │ └── WarningTriangle@3x.png │ └── WhiteCurtain.imageset │ │ ├── BlackCurtain.png │ │ ├── BlackCurtain@2x.png │ │ └── Contents.json ├── Base.lproj │ └── Main.storyboard ├── Controllers │ ├── CanvasController.swift │ ├── CompletionStatus.swift │ ├── ConfigurationController.swift │ ├── DisplayController.swift │ ├── DocumentController.swift │ ├── PageController.swift │ ├── PreferencesController.swift │ ├── TextFormatController.swift │ └── TimeController.swift ├── Helpers │ ├── AppStartTracker.swift │ ├── Array+Extension.swift │ ├── AwakeManager.swift │ ├── CAKeyframeAnimation+Extension.swift │ ├── Colors.swift │ ├── DrawingsExporter.swift │ ├── FileObserver.swift │ ├── NSAlert+Extension.swift │ ├── NSAttributedString+Extension.swift │ ├── NSImage+Extension.swift │ ├── NSView+Extension.swift │ ├── NotesDocument.swift │ ├── PDFDocument+Extension.swift │ ├── PDFPage+Extension.swift │ ├── RenderCache.swift │ └── String+Extension.swift ├── Info.plist ├── NavigationWindow.swift ├── PresentationViewController.swift ├── PresentationWindow.swift ├── PresentationWindowController.swift ├── PresenterViewController.swift ├── PresenterWindow.swift ├── PresenterWindowController.swift ├── Remote │ ├── Archiving.swift │ ├── Message.swift │ ├── RemoteController.swift │ └── RemoteService.swift ├── SlidePilot.entitlements ├── Sparkle.framework │ ├── Headers │ ├── Modules │ ├── PrivateHeaders │ ├── Resources │ ├── Sparkle │ └── Versions │ │ ├── A │ │ ├── Headers │ │ │ ├── SPUDownloadData.h │ │ │ ├── SPUDownloader.h │ │ │ ├── SPUDownloaderDelegate.h │ │ │ ├── SPUDownloaderProtocol.h │ │ │ ├── SPUDownloaderSession.h │ │ │ ├── SPUURLRequest.h │ │ │ ├── SUAppcast.h │ │ │ ├── SUAppcastItem.h │ │ │ ├── SUCodeSigningVerifier.h │ │ │ ├── SUErrors.h │ │ │ ├── SUExport.h │ │ │ ├── SUStandardVersionComparator.h │ │ │ ├── SUUpdater.h │ │ │ ├── SUUpdaterDelegate.h │ │ │ ├── SUVersionComparisonProtocol.h │ │ │ ├── SUVersionDisplayProtocol.h │ │ │ └── Sparkle.h │ │ ├── Modules │ │ │ └── module.modulemap │ │ ├── PrivateHeaders │ │ │ └── SUUnarchiver.h │ │ ├── Resources │ │ │ ├── Autoupdate.app │ │ │ │ └── Contents │ │ │ │ │ ├── Info.plist │ │ │ │ │ ├── MacOS │ │ │ │ │ ├── Autoupdate │ │ │ │ │ └── fileop │ │ │ │ │ ├── PkgInfo │ │ │ │ │ ├── Resources │ │ │ │ │ ├── AppIcon.icns │ │ │ │ │ ├── Base.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── SUStatus.nib │ │ │ │ │ ├── ar.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ca.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── cs.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── da.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── de.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── el.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── es.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── fi.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── fr.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── he.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── hr.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── hu.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── is.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── it.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ja.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ko.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── nb.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── nl.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pl.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pt_BR.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── pt_PT.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ro.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── ru.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sk.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sl.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── sv.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── th.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── tr.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── uk.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ ├── zh_CN.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ └── zh_TW.lproj │ │ │ │ │ │ └── Sparkle.strings │ │ │ │ │ └── _CodeSignature │ │ │ │ │ └── CodeResources │ │ │ ├── Base.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.nib │ │ │ │ ├── SUUpdateAlert.nib │ │ │ │ ├── SUUpdatePermissionPrompt.nib │ │ │ │ │ ├── keyedobjects-110000.nib │ │ │ │ │ └── keyedobjects.nib │ │ │ │ └── Sparkle.strings │ │ │ ├── Info.plist │ │ │ ├── ReleaseNotesColorStyle.css │ │ │ ├── SUModelTranslation.plist │ │ │ ├── SUStatus.nib │ │ │ ├── ar.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── ca.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── cs.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── da.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── de.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── el.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── en.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── SUUpdatePermissionPrompt.strings │ │ │ ├── es.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── fi.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── fr.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── he.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── hr.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── hu.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── is.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── it.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── ja.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── ko.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── nb.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── nl.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── pl.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_BR.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── pt_PT.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── ro.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── ru.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── sk.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── sl.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── sv.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── th.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── tr.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── uk.lproj │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ ├── zh_CN.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ │ └── zh_TW.lproj │ │ │ │ ├── SUAutomaticUpdateAlert.strings │ │ │ │ ├── SUUpdateAlert.strings │ │ │ │ ├── SUUpdatePermissionPrompt.strings │ │ │ │ └── Sparkle.strings │ │ ├── Sparkle │ │ └── _CodeSignature │ │ │ └── CodeResources │ │ └── Current ├── Views │ ├── Clipfree.swift │ ├── ConnectedPlayer.swift │ ├── Drawing │ │ ├── CanvasView.swift │ │ ├── ColorSwatchButton.swift │ │ ├── Drawing.swift │ │ ├── DrawingToolbar.swift │ │ └── IconButton.swift │ ├── LayoutEditor │ │ ├── Base.lproj │ │ │ └── LayoutEditor.xib │ │ ├── LayoutConfiguration.swift │ │ ├── LayoutConfigurationView.swift │ │ ├── LayoutEditorViewController.swift │ │ ├── LayoutSlideView.swift │ │ ├── LayoutSymbolView.swift │ │ ├── SlideSymbolView.swift │ │ ├── de.lproj │ │ │ └── LayoutEditor.strings │ │ └── fr.lproj │ │ │ └── LayoutEditor.strings │ ├── Notes │ │ ├── NotesEditor.swift │ │ └── NotesTextView.swift │ ├── Preferences │ │ ├── Base.lproj │ │ │ ├── GeneralPreferences.xib │ │ │ ├── RemotePreferences.xib │ │ │ ├── RemoteVerificationViewController.xib │ │ │ └── TrustedDevicesViewController.xib │ │ ├── GeneralPreferencesViewController.swift │ │ ├── Preferences+PaneIdentifiers.swift │ │ ├── RemotePreferencesViewController.swift │ │ ├── RemoteVerificationViewController.swift │ │ ├── TrustedDevicesViewController.swift │ │ ├── de.lproj │ │ │ ├── GeneralPreferences.strings │ │ │ ├── RemotePreferences.strings │ │ │ ├── RemoteVerificationViewController.strings │ │ │ └── TrustedDevicesViewController.strings │ │ └── fr.lproj │ │ │ ├── GeneralPreferences.strings │ │ │ ├── RemotePreferences.strings │ │ │ ├── RemoteVerificationViewController.strings │ │ │ └── TrustedDevicesViewController.strings │ ├── Presentation │ │ ├── Base.lproj │ │ │ └── PointerEditor.xib │ │ ├── PointerDisplayView.swift │ │ ├── PointerEditorViewController.swift │ │ ├── PointerView.swift │ │ ├── de.lproj │ │ │ └── PointerEditor.strings │ │ └── fr.lproj │ │ │ └── PointerEditor.strings │ ├── Slide │ │ ├── NSColor+Extension.swift │ │ ├── NSDatePicker+Extension.swift │ │ ├── NSImageView+Extension.swift │ │ ├── PDFPageView.swift │ │ ├── SlideArrangementView+ViewSetup.swift │ │ ├── SlideArrangementView.swift │ │ ├── SlideView.swift │ │ └── SplitView.swift │ ├── SlideInfoLabel.swift │ ├── Thumbnail │ │ ├── ThumbnailNavigation.swift │ │ └── ThumbnailView.swift │ ├── Time │ │ ├── ClockLabel.swift │ │ ├── TimeInterval+Extension.swift │ │ ├── TimeView.swift │ │ └── TimingControl.swift │ ├── TouchBar │ │ ├── PointerAppearanceTouchBar.swift │ │ ├── PresenterWindowController+TouchBar.swift │ │ └── TouchBarIdentifiers.swift │ └── UserNotice.swift ├── de.lproj │ ├── Localizable.strings │ ├── Main.storyboard │ └── Main.strings ├── en.lproj │ └── Localizable.strings └── fr.lproj │ ├── Localizable.strings │ ├── Main.storyboard │ └── Main.strings └── SlidePilotTests ├── Info.plist └── TimeIntervalExtTests.swift /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Bug description 11 | 12 | ### Steps to reproduce 13 | 14 | ### Expected behavior 15 | 16 | ### Actual behavior 17 | 18 | ### Details 19 | * macOS Version: 20 | * SlidePilot Version: 21 | 22 | ### Screenshots (optional) 23 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: feature 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Feature description 11 | 12 | ### Problems this feature would solve 13 | 14 | ### Alternative solutions 15 | 16 | ### Additional context 17 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/improvement.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Improvement 3 | about: Suggest an improvement for this project 4 | title: '' 5 | labels: improvement 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Problem Description 11 | 12 | ### Improvement Description 13 | 14 | ### Alternative solutions 15 | 16 | ### Additional context 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | SlidePilot.xcodeproj/xcuserdata/* 2 | SlidePilot.xcodeproj/project.xcworkspace/xcuserdata/* 3 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | Please read this, before contributing and make sure you follow the described steps. 3 | 4 | ### Preparation 5 | This repository uses the [git flow pattern](https://nvie.com/posts/a-successful-git-branching-model/). When contributing to the codebase with a pull request, please make sure you follow this patterns. This means for example, that new features branch off of the *develop* branch, with a branch named *feature/*. 6 | 7 | ### Code contribution rules 8 | Please make sure you **thoroughly test** the application after you've implemented the feature. Not only test the feature but also the **base functionality**, even if you think you feature doesn't interfere with it. Unwanted side effects can always occur, so it is best practice to also test that your implementation didn't break some other functionality. 9 | 10 | Also make sure that your code is well documented using **comments** describing your actions. 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SlidePilot for macOS 2 | 3 |

4 | 5 |

6 |

7 | PDF Presentation Tool for macOS, perfect for LaTex Beamer presentations 🖥 8 |

9 | 10 | This is the issue, feature and feedback tracking repository for SlidePilot on macOS. 11 | This is the source code of the SlidePilot app. If you want to report bugs, improvements, feature requests or anything else, feel free to open a new issue. 12 | 13 | Feel free to contribute to this app. When contributing, please be aware that this repository uses the **git flow** pattern. 14 | 15 | ## Download 16 | SlidePilot for macOS is available on [slidepilotapp.com](https://www.slidepilotapp.com/?utm_source=GitHub&utm_medium=Social&utm_campaign=Static) 17 | 18 | ## Contribution 19 | Please read the [contribution guidlines](CONTRIBUTING.md) before contributing to the code. 20 | 21 | ## Links 22 | - [Documentation](https://slidepilot.gitbook.io/slidepilot/) 23 | - [Features & Changelog](https://slidepilot.gitbook.io/slidepilot/changelog) 24 | - [Release Plan](https://slidepilot.gitbook.io/slidepilot/release-plan) 25 | 26 | ## FAQ 27 | 28 | * **What is SlidePilot?** 29 | > SlidePilot was developed for great presentation of LaTex generated presentation PDFs on macOS, especially for the Beamer class. But SlidePilot works great with other PDF presentations as well. 30 | 31 | * **How do I report a bug?** 32 | > If you've found a bug, we are more than happy if you report it. 33 | > You can do so by opening an issue in this repository or by writing an email. 34 | 35 | * **Can I request new features?** 36 | > Of course! New ideas which improve SlidePilot are always welcome. Feel free to open an issue in this repository or shoot us an [email](mailto:SlidePilot). 37 | 38 | * **How can I stay up to date?** 39 | > If you want to know the latest news about SlidePilot, subscribe to our [newsletter](https://slidepilotapp.us8.list-manage.com/subscribe/post?u=b76c3249644cb91c7a2e50596&id=049e8f25ef). 40 | -------------------------------------------------------------------------------- /SlidePilot.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SlidePilot.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SlidePilot.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "Preferences", 6 | "repositoryURL": "https://github.com/sindresorhus/Preferences", 7 | "state": { 8 | "branch": null, 9 | "revision": "886324b2f1ba58d9cda745a6dd53253179d73433", 10 | "version": "2.2.1" 11 | } 12 | } 13 | ] 14 | }, 15 | "version": 1 16 | } 17 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 1024x1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 1024x1024.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 128x128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 128x128.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 16x16.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 256x256-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 256x256-1.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 256x256.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 32x32-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 32x32-1.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 32x32.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 512x512-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 512x512-1.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 512x512.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/AppIcon.appiconset/AppIcon 64x64.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "AppIcon 16x16.png", 5 | "idiom" : "mac", 6 | "scale" : "1x", 7 | "size" : "16x16" 8 | }, 9 | { 10 | "filename" : "AppIcon 32x32-1.png", 11 | "idiom" : "mac", 12 | "scale" : "2x", 13 | "size" : "16x16" 14 | }, 15 | { 16 | "filename" : "AppIcon 32x32.png", 17 | "idiom" : "mac", 18 | "scale" : "1x", 19 | "size" : "32x32" 20 | }, 21 | { 22 | "filename" : "AppIcon 64x64.png", 23 | "idiom" : "mac", 24 | "scale" : "2x", 25 | "size" : "32x32" 26 | }, 27 | { 28 | "filename" : "AppIcon 128x128.png", 29 | "idiom" : "mac", 30 | "scale" : "1x", 31 | "size" : "128x128" 32 | }, 33 | { 34 | "filename" : "AppIcon 256x256-1.png", 35 | "idiom" : "mac", 36 | "scale" : "2x", 37 | "size" : "128x128" 38 | }, 39 | { 40 | "filename" : "AppIcon 256x256.png", 41 | "idiom" : "mac", 42 | "scale" : "1x", 43 | "size" : "256x256" 44 | }, 45 | { 46 | "filename" : "AppIcon 512x512-1.png", 47 | "idiom" : "mac", 48 | "scale" : "2x", 49 | "size" : "256x256" 50 | }, 51 | { 52 | "filename" : "AppIcon 512x512.png", 53 | "idiom" : "mac", 54 | "scale" : "1x", 55 | "size" : "512x512" 56 | }, 57 | { 58 | "filename" : "AppIcon 1024x1024.png", 59 | "idiom" : "mac", 60 | "scale" : "2x", 61 | "size" : "512x512" 62 | } 63 | ], 64 | "info" : { 65 | "author" : "xcode", 66 | "version" : 1 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/BlackCurtain.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "WhiteCurtain.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "WhiteCurtain@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/BlackCurtain.imageset/WhiteCurtain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/BlackCurtain.imageset/WhiteCurtain.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/BlackCurtain.imageset/WhiteCurtain@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/BlackCurtain.imageset/WhiteCurtain@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Canvas.imageset/Canvas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Canvas.imageset/Canvas.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Canvas.imageset/Canvas@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Canvas.imageset/Canvas@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Canvas.imageset/Canvas@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Canvas.imageset/Canvas@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Canvas.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Canvas.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Canvas@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Canvas@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasTB.imageset/CanvasTB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CanvasTB.imageset/CanvasTB.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasTB.imageset/CanvasTB@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CanvasTB.imageset/CanvasTB@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasTB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CanvasTB.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CanvasTB@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CanvasWhite.imageset/CanvasWhite@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CanvasWhite.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CanvasWhite.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CanvasWhite@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "CanvasWhite@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Circle.imageset/Circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Circle.imageset/Circle.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Circle.imageset/Circle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Circle.imageset/Circle@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Circle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Circle.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Circle@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CirclePointer.imageset/CirclePointer@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CirclePointer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CirclePointer.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CirclePointer@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "CirclePointer@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/ClockColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "srgb", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "blue" : "0.976", 9 | "green" : "0.855", 10 | "red" : "0.706" 11 | } 12 | }, 13 | "idiom" : "universal" 14 | } 15 | ], 16 | "info" : { 17 | "author" : "xcode", 18 | "version" : 1 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Close.imageset/Close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Close.imageset/Close.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Close.imageset/Close@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Close.imageset/Close@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Close.imageset/Close@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Close.imageset/Close@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Close.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Close.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Close@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Close@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CloseTB.imageset/CloseTB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CloseTB.imageset/CloseTB.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CloseTB.imageset/CloseTB@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CloseTB.imageset/CloseTB@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CloseTB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CloseTB.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CloseTB@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Cursor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Cursor.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Cursor@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Cursor.imageset/Cursor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Cursor.imageset/Cursor.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Cursor.imageset/Cursor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Cursor.imageset/Cursor@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CursorAppearance.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "CursorAppearance.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "CursorAppearance@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CursorAppearance.imageset/CursorAppearance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CursorAppearance.imageset/CursorAppearance.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/CursorAppearance.imageset/CursorAppearance@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/CursorAppearance.imageset/CursorAppearance@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/DividerColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "colors" : [ 3 | { 4 | "color" : { 5 | "color-space" : "gray-gamma-22", 6 | "components" : { 7 | "alpha" : "1.000", 8 | "white" : "0.300" 9 | } 10 | }, 11 | "idiom" : "universal" 12 | } 13 | ], 14 | "info" : { 15 | "author" : "xcode", 16 | "version" : 1 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Dot.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Dot.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Dot@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Dot.imageset/Dot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Dot.imageset/Dot.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Dot.imageset/Dot@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Dot.imageset/Dot@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/DotPointer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "DotPointer.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "DotPointer@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "DotPointer@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/DotPointer.imageset/DotPointer@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Draw.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Draw.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Draw@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Draw.imageset/Draw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Draw.imageset/Draw.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Draw.imageset/Draw@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Draw.imageset/Draw@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Eraser.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Eraser.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Eraser@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "Eraser@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Eraser.imageset/Eraser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Eraser.imageset/Eraser.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Eraser.imageset/Eraser@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Eraser.imageset/Eraser@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Eraser.imageset/Eraser@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Eraser.imageset/Eraser@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/EraserTB.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "EraserTB.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "EraserTB@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/EraserTB.imageset/EraserTB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/EraserTB.imageset/EraserTB.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/EraserTB.imageset/EraserTB@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/EraserTB.imageset/EraserTB@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/GeneralIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "GeneralIcon.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "GeneralIcon@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "GeneralIcon@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/GeneralIcon.imageset/GeneralIcon@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Hand.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Hand.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Hand@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Hand.imageset/Hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Hand.imageset/Hand.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Hand.imageset/Hand@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Hand.imageset/Hand@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Individual.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Individual.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Individual@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Individual.imageset/Individual.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Individual.imageset/Individual.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Individual.imageset/Individual@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Individual.imageset/Individual@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutDoubleOff.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutDoubleOff@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutDoubleOff@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOff.imageset/LayoutDoubleOff@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutDoubleOn.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutDoubleOn@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutDoubleOn@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutDoubleOn.imageset/LayoutDoubleOn@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutIcon.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutIcon@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutIcon@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutIcon.imageset/LayoutIcon@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutSingleOff.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutSingleOff@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutSingleOff@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOff.imageset/LayoutSingleOff@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutSingleOn.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutSingleOn@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutSingleOn@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutSingleOn.imageset/LayoutSingleOn@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutTripleLeftOff.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutTripleLeftOff@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutTripleLeftOff@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOff.imageset/LayoutTripleLeftOff@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutTripleLeftOn.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutTripleLeftOn@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutTripleLeftOn@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleLeftOn.imageset/LayoutTripleLeftOn@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutTripleRightOff.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutTripleRightOff@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutTripleRightOff@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOff.imageset/LayoutTripleRightOff@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "LayoutTripleRightOn.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "LayoutTripleRightOn@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "LayoutTripleRightOn@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/LayoutTripleRightOn.imageset/LayoutTripleRightOn@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/NextSlide.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "NextSlide.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "NextSlide@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/NextSlide.imageset/NextSlide.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/NextSlide.imageset/NextSlide.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/NextSlide.imageset/NextSlide@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/NextSlide.imageset/NextSlide@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/OverTimeColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "0.804", 13 | "alpha" : "1.000", 14 | "blue" : "0.216", 15 | "green" : "0.216" 16 | } 17 | } 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Pointer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Pointer.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Pointer@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Pointer.imageset/Pointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Pointer.imageset/Pointer.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Pointer.imageset/Pointer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Pointer.imageset/Pointer@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/PointerIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "PointerIcon.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "PointerIcon@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "PointerIcon@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/PointerIcon.imageset/PointerIcon@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RemoteIcon.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "RemoteIcon@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "RemoteIcon@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/RemoteIcon.imageset/RemoteIcon@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIconLG.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "RemoteIconLG.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "author" : "xcode", 19 | "version" : 1 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RemoteIconLG.imageset/RemoteIconLG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/RemoteIconLG.imageset/RemoteIconLG.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/RunningTimeColor.colorset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | }, 6 | "colors" : [ 7 | { 8 | "idiom" : "universal", 9 | "color" : { 10 | "color-space" : "srgb", 11 | "components" : { 12 | "red" : "1.000", 13 | "alpha" : "1.000", 14 | "blue" : "1.000", 15 | "green" : "1.000" 16 | } 17 | } 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "appearances" : [ 22 | { 23 | "appearance" : "luminosity", 24 | "value" : "dark" 25 | } 26 | ], 27 | "color" : { 28 | "color-space" : "srgb", 29 | "components" : { 30 | "red" : "0.314", 31 | "alpha" : "1.000", 32 | "blue" : "0.314", 33 | "green" : "0.314" 34 | } 35 | } 36 | } 37 | ] 38 | } -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Target.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "Target.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "Target@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Target.imageset/Target.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Target.imageset/Target.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/Target.imageset/Target@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/Target.imageset/Target@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetColor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TargetColor.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "TargetColor@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetColor.imageset/TargetColor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetColor.imageset/TargetColor.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetColor.imageset/TargetColor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetColor.imageset/TargetColor@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointer.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TargetPointer.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "TargetPointer@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "TargetPointer@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointer.imageset/TargetPointer@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointerColor.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "TargetPointerColor.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "TargetPointerColor@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "TargetPointerColor@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/TargetPointerColor.imageset/TargetPointerColor@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WarningTriangle.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "WarningTriangle.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "WarningTriangle@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "filename" : "WarningTriangle@3x.png", 15 | "idiom" : "universal", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "author" : "xcode", 21 | "version" : 1 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/WarningTriangle.imageset/WarningTriangle@3x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WhiteCurtain.imageset/BlackCurtain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/WhiteCurtain.imageset/BlackCurtain.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WhiteCurtain.imageset/BlackCurtain@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Assets.xcassets/WhiteCurtain.imageset/BlackCurtain@2x.png -------------------------------------------------------------------------------- /SlidePilot/Assets.xcassets/WhiteCurtain.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "BlackCurtain.png", 5 | "idiom" : "universal", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "filename" : "BlackCurtain@2x.png", 10 | "idiom" : "universal", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "author" : "xcode", 20 | "version" : 1 21 | }, 22 | "properties" : { 23 | "template-rendering-intent" : "template" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Controllers/CompletionStatus.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CompletionStatus.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 27.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | enum CompletionStatus { 12 | case success, failed, aborted 13 | 14 | init(_ success: Bool) { 15 | if success { 16 | self = .success 17 | } else { 18 | self = .failed 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SlidePilot/Controllers/TextFormatController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TextFormatController.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 26.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class TextFormatController: NSObject { 12 | 13 | 14 | // MARK: - Senders 15 | 16 | /** Sends a notification, that the font size should be increased. */ 17 | public static func increaseFontSize(sender: Any?) { 18 | NotificationCenter.default.post(name: .increaseFontSize, object: sender) 19 | } 20 | 21 | 22 | /** Sends a notification, that the font size should be decreased. */ 23 | public static func decreaseFontSize(sender: Any?) { 24 | NotificationCenter.default.post(name: .decreaseFontSize, object: sender) 25 | } 26 | 27 | 28 | 29 | // MARK: - Subscribe 30 | 31 | /** Subscribes a target to all `.increaseFontSize` notifications sent by `TextFormatController`. */ 32 | public static func subscribeIncreaseFontSize(target: Any, action: Selector) { 33 | NotificationCenter.default.addObserver(target, selector: action, name: .increaseFontSize, object: nil) 34 | } 35 | 36 | 37 | /** Subscribes a target to all `.decreaseFontSize` notifications sent by `TextFormatController`. */ 38 | public static func subscribeDecreaseFontSize(target: Any, action: Selector) { 39 | NotificationCenter.default.addObserver(target, selector: action, name: .decreaseFontSize, object: nil) 40 | } 41 | 42 | 43 | /** Unsubscribes a target from all notifications sent by `PageController`. */ 44 | public static func unsubscribe(target: Any) { 45 | NotificationCenter.default.removeObserver(target, name: .increaseFontSize, object: nil) 46 | NotificationCenter.default.removeObserver(target, name: .decreaseFontSize, object: nil) 47 | } 48 | } 49 | 50 | 51 | 52 | 53 | extension Notification.Name { 54 | static let increaseFontSize = Notification.Name("increaseFontSize") 55 | static let decreaseFontSize = Notification.Name("decreaseFontSize") 56 | } 57 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/AppStartTracker.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppStartTracker.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 02.04.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class AppStartTracker { 12 | 13 | private static let appStartCountKey = "AppStartCount" 14 | private static let countLimit = 6 15 | public static private(set) var count = 0 16 | 17 | public static func startup() { 18 | count = UserDefaults.standard.integer(forKey: appStartCountKey) 19 | if count < countLimit { 20 | count += 1 21 | UserDefaults.standard.set(count, forKey: appStartCountKey) 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/Array+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Array+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 10.11.21. 6 | // Copyright © 2021 Pascal Braband. All rights reserved. 7 | // 8 | 9 | extension Array { 10 | /** 11 | Moves an element to the end of the array and shifts all elements one position to the front. 12 | 13 | - parameter 14 | - index: The index of the element, that should be moved to the end. 15 | 16 | */ 17 | mutating func moveToEnd(from index: Int) { 18 | self.insert(self.remove(at: index), at: self.count) 19 | } 20 | 21 | 22 | /** 23 | Moves an element to the beginning of the array and shifts all elements one position to the back. 24 | 25 | - parameter 26 | - index: The index of the element, that should be moved to the end. 27 | 28 | */ 29 | mutating func moveToFront(from index: Int) { 30 | self.insert(self.remove(at: index), at: 0) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/AwakeManager.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AwakeManager.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.06.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import IOKit.pwr_mgt 10 | 11 | class AwakeManager { 12 | 13 | var noSleepAssertionID: IOPMAssertionID = 0 14 | var noSleepReturn: IOReturn? // Could probably be replaced by a boolean value, for example 'isBlockingSleep', just make sure 'IOPMAssertionRelease' doesn't get called, if 'IOPMAssertionCreateWithName' failed. 15 | 16 | public func disableScreenSleep(reason: String = "Keep Mac awake during presentations.") -> Bool? { 17 | guard noSleepReturn == nil else { return nil } 18 | noSleepReturn = IOPMAssertionCreateWithName(kIOPMAssertionTypeNoDisplaySleep as CFString, 19 | IOPMAssertionLevel(kIOPMAssertionLevelOn), 20 | reason as CFString, 21 | &noSleepAssertionID) 22 | return noSleepReturn == kIOReturnSuccess 23 | } 24 | 25 | public func enableScreenSleep() -> Bool { 26 | if noSleepReturn != nil { 27 | _ = IOPMAssertionRelease(noSleepAssertionID) == kIOReturnSuccess 28 | noSleepReturn = nil 29 | return true 30 | } 31 | return false 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/CAKeyframeAnimation+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CAKeyframeAnimation+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 04.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension CAKeyframeAnimation { 12 | 13 | public static func animation(with keyPath: String, from fromValue: Double, to toValue: Double, timingFuntion: (Double) -> (Double)) -> CAKeyframeAnimation { 14 | let animation = CAKeyframeAnimation(keyPath: keyPath) 15 | 16 | // Break the time into steps 17 | let steps = 100 18 | var time = 0.0 19 | let timeStep = 1.0 / Double(steps - 1) 20 | var values = [Double]() 21 | 22 | for _ in 0...steps { 23 | let value = fromValue + (timingFuntion(time) * (toValue - fromValue)) 24 | values.append(value) 25 | time += timeStep 26 | } 27 | 28 | // Set values to 29 | animation.calculationMode = .linear 30 | animation.values = values 31 | return animation 32 | } 33 | 34 | 35 | static let elasticOutTimingFuction: (Double) -> (Double) = { (time: Double) in 36 | if time <= 0.0 { 37 | return 0.0 38 | } else if time >= 1.0 { 39 | return 1.0 40 | } 41 | 42 | let period = 0.5 43 | let amplitude = 1.0 44 | let shift = period * 0.25 45 | 46 | let result = amplitude * pow(2, -10 * time) * sin((time - shift) * 2 * Double.pi / period) + 1 47 | 48 | return result 49 | } 50 | } 51 | 52 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/Colors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Colors.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 01.04.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | let DividerColor = NSColor(white: 0.3, alpha: 1.0) 12 | let OvertimeColor = NSColor(red: 205.0/255.0, green: 55.0/255.0, blue: 55.0/255.0, alpha: 1.0) 13 | let ClockColor = NSColor(red: 180.0/255.0, green: 218.0/255.0, blue: 249.0/255.0, alpha: 1.0) 14 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/FileObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FileObserver.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 05.10.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class FileObserver { 12 | 13 | private let fileDescriptor: CInt 14 | private let source: DispatchSourceProtocol 15 | 16 | private var lastModified: Date? 17 | 18 | 19 | deinit { 20 | self.source.cancel() 21 | close(fileDescriptor) 22 | } 23 | 24 | 25 | init(URL: URL, block: @escaping ()->Void) { 26 | self.fileDescriptor = open(URL.path, O_EVTONLY) 27 | self.source = DispatchSource.makeFileSystemObjectSource(fileDescriptor: self.fileDescriptor, eventMask: .write, queue: DispatchQueue.global()) 28 | self.source.setEventHandler { [weak self] in 29 | // Only call block, if file really changed (using modification date) 30 | guard let modificationDate = self?.fileModificationDate(url: URL) else { return } 31 | if modificationDate != self?.lastModified { 32 | self?.lastModified = modificationDate 33 | block() 34 | } 35 | } 36 | self.source.resume() 37 | } 38 | 39 | 40 | func fileModificationDate(url: URL) -> Date? { 41 | do { 42 | let attr = try FileManager.default.attributesOfItem(atPath: url.path) 43 | return attr[FileAttributeKey.modificationDate] as? Date 44 | } catch { 45 | return nil 46 | } 47 | } 48 | 49 | 50 | func cancel() { 51 | self.source.cancel() 52 | close(fileDescriptor) 53 | } 54 | 55 | } 56 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/NSAlert+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSAlert+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 22.02.22. 6 | // Copyright © 2022 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSAlert { 12 | 13 | public static func showWarning(message: String, text: String) { 14 | let alert = NSAlert() 15 | alert.messageText = message 16 | alert.informativeText = text 17 | alert.alertStyle = .warning 18 | alert.addButton(withTitle: NSLocalizedString("OK", comment: "Title for ok button.")) 19 | 20 | let _ = alert.runModal() 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/NSImage+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSImage+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 08.10.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSImage { 12 | 13 | func compressed() -> Data? { 14 | let factor: CGFloat = 3 15 | let doubleImageSize = NSSize(width: self.size.width*factor, height: self.size.height*factor) 16 | let doubleImage = self.resize(size: doubleImageSize) 17 | 18 | guard let cgImg = doubleImage.cgImage(forProposedRect: nil, context: nil, hints: nil) else { return nil } 19 | let imgRep = NSBitmapImageRep(cgImage: cgImg) 20 | imgRep.size = doubleImageSize 21 | guard let data = imgRep.representation(using: .jpeg, properties: [.compressionFactor: 1.0]) else { return nil } 22 | 23 | return data 24 | } 25 | 26 | 27 | func resize(size: CGSize) -> NSImage { 28 | let newImage = NSImage(size: size) 29 | newImage.lockFocus() 30 | self.draw(in: NSRect(x: 0, y: 0, width: size.width, height: size.height), from: NSRect(x: 0, y: 0, width: self.size.width, height: self.size.height), operation: .sourceOver, fraction: 1) 31 | newImage.unlockFocus() 32 | newImage.size = size 33 | return newImage 34 | } 35 | 36 | 37 | /** 38 | Creates a tinted version of the image with the specified color. Image needs to be a template image. 39 | 40 | - returns: Tinted image 41 | */ 42 | func tint(with tintColor: NSColor) -> NSImage { 43 | if self.isTemplate == false { 44 | return self 45 | } 46 | 47 | let image = self.copy() as! NSImage 48 | image.lockFocus() 49 | 50 | tintColor.set() 51 | 52 | let imageRect = NSRect(origin: .zero, size: image.size) 53 | imageRect.fill(using: .sourceIn) 54 | 55 | image.unlockFocus() 56 | image.isTemplate = false 57 | 58 | return image 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/NSView+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSView+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 10.11.21. 6 | // Copyright © 2021 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSView { 12 | 13 | /** 14 | Take a snapshot of the NSView's current state and return an NSImage. 15 | 16 | - returns: NSImage representation of the view's state. 17 | */ 18 | public func image() -> NSImage { 19 | let imageRepresentation = bitmapImageRepForCachingDisplay(in: bounds)! 20 | cacheDisplay(in: bounds, to: imageRepresentation) 21 | return NSImage(cgImage: imageRepresentation.cgImage!, size: bounds.size) 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/PDFDocument+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PDFDocument+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 24.06.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import PDFKit 11 | 12 | extension PDFDocument { 13 | 14 | func notesPosition() -> DisplayController.NotesPosition? { 15 | guard let keywords = ((self.documentAttributes as? [String: Any])?["Keywords"] as? [Any]) else { return nil } 16 | 17 | for keyword in keywords { 18 | guard let keywordString = keyword as? String else { continue } 19 | if keywordString == "SP-Right" { 20 | return .right 21 | } else if keywordString == "SP-Left" { 22 | return .left 23 | } else if keywordString == "SP-Top" { 24 | return .top 25 | } else if keywordString == "SP-Bottom" { 26 | return .bottom 27 | } 28 | } 29 | 30 | return nil 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /SlidePilot/Helpers/PDFPage+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PDFPage+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 29.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import PDFKit 11 | 12 | extension PDFPage { 13 | 14 | 15 | /** 16 | Extract a String from the PDF Page. Use this only for extracting text from the additional notes page 17 | */ 18 | public func extractNotes() -> String { 19 | let pageRect = self.bounds(for: .cropBox) 20 | // Content rect ignores the note slides header 21 | let contentRect = NSRect(x: pageRect.minX, y: pageRect.minY, width: pageRect.width, height: pageRect.height*3/4) 22 | 23 | // Select everything in contentRect 24 | guard let selection = self.selection(for: contentRect) else { return "" } 25 | 26 | // Append each line in a string 27 | let lines = selection.selectionsByLine() 28 | var output = "" 29 | for line in lines { 30 | output += "\(line.string ?? "")\n" 31 | } 32 | 33 | return output.fixSpecialChars() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /SlidePilot/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDocumentTypes 8 | 9 | 10 | CFBundleTypeExtensions 11 | 12 | pdf 13 | 14 | CFBundleTypeName 15 | PDF Document 16 | CFBundleTypeRole 17 | Viewer 18 | LSHandlerRank 19 | Default 20 | 21 | 22 | CFBundleExecutable 23 | $(EXECUTABLE_NAME) 24 | CFBundleIconFile 25 | 26 | CFBundleIdentifier 27 | $(PRODUCT_BUNDLE_IDENTIFIER) 28 | CFBundleInfoDictionaryVersion 29 | 6.0 30 | CFBundleName 31 | $(PRODUCT_NAME) 32 | CFBundlePackageType 33 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 34 | CFBundleShortVersionString 35 | $(MARKETING_VERSION) 36 | CFBundleVersion 37 | $(CURRENT_PROJECT_VERSION) 38 | LSApplicationCategoryType 39 | public.app-category.productivity 40 | LSMinimumSystemVersion 41 | $(MACOSX_DEPLOYMENT_TARGET) 42 | NSHumanReadableCopyright 43 | Copyright © 2020 Pascal Braband. All rights reserved. 44 | NSMainStoryboardFile 45 | Main 46 | NSPrincipalClass 47 | NSApplication 48 | NSSupportsAutomaticTermination 49 | 50 | NSSupportsSuddenTermination 51 | 52 | SUFeedURL 53 | https://slidepilotapp.com/updates/versions.xml 54 | SUPublicEDKey 55 | JbvU/sAZ/FzniEFzzSH/a99Nom6WhRX2TGwQbRvhyMM= 56 | 57 | 58 | -------------------------------------------------------------------------------- /SlidePilot/NavigationWindow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NavigationWindow.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 18.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class NavigationWindow: NSWindow { 12 | 13 | override func keyDown(with event: NSEvent) { 14 | if event.keyCode == 123 || event.keyCode == 126 || event.specialKey == NSEvent.SpecialKey.pageUp { 15 | PageController.previousPage(sender: self) 16 | } else if event.keyCode == 124 || event.keyCode == 125 || event.specialKey == NSEvent.SpecialKey.pageDown { 17 | PageController.nextPage(sender: self) 18 | if let appDelegate = NSApp.delegate as? AppDelegate { 19 | appDelegate.startTimerIfNeeded() 20 | } 21 | } else { 22 | super.keyDown(with: event) 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /SlidePilot/PresentationWindow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PresentationWindow.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 26.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class PresentationWindow: NavigationWindow { 12 | 13 | override var canBecomeKey: Bool { 14 | return canBecomeKeyPrivate 15 | } 16 | 17 | private var canBecomeKeyPrivate: Bool = false 18 | 19 | 20 | public func setCanBecomeKey(_ newValue: Bool) { 21 | canBecomeKeyPrivate = newValue 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SlidePilot/PresentationWindowController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PresentationWindowController.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 24.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class PresentationWindowController: NSWindowController, NSWindowDelegate { 12 | internal var trackingTag: NSView.TrackingRectTag? 13 | 14 | override func mouseEntered(with event: NSEvent) { 15 | if trackingTag == event.trackingNumber { 16 | // show titlebar container (i.e. superview of superview of closebutton) 17 | self.window?.standardWindowButton(.closeButton)?.superview?.superview?.animator().alphaValue = 1 18 | } 19 | } 20 | 21 | override func mouseExited(with event: NSEvent) { 22 | if trackingTag == event.trackingNumber { 23 | // hide titlebar container (i.e. superview of superview of closebutton) 24 | if let window = self.window { 25 | if !window.styleMask.contains(.fullScreen) { 26 | window.standardWindowButton(.closeButton)?.superview?.superview?.animator().alphaValue = 0 27 | } 28 | } 29 | } 30 | } 31 | 32 | override func windowDidLoad() { 33 | super.windowDidLoad() 34 | 35 | self.window?.title = NSLocalizedString("Presentation", comment: "Window name for the presentation view.") 36 | 37 | let view = self.window?.contentView 38 | trackingTag = view?.addTrackingRect(view!.bounds, owner: self, userData: nil, assumeInside: false) 39 | } 40 | 41 | func windowDidResize(_ notification: Notification) { 42 | if let view = self.window?.contentView { 43 | if let trackingTag = trackingTag { view.removeTrackingRect(trackingTag) } 44 | trackingTag = view.addTrackingRect(view.bounds, owner: self, userData: nil, assumeInside: false) 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /SlidePilot/PresenterWindow.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PresenterWindow.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 18.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class PresenterWindow: NavigationWindow { 12 | 13 | } 14 | -------------------------------------------------------------------------------- /SlidePilot/PresenterWindowController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PresenterWindowController.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 24.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class PresenterWindowController: NSWindowController { 12 | 13 | override func windowDidLoad() { 14 | super.windowDidLoad() 15 | 16 | self.window?.title = NSLocalizedString("Presenter Display", comment: "Window name for the presenter view.") 17 | self.window?.center() 18 | 19 | self.window?.backgroundColor = NSColor(white: 0.07, alpha: 1.0) 20 | 21 | 22 | if #available(OSX 10.12.2, *) { 23 | setupTouchBar() 24 | } 25 | } 26 | 27 | 28 | override func setDocumentEdited(_ dirtyFlag: Bool) { 29 | super.setDocumentEdited(dirtyFlag) 30 | if self.window?.isDocumentEdited ?? false { 31 | self.window?.title = NSLocalizedString("Presenter Display Edited", comment: "Window name for the presenter view when edited.") 32 | } else { 33 | self.window?.title = NSLocalizedString("Presenter Display", comment: "Window name for the presenter view.") 34 | } 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /SlidePilot/Remote/Archiving.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Archiving.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 08.10.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSKeyedArchiver { 12 | 13 | static func archive(object: Any) -> Data? { 14 | if #available(OSX 10.13, *) { 15 | return try? NSKeyedArchiver.archivedData(withRootObject: object, requiringSecureCoding: false) 16 | } else { 17 | return NSKeyedArchiver.archivedData(withRootObject: object) 18 | } 19 | } 20 | } 21 | 22 | 23 | 24 | 25 | extension NSKeyedUnarchiver { 26 | 27 | static func unarchive(data: Data, of type: T.Type) -> T? where T: NSObject, T: NSCoding { 28 | if #available(OSX 10.13, *) { 29 | return try? NSKeyedUnarchiver.unarchivedObject(ofClass: T.self, from: data) 30 | } else { 31 | return try? NSKeyedUnarchiver.unarchiveTopLevelObjectWithData(data) as? T 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /SlidePilot/SlidePilot.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Modules: -------------------------------------------------------------------------------- 1 | Versions/Current/Modules -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/PrivateHeaders: -------------------------------------------------------------------------------- 1 | Versions/Current/PrivateHeaders -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Sparkle: -------------------------------------------------------------------------------- 1 | Versions/Current/Sparkle -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUDownloadData.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloadData.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 8/10/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | #import "SUExport.h" 16 | 17 | NS_ASSUME_NONNULL_BEGIN 18 | 19 | /*! 20 | * A class for containing downloaded data along with some information about it. 21 | */ 22 | SU_EXPORT @interface SPUDownloadData : NSObject 23 | 24 | - (instancetype)initWithData:(NSData *)data textEncodingName:(NSString * _Nullable)textEncodingName MIMEType:(NSString * _Nullable)MIMEType; 25 | 26 | /*! 27 | * The raw data that was downloaded. 28 | */ 29 | @property (nonatomic, readonly) NSData *data; 30 | 31 | /*! 32 | * The IANA charset encoding name if available. Eg: "utf-8" 33 | */ 34 | @property (nonatomic, readonly, nullable, copy) NSString *textEncodingName; 35 | 36 | /*! 37 | * The MIME type if available. Eg: "text/plain" 38 | */ 39 | @property (nonatomic, readonly, nullable, copy) NSString *MIMEType; 40 | 41 | @end 42 | 43 | NS_ASSUME_NONNULL_END 44 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUDownloader.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloader.h 3 | // Downloader 4 | // 5 | // Created by Mayur Pawashe on 4/1/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | #import "SPUDownloaderProtocol.h" 15 | 16 | @protocol SPUDownloaderDelegate; 17 | 18 | // This object implements the protocol which we have defined. It provides the actual behavior for the service. It is 'exported' by the service to make it available to the process hosting the service over an NSXPCConnection. 19 | @interface SPUDownloader : NSObject 20 | 21 | // Due to XPC remote object reasons, this delegate is strongly referenced 22 | // Invoke cleanup when done with this instance 23 | - (instancetype)initWithDelegate:(id )delegate; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUDownloaderDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloaderDelegate.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 4/1/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class SPUDownloadData; 18 | 19 | @protocol SPUDownloaderDelegate 20 | 21 | // This is only invoked for persistent downloads 22 | - (void)downloaderDidSetDestinationName:(NSString *)destinationName temporaryDirectory:(NSString *)temporaryDirectory; 23 | 24 | // Under rare cases, this may be called more than once, in which case the current progress should be reset back to 0 25 | // This is only invoked for persistent downloads 26 | - (void)downloaderDidReceiveExpectedContentLength:(int64_t)expectedContentLength; 27 | 28 | // This is only invoked for persistent downloads 29 | - (void)downloaderDidReceiveDataOfLength:(uint64_t)length; 30 | 31 | // downloadData is nil if this is a persisent download, otherwise it's non-nil if it's a temporary download 32 | - (void)downloaderDidFinishWithTemporaryDownloadData:(SPUDownloadData * _Nullable)downloadData; 33 | 34 | - (void)downloaderDidFailWithError:(NSError *)error; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUDownloaderProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloaderProtocol.h 3 | // PersistentDownloader 4 | // 5 | // Created by Mayur Pawashe on 4/1/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class SPUURLRequest; 18 | 19 | // The protocol that this service will vend as its API. This header file will also need to be visible to the process hosting the service. 20 | @protocol SPUDownloaderProtocol 21 | 22 | - (void)startPersistentDownloadWithRequest:(SPUURLRequest *)request bundleIdentifier:(NSString *)bundleIdentifier desiredFilename:(NSString *)desiredFilename; 23 | 24 | - (void)startTemporaryDownloadWithRequest:(SPUURLRequest *)request; 25 | 26 | - (void)downloadDidFinish; 27 | 28 | - (void)cleanup; 29 | 30 | - (void)cancel; 31 | 32 | @end 33 | 34 | NS_ASSUME_NONNULL_END 35 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUDownloaderSession.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUDownloaderSession.h 3 | // Sparkle 4 | // 5 | // Created by Deadpikle on 12/20/17. 6 | // Copyright © 2017 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | #import "SPUDownloader.h" 15 | #import "SPUDownloaderProtocol.h" 16 | 17 | NS_CLASS_AVAILABLE(NSURLSESSION_AVAILABLE, 7_0) 18 | @interface SPUDownloaderSession : SPUDownloader 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SPUURLRequest.h: -------------------------------------------------------------------------------- 1 | // 2 | // SPUURLRequest.h 3 | // Sparkle 4 | // 5 | // Created by Mayur Pawashe on 5/19/16. 6 | // Copyright © 2016 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | // A class that wraps NSURLRequest and implements NSSecureCoding 18 | // This class exists because NSURLRequest did not support NSSecureCoding in macOS 10.8 19 | // I have not verified if NSURLRequest in 10.9 implements NSSecureCoding or not 20 | @interface SPUURLRequest : NSObject 21 | 22 | // Creates a new URL request 23 | // Only these properties are currently tracked: 24 | // * URL 25 | // * Cache policy 26 | // * Timeout interval 27 | // * HTTP header fields 28 | // * networkServiceType 29 | + (instancetype)URLRequestWithRequest:(NSURLRequest *)request; 30 | 31 | @property (nonatomic, readonly) NSURLRequest *request; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUAppcast.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUAppcast.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/12/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUAPPCAST_H 10 | #define SUAPPCAST_H 11 | 12 | #import 13 | #import "SUExport.h" 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | @class SUAppcastItem; 18 | SU_EXPORT @interface SUAppcast : NSObject 19 | 20 | @property (copy, nullable) NSString *userAgentString; 21 | @property (copy, nullable) NSDictionary *httpHeaders; 22 | 23 | - (void)fetchAppcastFromURL:(NSURL *)url inBackground:(BOOL)bg completionBlock:(void (^)(NSError *_Nullable))err; 24 | - (SUAppcast *)copyWithoutDeltaUpdates; 25 | 26 | @property (readonly, copy, nullable) NSArray *items; 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUCodeSigningVerifier.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUCodeSigningVerifier.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 7/5/12. 6 | // 7 | // 8 | 9 | #ifndef SUCODESIGNINGVERIFIER_H 10 | #define SUCODESIGNINGVERIFIER_H 11 | 12 | #if __has_feature(modules) 13 | @import Foundation; 14 | #else 15 | #import 16 | #endif 17 | #import "SUExport.h" 18 | 19 | SU_EXPORT @interface SUCodeSigningVerifier : NSObject 20 | + (BOOL)codeSignatureAtBundleURL:(NSURL *)oldBundlePath matchesSignatureAtBundleURL:(NSURL *)newBundlePath error:(NSError **)error; 21 | + (BOOL)codeSignatureIsValidAtBundleURL:(NSURL *)bundlePath error:(NSError **)error; 22 | + (BOOL)bundleAtURLIsCodeSigned:(NSURL *)bundlePath; 23 | + (NSDictionary *)codeSignatureInfoAtBundleURL:(NSURL *)bundlePath; 24 | @end 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUErrors.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUErrors.h 3 | // Sparkle 4 | // 5 | // Created by C.W. Betts on 10/13/14. 6 | // Copyright (c) 2014 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SUERRORS_H 10 | #define SUERRORS_H 11 | 12 | #if __has_feature(modules) 13 | @import Foundation; 14 | #else 15 | #import 16 | #endif 17 | #import "SUExport.h" 18 | 19 | /** 20 | * Error domain used by Sparkle 21 | */ 22 | SU_EXPORT extern NSString *const SUSparkleErrorDomain; 23 | 24 | #pragma clang diagnostic push 25 | #pragma clang diagnostic ignored "-Wc++98-compat" 26 | typedef NS_ENUM(OSStatus, SUError) { 27 | // Appcast phase errors. 28 | SUAppcastParseError = 1000, 29 | SUNoUpdateError = 1001, 30 | SUAppcastError = 1002, 31 | SURunningFromDiskImageError = 1003, 32 | SURunningTranslocated = 1004, 33 | SUWebKitTerminationError = 1005, 34 | 35 | // Download phase errors. 36 | SUTemporaryDirectoryError = 2000, 37 | SUDownloadError = 2001, 38 | 39 | // Extraction phase errors. 40 | SUUnarchivingError = 3000, 41 | SUSignatureError = 3001, 42 | 43 | // Installation phase errors. 44 | SUFileCopyFailure = 4000, 45 | SUAuthenticationFailure = 4001, 46 | SUMissingUpdateError = 4002, 47 | SUMissingInstallerToolError = 4003, 48 | SURelaunchError = 4004, 49 | SUInstallationError = 4005, 50 | SUDowngradeError = 4006, 51 | SUInstallationCancelledError = 4007, 52 | 53 | // System phase errors 54 | SUSystemPowerOffError = 5000 55 | }; 56 | #pragma clang diagnostic pop 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUExport.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUExport.h 3 | // Sparkle 4 | // 5 | // Created by Jake Petroules on 2014-08-23. 6 | // Copyright (c) 2014 Sparkle Project. All rights reserved. 7 | // 8 | 9 | #ifndef SUEXPORT_H 10 | #define SUEXPORT_H 11 | 12 | #ifdef BUILDING_SPARKLE 13 | #define SU_EXPORT __attribute__((visibility("default"))) 14 | #else 15 | #define SU_EXPORT 16 | #endif 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUStandardVersionComparator.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUStandardVersionComparator.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUSTANDARDVERSIONCOMPARATOR_H 10 | #define SUSTANDARDVERSIONCOMPARATOR_H 11 | 12 | #if __has_feature(modules) 13 | @import Foundation; 14 | #else 15 | #import 16 | #endif 17 | #import "SUExport.h" 18 | #import "SUVersionComparisonProtocol.h" 19 | 20 | NS_ASSUME_NONNULL_BEGIN 21 | 22 | /*! 23 | Sparkle's default version comparator. 24 | 25 | This comparator is adapted from MacPAD, by Kevin Ballard. 26 | It's "dumb" in that it does essentially string comparison, 27 | in components split by character type. 28 | */ 29 | SU_EXPORT @interface SUStandardVersionComparator : NSObject 30 | 31 | /*! 32 | Initializes a new instance of the standard version comparator. 33 | */ 34 | - (instancetype)init; 35 | 36 | /*! 37 | Returns a singleton instance of the comparator. 38 | 39 | It is usually preferred to alloc/init new a comparator instead. 40 | */ 41 | + (SUStandardVersionComparator *)defaultComparator; 42 | 43 | /*! 44 | Compares version strings through textual analysis. 45 | 46 | See the implementation for more details. 47 | */ 48 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; 49 | @end 50 | 51 | NS_ASSUME_NONNULL_END 52 | #endif 53 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUVersionComparisonProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionComparisonProtocol.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 12/21/07. 6 | // Copyright 2007 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SUVERSIONCOMPARISONPROTOCOL_H 10 | #define SUVERSIONCOMPARISONPROTOCOL_H 11 | 12 | #if __has_feature(modules) 13 | @import Foundation; 14 | #else 15 | #import 16 | #endif 17 | #import "SUExport.h" 18 | 19 | NS_ASSUME_NONNULL_BEGIN 20 | 21 | /*! 22 | Provides version comparison facilities for Sparkle. 23 | */ 24 | @protocol SUVersionComparison 25 | 26 | /*! 27 | An abstract method to compare two version strings. 28 | 29 | Should return NSOrderedAscending if b > a, NSOrderedDescending if b < a, 30 | and NSOrderedSame if they are equivalent. 31 | */ 32 | - (NSComparisonResult)compareVersion:(NSString *)versionA toVersion:(NSString *)versionB; // *** MAY BE CALLED ON NON-MAIN THREAD! 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | #endif 38 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/SUVersionDisplayProtocol.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUVersionDisplayProtocol.h 3 | // EyeTV 4 | // 5 | // Created by Uli Kusterer on 08.12.09. 6 | // Copyright 2009 Elgato Systems GmbH. All rights reserved. 7 | // 8 | 9 | #if __has_feature(modules) 10 | @import Foundation; 11 | #else 12 | #import 13 | #endif 14 | #import "SUExport.h" 15 | 16 | /*! 17 | Applies special display formatting to version numbers. 18 | */ 19 | @protocol SUVersionDisplay 20 | 21 | /*! 22 | Formats two version strings. 23 | 24 | Both versions are provided so that important distinguishing information 25 | can be displayed while also leaving out unnecessary/confusing parts. 26 | */ 27 | - (void)formatVersion:(NSString *_Nonnull*_Nonnull)inOutVersionA andVersion:(NSString *_Nonnull*_Nonnull)inOutVersionB; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Headers/Sparkle.h: -------------------------------------------------------------------------------- 1 | // 2 | // Sparkle.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. (Modified by CDHW on 23/12/07) 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #ifndef SPARKLE_H 10 | #define SPARKLE_H 11 | 12 | // This list should include the shared headers. It doesn't matter if some of them aren't shared (unless 13 | // there are name-space collisions) so we can list all of them to start with: 14 | 15 | #pragma clang diagnostic push 16 | // Do not use <> style includes since 2.x has two frameworks that need to work: Sparkle and SparkleCore 17 | #pragma clang diagnostic ignored "-Wquoted-include-in-framework-header" 18 | 19 | #import "SUAppcast.h" 20 | #import "SUAppcastItem.h" 21 | #import "SUStandardVersionComparator.h" 22 | #import "SUUpdater.h" 23 | #import "SUUpdaterDelegate.h" 24 | #import "SUVersionComparisonProtocol.h" 25 | #import "SUVersionDisplayProtocol.h" 26 | #import "SUErrors.h" 27 | 28 | #import "SPUDownloader.h" 29 | #import "SPUDownloaderDelegate.h" 30 | #import "SPUDownloadData.h" 31 | #import "SPUDownloaderProtocol.h" 32 | #import "SPUDownloaderSession.h" 33 | #import "SPUURLRequest.h" 34 | #import "SUCodeSigningVerifier.h" 35 | 36 | #pragma clang diagnostic pop 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Sparkle { 2 | umbrella header "Sparkle.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/PrivateHeaders/SUUnarchiver.h: -------------------------------------------------------------------------------- 1 | // 2 | // SUUnarchiver.h 3 | // Sparkle 4 | // 5 | // Created by Andy Matuschak on 3/16/06. 6 | // Copyright 2006 Andy Matuschak. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @protocol SUUnarchiverProtocol; 14 | 15 | @interface SUUnarchiver : NSObject 16 | 17 | + (nullable id )unarchiverForPath:(NSString *)path updatingHostBundlePath:(nullable NSString *)hostPath decryptionPassword:(nullable NSString *)decryptionPassword; 18 | 19 | @end 20 | 21 | NS_ASSUME_NONNULL_END 22 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20E5186d 7 | CFBundleDevelopmentRegion 8 | English 9 | CFBundleExecutable 10 | Autoupdate 11 | CFBundleIconFile 12 | AppIcon.icns 13 | CFBundleIdentifier 14 | org.sparkle-project.Sparkle.Autoupdate 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.26.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 1.26.0 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12C5020f 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.1 37 | DTSDKBuild 38 | 20C5048g 39 | DTSDKName 40 | macosx11.1 41 | DTXcode 42 | 1230 43 | DTXcodeBuild 44 | 12C5020f 45 | LSBackgroundOnly 46 | 1 47 | LSMinimumSystemVersion 48 | 10.9 49 | LSUIElement 50 | 1 51 | NSMainNibFile 52 | MainMenu 53 | NSPrincipalClass 54 | NSApplication 55 | 56 | 57 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/Autoupdate -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/MacOS/fileop -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/AppIcon.icns -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/Base.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/Base.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/SUStatus.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ar.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ca.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/cs.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/da.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/el.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fi.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/he.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hu.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/hu.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/is.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ja.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ko.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nb.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_BR.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/pt_PT.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ro.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/th.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/tr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/uk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_CN.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Autoupdate.app/Contents/Resources/zh_TW.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUAutomaticUpdateAlert.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdateAlert.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects-110000.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/SUUpdatePermissionPrompt.nib/keyedobjects.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/Base.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildMachineOSBuild 6 | 20E5186d 7 | CFBundleDevelopmentRegion 8 | en 9 | CFBundleExecutable 10 | Sparkle 11 | CFBundleIdentifier 12 | org.sparkle-project.Sparkle 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | Sparkle 17 | CFBundlePackageType 18 | FMWK 19 | CFBundleShortVersionString 20 | 1.26.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleSupportedPlatforms 24 | 25 | MacOSX 26 | 27 | CFBundleVersion 28 | 1.26.0 29 | DTCompiler 30 | com.apple.compilers.llvm.clang.1_0 31 | DTPlatformBuild 32 | 12C5020f 33 | DTPlatformName 34 | macosx 35 | DTPlatformVersion 36 | 11.1 37 | DTSDKBuild 38 | 20C5048g 39 | DTSDKName 40 | macosx11.1 41 | DTXcode 42 | 1230 43 | DTXcodeBuild 44 | 12C5020f 45 | LSMinimumSystemVersion 46 | 10.9 47 | 48 | 49 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ReleaseNotesColorStyle.css: -------------------------------------------------------------------------------- 1 | @media (prefers-color-scheme: dark) { 2 | html { 3 | color: white; 4 | background: transparent; 5 | } 6 | :link { 7 | color: #419CFF; 8 | } 9 | :link:active { 10 | color: #FF1919; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/SUStatus.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/SUStatus.nib -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ar.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ca.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */ 2 | "41.title" = "Reinicia el programa ara"; 3 | 4 | /* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */ 5 | "42.title" = "Reinicia el programa més tard"; 6 | 7 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */ 8 | "43.title" = "Baixa i instal·la les actualitzacions automàticament en el futur"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */ 11 | "44.title" = "Don't Install"; 12 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ca.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Actualització del programari"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Notes d'aquesta versió:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Recorda-m'ho més tard"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Omet aquesta versió"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instal·la l'actualització"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "Descarrega i instal·la les actualitzacions automàticament en el futur"; 18 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ca.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/cs.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */ 2 | "41.title" = "Instalovat a znovu spustit"; 3 | 4 | /* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */ 5 | "42.title" = "Instalovat a ukončit"; 6 | 7 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */ 8 | "43.title" = "V budoucnu stahovat a instalovat aktualizace automaticky"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */ 11 | "44.title" = "Neinstalovat"; 12 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 2 | "5.title" = "Aktualizace aplikace"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 5 | "170.title" = "Poznámky k vydání:"; 6 | 7 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 8 | "171.title" = "Připomenout později"; 9 | 10 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 11 | "172.title" = "Přeskočit tuto verzi"; 12 | 13 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 14 | "173.title" = "Instalovat aktualizaci"; 15 | 16 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 17 | "175.title" = "V budoucnu stahovat a instalovat aktualizace automaticky"; 18 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/cs.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 2 | "43.title" = "Text Cell"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 5 | "45.title" = "Text Cell"; 6 | 7 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */ 8 | "176.title" = "Automaticky vyhledávat"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "177"; */ 11 | "177.title" = "Nevyhledávat"; 12 | 13 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */ 14 | "178.title" = "Vyhledávat aktualizace automaticky?"; 15 | 16 | /* Class = "NSTextFieldCell"; title = "DO NOT LOCALIZE"; ObjectID = "179"; */ 17 | "179.title" = "DO NOT LOCALIZE"; 18 | 19 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */ 20 | "180.title" = "Odeslat anonymní systémový profil"; 21 | 22 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work.\nPlease contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 23 | "183.title" = "Informace z anonymního systémového profilu pomáhají vývojářům lépe plánovat budoucí vývoj aplikace.\nBudete-li mít nějaký dotaz, obraťte se na nás.\n\nTyto informace by měly být odeslány:"; 24 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/cs.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/da.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/de.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/el.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/en.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */ 3 | "41.title" = "Install and Relaunch"; 4 | 5 | /* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */ 6 | "42.title" = "Install on Quit"; 7 | 8 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */ 9 | "43.title" = "Automatically download and install updates in the future"; 10 | 11 | /* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */ 12 | "44.title" = "Don't Install"; 13 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 3 | "5.title" = "Software Update"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 6 | "170.title" = "Release Notes:"; 7 | 8 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 9 | "171.title" = "Remind Me Later"; 10 | 11 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 12 | "172.title" = "Skip This Version"; 13 | 14 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 15 | "173.title" = "Install Update"; 16 | 17 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 18 | "175.title" = "Automatically download and install updates in the future"; 19 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/en.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "43"; */ 3 | "43.title" = "Text Cell"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "45"; */ 6 | "45.title" = "Text Cell"; 7 | 8 | /* Class = "NSButtonCell"; title = "Check Automatically"; ObjectID = "176"; */ 9 | "176.title" = "Check Automatically"; 10 | 11 | /* Class = "NSButtonCell"; title = "Don’t Check"; ObjectID = "177"; */ 12 | "177.title" = "Don’t Check"; 13 | 14 | /* Class = "NSTextFieldCell"; title = "Check for updates automatically?"; ObjectID = "178"; */ 15 | "178.title" = "Check for updates automatically?"; 16 | 17 | /* Class = "NSTextFieldCell"; title = "DO NOT LOCALIZE"; ObjectID = "179"; */ 18 | "179.title" = "DO NOT LOCALIZE"; 19 | 20 | /* Class = "NSButtonCell"; title = "Include anonymous system profile"; ObjectID = "180"; */ 21 | "180.title" = "Include anonymous system profile"; 22 | 23 | /* Class = "NSTextFieldCell"; title = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; ObjectID = "183"; */ 24 | "183.title" = "Anonymous system profile information is used to help us plan future development work. Please contact us if you have any questions about this.\n\nThis is the information that would be sent:"; 25 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/es.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fi.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/fr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/he.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSButtonCell"; title = "Install and Relaunch"; ObjectID = "41"; */ 2 | "41.title" = "אתחל עכשיו"; 3 | 4 | /* Class = "NSButtonCell"; title = "Install on Quit"; ObjectID = "42"; */ 5 | "42.title" = "אתחל מאוחר יותר"; 6 | 7 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "43"; */ 8 | "43.title" = "הורד והתקן עדכונים אוטומטית גם בעתיד"; 9 | 10 | /* Class = "NSButtonCell"; title = "Don't Install"; ObjectID = "44"; */ 11 | "44.title" = "Don't Install"; 12 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/he.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSWindow"; title = "Software Update"; ObjectID = "5"; */ 3 | "5.title" = "עדכון תכנה"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Release Notes:"; ObjectID = "170"; */ 6 | "170.title" = "פרטי גרסה:"; 7 | 8 | /* Class = "NSButtonCell"; title = "Remind Me Later"; ObjectID = "171"; */ 9 | "171.title" = "הזכר לי מאוחר יותר"; 10 | 11 | /* Class = "NSButtonCell"; title = "Skip This Version"; ObjectID = "172"; */ 12 | "172.title" = "דלג על גרסה זו"; 13 | 14 | /* Class = "NSButtonCell"; title = "Install Update"; ObjectID = "173"; */ 15 | "173.title" = "התקן עדכון"; 16 | 17 | /* Class = "NSButtonCell"; title = "Automatically download and install updates in the future"; ObjectID = "175"; */ 18 | "175.title" = "הורד והתקן עדכונים אוטומטית גם בעתיד"; 19 | -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/he.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/hu.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/is.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/it.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ja.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ko.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nb.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/nl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_BR.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/pt_PT.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ro.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/ru.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sl.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/sv.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/th.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/tr.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/uk.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_CN.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUAutomaticUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdateAlert.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/SUUpdatePermissionPrompt.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Resources/zh_TW.lproj/Sparkle.strings -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/A/Sparkle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/Sparkle.framework/Versions/A/Sparkle -------------------------------------------------------------------------------- /SlidePilot/Sparkle.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /SlidePilot/Views/Clipfree.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Clipfree.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 31.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class ClipfreeView: NSView { 12 | 13 | override init(frame frameRect: NSRect) { 14 | super.init(frame: frameRect) 15 | layer = NoClippingLayer() 16 | } 17 | 18 | required init?(coder: NSCoder) { 19 | super.init(coder: coder) 20 | layer = NoClippingLayer() 21 | } 22 | } 23 | 24 | 25 | class NoClippingLayer: CALayer { 26 | override var masksToBounds: Bool { 27 | set { 28 | 29 | } 30 | get { 31 | return false 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /SlidePilot/Views/LayoutEditor/LayoutSymbolView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayoutConfigurationView.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 10.11.21. 6 | // Copyright © 2021 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class LayoutConfigurationView: NSView { 12 | 13 | var type: LayoutType.Arrangement? = nil { 14 | didSet { 15 | self.needsDisplay = true 16 | } 17 | } 18 | 19 | init(type: LayoutType.Arrangement?) { 20 | super.init(frame: .zero) 21 | self.type = type 22 | setup() 23 | } 24 | 25 | required init?(coder: NSCoder) { 26 | super.init(coder: coder) 27 | setup() 28 | } 29 | 30 | func setup() { 31 | self.wantsLayer = true 32 | } 33 | 34 | override func draw(_ dirtyRect: NSRect) { 35 | super.draw(dirtyRect) 36 | 37 | 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/GeneralPreferencesViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GeneralPreferencesViewController.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.06.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import Preferences 11 | 12 | class GeneralPreferencesViewController: NSViewController, PreferencePane { 13 | 14 | let preferencePaneIdentifier = Preferences.PaneIdentifier.general 15 | let preferencePaneTitle = NSLocalizedString("General", comment: "Title for general preferences.") 16 | let toolbarItemIcon = NSImage(named: "GeneralIcon")! 17 | 18 | override var nibName: NSNib.Name? { "GeneralPreferences" } 19 | 20 | 21 | // MARK: - UI Elements 22 | @IBOutlet weak var awakeCheckBox: NSButton! 23 | @IBOutlet weak var crossfadeSlidesCheckBox: NSButton! 24 | @IBOutlet weak var saveDrawingsCheckBox: NSButton! 25 | 26 | 27 | override func viewDidLoad() { 28 | super.viewDidLoad() 29 | } 30 | 31 | override func viewDidAppear() { 32 | // UI Elements with preferences 33 | awakeCheckBox.state = PreferencesController.isSleepDisabled ? .on : .off 34 | crossfadeSlidesCheckBox.state = PreferencesController.crossfadeSlides ? .on : .off 35 | saveDrawingsCheckBox.state = PreferencesController.saveDrawings ? .on : .off 36 | } 37 | 38 | 39 | @IBAction func awakeCheckBoxPressed(_ sender: NSButton) { 40 | if sender.state == .on { 41 | PreferencesController.disableSleep() 42 | } else { 43 | PreferencesController.enableSleep() 44 | } 45 | } 46 | 47 | 48 | @IBAction func crossfadeSlidesCheckBoxPressed(_ sender: NSButton) { 49 | PreferencesController.setCrossfadeSlides(sender.state == .on, sender: sender) 50 | } 51 | 52 | 53 | @IBAction func saveDrawingsCheckBoxPressed(_ sender: NSButton) { 54 | PreferencesController.setSaveDrawings(sender.state == .on, sender: sender) 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/Preferences+PaneIdentifiers.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Preferences+PaneIdentifiers.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.06.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | import Preferences 11 | 12 | extension Preferences.PaneIdentifier { 13 | static let general = Self("general") 14 | static let layout = Self("layout") 15 | static let pointer = Self("pointer") 16 | static let remote = Self("remote") 17 | } 18 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/RemoteVerificationViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RemoteVerificationViewController.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 08.10.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class RemoteVerificationViewController: NSViewController { 12 | 13 | @IBOutlet weak var titleLabel: NSTextField! 14 | @IBOutlet weak var descriptionLabel: NSTextField! 15 | @IBOutlet weak var codeLabel: NSTextField! 16 | 17 | var code: String = "" 18 | var deviceName: String = "" 19 | var completiton: ((Bool) -> ())? 20 | 21 | 22 | override func viewDidLoad() { 23 | super.viewDidLoad() 24 | 25 | // Setup labels 26 | titleLabel.stringValue = String(format: NSLocalizedString("Remote Verification Title", comment: "Title for remote verification."), deviceName) 27 | descriptionLabel.stringValue = String(format: NSLocalizedString("Remote Verification Message", comment: "Message for remote verification."), deviceName) 28 | codeLabel.stringValue = code 29 | 30 | } 31 | 32 | 33 | @IBAction func confirm(_ sender: Any) { 34 | completiton?(true) 35 | self.dismiss(self) 36 | } 37 | 38 | 39 | @IBAction func cancel(_ sender: Any) { 40 | completiton?(false) 41 | self.dismiss(self) 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/de.lproj/GeneralPreferences.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSButtonCell"; title = "Save drawings on slides"; ObjectID = "173-to-T0s"; */ 2 | "173-to-T0s.title" = "Speichere Zeichungen auf den Folien"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Drawings:"; ObjectID = "OMW-1i-kJD"; */ 5 | "OMW-1i-kJD.title" = "Zeichnen:"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Keep Awake:"; ObjectID = "RRy-7Y-UEG"; */ 8 | "RRy-7Y-UEG.title" = "Wach bleiben:"; 9 | 10 | /* Class = "NSTextFieldCell"; title = "Transition:"; ObjectID = "Uz0-ML-jeX"; */ 11 | "Uz0-ML-jeX.title" = "Übergang:"; 12 | 13 | /* Class = "NSButtonCell"; title = "Crossfade between slides"; ObjectID = "htK-yb-JXj"; */ 14 | "htK-yb-JXj.title" = "Überblendung zwischen Folien"; 15 | 16 | /* Class = "NSButtonCell"; title = "Prevent Mac from falling asleep while presenting"; ObjectID = "srf-tM-fS7"; */ 17 | "srf-tM-fS7.title" = "Verhindert den Ruhezustand beim Präsentieren"; 18 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/de.lproj/RemotePreferences.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSButtonCell"; title = "Disconnect"; ObjectID = "6yf-F4-GYN"; */ 3 | "6yf-F4-GYN.title" = "Trennen"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Use the SlidePilot Remote app to connect an iPhone to your Mac and remote control your presentation.\n\nMake sure both Mac and iPhone are in the same WiFi."; ObjectID = "95e-oD-2wu"; */ 6 | "95e-oD-2wu.title" = "Verwende die SlidePilot Remote App, um ein iPhone mit Deinem Mac zu verbinden und Deine Präsentation fernzusteuern. \n\nStelle sicher, dass sich sowohl Mac als auch iPhone im selben WLAN befinden."; 7 | 8 | /* Class = "NSButtonCell"; title = "Connect"; ObjectID = "HG5-Mt-AwH"; */ 9 | "HG5-Mt-AwH.title" = "Verbinden"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "ZtW-AN-dJ7"; */ 12 | "ZtW-AN-dJ7.title" = "Gerätename"; 13 | 14 | /* Class = "NSButtonCell"; title = "Trusted Devices"; ObjectID = "amI-QT-I9W"; */ 15 | "amI-QT-I9W.title" = "Vertrauenswürdige Geräte"; 16 | 17 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "l5k-jc-zx0"; */ 18 | "l5k-jc-zx0.title" = "Text Cell"; 19 | 20 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "lLO-zl-rBY"; */ 21 | "lLO-zl-rBY.title" = "Gerätename"; 22 | 23 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "umg-Ap-MsL"; */ 24 | "umg-Ap-MsL.title" = "Gerätename"; 25 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/de.lproj/RemoteVerificationViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Confirm that the following code is shown on Demo Device."; ObjectID = "4c1-jX-qTS"; */ 3 | "4c1-jX-qTS.title" = "Bestätige, dass folgender Code auf dem Gerät angezeigt wird."; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Connecting to Demo Device"; ObjectID = "Re1-7X-QeT"; */ 6 | "Re1-7X-QeT.title" = "Verbinden mit Gerät"; 7 | 8 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "g2x-ug-Nok"; */ 9 | "g2x-ug-Nok.title" = "Abbrechen"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "1234"; ObjectID = "h6B-US-Svr"; */ 12 | "h6B-US-Svr.title" = "1234"; 13 | 14 | /* Class = "NSButtonCell"; title = "Confirm"; ObjectID = "x5w-lV-JU1"; */ 15 | "x5w-lV-JU1.title" = "Bestätigen"; 16 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/de.lproj/TrustedDevicesViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "0Hx-LJ-ard"; */ 3 | "0Hx-LJ-ard.title" = "Text Cell"; 4 | 5 | /* Class = "NSButtonCell"; title = "Remove"; ObjectID = "0af-eN-9mH"; */ 6 | "0af-eN-9mH.title" = "Entfernen"; 7 | 8 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "XcK-YO-GmW"; */ 9 | "XcK-YO-GmW.title" = "Gerätename"; 10 | 11 | /* Class = "NSButtonCell"; title = "Finish"; ObjectID = "ky6-YA-Rld"; */ 12 | "ky6-YA-Rld.title" = "Fertig"; 13 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/fr.lproj/GeneralPreferences.strings: -------------------------------------------------------------------------------- 1 | /* Class = "NSButtonCell"; title = "Save drawings on slides"; ObjectID = "173-to-T0s"; */ 2 | "173-to-T0s.title" = "Enregistrer les dessins sur les diapositives"; 3 | 4 | /* Class = "NSTextFieldCell"; title = "Drawings:"; ObjectID = "OMW-1i-kJD"; */ 5 | "OMW-1i-kJD.title" = "Dessins:"; 6 | 7 | /* Class = "NSTextFieldCell"; title = "Keep Awake:"; ObjectID = "RRy-7Y-UEG"; */ 8 | "RRy-7Y-UEG.title" = "Reste éveillé:"; 9 | 10 | /* Class = "NSTextFieldCell"; title = "Transition:"; ObjectID = "Uz0-ML-jeX"; */ 11 | "Uz0-ML-jeX.title" = "Transition:"; 12 | 13 | /* Class = "NSButtonCell"; title = "Crossfade between slides"; ObjectID = "htK-yb-JXj"; */ 14 | "htK-yb-JXj.title" = "Fondu enchaîné entre les diapositives"; 15 | 16 | /* Class = "NSButtonCell"; title = "Prevent Mac from falling asleep while presenting"; ObjectID = "srf-tM-fS7"; */ 17 | "srf-tM-fS7.title" = "Empêcher le mac de s'endormir lors de la présentation"; 18 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/fr.lproj/RemotePreferences.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSButtonCell"; title = "Disconnect"; ObjectID = "6yf-F4-GYN"; */ 3 | "6yf-F4-GYN.title" = "Dissocier"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Use the SlidePilot Remote app to connect an iPhone to your Mac and remote control your presentation.\n\nMake sure both Mac and iPhone are in the same WiFi."; ObjectID = "95e-oD-2wu"; */ 6 | "95e-oD-2wu.title" = "Utilisez l'application SlidePilot Remote pour connecter un iPhone à votre Mac et télécommander votre présentation. \n\nAssurez-vous que Mac et iPhone sont sur le même réseau sans fil."; 7 | 8 | /* Class = "NSButtonCell"; title = "Connect"; ObjectID = "HG5-Mt-AwH"; */ 9 | "HG5-Mt-AwH.title" = "Jumeler"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "ZtW-AN-dJ7"; */ 12 | "ZtW-AN-dJ7.title" = "Nom de l'appareil"; 13 | 14 | /* Class = "NSButtonCell"; title = "Trusted Devices"; ObjectID = "amI-QT-I9W"; */ 15 | "amI-QT-I9W.title" = "Appareils fiables"; 16 | 17 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "l5k-jc-zx0"; */ 18 | "l5k-jc-zx0.title" = "Text Cell"; 19 | 20 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "lLO-zl-rBY"; */ 21 | "lLO-zl-rBY.title" = "Nom de l'appareil"; 22 | 23 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "umg-Ap-MsL"; */ 24 | "umg-Ap-MsL.title" = "Nom de l'appareil"; 25 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/fr.lproj/RemoteVerificationViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Confirm that the following code is shown on Demo Device."; ObjectID = "4c1-jX-qTS"; */ 3 | "4c1-jX-qTS.title" = "Confirmer que ce code apparaît sur l'appareil"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Connecting to Demo Device"; ObjectID = "Re1-7X-QeT"; */ 6 | "Re1-7X-QeT.title" = "Liaison aver l'appareil"; 7 | 8 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "g2x-ug-Nok"; */ 9 | "g2x-ug-Nok.title" = "Annuler"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "1234"; ObjectID = "h6B-US-Svr"; */ 12 | "h6B-US-Svr.title" = "1234"; 13 | 14 | /* Class = "NSButtonCell"; title = "Confirm"; ObjectID = "x5w-lV-JU1"; */ 15 | "x5w-lV-JU1.title" = "Confirmer"; 16 | -------------------------------------------------------------------------------- /SlidePilot/Views/Preferences/fr.lproj/TrustedDevicesViewController.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Text Cell"; ObjectID = "0Hx-LJ-ard"; */ 3 | "0Hx-LJ-ard.title" = "Text Cell"; 4 | 5 | /* Class = "NSButtonCell"; title = "Remove"; ObjectID = "0af-eN-9mH"; */ 6 | "0af-eN-9mH.title" = "Supprimer"; 7 | 8 | /* Class = "NSTextFieldCell"; title = "Device Name"; ObjectID = "XcK-YO-GmW"; */ 9 | "XcK-YO-GmW.title" = "Nom de l'appareil"; 10 | 11 | /* Class = "NSButtonCell"; title = "Finish"; ObjectID = "ky6-YA-Rld"; */ 12 | "ky6-YA-Rld.title" = "OK"; 13 | -------------------------------------------------------------------------------- /SlidePilot/Views/Presentation/de.lproj/PointerEditor.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Shape:"; ObjectID = "0hF-xZ-wAL"; */ 3 | "0hF-xZ-wAL.title" = "Form:"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Color:"; ObjectID = "8H2-On-1uT"; */ 6 | "8H2-On-1uT.title" = "Farbe:"; 7 | 8 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "8bO-TG-tuH"; */ 9 | "8bO-TG-tuH.title" = "Abbrechen"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "Border:"; ObjectID = "KeY-hG-zNg"; */ 12 | "KeY-hG-zNg.title" = "Rand:"; 13 | 14 | /* Class = "NSTextFieldCell"; title = "Border Color:"; ObjectID = "N6o-RR-fRb"; */ 15 | "N6o-RR-fRb.title" = "Randfarbe:"; 16 | 17 | /* Class = "NSTextFieldCell"; title = "Thickness:"; ObjectID = "RlY-VI-wUy"; */ 18 | "RlY-VI-wUy.title" = "Stärke:"; 19 | 20 | /* Class = "NSButtonCell"; title = "Finish"; ObjectID = "kgl-PD-c8i"; */ 21 | "kgl-PD-c8i.title" = "Fertig"; 22 | 23 | /* Class = "NSTextFieldCell"; title = "Size:"; ObjectID = "oOE-BK-JBY"; */ 24 | "oOE-BK-JBY.title" = "Größe:"; 25 | 26 | /* Class = "NSTextFieldCell"; title = "Shadow:"; ObjectID = "ziP-7b-uNV"; */ 27 | "ziP-7b-uNV.title" = "Schatten:"; 28 | -------------------------------------------------------------------------------- /SlidePilot/Views/Presentation/fr.lproj/PointerEditor.strings: -------------------------------------------------------------------------------- 1 | 2 | /* Class = "NSTextFieldCell"; title = "Shape:"; ObjectID = "0hF-xZ-wAL"; */ 3 | "0hF-xZ-wAL.title" = "Forme:"; 4 | 5 | /* Class = "NSTextFieldCell"; title = "Color:"; ObjectID = "8H2-On-1uT"; */ 6 | "8H2-On-1uT.title" = "Couleur:"; 7 | 8 | /* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "8bO-TG-tuH"; */ 9 | "8bO-TG-tuH.title" = "Annuler"; 10 | 11 | /* Class = "NSTextFieldCell"; title = "Border:"; ObjectID = "KeY-hG-zNg"; */ 12 | "KeY-hG-zNg.title" = "Bordure:"; 13 | 14 | /* Class = "NSTextFieldCell"; title = "Border Color:"; ObjectID = "N6o-RR-fRb"; */ 15 | "N6o-RR-fRb.title" = "Couleur bordure:"; 16 | 17 | /* Class = "NSTextFieldCell"; title = "Thickness:"; ObjectID = "RlY-VI-wUy"; */ 18 | "RlY-VI-wUy.title" = "Épaisseur:"; 19 | 20 | /* Class = "NSButtonCell"; title = "Finish"; ObjectID = "kgl-PD-c8i"; */ 21 | "kgl-PD-c8i.title" = "OK"; 22 | 23 | /* Class = "NSTextFieldCell"; title = "Size:"; ObjectID = "oOE-BK-JBY"; */ 24 | "oOE-BK-JBY.title" = "Taille:"; 25 | 26 | /* Class = "NSTextFieldCell"; title = "Shadow:"; ObjectID = "ziP-7b-uNV"; */ 27 | "ziP-7b-uNV.title" = "Ombre:"; 28 | -------------------------------------------------------------------------------- /SlidePilot/Views/Slide/NSColor+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSColor+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSColor { 12 | 13 | func image(of size: NSSize) -> NSImage { 14 | let image = NSImage(size: size) 15 | image.lockFocus() 16 | self.drawSwatch(in: NSRect(x: 0, y: 0, width: size.width, height: size.height)) 17 | image.unlockFocus() 18 | return image 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SlidePilot/Views/Slide/NSDatePicker+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSDatePicker+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 24.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension NSDatePicker { 12 | 13 | /** Returns the `TimeInterval` from midnight to the chosen dates time. */ 14 | var time: TimeInterval { 15 | var calendar = Calendar.current 16 | calendar.timeZone = TimeZone(secondsFromGMT: 0)! 17 | let hour = calendar.component(.hour, from: self.dateValue) 18 | let minutes = calendar.component(.minute, from: self.dateValue) 19 | let seconds = calendar.component(.second, from: self.dateValue) 20 | 21 | return TimeInterval(hour * 3600 + minutes * 60 + seconds) 22 | } 23 | 24 | 25 | /** Sets the `dateValue` of the picker to midnight. */ 26 | func setZeroTime() { 27 | let formatter = DateFormatter() 28 | formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ" 29 | self.dateValue = formatter.date(from: "2020-01-01T00:00:00+0000")! 30 | self.timeZone = TimeZone(secondsFromGMT: 0) 31 | } 32 | 33 | 34 | func setTime(_ interval: TimeInterval) { 35 | setZeroTime() 36 | self.dateValue = self.dateValue + interval 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /SlidePilot/Views/Slide/SplitView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SplitView.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 29.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class SplitView: NSSplitView { 12 | 13 | override var dividerColor: NSColor { 14 | return (divCol == nil) ? super.dividerColor : divCol! 15 | } 16 | 17 | var divCol: NSColor? 18 | func setDividerColor(_ color: NSColor) { 19 | divCol = color 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /SlidePilot/Views/SlideInfoLabel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SlideInfoLabel.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 28.05.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class SlideInfoLabel: NSTextField { 12 | 13 | override init(frame frameRect: NSRect) { 14 | super.init(frame: frameRect) 15 | setup() 16 | } 17 | 18 | 19 | required init?(coder: NSCoder) { 20 | super.init(coder: coder) 21 | setup() 22 | } 23 | 24 | 25 | 26 | // MARK: - UI Setup/Update 27 | 28 | func setup() { 29 | self.font = NSFont.systemFont(ofSize: 20.0, weight: .regular) 30 | self.alignment = .center 31 | self.isEditable = false 32 | self.isSelectable = false 33 | self.isBordered = false 34 | self.drawsBackground = false 35 | self.textColor = .white 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /SlidePilot/Views/Time/ClockLabel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ClockLabel.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class ClockLabel: NSTextField { 12 | 13 | override init(frame frameRect: NSRect) { 14 | super.init(frame: frameRect) 15 | setup() 16 | } 17 | 18 | 19 | required init?(coder: NSCoder) { 20 | super.init(coder: coder) 21 | setup() 22 | } 23 | 24 | 25 | private func setup() { 26 | // Inital time 27 | updateLabel() 28 | 29 | // Start clock 30 | let clockTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateLabel), userInfo: nil, repeats: true) 31 | RunLoop.main.add(clockTimer, forMode: RunLoop.Mode.common) 32 | } 33 | 34 | 35 | @objc private func updateLabel() { 36 | let timeFormatter = DateFormatter() 37 | timeFormatter.dateFormat = "HH:mm:ss" 38 | self.stringValue = timeFormatter.string(from: Date()) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /SlidePilot/Views/Time/TimeInterval+Extension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TimeInterval+Extension.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | extension TimeInterval { 12 | 13 | func format() -> String { 14 | if self >= 0 { 15 | let hours = Int(self) / 3600 16 | let minutes = Int(self) / 60 % 60 17 | let seconds = Int(self) % 60 18 | return String(format:"%02i:%02i:%02i", hours, minutes, seconds) 19 | } else { 20 | return "- \(abs(self).format())" 21 | } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /SlidePilot/Views/Time/TimeView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TimeView.swift 3 | // SlidePilot 4 | // 5 | // Created by Pascal Braband on 23.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class TimeView: NSView { 12 | 13 | 14 | enum LayoutType { 15 | case clockLeft, clockRight, clockSmall 16 | } 17 | 18 | 19 | var layout: LayoutType = .clockLeft { 20 | didSet { 21 | setup() 22 | } 23 | } 24 | 25 | 26 | /** Defines the partitioning between left and right time label. 27 | _Default:_ `0.5`, means both labels are distributed equally */ 28 | var horizontalDistribution: CGFloat = 0.5 { 29 | didSet { 30 | setup() 31 | } 32 | } 33 | 34 | var verticalDistribution: CGFloat = 0.5 { 35 | didSet { 36 | setup() 37 | } 38 | } 39 | 40 | 41 | var timingControl: TimingControl = TimingControl(mode: .stopwatch) 42 | var clockLabel: ClockLabel = ClockLabel() 43 | 44 | 45 | override init(frame frameRect: NSRect) { 46 | super.init(frame: frameRect) 47 | 48 | self.layout = .clockLeft 49 | } 50 | 51 | 52 | required init?(coder: NSCoder) { 53 | super.init(coder: coder) 54 | 55 | self.layout = .clockLeft 56 | } 57 | 58 | 59 | private func setup() { 60 | // Remove all subviews 61 | self.subviews.forEach({ $0.removeFromSuperview() }) 62 | 63 | switch self.layout { 64 | case .clockLeft: 65 | setupClockLeft() 66 | case .clockRight: 67 | setupClockRight() 68 | case .clockSmall: 69 | setupClockSmall() 70 | } 71 | } 72 | 73 | 74 | private func setupClockLeft() { 75 | timingControl.reset() 76 | 77 | 78 | } 79 | 80 | 81 | private func setupClockRight() { 82 | timingControl.reset() 83 | 84 | 85 | } 86 | 87 | 88 | private func setupClockSmall() { 89 | timingControl.reset() 90 | 91 | 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /SlidePilot/de.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/de.lproj/Localizable.strings -------------------------------------------------------------------------------- /SlidePilot/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /SlidePilot/fr.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SlidePilot/SlidePilot-macOS/8d38bc163e2410ccf7e7c5e73be445a4a51fa7b8/SlidePilot/fr.lproj/Localizable.strings -------------------------------------------------------------------------------- /SlidePilotTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | $(PRODUCT_BUNDLE_PACKAGE_TYPE) 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /SlidePilotTests/TimeIntervalExtTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TimeIntervalExtTests.swift 3 | // TimeIntervalExtTests 4 | // 5 | // Created by Pascal Braband on 23.03.20. 6 | // Copyright © 2020 Pascal Braband. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import SlidePilot 11 | 12 | class TimeIntervalExtTests: XCTestCase { 13 | 14 | override func setUp() { 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | } 21 | 22 | func testFormat() { 23 | let minute: TimeInterval = 60.0 24 | let hour: TimeInterval = 3600.0 25 | let some: TimeInterval = 3984.0 26 | 27 | XCTAssertEqual(minute.format(), "00:01:00") 28 | XCTAssertEqual(hour.format(), "01:00:00") 29 | XCTAssertEqual(some.format(), "01:06:24") 30 | 31 | let minuteNeg = -minute 32 | let hourNeg = -hour 33 | let someNeg = -some 34 | 35 | XCTAssertEqual(minuteNeg.format(), "- 00:01:00") 36 | XCTAssertEqual(hourNeg.format(), "- 01:00:00") 37 | XCTAssertEqual(someNeg.format(), "- 01:06:24") 38 | } 39 | 40 | } 41 | --------------------------------------------------------------------------------