diff --git a/Clocker-Preview.gif b/Clocker-Preview.gif new file mode 100644 index 0000000..51cbee8 Binary files /dev/null and b/Clocker-Preview.gif differ diff --git a/Clocker.xcodeproj/project.pbxproj b/Clocker.xcodeproj/project.pbxproj index 162e6cb..cf12b96 100755 --- a/Clocker.xcodeproj/project.pbxproj +++ b/Clocker.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 9A2000D11BFBD472002BFDE8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 9A2000CF1BFBD472002BFDE8 /* Localizable.strings */; settings = {ASSET_TAGS = (); }; }; 9A4379251BEC223900F4E27F /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A4379211BEC223900F4E27F /* Security.framework */; settings = {ASSET_TAGS = (); }; }; 9A4379261BEC223900F4E27F /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A4379221BEC223900F4E27F /* SystemConfiguration.framework */; settings = {ASSET_TAGS = (); }; }; 9A4379271BEC223900F4E27F /* Fabric.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A4379231BEC223900F4E27F /* Fabric.framework */; settings = {ASSET_TAGS = (); }; }; @@ -23,18 +24,23 @@ 9A8605BF1BEC14F600A810A4 /* BackgroundView.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A8605BC1BEC14F600A810A4 /* BackgroundView.m */; }; 9A8605C01BEC14F600A810A4 /* Panel.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A8605BD1BEC14F600A810A4 /* Panel.m */; }; 9A8605C11BEC14F600A810A4 /* PreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A8605BE1BEC14F600A810A4 /* PreferencesWindowController.m */; }; - 9A8605D61BEC155B00A810A4 /* Panel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605CD1BEC155B00A810A4 /* Panel.xib */; settings = {ASSET_TAGS = (); }; }; - 9A8605D71BEC155B00A810A4 /* PreferencesWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605CE1BEC155B00A810A4 /* PreferencesWindow.xib */; settings = {ASSET_TAGS = (); }; }; 9A8605D81BEC155B00A810A4 /* PowerIcon.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605CF1BEC155B00A810A4 /* PowerIcon.png */; settings = {ASSET_TAGS = (); }; }; 9A8605D91BEC155B00A810A4 /* Status.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605D01BEC155B00A810A4 /* Status.png */; settings = {ASSET_TAGS = (); }; }; 9A8605DA1BEC155B00A810A4 /* Status@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605D11BEC155B00A810A4 /* Status@2x.png */; settings = {ASSET_TAGS = (); }; }; 9A8605DB1BEC155B00A810A4 /* StatusHighlighted.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605D21BEC155B00A810A4 /* StatusHighlighted.png */; settings = {ASSET_TAGS = (); }; }; 9A8605DC1BEC155B00A810A4 /* StatusHighlighted@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605D31BEC155B00A810A4 /* StatusHighlighted@2x.png */; settings = {ASSET_TAGS = (); }; }; 9A8605DF1BEC15C400A810A4 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9A8605DD1BEC15C400A810A4 /* MainMenu.xib */; settings = {ASSET_TAGS = (); }; }; + 9ABA38AC1BFAD7F80073EA4D /* Panel.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9ABA38AE1BFAD7F80073EA4D /* Panel.xib */; }; + 9ABA38AF1BFAD83F0073EA4D /* PreferencesWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9ABA38B11BFAD83F0073EA4D /* PreferencesWindow.xib */; }; DD4F7C0913C30F9F00825C6E /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DD4F7C0813C30F9F00825C6E /* Cocoa.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 9A2000CC1BFBD3D7002BFDE8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Clocker/Base.lproj/MainMenu.xib; sourceTree = ""; }; + 9A2000CD1BFBD3D7002BFDE8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Panel.xib; sourceTree = ""; }; + 9A2000CE1BFBD3D7002BFDE8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PreferencesWindow.xib; sourceTree = ""; }; + 9A2000D01BFBD472002BFDE8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Clocker/en.lproj/Localizable.strings; sourceTree = ""; }; + 9A2000D21BFBD47C002BFDE8 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = Clocker/fr.lproj/Localizable.strings; sourceTree = ""; }; 9A4379211BEC223900F4E27F /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Security.framework; sourceTree = ""; }; 9A4379221BEC223900F4E27F /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SystemConfiguration.framework; sourceTree = ""; }; 9A4379231BEC223900F4E27F /* Fabric.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Fabric.framework; sourceTree = ""; }; @@ -43,6 +49,10 @@ 9A43792B1BEC231100F4E27F /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 9A43792D1BEC256200F4E27F /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = ""; }; 9A5B1A8D1BECDFB700A77C68 /* Clocker.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; name = Clocker.entitlements; path = Clocker/Clocker.entitlements; sourceTree = ""; }; + 9A825E3B1C064F6C0037CA3B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = Clocker/en.lproj/MainMenu.xib; sourceTree = ""; }; + 9A825E3C1C064F700037CA3B /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = Clocker/fr.lproj/MainMenu.xib; sourceTree = ""; }; + 9A825E3D1C06534E0037CA3B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/PreferencesWindow.xib; sourceTree = ""; }; + 9A825E3F1C06538B0037CA3B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Panel.xib; sourceTree = ""; }; 9A8605AD1BEC148400A810A4 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Clocker/main.m; sourceTree = ""; }; 9A8605B21BEC14A600A810A4 /* ColoredButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ColoredButton.m; path = Clocker/ColoredButton.m; sourceTree = ""; }; 9A8605B41BEC14BE00A810A4 /* MenubarController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = MenubarController.m; path = Clocker/MenubarController.m; sourceTree = ""; }; @@ -62,14 +72,13 @@ 9A8605CA1BEC155B00A810A4 /* ApplicationDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ApplicationDelegate.h; path = Clocker/ApplicationDelegate.h; sourceTree = ""; }; 9A8605CB1BEC155B00A810A4 /* ColoredButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ColoredButton.h; path = Clocker/ColoredButton.h; sourceTree = ""; }; 9A8605CC1BEC155B00A810A4 /* Clocker-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "Clocker-Prefix.pch"; path = "Clocker/Clocker-Prefix.pch"; sourceTree = ""; }; - 9A8605CD1BEC155B00A810A4 /* Panel.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Panel.xib; path = Clocker/Panel.xib; sourceTree = ""; }; - 9A8605CE1BEC155B00A810A4 /* PreferencesWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PreferencesWindow.xib; path = Clocker/PreferencesWindow.xib; sourceTree = ""; }; 9A8605CF1BEC155B00A810A4 /* PowerIcon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = PowerIcon.png; path = Clocker/PowerIcon.png; sourceTree = ""; }; 9A8605D01BEC155B00A810A4 /* Status.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Status.png; path = Clocker/Status.png; sourceTree = ""; }; 9A8605D11BEC155B00A810A4 /* Status@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Status@2x.png"; path = "Clocker/Status@2x.png"; sourceTree = ""; }; 9A8605D21BEC155B00A810A4 /* StatusHighlighted.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = StatusHighlighted.png; path = Clocker/StatusHighlighted.png; sourceTree = ""; }; 9A8605D31BEC155B00A810A4 /* StatusHighlighted@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "StatusHighlighted@2x.png"; path = "Clocker/StatusHighlighted@2x.png"; sourceTree = ""; }; - 9A8605DE1BEC15C400A810A4 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = Clocker/en.lproj/MainMenu.xib; sourceTree = ""; }; + 9ABA38B31BFAD8520073EA4D /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Panel.xib; sourceTree = ""; }; + 9ABA38B41BFAD8520073EA4D /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/PreferencesWindow.xib; sourceTree = ""; }; DD4F7C0413C30F9F00825C6E /* Clocker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Clocker.app; sourceTree = BUILT_PRODUCTS_DIR; }; DD4F7C0813C30F9F00825C6E /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; DD4F7C0B13C30F9F00825C6E /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; @@ -95,12 +104,20 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 9A2000C61BFBCEF6002BFDE8 /* Localization Strings */ = { + isa = PBXGroup; + children = ( + 9A2000CF1BFBD472002BFDE8 /* Localizable.strings */, + ); + name = "Localization Strings"; + sourceTree = ""; + }; 9A8605E01BEC15F400A810A4 /* XIB */ = { isa = PBXGroup; children = ( 9A8605DD1BEC15C400A810A4 /* MainMenu.xib */, - 9A8605CD1BEC155B00A810A4 /* Panel.xib */, - 9A8605CE1BEC155B00A810A4 /* PreferencesWindow.xib */, + 9ABA38AE1BFAD7F80073EA4D /* Panel.xib */, + 9ABA38B11BFAD83F0073EA4D /* PreferencesWindow.xib */, ); name = XIB; sourceTree = ""; @@ -169,6 +186,7 @@ children = ( 9A5B1A8D1BECDFB700A77C68 /* Clocker.entitlements */, 9A43792D1BEC256200F4E27F /* Media.xcassets */, + 9A2000C61BFBCEF6002BFDE8 /* Localization Strings */, 9A8605E01BEC15F400A810A4 /* XIB */, 9A8605E11BEC160700A810A4 /* Images */, 9A8605E41BEC164C00A810A4 /* Main */, @@ -250,6 +268,8 @@ hasScannedForEncodings = 0; knownRegions = ( en, + fr, + Base, ); mainGroup = DD4F7BF913C30F9F00825C6E; productRefGroup = DD4F7C0513C30F9F00825C6E /* Products */; @@ -266,11 +286,12 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9A8605D71BEC155B00A810A4 /* PreferencesWindow.xib in Resources */, + 9ABA38AF1BFAD83F0073EA4D /* PreferencesWindow.xib in Resources */, 9A8605DF1BEC15C400A810A4 /* MainMenu.xib in Resources */, 9A8605D91BEC155B00A810A4 /* Status.png in Resources */, - 9A8605D61BEC155B00A810A4 /* Panel.xib in Resources */, + 9ABA38AC1BFAD7F80073EA4D /* Panel.xib in Resources */, 9A43792E1BEC256200F4E27F /* Media.xcassets in Resources */, + 9A2000D11BFBD472002BFDE8 /* Localizable.strings in Resources */, 9A8605DC1BEC155B00A810A4 /* StatusHighlighted@2x.png in Resources */, 9A8605DA1BEC155B00A810A4 /* Status@2x.png in Resources */, 9A8605DB1BEC155B00A810A4 /* StatusHighlighted.png in Resources */, @@ -316,14 +337,47 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ + 9A2000CF1BFBD472002BFDE8 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + 9A2000D01BFBD472002BFDE8 /* en */, + 9A2000D21BFBD47C002BFDE8 /* fr */, + ); + name = Localizable.strings; + sourceTree = ""; + }; 9A8605DD1BEC15C400A810A4 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( - 9A8605DE1BEC15C400A810A4 /* en */, + 9A2000CC1BFBD3D7002BFDE8 /* Base */, + 9A825E3B1C064F6C0037CA3B /* en */, + 9A825E3C1C064F700037CA3B /* fr */, ); name = MainMenu.xib; sourceTree = ""; }; + 9ABA38AE1BFAD7F80073EA4D /* Panel.xib */ = { + isa = PBXVariantGroup; + children = ( + 9ABA38B31BFAD8520073EA4D /* fr */, + 9A2000CD1BFBD3D7002BFDE8 /* Base */, + 9A825E3F1C06538B0037CA3B /* en */, + ); + name = Panel.xib; + path = Clocker; + sourceTree = ""; + }; + 9ABA38B11BFAD83F0073EA4D /* PreferencesWindow.xib */ = { + isa = PBXVariantGroup; + children = ( + 9ABA38B41BFAD8520073EA4D /* fr */, + 9A2000CE1BFBD3D7002BFDE8 /* Base */, + 9A825E3D1C06534E0037CA3B /* en */, + ); + name = PreferencesWindow.xib; + path = Clocker; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ @@ -338,7 +392,7 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer: Abhishek Banthia (75WFZYE9LW)"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -354,7 +408,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; SDKROOT = macosx; }; name = Distribution; @@ -365,7 +419,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = Clocker/Clocker.entitlements; - CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -377,7 +431,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; WRAPPER_EXTENSION = app; }; name = Distribution; @@ -393,7 +447,7 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer: Abhishek Banthia (75WFZYE9LW)"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COPY_PHASE_STRIP = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; @@ -417,7 +471,7 @@ GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; ONLY_ACTIVE_ARCH = YES; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; SDKROOT = macosx; }; name = Debug; @@ -433,7 +487,7 @@ CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "Mac Developer: Abhishek Banthia (75WFZYE9LW)"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -449,7 +503,7 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.10; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; SDKROOT = macosx; }; name = Release; @@ -460,7 +514,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = Clocker/Clocker.entitlements; - CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; FRAMEWORK_SEARCH_PATHS = ( @@ -473,7 +527,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; WRAPPER_EXTENSION = app; }; name = Debug; @@ -484,7 +538,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_OBJC_ARC = YES; CODE_SIGN_ENTITLEMENTS = Clocker/Clocker.entitlements; - CODE_SIGN_IDENTITY = "Mac Developer"; + CODE_SIGN_IDENTITY = "3rd Party Mac Developer Application: Abhishek Banthia (AJS5SNW8EY)"; COMBINE_HIDPI_IMAGES = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", @@ -496,7 +550,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.10; PRODUCT_BUNDLE_IDENTIFIER = com.abhishek.Clocker; PRODUCT_NAME = Clocker; - PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE = "1885f3d2-2a35-4a0b-b465-4c0119f4bbaf"; WRAPPER_EXTENSION = app; }; name = Release; diff --git a/Clocker.xcodeproj/xcuserdata/abhishekbanthia.xcuserdatad/xcschemes/Clocker.xcscheme b/Clocker.xcodeproj/xcuserdata/abhishekbanthia.xcuserdatad/xcschemes/Clocker.xcscheme index 912ba2b..ba89cbf 100644 --- a/Clocker.xcodeproj/xcuserdata/abhishekbanthia.xcuserdatad/xcschemes/Clocker.xcscheme +++ b/Clocker.xcodeproj/xcuserdata/abhishekbanthia.xcuserdatad/xcschemes/Clocker.xcscheme @@ -50,7 +50,10 @@ ignoresPersistentStateOnLaunch = "NO" debugDocumentVersioning = "YES" debugServiceExtension = "internal" - allowLocationSimulation = "YES"> + allowLocationSimulation = "YES" + showNonLocalizedStrings = "YES" + language = "en" + region = "AU"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/Base.lproj/Panel.xib b/Clocker/Base.lproj/Panel.xib new file mode 100755 index 0000000..5ad46fb --- /dev/null +++ b/Clocker/Base.lproj/Panel.xib @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/Base.lproj/PreferencesWindow.xib b/Clocker/Base.lproj/PreferencesWindow.xib new file mode 100644 index 0000000..84c0d69 --- /dev/null +++ b/Clocker/Base.lproj/PreferencesWindow.xib @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + addToFavorites: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/Clocker-Info.plist b/Clocker/Clocker-Info.plist index fe92cc8..e751376 100755 --- a/Clocker/Clocker-Info.plist +++ b/Clocker/Clocker-Info.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.1.1 + 1.1.2 CFBundleSignature ???? CFBundleVersion - 13 + 15 Fabric APIKey diff --git a/Clocker/PanelController.m b/Clocker/PanelController.m index 1743d9c..e44f573 100755 --- a/Clocker/PanelController.m +++ b/Clocker/PanelController.m @@ -297,7 +297,7 @@ NSNumber *is24HourFormatSelected = [[NSUserDefaults standardUserDefaults] objectForKey:@"is24HourFormatSelected"]; - is24HourFormatSelected.boolValue ? [dateFormatter setDateFormat:@"HH:mm"] : [dateFormatter setTimeStyle:NSDateFormatterShortStyle]; + is24HourFormatSelected.boolValue ? [dateFormatter setDateFormat:@"HH:mm"] : [dateFormatter setDateFormat:@"hh:mm a"]; dateFormatter.timeZone = [NSTimeZone timeZoneWithName:timezoneName]; //In the format 22:10 @@ -313,14 +313,15 @@ dateFormatter.timeStyle = kCFDateFormatterNoStyle; dateFormatter.timeZone = [NSTimeZone systemTimeZone]; - return [dateFormatter stringFromDate:currentDate]; + return [NSDateFormatter localizedStringFromDate:currentDate dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterNoStyle]; +// return [dateFormatter stringFromDate:currentDate]; } - (NSString *)compareSystemDate:(NSString *)systemDate toTimezoneDate:(NSString *)date { NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; - formatter.dateFormat = @"MM/dd/yy"; + formatter.dateFormat = [NSDateFormatter dateFormatFromTemplate:@"MM/dd/yyyy" options:0 locale:[NSLocale currentLocale]]; NSDate *localDate = [formatter dateFromString:systemDate]; NSDate *timezoneDate = [formatter dateFromString:date]; @@ -339,15 +340,15 @@ NSInteger timezoneDay = [calendar component:units fromDate:timezoneDate]; if (systemDay == timezoneDay) { - return @"Today"; + return NSLocalizedString(@"Today", @"Today");; } else if (systemDay > timezoneDay) { - return @"Yesterday"; + return NSLocalizedString(@"Yesterday", @"Yesterday"); } else { - return @"Tomorrow"; + return NSLocalizedString(@"Tomorrow", @"Tomorrow");; } } diff --git a/Clocker/PreferencesWindowController.m b/Clocker/PreferencesWindowController.m index 8b39769..d61821c 100644 --- a/Clocker/PreferencesWindowController.m +++ b/Clocker/PreferencesWindowController.m @@ -156,6 +156,11 @@ static PreferencesWindowController *sharedPreferences = nil; } if ([tableColumn.identifier isEqualToString:@"abbreviation"]) { + if (self.searchField.stringValue.length > 0) + { + return [NSTimeZone timeZoneWithName:self.filteredArray[row]].abbreviation; + } + return [NSTimeZone timeZoneWithName:self.timeZoneArray[row]].abbreviation; } @@ -165,9 +170,7 @@ static PreferencesWindowController *sharedPreferences = nil; - (IBAction)addTimeZone:(id)sender { - [self.window beginSheet:self.timezonePanel completionHandler:^(NSModalResponse returnCode) { - }]; } @@ -184,7 +187,7 @@ static PreferencesWindowController *sharedPreferences = nil; if (self.selectedTimeZones.count > 10) { - self.messageLabel.stringValue = @"Maximum 10 timezones allowed!"; + self.messageLabel.stringValue = NSLocalizedString(@"MaximumTimezoneMessage", nil); [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(clearLabel) userInfo:nil repeats:NO]; return; } @@ -201,7 +204,7 @@ static PreferencesWindowController *sharedPreferences = nil; } else if ([name isEqualToString:self.timeZoneArray[self.availableTimezoneTableView.selectedRow]]) { - self.messageLabel.stringValue = @"Timezone has already been selected!"; + self.messageLabel.stringValue = NSLocalizedString(@"DuplicateTimezoneMessage", nil); [NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(clearLabel) userInfo:nil repeats:NO]; return; } @@ -356,6 +359,10 @@ static PreferencesWindowController *sharedPreferences = nil; -(BOOL)tableView:(NSTableView *)tableView acceptDrop:(id)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)dropOperation { + if (row == self.selectedTimeZones.count) { + row--; + } + NSPasteboard *pBoard = [info draggingPasteboard]; NSData *data = [pBoard dataForType:@"public.text"]; @@ -430,11 +437,16 @@ static PreferencesWindowController *sharedPreferences = nil; - (IBAction)supportAction:(id)sender { + /* NSAppleScript *mailScript; NSString *scriptString= @"tell application \"Mail\"\nset theAddress to \"abhishekbanthia@me.com\"\n set msg to make new outgoing message with properties {visible:true, subject:\"Regarding Clocker - We need to talk!\"}\ntell msg to make new to recipient at end of every to recipient with properties {address:theAddress}\n activate\nend tell"; mailScript = [[NSAppleScript alloc] initWithSource:scriptString]; NSDictionary *dict = nil; - [mailScript executeAndReturnError:&dict]; + [mailScript executeAndReturnError:&dict];*/ + + NSString *issuePage = @"https://github.com/Abhishaker17/Clocker/issues"; + NSURL *mainURL = [NSURL URLWithString:issuePage]; + [[NSWorkspace sharedWorkspace] openURL:mainURL]; } diff --git a/Clocker/en.lproj/Localizable.strings b/Clocker/en.lproj/Localizable.strings new file mode 100644 index 0000000..e85e253 --- /dev/null +++ b/Clocker/en.lproj/Localizable.strings @@ -0,0 +1,16 @@ +/* + Localizable.strings + Clocker + + Created by Abhishek Banthia on 11/17/15. + +*/ + +"Yesterday" = "Yesterday"; +"Today" = "Today"; +"Tomorrow" = "Tomorrow"; +"SpreadTheWordTitle" = "Spread the word, maybe"; +"SpreadTheWordMessage" = "Clocker is completely open source. If it helped you in any way, please leave a kind of opinion on the App Store!"; +"Cancel" = "Cancel"; +"MaximumTimezoneMessage" = "Maximum 10 timezones allowed!"; +"DuplicateTimezoneMessage" = "Timezone has already been selected!"; \ No newline at end of file diff --git a/Clocker/en.lproj/Panel.xib b/Clocker/en.lproj/Panel.xib new file mode 100755 index 0000000..5ad46fb --- /dev/null +++ b/Clocker/en.lproj/Panel.xib @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/en.lproj/PreferencesWindow.xib b/Clocker/en.lproj/PreferencesWindow.xib new file mode 100644 index 0000000..84c0d69 --- /dev/null +++ b/Clocker/en.lproj/PreferencesWindow.xib @@ -0,0 +1,374 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + addToFavorites: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/fr.lproj/Localizable.strings b/Clocker/fr.lproj/Localizable.strings new file mode 100644 index 0000000..71962c3 --- /dev/null +++ b/Clocker/fr.lproj/Localizable.strings @@ -0,0 +1,17 @@ +/* + Localizable.strings + Clocker + + Created by Abhishek Banthia on 11/17/15. + +*/ + + +"Yesterday" = "Hier"; +"Today" = "Aujourd'hui"; +"Tomorrow" = "Demain"; +"SpreadTheWordTitle" = "Passez le mot"; +"SpreadTheWordMessage" = "Clocker est complètement open source . Si cela vous a aidé de quelque façon , s'il vous plaît laisser un avis de genre sur l'App Store !"; +"Cancel" = "Annuler"; +"MaximumTimezoneMessage" = "Maximum 10 fuseaux horaires autorisés!"; +"DuplicateTimezoneMessage" = "Fuseau horaire a déjà été sélectionnée!"; \ No newline at end of file diff --git a/Clocker/fr.lproj/MainMenu.xib b/Clocker/fr.lproj/MainMenu.xib new file mode 100755 index 0000000..926bcde --- /dev/null +++ b/Clocker/fr.lproj/MainMenu.xib @@ -0,0 +1,652 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/fr.lproj/Panel.xib b/Clocker/fr.lproj/Panel.xib new file mode 100755 index 0000000..16c7b69 --- /dev/null +++ b/Clocker/fr.lproj/Panel.xib @@ -0,0 +1,209 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/fr.lproj/PreferencesWindow.xib b/Clocker/fr.lproj/PreferencesWindow.xib new file mode 100644 index 0000000..86ec1d3 --- /dev/null +++ b/Clocker/fr.lproj/PreferencesWindow.xib @@ -0,0 +1,375 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + addToFavorites: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Clocker/main.m b/Clocker/main.m index 9a29e3e..4361f83 100755 --- a/Clocker/main.m +++ b/Clocker/main.m @@ -2,8 +2,8 @@ // main.m // Clocker // -// Created by Vadim Shpakovski on 7/5/11. -// Copyright 2011 __MyCompanyName__. All rights reserved. +// Created by Abhishek Banthia. +// Copyright 2015. All rights reserved. // #import