diff options
author | Mikkel Krautz <mikkel@krautz.dk> | 2010-09-24 16:46:48 +0400 |
---|---|---|
committer | Mikkel Krautz <mikkel@krautz.dk> | 2010-09-24 16:46:48 +0400 |
commit | 371be2f91fd2d2bf72452e6fce75d769152dd0c3 (patch) | |
tree | 8f82c11a20830e494408b42942fd6918a768dec6 | |
parent | a6be3ae0aa1e1ed006ff434f9cf53764bc8e8941 (diff) |
Add Three20. Add animation to server connections.
-rw-r--r-- | .gitmodules | 3 | ||||
m--------- | Dependencies/three20 | 0 | ||||
-rwxr-xr-x | Mumble.xcodeproj/project.pbxproj | 427 | ||||
-rw-r--r-- | ServerConnectionView.xib | 470 | ||||
-rw-r--r-- | Source/Classes/FavouriteServerListController.m | 14 | ||||
-rw-r--r-- | Source/Classes/MumbleApplication.h | 3 | ||||
-rw-r--r-- | Source/Classes/MumbleApplication.m | 5 | ||||
-rw-r--r-- | Source/Classes/ServerConnectionViewController.h | 36 | ||||
-rw-r--r-- | Source/Classes/ServerConnectionViewController.m | 47 | ||||
-rw-r--r-- | Source/Classes/ServerRootViewController.h | 17 | ||||
-rw-r--r-- | Source/Classes/ServerRootViewController.m | 51 | ||||
-rw-r--r-- | Source/Mumble.pch | 1 |
12 files changed, 1040 insertions, 34 deletions
diff --git a/.gitmodules b/.gitmodules index 866829e..f4e3f91 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "Dependencies/fmdb"] path = Dependencies/fmdb url = http://github.com/ccgus/fmdb.git +[submodule "Dependencies/three20"] + path = Dependencies/three20 + url = http://github.com/facebook/three20.git diff --git a/Dependencies/three20 b/Dependencies/three20 new file mode 160000 +Subproject 8459aca4642cdc4f1fa9fa1580db0ae9c509d7b diff --git a/Mumble.xcodeproj/project.pbxproj b/Mumble.xcodeproj/project.pbxproj index 7319054..6cda231 100755 --- a/Mumble.xcodeproj/project.pbxproj +++ b/Mumble.xcodeproj/project.pbxproj @@ -36,8 +36,6 @@ 2861C27B116BE905002B8514 /* PublicServerList.m in Sources */ = {isa = PBXBuildFile; fileRef = 2861C267116BE905002B8514 /* PublicServerList.m */; }; 2861C27C116BE905002B8514 /* PublicServerListController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2861C269116BE905002B8514 /* PublicServerListController.m */; }; 2861C27D116BE905002B8514 /* PublicServerListController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2861C26A116BE905002B8514 /* PublicServerListController.xib */; }; - 2861C27E116BE905002B8514 /* ServerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2861C26C116BE905002B8514 /* ServerViewController.m */; }; - 2861C27F116BE905002B8514 /* ServerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2861C26D116BE905002B8514 /* ServerViewController.xib */; }; 2861C281116BE905002B8514 /* WelcomeScreenPhone.m in Sources */ = {isa = PBXBuildFile; fileRef = 2861C271116BE905002B8514 /* WelcomeScreenPhone.m */; }; 2861C282116BE905002B8514 /* WelcomeScreenPhone.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2861C272116BE905002B8514 /* WelcomeScreenPhone.xib */; }; 2861C2AE116BE9B5002B8514 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2861C2AD116BE9B5002B8514 /* AudioToolbox.framework */; }; @@ -103,6 +101,15 @@ 28F9174811B946250030D649 /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F9174211B946250030D649 /* FMDatabase.m */; }; 28F9174911B946250030D649 /* FMDatabaseAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F9174411B946250030D649 /* FMDatabaseAdditions.m */; }; 28F9174B11B946250030D649 /* FMResultSet.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F9174711B946250030D649 /* FMResultSet.m */; }; + 28FEA682124AA5A000A3F6B5 /* ServerConnectionViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28FEA681124AA5A000A3F6B5 /* ServerConnectionViewController.m */; }; + 28FEA6A2124AAA7100A3F6B5 /* ServerConnectionView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28FEA6A1124AAA7100A3F6B5 /* ServerConnectionView.xib */; }; + 28FEA7A2124AB7E200A3F6B5 /* libThree20.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA758124AB77B00A3F6B5 /* libThree20.a */; }; + 28FEA7A3124AB7E500A3F6B5 /* libThree20UINavigator.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA792124AB7AA00A3F6B5 /* libThree20UINavigator.a */; }; + 28FEA7A4124AB7E500A3F6B5 /* libThree20UICommon.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA78C124AB7AA00A3F6B5 /* libThree20UICommon.a */; }; + 28FEA7A5124AB7E600A3F6B5 /* libThree20UI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA798124AB7AA00A3F6B5 /* libThree20UI.a */; }; + 28FEA7A6124AB7E700A3F6B5 /* libThree20Style.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA786124AB7AA00A3F6B5 /* libThree20Style.a */; }; + 28FEA7A7124AB7E700A3F6B5 /* libThree20Network.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA780124AB7AA00A3F6B5 /* libThree20Network.a */; }; + 28FEA7A8124AB7E800A3F6B5 /* libThree20Core.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 28FEA77A124AB7AA00A3F6B5 /* libThree20Core.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -162,6 +169,153 @@ remoteGlobalIDString = 10099D4E010099D4E010099D; remoteInfo = MumbleKitCombined; }; + 28FEA757124AB77B00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20; + }; + 28FEA759124AB77B00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA779124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20Core; + }; + 28FEA77B124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA77F124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20Network; + }; + 28FEA781124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA785124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20Style; + }; + 28FEA787124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA78B124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20UICommon; + }; + 28FEA78D124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA791124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20UINavigator; + }; + 28FEA793124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA797124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = BEF31F3A0F352DF5000DE5D2; + remoteInfo = Three20UI; + }; + 28FEA799124AB7AA00A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = EB9E6C6210B6A8F800DE563C; + remoteInfo = UnitTests; + }; + 28FEA7BE124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20UI; + }; + 28FEA7C0124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20; + }; + 28FEA7C2124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20Network; + }; + 28FEA7C4124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20UICommon; + }; + 28FEA7C6124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20UINavigator; + }; + 28FEA7C8124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20Core; + }; + 28FEA7CA124AB80000A3F6B5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = BEF31F390F352DF5000DE5D2; + remoteInfo = Three20Style; + }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ @@ -209,9 +363,6 @@ 2861C268116BE905002B8514 /* PublicServerListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PublicServerListController.h; sourceTree = "<group>"; }; 2861C269116BE905002B8514 /* PublicServerListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PublicServerListController.m; sourceTree = "<group>"; }; 2861C26A116BE905002B8514 /* PublicServerListController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = PublicServerListController.xib; sourceTree = "<group>"; }; - 2861C26B116BE905002B8514 /* ServerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerViewController.h; sourceTree = "<group>"; }; - 2861C26C116BE905002B8514 /* ServerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerViewController.m; sourceTree = "<group>"; }; - 2861C26D116BE905002B8514 /* ServerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ServerViewController.xib; sourceTree = "<group>"; }; 2861C270116BE905002B8514 /* WelcomeScreenPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelcomeScreenPhone.h; sourceTree = "<group>"; }; 2861C271116BE905002B8514 /* WelcomeScreenPhone.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WelcomeScreenPhone.m; sourceTree = "<group>"; }; 2861C272116BE905002B8514 /* WelcomeScreenPhone.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = WelcomeScreenPhone.xib; sourceTree = "<group>"; }; @@ -299,6 +450,16 @@ 28F9174411B946250030D649 /* FMDatabaseAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMDatabaseAdditions.m; path = Dependencies/fmdb/src/FMDatabaseAdditions.m; sourceTree = "<group>"; }; 28F9174611B946250030D649 /* FMResultSet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FMResultSet.h; path = Dependencies/fmdb/src/FMResultSet.h; sourceTree = "<group>"; }; 28F9174711B946250030D649 /* FMResultSet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FMResultSet.m; path = Dependencies/fmdb/src/FMResultSet.m; sourceTree = "<group>"; }; + 28FEA680124AA5A000A3F6B5 /* ServerConnectionViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ServerConnectionViewController.h; sourceTree = "<group>"; }; + 28FEA681124AA5A000A3F6B5 /* ServerConnectionViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ServerConnectionViewController.m; sourceTree = "<group>"; }; + 28FEA6A1124AAA7100A3F6B5 /* ServerConnectionView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ServerConnectionView.xib; sourceTree = "<group>"; }; + 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20.xcodeproj; path = Dependencies/three20/src/Three20/Three20.xcodeproj; sourceTree = "<group>"; }; + 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20Core.xcodeproj; path = Dependencies/three20/src/Three20Core/Three20Core.xcodeproj; sourceTree = "<group>"; }; + 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20Network.xcodeproj; path = Dependencies/three20/src/Three20Network/Three20Network.xcodeproj; sourceTree = "<group>"; }; + 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20Style.xcodeproj; path = Dependencies/three20/src/Three20Style/Three20Style.xcodeproj; sourceTree = "<group>"; }; + 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20UICommon.xcodeproj; path = Dependencies/three20/src/Three20UICommon/Three20UICommon.xcodeproj; sourceTree = "<group>"; }; + 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20UINavigator.xcodeproj; path = Dependencies/three20/src/Three20UINavigator/Three20UINavigator.xcodeproj; sourceTree = "<group>"; }; + 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Three20UI.xcodeproj; path = Dependencies/three20/src/Three20UI/Three20UI.xcodeproj; sourceTree = "<group>"; }; 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = Source/main.m; sourceTree = "<group>"; }; 32CA4F630368D1EE00C91783 /* Mumble.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Mumble.pch; path = Source/Mumble.pch; sourceTree = "<group>"; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Source/Info.plist; plistStructureDefinitionIdentifier = "com.apple.xcode.plist.structure-definition.iphone.info-plist"; sourceTree = "<group>"; }; @@ -317,6 +478,13 @@ 2861C2B2116BE9B7002B8514 /* CFNetwork.framework in Frameworks */, 2861C2B6116BE9BA002B8514 /* Security.framework in Frameworks */, 28763A4511D2AA91009DB8B6 /* QuartzCore.framework in Frameworks */, + 28FEA7A2124AB7E200A3F6B5 /* libThree20.a in Frameworks */, + 28FEA7A3124AB7E500A3F6B5 /* libThree20UINavigator.a in Frameworks */, + 28FEA7A4124AB7E500A3F6B5 /* libThree20UICommon.a in Frameworks */, + 28FEA7A5124AB7E600A3F6B5 /* libThree20UI.a in Frameworks */, + 28FEA7A6124AB7E700A3F6B5 /* libThree20Style.a in Frameworks */, + 28FEA7A7124AB7E700A3F6B5 /* libThree20Network.a in Frameworks */, + 28FEA7A8124AB7E800A3F6B5 /* libThree20Core.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -346,9 +514,6 @@ 2861C268116BE905002B8514 /* PublicServerListController.h */, 2861C269116BE905002B8514 /* PublicServerListController.m */, 2861C26A116BE905002B8514 /* PublicServerListController.xib */, - 2861C26B116BE905002B8514 /* ServerViewController.h */, - 2861C26C116BE905002B8514 /* ServerViewController.m */, - 2861C26D116BE905002B8514 /* ServerViewController.xib */, 2861C270116BE905002B8514 /* WelcomeScreenPhone.h */, 2861C271116BE905002B8514 /* WelcomeScreenPhone.m */, 2861C272116BE905002B8514 /* WelcomeScreenPhone.xib */, @@ -382,6 +547,8 @@ 28763AE311D2B77E009DB8B6 /* UINavigationController-AnimationAdditions.m */, 2858DBA11233E31B000D6F75 /* VersionChecker.h */, 2858DBA21233E31B000D6F75 /* VersionChecker.m */, + 28FEA680124AA5A000A3F6B5 /* ServerConnectionViewController.h */, + 28FEA681124AA5A000A3F6B5 /* ServerConnectionViewController.m */, ); name = Classes; path = Source/Classes; @@ -413,6 +580,13 @@ children = ( 28F8B04011D97E00006EFCBC /* sqlite */, 28F9173911B9460D0030D649 /* fmdb */, + 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */, + 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */, + 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */, + 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */, + 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */, + 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */, + 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */, 2861C28E116BE91B002B8514 /* MumbleKit.xcodeproj */, ); name = Dependencies; @@ -545,6 +719,69 @@ name = fmdb; sourceTree = "<group>"; }; + 28FEA72D124AB77A00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA758124AB77B00A3F6B5 /* libThree20.a */, + 28FEA75A124AB77B00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA766124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA77A124AB7AA00A3F6B5 /* libThree20Core.a */, + 28FEA77C124AB7AA00A3F6B5 /* CoreUnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA769124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA780124AB7AA00A3F6B5 /* libThree20Network.a */, + 28FEA782124AB7AA00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA76C124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA786124AB7AA00A3F6B5 /* libThree20Style.a */, + 28FEA788124AB7AA00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA76F124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA78C124AB7AA00A3F6B5 /* libThree20UICommon.a */, + 28FEA78E124AB7AA00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA772124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA792124AB7AA00A3F6B5 /* libThree20UINavigator.a */, + 28FEA794124AB7AA00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; + 28FEA775124AB7AA00A3F6B5 /* Products */ = { + isa = PBXGroup; + children = ( + 28FEA798124AB7AA00A3F6B5 /* libThree20UI.a */, + 28FEA79A124AB7AA00A3F6B5 /* UnitTests.octest */, + ); + name = Products; + sourceTree = "<group>"; + }; 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( @@ -572,6 +809,7 @@ isa = PBXGroup; children = ( 2858A58A123B9EC700A82155 /* icons */, + 28FEA6A1124AAA7100A3F6B5 /* ServerConnectionView.xib */, 2858A62B123BB9B300A82155 /* AvatarCell.xib */, 2858A57F123B9E5700A82155 /* CertificateCell.xib */, 28763A9411D2B056009DB8B6 /* DefaultAvatar.png */, @@ -613,6 +851,13 @@ ); dependencies = ( 287EAB831245303E00A0159D /* PBXTargetDependency */, + 28FEA7BF124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7C1124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7C3124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7C5124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7C7124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7C9124AB80000A3F6B5 /* PBXTargetDependency */, + 28FEA7CB124AB80000A3F6B5 /* PBXTargetDependency */, ); name = Mumble; productName = Mumble; @@ -641,6 +886,34 @@ ProductGroup = 2861C28F116BE91B002B8514 /* Products */; ProjectRef = 2861C28E116BE91B002B8514 /* MumbleKit.xcodeproj */; }, + { + ProductGroup = 28FEA72D124AB77A00A3F6B5 /* Products */; + ProjectRef = 28FEA72C124AB77A00A3F6B5 /* Three20.xcodeproj */; + }, + { + ProductGroup = 28FEA766124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA765124AB7AA00A3F6B5 /* Three20Core.xcodeproj */; + }, + { + ProductGroup = 28FEA769124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA768124AB7AA00A3F6B5 /* Three20Network.xcodeproj */; + }, + { + ProductGroup = 28FEA76C124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA76B124AB7AA00A3F6B5 /* Three20Style.xcodeproj */; + }, + { + ProductGroup = 28FEA775124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA774124AB7AA00A3F6B5 /* Three20UI.xcodeproj */; + }, + { + ProductGroup = 28FEA76F124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA76E124AB7AA00A3F6B5 /* Three20UICommon.xcodeproj */; + }, + { + ProductGroup = 28FEA772124AB7AA00A3F6B5 /* Products */; + ProjectRef = 28FEA771124AB7AA00A3F6B5 /* Three20UINavigator.xcodeproj */; + }, ); projectRoot = ""; targets = ( @@ -699,6 +972,104 @@ remoteRef = 287EAB701245303200A0159D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 28FEA758124AB77B00A3F6B5 /* libThree20.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20.a; + remoteRef = 28FEA757124AB77B00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA75A124AB77B00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA759124AB77B00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA77A124AB7AA00A3F6B5 /* libThree20Core.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20Core.a; + remoteRef = 28FEA779124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA77C124AB7AA00A3F6B5 /* CoreUnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = CoreUnitTests.octest; + remoteRef = 28FEA77B124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA780124AB7AA00A3F6B5 /* libThree20Network.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20Network.a; + remoteRef = 28FEA77F124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA782124AB7AA00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA781124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA786124AB7AA00A3F6B5 /* libThree20Style.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20Style.a; + remoteRef = 28FEA785124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA788124AB7AA00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA787124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA78C124AB7AA00A3F6B5 /* libThree20UICommon.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20UICommon.a; + remoteRef = 28FEA78B124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA78E124AB7AA00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA78D124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA792124AB7AA00A3F6B5 /* libThree20UINavigator.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20UINavigator.a; + remoteRef = 28FEA791124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA794124AB7AA00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA793124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA798124AB7AA00A3F6B5 /* libThree20UI.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libThree20UI.a; + remoteRef = 28FEA797124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 28FEA79A124AB7AA00A3F6B5 /* UnitTests.octest */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = UnitTests.octest; + remoteRef = 28FEA799124AB7AA00A3F6B5 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ @@ -709,7 +1080,6 @@ 28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */, 2861C275116BE905002B8514 /* AboutViewController.xib in Resources */, 2861C27D116BE905002B8514 /* PublicServerListController.xib in Resources */, - 2861C27F116BE905002B8514 /* ServerViewController.xib in Resources */, 2861C282116BE905002B8514 /* WelcomeScreenPhone.xib in Resources */, 2861C3E5116BEA12002B8514 /* Contributors.html in Resources */, 2861C3E6116BEA12002B8514 /* Legal.html in Resources */, @@ -754,6 +1124,7 @@ 2858A596123B9EE000A82155 /* certificate512.png in Resources */, 2858A598123BA05E00A82155 /* certificate32.png in Resources */, 2858A62C123BB9B300A82155 /* AvatarCell.xib in Resources */, + 28FEA6A2124AAA7100A3F6B5 /* ServerConnectionView.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -789,7 +1160,6 @@ 2861C27A116BE905002B8514 /* PDFImageLoader.m in Sources */, 2861C27B116BE905002B8514 /* PublicServerList.m in Sources */, 2861C27C116BE905002B8514 /* PublicServerListController.m in Sources */, - 2861C27E116BE905002B8514 /* ServerViewController.m in Sources */, 2861C281116BE905002B8514 /* WelcomeScreenPhone.m in Sources */, 285C9EF2116BF5B100A9A6A7 /* WelcomeScreenPad.m in Sources */, 287852DB117BC866009E26B1 /* ServerRootViewController.m in Sources */, @@ -821,6 +1191,7 @@ 28942D7C12456F9200C63A07 /* CertificateCreationView.m in Sources */, 28847911124696BA0068364D /* IdentityPickerViewController.m in Sources */, 284BBBA512495C4400366F4C /* MumbleApplication.m in Sources */, + 28FEA682124AA5A000A3F6B5 /* ServerConnectionViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -832,6 +1203,41 @@ name = MumbleKitCombined; targetProxy = 287EAB821245303E00A0159D /* PBXContainerItemProxy */; }; + 28FEA7BF124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20UI; + targetProxy = 28FEA7BE124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7C1124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20; + targetProxy = 28FEA7C0124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7C3124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20Network; + targetProxy = 28FEA7C2124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7C5124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20UICommon; + targetProxy = 28FEA7C4124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7C7124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20UINavigator; + targetProxy = 28FEA7C6124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7C9124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20Core; + targetProxy = 28FEA7C8124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; + 28FEA7CB124AB80000A3F6B5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = Three20Style; + targetProxy = 28FEA7CA124AB80000A3F6B5 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -876,6 +1282,7 @@ "${PROJECT_DIR}/MumbleKit/src/", "${PROJECT_DIR}/Dependencies/fmdb/src/", "${PROJECT_DIR}/Dependencies/sqlite/", + "${PROJECT_DIR}/Dependencies/three20/Build/Products/three20", ); INFOPLIST_FILE = Source/Info.plist; OTHER_CFLAGS = "-D__IPHONE_OS_VERSION_MIN_REQUIRED=040000"; diff --git a/ServerConnectionView.xib b/ServerConnectionView.xib new file mode 100644 index 0000000..e692475 --- /dev/null +++ b/ServerConnectionView.xib @@ -0,0 +1,470 @@ +<?xml version="1.0" encoding="UTF-8"?> +<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="7.10"> + <data> + <int key="IBDocument.SystemTarget">1024</int> + <string key="IBDocument.SystemVersion">10F569</string> + <string key="IBDocument.InterfaceBuilderVersion">804</string> + <string key="IBDocument.AppKitVersion">1038.29</string> + <string key="IBDocument.HIToolboxVersion">461.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string key="NS.object.0">123</string> + </object> + <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> + <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="1"/> + </object> + <object class="NSArray" key="IBDocument.PluginDependencies"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + </object> + <object class="NSMutableDictionary" key="IBDocument.Metadata"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys" id="0"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <object class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBProxyObject" id="372490531"> + <string key="IBProxiedObjectIdentifier">IBFilesOwner</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBProxyObject" id="975951072"> + <string key="IBProxiedObjectIdentifier">IBFirstResponder</string> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + <object class="IBUIView" id="191373211"> + <reference key="NSNextResponder"/> + <int key="NSvFlags">274</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBUIActivityIndicatorView" id="919195305"> + <reference key="NSNextResponder" ref="191373211"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{141, 186}, {37, 37}}</string> + <reference key="NSSuperview" ref="191373211"/> + <bool key="IBUIOpaque">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <bool key="IBUIHidesWhenStopped">NO</bool> + <int key="IBUIStyle">0</int> + </object> + <object class="IBUILabel" id="895059471"> + <reference key="NSNextResponder" ref="191373211"/> + <int key="NSvFlags">292</int> + <string key="NSFrame">{{20, 231}, {280, 21}}</string> + <reference key="NSSuperview" ref="191373211"/> + <bool key="IBUIOpaque">NO</bool> + <bool key="IBUIClipsSubviews">YES</bool> + <int key="IBUIContentMode">7</int> + <bool key="IBUIUserInteractionEnabled">NO</bool> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + <string key="IBUIText">Connecting</string> + <object class="NSColor" key="IBUITextColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MC42IDAuNiAwLjYgMC42AA</bytes> + </object> + <object class="NSColor" key="IBUIHighlightedColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MQA</bytes> + </object> + <int key="IBUIBaselineAdjustment">1</int> + <float key="IBUIMinimumFontSize">10</float> + <int key="IBUITextAlignment">1</int> + </object> + </object> + <string key="NSFrameSize">{320, 460}</string> + <reference key="NSSuperview"/> + <object class="NSColor" key="IBUIBackgroundColor"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> + </object> + <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/> + <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string> + </object> + </object> + <object class="IBObjectContainer" key="IBDocument.Objects"> + <object class="NSMutableArray" key="connectionRecords"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">view</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="191373211"/> + </object> + <int key="connectionID">5</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBCocoaTouchOutletConnection" key="connection"> + <string key="label">_activityIndicator</string> + <reference key="source" ref="372490531"/> + <reference key="destination" ref="919195305"/> + </object> + <int key="connectionID">6</int> + </object> + </object> + <object class="IBMutableOrderedSet" key="objectRecords"> + <object class="NSArray" key="orderedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBObjectRecord"> + <int key="objectID">0</int> + <reference key="object" ref="0"/> + <reference key="children" ref="1000"/> + <nil key="parent"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1</int> + <reference key="object" ref="191373211"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="895059471"/> + <reference ref="919195305"/> + </object> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-1</int> + <reference key="object" ref="372490531"/> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> + </object> + <object class="IBObjectRecord"> + <int key="objectID">-2</int> + <reference key="object" ref="975951072"/> + <reference key="parent" ref="0"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">3</int> + <reference key="object" ref="919195305"/> + <reference key="parent" ref="191373211"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">4</int> + <reference key="object" ref="895059471"/> + <reference key="parent" ref="191373211"/> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="flattenedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>-1.CustomClassName</string> + <string>-2.CustomClassName</string> + <string>1.IBEditorWindowLastContentRect</string> + <string>1.IBPluginDependency</string> + <string>3.IBPluginDependency</string> + <string>3.IBViewBoundsToFrameTransform</string> + <string>4.IBPluginDependency</string> + <string>4.IBViewBoundsToFrameTransform</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>ServerConnectionViewController</string> + <string>UIResponder</string> + <string>{{656, 238}, {320, 480}}</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABDCAAAw10AAA</bytes> + </object> + <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABC3gAAw3oAAA</bytes> + </object> + </object> + </object> + <object class="NSMutableDictionary" key="unlocalizedProperties"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="activeLocalization"/> + <object class="NSMutableDictionary" key="localizations"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference key="dict.sortedKeys" ref="0"/> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + </object> + </object> + <nil key="sourceID"/> + <int key="maxID">13</int> + </object> + <object class="IBClassDescriber" key="IBDocument.Classes"> + <object class="NSMutableArray" key="referencedPartialClassDescriptions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">ServerConnectionViewController</string> + <string key="superclassName">UIViewController</string> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>_activityIndicator</string> + <string>_disconnectButton</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>UIActivityIndicatorView</string> + <string>UIButton</string> + </object> + </object> + <object class="NSMutableDictionary" key="toOneOutletInfosByName"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>_activityIndicator</string> + <string>_disconnectButton</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBToOneOutletInfo"> + <string key="name">_activityIndicator</string> + <string key="candidateClassName">UIActivityIndicatorView</string> + </object> + <object class="IBToOneOutletInfo"> + <string key="name">_disconnectButton</string> + <string key="candidateClassName">UIButton</string> + </object> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/Classes/ServerConnectionViewController.h</string> + </object> + </object> + </object> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSError.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSObject.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSThread.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURL.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIAccessibility.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UINibLoading.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="690381387"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIResponder.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIActivityIndicatorView</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIActivityIndicatorView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIButton</string> + <string key="superclassName">UIControl</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIControl</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UILabel</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UILabel.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIResponder</string> + <string key="superclassName">NSObject</string> + <reference key="sourceIdentifier" ref="690381387"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UISearchBar</string> + <string key="superclassName">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISearchBar.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UISearchDisplayController</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISearchDisplayController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UITextField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIView</string> + <string key="superclassName">UIResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIView.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UINavigationController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIPopoverController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UISplitViewController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UITabBarController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">UIViewController</string> + <string key="superclassName">UIResponder</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">UIKit.framework/Headers/UIViewController.h</string> + </object> + </object> + </object> + </object> + <int key="IBDocument.localizationMode">0</int> + <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaTouchFramework</string> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS</string> + <integer value="1024" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3</string> + <integer value="3100" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> + <string key="IBDocument.LastKnownRelativeProjectPath">Mumble.xcodeproj</string> + <int key="IBDocument.defaultPropertyAccessControl">3</int> + <string key="IBCocoaTouchPluginVersion">123</string> + </data> +</archive> diff --git a/Source/Classes/FavouriteServerListController.m b/Source/Classes/FavouriteServerListController.m index 8c94073..1da2c18 100644 --- a/Source/Classes/FavouriteServerListController.m +++ b/Source/Classes/FavouriteServerListController.m @@ -34,6 +34,7 @@ #import "FavouriteServer.h" #import "FavouriteServerEditViewController.h" +#import "ServerConnectionViewController.h" #import "ServerRootViewController.h" @implementation FavouriteServerListController @@ -136,9 +137,16 @@ // Connect if (index == 0) { UINavigationController *navCtrl = [[UINavigationController alloc] init]; - ServerRootViewController *serverRoot = [[ServerRootViewController alloc] initWithHostname:[favServ hostName] port:[favServ port] identity:[favServ identity] password:[favServ password]]; - [navCtrl pushViewController:serverRoot animated:NO]; - [[self navigationController] presentModalViewController:navCtrl animated:YES]; + + ServerRootViewController *serverRoot = [[ServerRootViewController alloc] initWithHostname:[favServ hostName] + port:[favServ port] + identity:[favServ identity] + password:[favServ password]]; + [serverRoot setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal]; + [navCtrl setViewControllers:[NSArray arrayWithObjects:serverRoot, nil]]; + + [[self navigationController] presentModalViewController:navCtrl animated:NO]; + [serverRoot release]; [navCtrl release]; diff --git a/Source/Classes/MumbleApplication.h b/Source/Classes/MumbleApplication.h index fb403d6..c153281 100644 --- a/Source/Classes/MumbleApplication.h +++ b/Source/Classes/MumbleApplication.h @@ -28,6 +28,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +@class AppDelegate; + #define MumbleApp ((MumbleApplication *)[MumbleApplication sharedApplication]) @interface MumbleApplication : UIApplication { @@ -37,6 +39,7 @@ - (id) init; - (void) dealloc; +- (AppDelegate *) delegate; - (BOOL) didCrashRecently; - (void) resetCrashCount; diff --git a/Source/Classes/MumbleApplication.m b/Source/Classes/MumbleApplication.m index 3922104..0c92fbe 100644 --- a/Source/Classes/MumbleApplication.m +++ b/Source/Classes/MumbleApplication.m @@ -29,6 +29,7 @@ */ #import "MumbleApplication.h" +#import "AppDelegate.h" static char crashhandler_fn[PATH_MAX] = { 0, }; static void crashhandler_signal_handler(); @@ -97,6 +98,10 @@ static void crashhandler_handle_crash() { [super dealloc]; } +- (AppDelegate *) delegate { + return (AppDelegate *)[super delegate]; +} + // Setup the crash notification handler - (void) setupCrashHandler { NSArray *documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, diff --git a/Source/Classes/ServerConnectionViewController.h b/Source/Classes/ServerConnectionViewController.h new file mode 100644 index 0000000..895e6a0 --- /dev/null +++ b/Source/Classes/ServerConnectionViewController.h @@ -0,0 +1,36 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +@interface ServerConnectionViewController : UIViewController { + IBOutlet UIActivityIndicatorView *_activityIndicator; + IBOutlet UIButton *_disconnectButton; +} + +@end diff --git a/Source/Classes/ServerConnectionViewController.m b/Source/Classes/ServerConnectionViewController.m new file mode 100644 index 0000000..89ee357 --- /dev/null +++ b/Source/Classes/ServerConnectionViewController.m @@ -0,0 +1,47 @@ +/* Copyright (C) 2009-2010 Mikkel Krautz <mikkel@krautz.dk> + + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Neither the name of the Mumble Developers nor the names of its + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#import "MumbleApplication.h" +#import "ServerConnectionViewController.h" + +@implementation ServerConnectionViewController + +- (id) init { + if (self = [super initWithNibName:@"ServerConnectionView" bundle:nil]) { + // ... + } + return self; +} + +- (void) viewWillAppear:(BOOL)animated { + [_activityIndicator startAnimating]; +} + +@end diff --git a/Source/Classes/ServerRootViewController.h b/Source/Classes/ServerRootViewController.h index cc04273..2ce27f6 100644 --- a/Source/Classes/ServerRootViewController.h +++ b/Source/Classes/ServerRootViewController.h @@ -37,14 +37,17 @@ #import <UIKit/UIKit.h> +@class ServerConnectionViewController; + @interface ServerRootViewController : UITableViewController <MKConnectionDelegate> { - MKConnection *_connection; - MKServerModel *_model; - NSMutableArray *_channelUsers; - MKChannel *_currentChannel; - Identity *_identity; - NSString *_password; - BOOL _pttState; + MKConnection *_connection; + MKServerModel *_model; + NSMutableArray *_channelUsers; + MKChannel *_currentChannel; + Identity *_identity; + NSString *_password; + BOOL _pttState; + ServerConnectionViewController *_progressController; } - (id) initWithHostname:(NSString *)host port:(NSUInteger)port identity:(Identity *)identity password:(NSString *)password; diff --git a/Source/Classes/ServerRootViewController.m b/Source/Classes/ServerRootViewController.m index 3d1cb03..9954b84 100644 --- a/Source/Classes/ServerRootViewController.m +++ b/Source/Classes/ServerRootViewController.m @@ -32,7 +32,10 @@ #import <MumbleKit/MKCertificate.h> #import <MumbleKit/MKConnection.h> +#import "MumbleApplication.h" +#import "AppDelegate.h" #import "ServerRootViewController.h" +#import "ServerConnectionViewController.h" #import "ChannelViewController.h" #import "LogViewController.h" #import "UserViewController.h" @@ -121,9 +124,32 @@ [usersButton release]; [flexSpace release]; + // Show the ServerConnectionViewController when we're trying to establish a + // connection to a server. + if (![_connection connected]) { + _progressController = [[ServerConnectionViewController alloc] init]; + _progressController.view.frame = [[UIScreen mainScreen] applicationFrame]; + _progressController.view.hidden = YES; + + UIWindow *window = [[MumbleApp delegate] window]; + [window addSubview:_progressController.view]; + + [UIView beginAnimations:nil context:NULL]; + _progressController.view.hidden = NO; + [UIView setAnimationDuration:0.6f]; + [UIView setAnimationBeginsFromCurrentState:YES]; + [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window cache:YES]; + [UIView commitAnimations]; + + [MumbleApp setStatusBarStyle:UIStatusBarStyleBlackOpaque animated:YES]; + } + [[self navigationController] setToolbarHidden:NO]; } +- (void) viewDidAppear:(BOOL)animated { +} + #pragma mark MKConnection Delegate // @@ -194,26 +220,31 @@ #pragma mark MKServerModel Delegate -// // We've successfuly joined the server. -// - (void) serverModel:(MKServerModel *)server joinedServerAsUser:(MKUser *)user { _currentChannel = [[_model connectedUser] channel]; _channelUsers = [[[[_model connectedUser] channel] users] mutableCopy]; + + [MumbleApp setStatusBarStyle:UIStatusBarStyleDefault animated:YES]; + + [UIView animateWithDuration:0.4f animations:^{ + _progressController.view.alpha = 0.0f; + } completion:^(BOOL finished){ + [_progressController.view removeFromSuperview]; + [_progressController release]; + _progressController = nil; + }]; + [[self navigationItem] setTitle:[_currentChannel channelName]]; [[self tableView] reloadData]; } -// // A user joined the server. -// - (void) serverModel:(MKServerModel *)server userJoined:(MKUser *)user { NSLog(@"ServerViewController: userJoined."); } -// // A user left the server. -// - (void) serverModel:(MKServerModel *)server userLeft:(MKUser *)user { if (_currentChannel == nil) return; @@ -226,9 +257,7 @@ } } -// // A user moved channel -// - (void) serverModel:(MKServerModel *)server userMoved:(MKUser *)user toChannel:(MKChannel *)chan byUser:(MKUser *)mover { if (_currentChannel == nil) return; @@ -277,23 +306,17 @@ } } -// // A channel was added. -// - (void) serverModel:(MKServerModel *)server channelAdded:(MKChannel *)channel { NSLog(@"ServerViewController: channelAdded."); } -// // A channel was removed. -// - (void) serverModel:(MKServerModel *)server channelRemoved:(MKChannel *)channel { NSLog(@"ServerViewController: channelRemoved."); } -// // User talk state changed -// - (void) userTalkStateChanged:(NSNotification *)notification { if (_currentChannel == nil) return; diff --git a/Source/Mumble.pch b/Source/Mumble.pch index 45feba2..7140a68 100644 --- a/Source/Mumble.pch +++ b/Source/Mumble.pch @@ -42,5 +42,6 @@ # import <Foundation/Foundation.h> # import <UIKit/UIKit.h> # import <QuartzCore/QuartzCore.h> +# import <Three20/Three20.h> #endif |