From b7f380bc4c8a310f8109d23c543ee462ef1c6021 Mon Sep 17 00:00:00 2001 From: Max Tushewski Date: Fri, 7 Dec 2012 17:04:22 +0400 Subject: [PATCH 1/2] Build Interface --- README.md | 23 +- SportTimer.xcodeproj/project.pbxproj | 462 ++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 11382 bytes .../xcschemes/SportTimer.xcscheme | 96 + .../xcschemes/xcschememanagement.plist | 27 + SportTimer/ARAppDelegate.h | 15 + SportTimer/ARAppDelegate.m | 18 + SportTimer/SportTimer-Info.plist | 34 + SportTimer/SportTimer-Prefix.pch | 7 + SportTimer/en.lproj/Credits.rtf | 29 + SportTimer/en.lproj/InfoPlist.strings | 2 + SportTimer/en.lproj/MainMenu.xib | 4247 +++++++++++++++++ SportTimer/main.m | 14 + SportTimerTests/SportTimerTests-Info.plist | 22 + SportTimerTests/SportTimerTests.h | 13 + SportTimerTests/SportTimerTests.m | 32 + SportTimerTests/en.lproj/InfoPlist.strings | 2 + 18 files changed, 5041 insertions(+), 9 deletions(-) create mode 100644 SportTimer.xcodeproj/project.pbxproj create mode 100644 SportTimer.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 SportTimer.xcodeproj/project.xcworkspace/xcuserdata/maze.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/SportTimer.xcscheme create mode 100644 SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 SportTimer/ARAppDelegate.h create mode 100644 SportTimer/ARAppDelegate.m create mode 100644 SportTimer/SportTimer-Info.plist create mode 100644 SportTimer/SportTimer-Prefix.pch create mode 100644 SportTimer/en.lproj/Credits.rtf create mode 100644 SportTimer/en.lproj/InfoPlist.strings create mode 100644 SportTimer/en.lproj/MainMenu.xib create mode 100644 SportTimer/main.m create mode 100644 SportTimerTests/SportTimerTests-Info.plist create mode 100644 SportTimerTests/SportTimerTests.h create mode 100644 SportTimerTests/SportTimerTests.m create mode 100644 SportTimerTests/en.lproj/InfoPlist.strings diff --git a/README.md b/README.md index 630317e..276c762 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,18 @@ -Проект 2. Идея и интерфейс приложения +Проект 2. Идея и интерфейс приложения SportTimer ============= -Придумайте приложение для OS X, разработайте графический интерфейс и сдайте: +Проблема +======== +Люди занимающиеся спортом дома испытывают нехватку в удобном таймере для тренировок. Таймер должен отмерять интервалы для выполнения упражнения и для отдыха между подходами. С использованием таймера не нужно будет отвлекаться, для учета повторов. -1. Подробное описание в README.md или PDF. Описание должно включать: - * Проблему, которую решает приложение - * Аудитория приложения - * Пример сценария использования приложения - * Описание поведения (что происходит при загрузке, что происходит при нажатии на кнопку Х, и так далее). -2. Вся папка с проектом, в которой обязательно должен быть .xib-файл с графическим интерфейсом. +Аудитория +========= +Аудиторию приложения составляют люди занимающиеся спортом дома. -[Сдать работу](https://u.hexlet.org/courses/4/assignments/6) \ No newline at end of file +Пример сценария использования прложения +======================================= +Пользователь выставляет количество подходов, интервал выполнения упражнения, и интервал отдыха между подходами с помощью текстовых полей. Нажимает кнопку «Старт», слышит звуковой сигнал, и приступает к выполнению упражнения. Упражнение выполняется до второго звукового сигнала, поле него пользователь отанавливается, и начинает отдыхать, до следующего сигнала. Данное действие происходит пока не будут выполнены все подходы. После отсчета последнего рабочего интервала программа издает двойной звуковой сигнал, что означает конец цыкла. + +Описание поведения +================== +После нажатия на кнопку «Старт», кнопка становится не активной, звучит звуковой сигнал, счетчик секунд в поле «Интервал работы» начинает уменьшаться каждую секунду на еденицу, пока не станет равным нулю, после чего поле вернется к своему исходному значению, прозвучит звуковой сигнал, и начнет уменьшатся время в поле «Интервал отдыха», затем когда один цикл пройдет поле «Количество подходов» снизится на еденицу. Как только «Количество подходов» станет равно нулю, прозвучит двойной сигнал, кнопка станет активной, значения всех полей вернутся к исходным. diff --git a/SportTimer.xcodeproj/project.pbxproj b/SportTimer.xcodeproj/project.pbxproj new file mode 100644 index 0000000..c7f1015 --- /dev/null +++ b/SportTimer.xcodeproj/project.pbxproj @@ -0,0 +1,462 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 6A9D39FE16720DE60039AFB8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A9D39FD16720DE60039AFB8 /* Cocoa.framework */; }; + 6A9D3A0816720DE60039AFB8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6A9D3A0616720DE60039AFB8 /* InfoPlist.strings */; }; + 6A9D3A0A16720DE60039AFB8 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A9D3A0916720DE60039AFB8 /* main.m */; }; + 6A9D3A0E16720DE60039AFB8 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 6A9D3A0C16720DE60039AFB8 /* Credits.rtf */; }; + 6A9D3A1116720DE60039AFB8 /* ARAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A9D3A1016720DE60039AFB8 /* ARAppDelegate.m */; }; + 6A9D3A1416720DE60039AFB8 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 6A9D3A1216720DE60039AFB8 /* MainMenu.xib */; }; + 6A9D3A1C16720DE70039AFB8 /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A9D3A1B16720DE70039AFB8 /* SenTestingKit.framework */; }; + 6A9D3A1D16720DE70039AFB8 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A9D39FD16720DE60039AFB8 /* Cocoa.framework */; }; + 6A9D3A2516720DE70039AFB8 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 6A9D3A2316720DE70039AFB8 /* InfoPlist.strings */; }; + 6A9D3A2816720DE70039AFB8 /* SportTimerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 6A9D3A2716720DE70039AFB8 /* SportTimerTests.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 6A9D3A1E16720DE70039AFB8 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A9D39F016720DE50039AFB8 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6A9D39F816720DE60039AFB8; + remoteInfo = SportTimer; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 6A9D39F916720DE60039AFB8 /* SportTimer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SportTimer.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A9D39FD16720DE60039AFB8 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + 6A9D3A0016720DE60039AFB8 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; }; + 6A9D3A0116720DE60039AFB8 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; }; + 6A9D3A0216720DE60039AFB8 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 6A9D3A0516720DE60039AFB8 /* SportTimer-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SportTimer-Info.plist"; sourceTree = ""; }; + 6A9D3A0716720DE60039AFB8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6A9D3A0916720DE60039AFB8 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 6A9D3A0B16720DE60039AFB8 /* SportTimer-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SportTimer-Prefix.pch"; sourceTree = ""; }; + 6A9D3A0D16720DE60039AFB8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = en; path = en.lproj/Credits.rtf; sourceTree = ""; }; + 6A9D3A0F16720DE60039AFB8 /* ARAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ARAppDelegate.h; sourceTree = ""; }; + 6A9D3A1016720DE60039AFB8 /* ARAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ARAppDelegate.m; sourceTree = ""; }; + 6A9D3A1316720DE60039AFB8 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = ""; }; + 6A9D3A1A16720DE60039AFB8 /* SportTimerTests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SportTimerTests.octest; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A9D3A1B16720DE70039AFB8 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; }; + 6A9D3A2216720DE70039AFB8 /* SportTimerTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "SportTimerTests-Info.plist"; sourceTree = ""; }; + 6A9D3A2416720DE70039AFB8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 6A9D3A2616720DE70039AFB8 /* SportTimerTests.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SportTimerTests.h; sourceTree = ""; }; + 6A9D3A2716720DE70039AFB8 /* SportTimerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SportTimerTests.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 6A9D39F616720DE60039AFB8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D39FE16720DE60039AFB8 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9D3A1616720DE60039AFB8 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D3A1C16720DE70039AFB8 /* SenTestingKit.framework in Frameworks */, + 6A9D3A1D16720DE70039AFB8 /* Cocoa.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 6A9D39EE16720DE50039AFB8 = { + isa = PBXGroup; + children = ( + 6A9D3A0316720DE60039AFB8 /* SportTimer */, + 6A9D3A2016720DE70039AFB8 /* SportTimerTests */, + 6A9D39FC16720DE60039AFB8 /* Frameworks */, + 6A9D39FA16720DE60039AFB8 /* Products */, + ); + sourceTree = ""; + }; + 6A9D39FA16720DE60039AFB8 /* Products */ = { + isa = PBXGroup; + children = ( + 6A9D39F916720DE60039AFB8 /* SportTimer.app */, + 6A9D3A1A16720DE60039AFB8 /* SportTimerTests.octest */, + ); + name = Products; + sourceTree = ""; + }; + 6A9D39FC16720DE60039AFB8 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 6A9D39FD16720DE60039AFB8 /* Cocoa.framework */, + 6A9D3A1B16720DE70039AFB8 /* SenTestingKit.framework */, + 6A9D39FF16720DE60039AFB8 /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 6A9D39FF16720DE60039AFB8 /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 6A9D3A0016720DE60039AFB8 /* AppKit.framework */, + 6A9D3A0116720DE60039AFB8 /* CoreData.framework */, + 6A9D3A0216720DE60039AFB8 /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 6A9D3A0316720DE60039AFB8 /* SportTimer */ = { + isa = PBXGroup; + children = ( + 6A9D3A0F16720DE60039AFB8 /* ARAppDelegate.h */, + 6A9D3A1016720DE60039AFB8 /* ARAppDelegate.m */, + 6A9D3A1216720DE60039AFB8 /* MainMenu.xib */, + 6A9D3A0416720DE60039AFB8 /* Supporting Files */, + ); + path = SportTimer; + sourceTree = ""; + }; + 6A9D3A0416720DE60039AFB8 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 6A9D3A0516720DE60039AFB8 /* SportTimer-Info.plist */, + 6A9D3A0616720DE60039AFB8 /* InfoPlist.strings */, + 6A9D3A0916720DE60039AFB8 /* main.m */, + 6A9D3A0B16720DE60039AFB8 /* SportTimer-Prefix.pch */, + 6A9D3A0C16720DE60039AFB8 /* Credits.rtf */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 6A9D3A2016720DE70039AFB8 /* SportTimerTests */ = { + isa = PBXGroup; + children = ( + 6A9D3A2616720DE70039AFB8 /* SportTimerTests.h */, + 6A9D3A2716720DE70039AFB8 /* SportTimerTests.m */, + 6A9D3A2116720DE70039AFB8 /* Supporting Files */, + ); + path = SportTimerTests; + sourceTree = ""; + }; + 6A9D3A2116720DE70039AFB8 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 6A9D3A2216720DE70039AFB8 /* SportTimerTests-Info.plist */, + 6A9D3A2316720DE70039AFB8 /* InfoPlist.strings */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 6A9D39F816720DE60039AFB8 /* SportTimer */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6A9D3A2B16720DE70039AFB8 /* Build configuration list for PBXNativeTarget "SportTimer" */; + buildPhases = ( + 6A9D39F516720DE60039AFB8 /* Sources */, + 6A9D39F616720DE60039AFB8 /* Frameworks */, + 6A9D39F716720DE60039AFB8 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SportTimer; + productName = SportTimer; + productReference = 6A9D39F916720DE60039AFB8 /* SportTimer.app */; + productType = "com.apple.product-type.application"; + }; + 6A9D3A1916720DE60039AFB8 /* SportTimerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 6A9D3A2E16720DE70039AFB8 /* Build configuration list for PBXNativeTarget "SportTimerTests" */; + buildPhases = ( + 6A9D3A1516720DE60039AFB8 /* Sources */, + 6A9D3A1616720DE60039AFB8 /* Frameworks */, + 6A9D3A1716720DE60039AFB8 /* Resources */, + 6A9D3A1816720DE60039AFB8 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 6A9D3A1F16720DE70039AFB8 /* PBXTargetDependency */, + ); + name = SportTimerTests; + productName = SportTimerTests; + productReference = 6A9D3A1A16720DE60039AFB8 /* SportTimerTests.octest */; + productType = "com.apple.product-type.bundle"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 6A9D39F016720DE50039AFB8 /* Project object */ = { + isa = PBXProject; + attributes = { + CLASSPREFIX = AR; + LastUpgradeCheck = 0450; + ORGANIZATIONNAME = "Maxim Tushevskiy"; + }; + buildConfigurationList = 6A9D39F316720DE50039AFB8 /* Build configuration list for PBXProject "SportTimer" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 6A9D39EE16720DE50039AFB8; + productRefGroup = 6A9D39FA16720DE60039AFB8 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 6A9D39F816720DE60039AFB8 /* SportTimer */, + 6A9D3A1916720DE60039AFB8 /* SportTimerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 6A9D39F716720DE60039AFB8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D3A0816720DE60039AFB8 /* InfoPlist.strings in Resources */, + 6A9D3A0E16720DE60039AFB8 /* Credits.rtf in Resources */, + 6A9D3A1416720DE60039AFB8 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9D3A1716720DE60039AFB8 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D3A2516720DE70039AFB8 /* InfoPlist.strings in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 6A9D3A1816720DE60039AFB8 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 6A9D39F516720DE60039AFB8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D3A0A16720DE60039AFB8 /* main.m in Sources */, + 6A9D3A1116720DE60039AFB8 /* ARAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6A9D3A1516720DE60039AFB8 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6A9D3A2816720DE70039AFB8 /* SportTimerTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 6A9D3A1F16720DE70039AFB8 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6A9D39F816720DE60039AFB8 /* SportTimer */; + targetProxy = 6A9D3A1E16720DE70039AFB8 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 6A9D3A0616720DE60039AFB8 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 6A9D3A0716720DE60039AFB8 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 6A9D3A0C16720DE60039AFB8 /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + 6A9D3A0D16720DE60039AFB8 /* en */, + ); + name = Credits.rtf; + sourceTree = ""; + }; + 6A9D3A1216720DE60039AFB8 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 6A9D3A1316720DE60039AFB8 /* en */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; + 6A9D3A2316720DE70039AFB8 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 6A9D3A2416720DE70039AFB8 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 6A9D3A2916720DE70039AFB8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + 6A9D3A2A16720DE70039AFB8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.7; + SDKROOT = macosx; + }; + name = Release; + }; + 6A9D3A2C16720DE70039AFB8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "SportTimer/SportTimer-Prefix.pch"; + INFOPLIST_FILE = "SportTimer/SportTimer-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 6A9D3A2D16720DE70039AFB8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + COMBINE_HIDPI_IMAGES = YES; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "SportTimer/SportTimer-Prefix.pch"; + INFOPLIST_FILE = "SportTimer/SportTimer-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 6A9D3A2F16720DE70039AFB8 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SportTimer.app/Contents/MacOS/SportTimer"; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "SportTimer/SportTimer-Prefix.pch"; + INFOPLIST_FILE = "SportTimerTests/SportTimerTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = octest; + }; + name = Debug; + }; + 6A9D3A3016720DE70039AFB8 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/SportTimer.app/Contents/MacOS/SportTimer"; + COMBINE_HIDPI_IMAGES = YES; + FRAMEWORK_SEARCH_PATHS = "\"$(DEVELOPER_LIBRARY_DIR)/Frameworks\""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "SportTimer/SportTimer-Prefix.pch"; + INFOPLIST_FILE = "SportTimerTests/SportTimerTests-Info.plist"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUNDLE_LOADER)"; + WRAPPER_EXTENSION = octest; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 6A9D39F316720DE50039AFB8 /* Build configuration list for PBXProject "SportTimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A9D3A2916720DE70039AFB8 /* Debug */, + 6A9D3A2A16720DE70039AFB8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 6A9D3A2B16720DE70039AFB8 /* Build configuration list for PBXNativeTarget "SportTimer" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A9D3A2C16720DE70039AFB8 /* Debug */, + 6A9D3A2D16720DE70039AFB8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; + 6A9D3A2E16720DE70039AFB8 /* Build configuration list for PBXNativeTarget "SportTimerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 6A9D3A2F16720DE70039AFB8 /* Debug */, + 6A9D3A3016720DE70039AFB8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = 6A9D39F016720DE50039AFB8 /* Project object */; +} diff --git a/SportTimer.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SportTimer.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..a094311 --- /dev/null +++ b/SportTimer.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/SportTimer.xcodeproj/project.xcworkspace/xcuserdata/maze.xcuserdatad/UserInterfaceState.xcuserstate b/SportTimer.xcodeproj/project.xcworkspace/xcuserdata/maze.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..ad4c3b478d17fadc017aafa49068c3313fa5a49d GIT binary patch literal 11382 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 AApigX literal 0 HcmV?d00001 diff --git a/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/SportTimer.xcscheme b/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/SportTimer.xcscheme new file mode 100644 index 0000000..b7d24b0 --- /dev/null +++ b/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/SportTimer.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/xcschememanagement.plist b/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..61e5895 --- /dev/null +++ b/SportTimer.xcodeproj/xcuserdata/maze.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ + + + + + SchemeUserState + + SportTimer.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 6A9D39F816720DE60039AFB8 + + primary + + + 6A9D3A1916720DE60039AFB8 + + primary + + + + + diff --git a/SportTimer/ARAppDelegate.h b/SportTimer/ARAppDelegate.h new file mode 100644 index 0000000..04e2027 --- /dev/null +++ b/SportTimer/ARAppDelegate.h @@ -0,0 +1,15 @@ +// +// ARAppDelegate.h +// SportTimer +// +// Created by Maxim Tushevskiy on 07.12.12. +// Copyright (c) 2012 Maxim Tushevskiy. All rights reserved. +// + +#import + +@interface ARAppDelegate : NSObject + +@property (assign) IBOutlet NSWindow *window; + +@end diff --git a/SportTimer/ARAppDelegate.m b/SportTimer/ARAppDelegate.m new file mode 100644 index 0000000..cc9dc5c --- /dev/null +++ b/SportTimer/ARAppDelegate.m @@ -0,0 +1,18 @@ +// +// ARAppDelegate.m +// SportTimer +// +// Created by Maxim Tushevskiy on 07.12.12. +// Copyright (c) 2012 Maxim Tushevskiy. All rights reserved. +// + +#import "ARAppDelegate.h" + +@implementation ARAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +{ + // Insert code here to initialize your application +} + +@end diff --git a/SportTimer/SportTimer-Info.plist b/SportTimer/SportTimer-Info.plist new file mode 100644 index 0000000..c95ee3a --- /dev/null +++ b/SportTimer/SportTimer-Info.plist @@ -0,0 +1,34 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + edu.self.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSHumanReadableCopyright + Copyright © 2012 Maxim Tushevskiy. All rights reserved. + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/SportTimer/SportTimer-Prefix.pch b/SportTimer/SportTimer-Prefix.pch new file mode 100644 index 0000000..4e52b2e --- /dev/null +++ b/SportTimer/SportTimer-Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'SportTimer' target in the 'SportTimer' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/SportTimer/en.lproj/Credits.rtf b/SportTimer/en.lproj/Credits.rtf new file mode 100644 index 0000000..46576ef --- /dev/null +++ b/SportTimer/en.lproj/Credits.rtf @@ -0,0 +1,29 @@ +{\rtf0\ansi{\fonttbl\f0\fswiss Helvetica;} +{\colortbl;\red255\green255\blue255;} +\paperw9840\paperh8400 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural + +\f0\b\fs24 \cf0 Engineering: +\b0 \ + Some people\ +\ + +\b Human Interface Design: +\b0 \ + Some other people\ +\ + +\b Testing: +\b0 \ + Hopefully not nobody\ +\ + +\b Documentation: +\b0 \ + Whoever\ +\ + +\b With special thanks to: +\b0 \ + Mom\ +} diff --git a/SportTimer/en.lproj/InfoPlist.strings b/SportTimer/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/SportTimer/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/SportTimer/en.lproj/MainMenu.xib b/SportTimer/en.lproj/MainMenu.xib new file mode 100644 index 0000000..7559431 --- /dev/null +++ b/SportTimer/en.lproj/MainMenu.xib @@ -0,0 +1,4247 @@ + + + + 1070 + 11G63 + 2844 + 1138.51 + 569.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 2844 + + + IBNSLayoutConstraint + NSButton + NSButtonCell + NSCustomObject + NSMenu + NSMenuItem + NSTextField + NSTextFieldCell + NSView + NSWindowTemplate + + + com.apple.InterfaceBuilder.CocoaPlugin + + + PluginDependencyRecalculationVersion + + + + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + + + SportTimer + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + SportTimer + + + + About SportTimer + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Preferences… + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide SportTimer + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit SportTimer + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + + + New + n + 1048576 + 2147483647 + + + + + + Open… + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save… + s + 1048576 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + Print… + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Paste and Match Style + V + 1572864 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + + + Find… + f + 1048576 + 2147483647 + + + 1 + + + + Find and Replace… + f + 1572864 + 2147483647 + + + 12 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + + + Show Spelling and Grammar + : + 1048576 + 2147483647 + + + + + + Check Document Now + ; + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + Correct Spelling Automatically + + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + + + Show Substitutions + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Dashes + + 2147483647 + + + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + Text Replacement + + 2147483647 + + + + + + + + + Transformations + + 2147483647 + + + submenuAction: + + Transformations + + + + Make Upper Case + + 2147483647 + + + + + + Make Lower Case + + 2147483647 + + + + + + Capitalize + + 2147483647 + + + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + + + Font + + 2147483647 + + + submenuAction: + + Font + + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligatures + + 2147483647 + + + submenuAction: + + Ligatures + + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Writing Direction + + 2147483647 + + + submenuAction: + + Writing Direction + + + + YES + Paragraph + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + YES + Selection + + 2147483647 + + + + + + CURlZmF1bHQ + + 2147483647 + + + + + + CUxlZnQgdG8gUmlnaHQ + + 2147483647 + + + + + + CVJpZ2h0IHRvIExlZnQ + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Customize Toolbar… + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 2147483647 + + + submenuAction: + + Help + + + + SportTimer Help + ? + 1048576 + 2147483647 + + + + + _NSHelpMenu + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {285, 208}} + 1954021376 + SportTimer + NSWindow + + + + + 256 + + + + 268 + {{53, 12}, {78, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Старт + + LucidaGrande + 13 + 1044 + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{157, 12}, {72, 32}} + + + + _NS:9 + YES + + 67108864 + 134217728 + Стоп + + _NS:9 + + -2038284288 + 129 + + + 200 + 25 + + + + + 268 + {{17, 171}, {121, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Интервал работы: + + _NS:1535 + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + + + + 268 + {{17, 68}, {151, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Количество подходов: + + _NS:1535 + + + + + + + + 268 + {{17, 121}, {122, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + Интервал отдыха: + + _NS:1535 + + + + + + + + 268 + {{144, 159}, {69, 29}} + + + + _NS:9 + YES + + -1804599231 + 71304192 + 30 + + LucidaGrande + 20 + 16 + + _NS:9 + + YES + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + textColor + + + + + + + 268 + {{173, 56}, {40, 29}} + + + + _NS:9 + YES + + -1804599231 + 71304192 + 1 + + _NS:9 + + YES + + + + + + + 268 + {{144, 109}, {69, 29}} + + + + _NS:9 + YES + + -1804599231 + 71304192 + 30 + + _NS:9 + + YES + + + + + + + 268 + {{218, 172}, {50, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + секунд + + _NS:1535 + + + + + + + + 268 + {{218, 122}, {50, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + секунд + + _NS:1535 + + + + + + + + 268 + {{218, 68}, {26, 17}} + + + + _NS:1535 + YES + + 68157504 + 272630784 + раз + + _NS:1535 + + + + + + + {285, 208} + + + + + {{0, 0}, {1280, 778}} + {10000000000000, 10000000000000} + YES + + + ARAppDelegate + + + NSFontManager + + + + + + + terminate: + + + + 449 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + delegate + + + + 495 + + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + saveDocument: + + + + 362 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + toggleAutomaticSpellingCorrection: + + + + 456 + + + + orderFrontSubstitutionsPanel: + + + + 458 + + + + toggleAutomaticDashSubstitution: + + + + 461 + + + + toggleAutomaticTextReplacement: + + + + 463 + + + + uppercaseWord: + + + + 464 + + + + capitalizeWord: + + + + 467 + + + + lowercaseWord: + + + + 468 + + + + pasteAsPlainText: + + + + 486 + + + + performFindPanelAction: + + + + 487 + + + + performFindPanelAction: + + + + 488 + + + + performFindPanelAction: + + + + 489 + + + + showHelp: + + + + 493 + + + + alignCenter: + + + + 518 + + + + pasteRuler: + + + + 519 + + + + toggleRuler: + + + + 520 + + + + alignRight: + + + + 521 + + + + copyRuler: + + + + 522 + + + + alignJustified: + + + + 523 + + + + alignLeft: + + + + 524 + + + + makeBaseWritingDirectionNatural: + + + + 525 + + + + makeBaseWritingDirectionLeftToRight: + + + + 526 + + + + makeBaseWritingDirectionRightToLeft: + + + + 527 + + + + makeTextWritingDirectionNatural: + + + + 528 + + + + makeTextWritingDirectionLeftToRight: + + + + 529 + + + + makeTextWritingDirectionRightToLeft: + + + + 530 + + + + performFindPanelAction: + + + + 535 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + window + + + + 532 + + + + + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + + + + + + + + + + + + 19 + + + + + + + + 56 + + + + + + + + 217 + + + + + + + + 83 + + + + + + + + 81 + + + + + + + + + + + + + + + + + 75 + + + + + 78 + + + + + 72 + + + + + 82 + + + + + 124 + + + + + + + + 77 + + + + + 73 + + + + + 79 + + + + + 112 + + + + + 74 + + + + + 125 + + + + + + + + 126 + + + + + 205 + + + + + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + + + + + + 216 + + + + + + + + 200 + + + + + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 57 + + + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + + + 144 + + + + + 129 + + + + + 143 + + + + + 236 + + + + + 131 + + + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + + + + + + 296 + + + + + + + + + 297 + + + + + 298 + + + + + 211 + + + + + + + + 212 + + + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + + + + + + 349 + + + + + + + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + + + + + + 372 + + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 11 + 0 + + 11 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 3 + 0 + + 3 + 1 + + 69 + + 1000 + + 3 + 9 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 6 + 0 + + 6 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 19 + + 1000 + + 3 + 9 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 4 + 0 + + 4 + 1 + + 56 + + 1000 + + 3 + 9 + 3 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 4 + 0 + + 4 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 5 + 0 + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 5 + 0 + + 5 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 3 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 70 + + 1000 + + 3 + 9 + 3 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 3 + 0 + + 3 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + + + + + + + + + + + + + + + 375 + + + + + + + + 376 + + + + + + + + + 377 + + + + + + + + 388 + + + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + + + + + + 398 + + + + + + + + 399 + + + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + 450 + + + + + + + + 451 + + + + + + + + + + 452 + + + + + 453 + + + + + 454 + + + + + 457 + + + + + 459 + + + + + 460 + + + + + 462 + + + + + 465 + + + + + 466 + + + + + 485 + + + + + 490 + + + + + + + + 491 + + + + + + + + 492 + + + + + 494 + + + + + 496 + + + + + + + + 497 + + + + + + + + + + + + + + + + + 498 + + + + + 499 + + + + + 500 + + + + + 501 + + + + + 502 + + + + + 503 + + + + + + + + 504 + + + + + 505 + + + + + 506 + + + + + 507 + + + + + 508 + + + + + + + + + + + + + + + + 509 + + + + + 510 + + + + + 511 + + + + + 512 + + + + + 513 + + + + + 514 + + + + + 515 + + + + + 516 + + + + + 517 + + + + + 534 + + + + + 536 + + + + + + + + 537 + + + + + 540 + + + + + + + + 541 + + + + + 546 + + + + + + + + 547 + + + + + 550 + + + + + + + + 551 + + + + + 554 + + + + + + + + 555 + + + + + 561 + + + + + + + + 562 + + + + + 567 + + + + + + + + 569 + + + + + 580 + + + + + + + + 581 + + + + + 590 + + + + + 593 + + + + + 597 + + + + + 600 + + + + + 601 + + + + + 602 + + + + + 607 + + + + + 611 + + + + + 632 + + + + + + + + 633 + + + + + 645 + + + + + + + + 646 + + + + + 656 + + + + + + + + 657 + + + + + 665 + + + + + 676 + + + + + 678 + + + + + 686 + + + + + 691 + + + + + 693 + + + + + 695 + + + + + 696 + + + + + 697 + + + + + 699 + + + + + 700 + + + + + 701 + + + + + 702 + + + + + 705 + + + + + 706 + + + + + 707 + + + + + 708 + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{380, 496}, {480, 360}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + + + 708 + + + + + ARAppDelegate + NSObject + + window + NSWindow + + + window + + window + NSWindow + + + + IBProjectSource + ./Classes/ARAppDelegate.h + + + + NSLayoutConstraint + NSObject + + IBProjectSource + ./Classes/NSLayoutConstraint.h + + + + + 0 + IBCocoaFramework + YES + 3 + + {11, 11} + {10, 3} + + YES + + diff --git a/SportTimer/main.m b/SportTimer/main.m new file mode 100644 index 0000000..7fe99ce --- /dev/null +++ b/SportTimer/main.m @@ -0,0 +1,14 @@ +// +// main.m +// SportTimer +// +// Created by Maxim Tushevskiy on 07.12.12. +// Copyright (c) 2012 Maxim Tushevskiy. All rights reserved. +// + +#import + +int main(int argc, char *argv[]) +{ + return NSApplicationMain(argc, (const char **)argv); +} diff --git a/SportTimerTests/SportTimerTests-Info.plist b/SportTimerTests/SportTimerTests-Info.plist new file mode 100644 index 0000000..a12b678 --- /dev/null +++ b/SportTimerTests/SportTimerTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + edu.self.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/SportTimerTests/SportTimerTests.h b/SportTimerTests/SportTimerTests.h new file mode 100644 index 0000000..e3524f5 --- /dev/null +++ b/SportTimerTests/SportTimerTests.h @@ -0,0 +1,13 @@ +// +// SportTimerTests.h +// SportTimerTests +// +// Created by Maxim Tushevskiy on 07.12.12. +// Copyright (c) 2012 Maxim Tushevskiy. All rights reserved. +// + +#import + +@interface SportTimerTests : SenTestCase + +@end diff --git a/SportTimerTests/SportTimerTests.m b/SportTimerTests/SportTimerTests.m new file mode 100644 index 0000000..45c65fb --- /dev/null +++ b/SportTimerTests/SportTimerTests.m @@ -0,0 +1,32 @@ +// +// SportTimerTests.m +// SportTimerTests +// +// Created by Maxim Tushevskiy on 07.12.12. +// Copyright (c) 2012 Maxim Tushevskiy. All rights reserved. +// + +#import "SportTimerTests.h" + +@implementation SportTimerTests + +- (void)setUp +{ + [super setUp]; + + // Set-up code here. +} + +- (void)tearDown +{ + // Tear-down code here. + + [super tearDown]; +} + +- (void)testExample +{ + STFail(@"Unit tests are not implemented yet in SportTimerTests"); +} + +@end diff --git a/SportTimerTests/en.lproj/InfoPlist.strings b/SportTimerTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/SportTimerTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + From afb2cb01d47e3547a7e73ab23f0b5daff67a2da2 Mon Sep 17 00:00:00 2001 From: Max Tushewski Date: Fri, 7 Dec 2012 17:09:32 +0400 Subject: [PATCH 2/2] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 276c762..44d75d4 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,10 @@ ========= Аудиторию приложения составляют люди занимающиеся спортом дома. -Пример сценария использования прложения +Пример сценария использования приложения ======================================= -Пользователь выставляет количество подходов, интервал выполнения упражнения, и интервал отдыха между подходами с помощью текстовых полей. Нажимает кнопку «Старт», слышит звуковой сигнал, и приступает к выполнению упражнения. Упражнение выполняется до второго звукового сигнала, поле него пользователь отанавливается, и начинает отдыхать, до следующего сигнала. Данное действие происходит пока не будут выполнены все подходы. После отсчета последнего рабочего интервала программа издает двойной звуковой сигнал, что означает конец цыкла. +Пользователь выставляет количество подходов, интервал выполнения упражнения, и интервал отдыха между подходами с помощью текстовых полей. Нажимает кнопку «Старт», слышит звуковой сигнал, и приступает к выполнению упражнения. Упражнение выполняется до второго звукового сигнала, поле него пользователь останавливается, и начинает отдыхать, до следующего сигнала. Данное действие происходит пока не будут выполнены все подходы. После отсчета последнего рабочего интервала программа издает двойной звуковой сигнал, что означает конец цикла. Описание поведения ================== -После нажатия на кнопку «Старт», кнопка становится не активной, звучит звуковой сигнал, счетчик секунд в поле «Интервал работы» начинает уменьшаться каждую секунду на еденицу, пока не станет равным нулю, после чего поле вернется к своему исходному значению, прозвучит звуковой сигнал, и начнет уменьшатся время в поле «Интервал отдыха», затем когда один цикл пройдет поле «Количество подходов» снизится на еденицу. Как только «Количество подходов» станет равно нулю, прозвучит двойной сигнал, кнопка станет активной, значения всех полей вернутся к исходным. +После нажатия на кнопку «Старт», кнопка становится не активной, звучит звуковой сигнал, счетчик секунд в поле «Интервал работы» начинает уменьшаться каждую секунду на единицу, пока не станет равным нулю, после чего поле вернется к своему исходному значению, прозвучит звуковой сигнал, и начнет уменьшатся время в поле «Интервал отдыха», затем когда один цикл пройдет поле «Количество подходов» снизится на единицу. Как только «Количество подходов» станет равно нулю, прозвучит двойной сигнал, кнопка станет активной, значения всех полей вернутся к исходным.