Browse Source

Abstract out logging classes into a separate library.

pull/92/head
Abhishek 4 years ago
parent
commit
d336b99668
  1. 1
      Clocker/AppDelegate.swift
  2. 15
      Clocker/Clocker.xcodeproj/project.pbxproj
  3. 2
      Clocker/Clocker.xcodeproj/xcuserdata/ban.xcuserdatad/xcschemes/xcschememanagement.plist
  4. 1
      Clocker/Clocker/LocationController.swift
  5. 5
      Clocker/CoreLoggerKit/.gitignore
  6. 28
      Clocker/CoreLoggerKit/Package.swift
  7. 6
      Clocker/CoreLoggerKit/README.md
  8. 14
      Clocker/CoreLoggerKit/Sources/CoreLoggerKit/Logger.swift
  9. 15
      Clocker/CoreLoggerKit/Tests/CoreLoggerKitTests/CoreLoggerKitTests.swift
  10. 9
      Clocker/CoreLoggerKit/Tests/CoreLoggerKitTests/XCTestManifests.swift
  11. 7
      Clocker/CoreLoggerKit/Tests/LinuxMain.swift
  12. 1
      Clocker/Dependencies/Date Additions/TimeChunk.swift
  13. 8
      Clocker/Dependencies/Date Additions/TimePeriod.swift
  14. 2
      Clocker/Dependencies/Date Additions/TimePeriodChain.swift
  15. 1
      Clocker/Events and Reminders/CalendarHandler.swift
  16. 1
      Clocker/Events and Reminders/EventCenter.swift
  17. 1
      Clocker/Events and Reminders/RemindersHandler.swift
  18. 1
      Clocker/Onboarding/FinalOnboardingViewController.swift
  19. 1
      Clocker/Onboarding/OnboardingParentViewController.swift
  20. 1
      Clocker/Onboarding/OnboardingPermissionsViewController.swift
  21. 1
      Clocker/Onboarding/OnboardingSearchController.swift
  22. 1
      Clocker/Overall App/AppDefaults.swift
  23. 1
      Clocker/Overall App/DataStore.swift
  24. 1
      Clocker/Overall App/VersionUpdateHandler.swift
  25. 2
      Clocker/Panel/Data Layer/TimezoneData.swift
  26. 1
      Clocker/Panel/Data Layer/TimezoneDataOperations.swift
  27. 1
      Clocker/Panel/Notes Popover/NotesPopover.swift
  28. 1
      Clocker/Panel/PanelController.swift
  29. 1
      Clocker/Panel/ParentPanelController.swift
  30. 1
      Clocker/Panel/UI/PanelTableView.swift
  31. 1
      Clocker/Panel/UI/TimezoneCellView.swift
  32. 1
      Clocker/Preferences/About/AboutViewController.swift
  33. 1
      Clocker/Preferences/App Feedback/AppFeedbackWindowController.swift
  34. 1
      Clocker/Preferences/Appearance/AppearanceViewController.swift
  35. 1
      Clocker/Preferences/Calendar/CalendarViewController.swift
  36. 1
      Clocker/Preferences/General/PreferencesDataSource.swift
  37. 1
      Clocker/Preferences/General/PreferencesViewController.swift
  38. 1
      Clocker/Preferences/Menu Bar/MenubarHandler.swift
  39. 1
      Clocker/Preferences/Menu Bar/StatusContainerView.swift
  40. 1
      Clocker/Preferences/Menu Bar/StatusItemHandler.swift
  41. 1
      Clocker/Preferences/Permissions/PermissionsViewController.swift

1
Clocker/AppDelegate.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
open class AppDelegate: NSObject, NSApplicationDelegate {
private lazy var floatingWindow: FloatingWindowController = FloatingWindowController.shared()

15
Clocker/Clocker.xcodeproj/project.pbxproj

@ -11,11 +11,11 @@
3508CC9A259A0001000E3530 /* StatusItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CC99259A0001000E3530 /* StatusItemView.swift */; };
3508CC9F259A000E000E3530 /* StatusItemHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CC9E259A000E000E3530 /* StatusItemHandler.swift */; };
3508CCAA259A0027000E3530 /* StatusContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3508CCA9259A0027000E3530 /* StatusContainerView.swift */; };
35190E47255F53F5006E9C85 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3C2259D892002FA5C6 /* Logger.swift */; };
357391872507277500D30819 /* HourMarkerViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 357391852507277500D30819 /* HourMarkerViewItem.swift */; };
357391882507277500D30819 /* HourMarkerViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = 357391862507277500D30819 /* HourMarkerViewItem.xib */; };
3595FAD0227F88BC0044A12A /* UserDefaults + KVOExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3595FACF227F88BC0044A12A /* UserDefaults + KVOExtensions.swift */; };
35B2FEC0259A186F005DA84D /* StartupKit in Frameworks */ = {isa = PBXBuildFile; productRef = 35B2FEBF259A186F005DA84D /* StartupKit */; };
35B2FEDD259A2291005DA84D /* CoreLoggerKit in Frameworks */ = {isa = PBXBuildFile; productRef = 35B2FEDC259A2291005DA84D /* CoreLoggerKit */; };
35C11E2124873A550031F18C /* VersionUpdateHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C11E2024873A550031F18C /* VersionUpdateHandler.swift */; };
35C36EF122595F14002FA5C6 /* OnboardingPermissionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36EE822595F13002FA5C6 /* OnboardingPermissionsViewController.swift */; };
35C36EF222595F14002FA5C6 /* OnboardingWelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36EE922595F13002FA5C6 /* OnboardingWelcomeViewController.swift */; };
@ -50,7 +50,6 @@
35C36F372259D7C3002FA5C6 /* AddTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F322259D7C3002FA5C6 /* AddTableViewCell.swift */; };
35C36F412259D892002FA5C6 /* Themer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F392259D892002FA5C6 /* Themer.swift */; };
35C36F422259D892002FA5C6 /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3A2259D892002FA5C6 /* Timer.swift */; };
35C36F442259D892002FA5C6 /* Logger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3C2259D892002FA5C6 /* Logger.swift */; };
35C36F452259D892002FA5C6 /* Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3D2259D892002FA5C6 /* Strings.swift */; };
35C36F462259D892002FA5C6 /* DataStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3E2259D892002FA5C6 /* DataStore.swift */; };
35C36F472259D892002FA5C6 /* Reach.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35C36F3F2259D892002FA5C6 /* Reach.swift */; };
@ -238,6 +237,7 @@
357391862507277500D30819 /* HourMarkerViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = HourMarkerViewItem.xib; sourceTree = "<group>"; };
3595FACF227F88BC0044A12A /* UserDefaults + KVOExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UserDefaults + KVOExtensions.swift"; sourceTree = "<group>"; };
35B2FEB1259A1649005DA84D /* StartupKit */ = {isa = PBXFileReference; lastKnownFileType = folder; path = StartupKit; sourceTree = "<group>"; };
35B2FED4259A2244005DA84D /* CoreLoggerKit */ = {isa = PBXFileReference; lastKnownFileType = folder; path = CoreLoggerKit; sourceTree = "<group>"; };
35C11E2024873A550031F18C /* VersionUpdateHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionUpdateHandler.swift; sourceTree = "<group>"; };
35C36EE822595F13002FA5C6 /* OnboardingPermissionsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingPermissionsViewController.swift; sourceTree = "<group>"; };
35C36EE922595F13002FA5C6 /* OnboardingWelcomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OnboardingWelcomeViewController.swift; sourceTree = "<group>"; };
@ -272,7 +272,6 @@
35C36F322259D7C3002FA5C6 /* AddTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddTableViewCell.swift; sourceTree = "<group>"; };
35C36F392259D892002FA5C6 /* Themer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Themer.swift; sourceTree = "<group>"; };
35C36F3A2259D892002FA5C6 /* Timer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Timer.swift; sourceTree = "<group>"; };
35C36F3C2259D892002FA5C6 /* Logger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Logger.swift; sourceTree = "<group>"; };
35C36F3D2259D892002FA5C6 /* Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Strings.swift; sourceTree = "<group>"; };
35C36F3E2259D892002FA5C6 /* DataStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DataStore.swift; sourceTree = "<group>"; };
35C36F3F2259D892002FA5C6 /* Reach.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Reach.swift; sourceTree = "<group>"; };
@ -451,6 +450,7 @@
9ACF469D1DCBD45200C49B51 /* Quartz.framework in Frameworks */,
9AC678E41C1ABAB9003B4F6B /* QuartzCore.framework in Frameworks */,
9A5E75E4204CC39700119939 /* ShortcutRecorder.framework in Frameworks */,
35B2FEDD259A2291005DA84D /* CoreLoggerKit in Frameworks */,
35B2FEC0259A186F005DA84D /* StartupKit in Frameworks */,
9A6D93371CF3E82F005A8690 /* CoreImage.framework in Frameworks */,
9A5E75E8204CC39700119939 /* PTHotKey.framework in Frameworks */,
@ -555,7 +555,6 @@
35C36F4D2259D981002FA5C6 /* AppDefaults.swift */,
35C36F4C2259D981002FA5C6 /* DateFormatterManager.swift */,
35C36F3E2259D892002FA5C6 /* DataStore.swift */,
35C36F3C2259D892002FA5C6 /* Logger.swift */,
35C36F402259D892002FA5C6 /* NetworkManager.swift */,
35C36F3F2259D892002FA5C6 /* Reach.swift */,
35C36F3D2259D892002FA5C6 /* Strings.swift */,
@ -830,6 +829,7 @@
DD4F7BF913C30F9F00825C6E = {
isa = PBXGroup;
children = (
35B2FED4259A2244005DA84D /* CoreLoggerKit */,
35B2FEB1259A1649005DA84D /* StartupKit */,
354BB0842574810500097121 /* Keys.plist */,
35C36F9B2259EC97002FA5C6 /* Events and Reminders */,
@ -970,6 +970,7 @@
name = Clocker;
packageProductDependencies = (
35B2FEBF259A186F005DA84D /* StartupKit */,
35B2FEDC259A2291005DA84D /* CoreLoggerKit */,
);
productName = Popup;
productReference = DD4F7C0413C30F9F00825C6E /* Clocker.app */;
@ -1194,7 +1195,6 @@
buildActionMask = 2147483647;
files = (
C2F7821B20B70E3700B6CD07 /* AboutUsTests.swift in Sources */,
35190E47255F53F5006E9C85 /* Logger.swift in Sources */,
C264A0C820B898D600CCD875 /* PanelTests.swift in Sources */,
C2BFE3E62049F82300825BE5 /* ClockerUITests.m in Sources */,
C2AB022421AEED590014A401 /* OnboardingTests.swift in Sources */,
@ -1272,7 +1272,6 @@
3595FAD0227F88BC0044A12A /* UserDefaults + KVOExtensions.swift in Sources */,
9AB6F1612259D1B000A44663 /* PreferencesViewController.swift in Sources */,
35C36F2022596253002FA5C6 /* OneWindowController.swift in Sources */,
35C36F442259D892002FA5C6 /* Logger.swift in Sources */,
35C36F0E225961DA002FA5C6 /* Date+Bundle.swift in Sources */,
9AB6F1672259D23200A44663 /* PermissionsViewController.swift in Sources */,
9AB6F1642259D1B900A44663 /* ParentViewController.swift in Sources */,
@ -2179,6 +2178,10 @@
isa = XCSwiftPackageProductDependency;
productName = StartupKit;
};
35B2FEDC259A2291005DA84D /* CoreLoggerKit */ = {
isa = XCSwiftPackageProductDependency;
productName = CoreLoggerKit;
};
/* End XCSwiftPackageProductDependency section */
};
rootObject = DD4F7BFB13C30F9F00825C6E /* Project object */;

2
Clocker/Clocker.xcodeproj/xcuserdata/ban.xcuserdatad/xcschemes/xcschememanagement.plist

@ -12,7 +12,7 @@
<key>ClockerHelper.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
<integer>5</integer>
</dict>
<key>Tests.xcscheme_^#shared#^_</key>
<dict>

1
Clocker/Clocker/LocationController.swift

@ -2,6 +2,7 @@
import Cocoa
import CoreLocation
import CoreLoggerKit
class LocationController: NSObject {
public static let sharedInstance = LocationController()

5
Clocker/CoreLoggerKit/.gitignore vendored

@ -0,0 +1,5 @@
.DS_Store
/.build
/Packages
/*.xcodeproj
xcuserdata/

28
Clocker/CoreLoggerKit/Package.swift

@ -0,0 +1,28 @@
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "CoreLoggerKit",
platforms: [
.macOS(.v10_12),
],
products: [
.library(
name: "CoreLoggerKit",
targets: ["CoreLoggerKit"]
),
],
dependencies: [],
targets: [
.target(
name: "CoreLoggerKit",
dependencies: []
),
.testTarget(
name: "CoreLoggerKitTests",
dependencies: ["CoreLoggerKit"]
),
]
)

6
Clocker/CoreLoggerKit/README.md

@ -0,0 +1,6 @@
# CoreLoggerKit
Encompasses two main logging classes.
1. Logger: Essentially logs to console
2. PerfLogger: Uses `signpost` APIs to track time taken to open panel

14
Clocker/Overall App/Logger.swift → Clocker/CoreLoggerKit/Sources/CoreLoggerKit/Logger.swift

@ -5,16 +5,16 @@ import os
import os.log
import os.signpost
class Logger: NSObject {
public class Logger: NSObject {
let logObjc = OSLog(subsystem: "com.abhishek.Clocker", category: "app")
class func log(object annotations: [String: Any]?, for event: NSString) {
public class func log(object annotations: [String: Any]?, for event: NSString) {
if #available(OSX 10.14, *) {
os_log(.default, "[%@] - [%@]", event, annotations ?? [:])
}
}
class func info(_ message: String) {
public class func info(_ message: String) {
if #available(OSX 10.14, *) {
os_log(.info, "%@", message)
}
@ -22,23 +22,23 @@ class Logger: NSObject {
}
@available(OSX 10.14, *)
class PerfLogger: NSObject {
public class PerfLogger: NSObject {
static var panelLog = OSLog(subsystem: "com.abhishek.Clocker",
category: "Open Panel")
static let signpostID = OSSignpostID(log: panelLog)
class func disable() {
public class func disable() {
panelLog = .disabled
}
class func startMarker(_ name: StaticString) {
public class func startMarker(_ name: StaticString) {
os_signpost(.begin,
log: panelLog,
name: name,
signpostID: signpostID)
}
class func endMarker(_ name: StaticString) {
public class func endMarker(_ name: StaticString) {
os_signpost(.end,
log: panelLog,
name: name,

15
Clocker/CoreLoggerKit/Tests/CoreLoggerKitTests/CoreLoggerKitTests.swift

@ -0,0 +1,15 @@
@testable import CoreLoggerKit
import XCTest
final class CoreLoggerKitTests: XCTestCase {
func testExample() {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct
// results.
XCTAssertEqual(CoreLoggerKit().text, "Hello, World!")
}
static var allTests = [
("testExample", testExample),
]
}

9
Clocker/CoreLoggerKit/Tests/CoreLoggerKitTests/XCTestManifests.swift

@ -0,0 +1,9 @@
import XCTest
#if !canImport(ObjectiveC)
public func allTests() -> [XCTestCaseEntry] {
return [
testCase(CoreLoggerKitTests.allTests),
]
}
#endif

7
Clocker/CoreLoggerKit/Tests/LinuxMain.swift

@ -0,0 +1,7 @@
import XCTest
import CoreLoggerKitTests
var tests = [XCTestCaseEntry]()
tests += CoreLoggerKitTests.allTests()
XCTMain(tests)

1
Clocker/Dependencies/Date Additions/TimeChunk.swift

@ -67,7 +67,6 @@ public struct TimeChunk {
*/
public func to(_ unit: TimeUnits) -> Int {
if months != 0 {
Logger.info("Months are not supported for conversion due to their uncertain number of days.")
return 0
}
if unit == .seconds {

8
Clocker/Dependencies/Date Additions/TimePeriod.swift

@ -390,7 +390,7 @@ public extension TimePeriodProtocol {
end = end?.add(chunk)
case .center:
// Do not lengthen by TimeChunk at center
Logger.info("Mutation via chunk from center anchor is not supported.")
Swift.print("Mutation via chunk from center anchor is not supported.")
case .end:
beginning = beginning?.subtract(chunk)
}
@ -426,7 +426,7 @@ public extension TimePeriodProtocol {
end = end?.subtract(chunk)
case .center:
// Do not shorten by TimeChunk at center
Logger.info("Mutation via chunk from center anchor is not supported.")
Swift.print("Mutation via chunk from center anchor is not supported.")
case .end:
beginning = beginning?.add(chunk)
}
@ -561,7 +561,7 @@ open class TimePeriod: TimePeriodProtocol {
timePeriod.beginning = beginning
timePeriod.end = end?.add(chunk)
case .center:
Logger.info("Mutation via chunk from center anchor is not supported.")
Swift.print("Mutation via chunk from center anchor is not supported.")
case .end:
timePeriod.beginning = beginning?.add(-chunk)
timePeriod.end = end
@ -610,7 +610,7 @@ open class TimePeriod: TimePeriodProtocol {
timePeriod.beginning = beginning
timePeriod.end = end?.subtract(chunk)
case .center:
Logger.info("Mutation via chunk from center anchor is not supported.")
Swift.print("Mutation via chunk from center anchor is not supported.")
case .end:
timePeriod.beginning = beginning?.add(-chunk)
timePeriod.end = end

2
Clocker/Dependencies/Date Additions/TimePeriodChain.swift

@ -79,7 +79,7 @@ open class TimePeriodChain: TimePeriodGroup {
// Insert new period
periods.insert(period, at: index)
} else {
Logger.info("All TimePeriods in a TimePeriodChain must contain a defined start and end date")
Swift.print("All TimePeriods in a TimePeriodChain must contain a defined start and end date")
return
}

1
Clocker/Events and Reminders/CalendarHandler.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import EventKit
extension EventCenter {

1
Clocker/Events and Reminders/EventCenter.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import EventKit
class EventCenter: NSObject {

1
Clocker/Events and Reminders/RemindersHandler.swift

@ -1,5 +1,6 @@
// Copyright © 2015 Abhishek Banthia
import CoreLoggerKit
import EventKit
extension EventCenter {

1
Clocker/Onboarding/FinalOnboardingViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import Firebase
struct EmailSignupConstants {

1
Clocker/Onboarding/OnboardingParentViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import StartupKit
extension NSStoryboard.SceneIdentifier {

1
Clocker/Onboarding/OnboardingPermissionsViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class OnboardingPermissionsViewController: NSViewController {
@IBOutlet var reminderGrantButton: NSButton!

1
Clocker/Onboarding/OnboardingSearchController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class OnboardingSearchController: NSViewController {
@IBOutlet private var appName: NSTextField!

1
Clocker/Overall App/AppDefaults.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class AppDefaults {
class func initialize() {

1
Clocker/Overall App/DataStore.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
enum ViewType {
case futureSlider

1
Clocker/Overall App/VersionUpdateHandler.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class VersionUpdateHandler: NSObject {
enum VersionUpdateHandlerPriority {

2
Clocker/Panel/Data Layer/TimezoneData.swift

@ -1,7 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import os.log
import CoreLoggerKit
struct DateFormat {
static let twelveHour = "h:mm a"

1
Clocker/Panel/Data Layer/TimezoneDataOperations.swift

@ -2,6 +2,7 @@
import Cocoa
import CoreLocation
import CoreLoggerKit
class TimezoneDataOperations: NSObject {
private var dataObject: TimezoneData!

1
Clocker/Panel/Notes Popover/NotesPopover.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class NotesPopover: NSViewController {
private enum OverrideType {

1
Clocker/Panel/PanelController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class PanelController: ParentPanelController {
@objc dynamic var hasActivePanel: Bool = false

1
Clocker/Panel/ParentPanelController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import EventKit
struct PanelConstants {

1
Clocker/Panel/UI/PanelTableView.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
protocol PanelTableViewDelegate: NSTableViewDelegate {
func tableView(_ table: NSTableView, didHoverOver row: NSInteger)

1
Clocker/Panel/UI/TimezoneCellView.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class TimezoneCellView: NSTableCellView {
@IBOutlet var customName: NSTextField!

1
Clocker/Preferences/About/AboutViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
struct AboutUsConstants {
static let AboutUsNibIdentifier = "CLAboutWindows"

1
Clocker/Preferences/App Feedback/AppFeedbackWindowController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import Firebase
extension NSNib.Name {

1
Clocker/Preferences/Appearance/AppearanceViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class AppearanceViewController: ParentViewController {
@IBOutlet var timeFormat: NSPopUpButton!

1
Clocker/Preferences/Calendar/CalendarViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import EventKit
class ClockerTextBackgroundView: NSView {

1
Clocker/Preferences/General/PreferencesDataSource.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
struct PreferencesDataSourceConstants {
static let timezoneNameIdentifier = "formattedAddress"

1
Clocker/Preferences/General/PreferencesViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import StartupKit
struct PreferencesConstants {

1
Clocker/Preferences/Menu Bar/MenubarHandler.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
import EventKit
class MenubarHandler: NSObject {

1
Clocker/Preferences/Menu Bar/StatusContainerView.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
func bufferCalculatedWidth() -> Int {
var totalWidth = 55

1
Clocker/Preferences/Menu Bar/StatusItemHandler.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
private enum MenubarState {
case compactText

1
Clocker/Preferences/Permissions/PermissionsViewController.swift

@ -1,6 +1,7 @@
// Copyright © 2015 Abhishek Banthia
import Cocoa
import CoreLoggerKit
class PermissionsViewController: ParentViewController {
@IBOutlet var calendarContainerView: NSView!

Loading…
Cancel
Save