Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble-iphoneos.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikkel Krautz <mikkel@krautz.dk>2010-09-26 17:20:02 +0400
committerMikkel Krautz <mikkel@krautz.dk>2010-09-26 17:20:02 +0400
commit0c09b9290ef0d3abb22abd5cf10b2b280805dd93 (patch)
tree5d36b4b130472992c2709ae597018a07dfe2825f
parent03fba57a0b055a088cf20432e13522391eab237a (diff)
Add new experimental welcome screen.
-rwxr-xr-xMumble.xcodeproj/project.pbxproj40
-rw-r--r--Resources/about/Legal.html140
-rw-r--r--Resources/icons/Splash.pngbin0 -> 53829 bytes
-rw-r--r--Resources/icons/ios/cloud.pngbin0 -> 1160 bytes
-rw-r--r--Resources/icons/ios/cloud.svg91
-rw-r--r--Resources/icons/ios/diagnostics.pngbin0 -> 749 bytes
-rw-r--r--Resources/icons/ios/diagnostics.svg146
-rw-r--r--Resources/icons/ios/globe.pngbin0 -> 2318 bytes
-rw-r--r--Resources/icons/ios/globe.svg526
-rw-r--r--Resources/icons/ios/person.pngbin0 -> 1109 bytes
-rw-r--r--Resources/icons/ios/person.svg130
-rw-r--r--Resources/icons/ios/star.pngbin0 -> 1449 bytes
-rw-r--r--Resources/icons/ios/star.svg118
-rw-r--r--Source/Classes/MumbleApplicationDelegate.m46
-rw-r--r--Source/Classes/MumbleStyleSheet.h35
-rw-r--r--Source/Classes/MumbleStyleSheet.m46
-rw-r--r--Source/Classes/WelcomeScreenController.h35
-rw-r--r--Source/Classes/WelcomeScreenController.m186
18 files changed, 1522 insertions, 17 deletions
diff --git a/Mumble.xcodeproj/project.pbxproj b/Mumble.xcodeproj/project.pbxproj
index bf7d793..2fe6ebe 100755
--- a/Mumble.xcodeproj/project.pbxproj
+++ b/Mumble.xcodeproj/project.pbxproj
@@ -13,6 +13,13 @@
2801C35B11CA9F1A00E664E8 /* PreferencesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2801C35A11CA9F1A00E664E8 /* PreferencesViewController.m */; };
281D1BA511D66E3C006BE21C /* Identity.m in Sources */ = {isa = PBXBuildFile; fileRef = 281D1BA411D66E3C006BE21C /* Identity.m */; };
281EF08811CD721D001C6B73 /* AdvancedAudioPreferencesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 281EF08711CD721D001C6B73 /* AdvancedAudioPreferencesViewController.m */; };
+ 2821B7E1124E8EAD001DF8E4 /* MumbleStyleSheet.m in Sources */ = {isa = PBXBuildFile; fileRef = 2821B7E0124E8EAD001DF8E4 /* MumbleStyleSheet.m */; };
+ 2821B821124E9F4E001DF8E4 /* globe.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B820124E9F4E001DF8E4 /* globe.png */; };
+ 2821B829124EA09F001DF8E4 /* star.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B828124EA09F001DF8E4 /* star.png */; };
+ 2821B82F124EA784001DF8E4 /* person.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B82E124EA784001DF8E4 /* person.png */; };
+ 2821B837124EAA67001DF8E4 /* diagnostics.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B836124EAA67001DF8E4 /* diagnostics.png */; };
+ 2821B843124EAC1B001DF8E4 /* cloud.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B842124EAC1B001DF8E4 /* cloud.png */; };
+ 2821B871124EB3F3001DF8E4 /* Splash.png in Resources */ = {isa = PBXBuildFile; fileRef = 2821B870124EB3F3001DF8E4 /* Splash.png */; };
2830A18C11CE983B00970A41 /* DiagnosticsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2830A18B11CE983B00970A41 /* DiagnosticsViewController.m */; };
284BBBA512495C4400366F4C /* MumbleApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = 284BBBA412495C4400366F4C /* MumbleApplication.m */; };
2858A580123B9E5700A82155 /* CertificateCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2858A57F123B9E5700A82155 /* CertificateCell.xib */; };
@@ -96,6 +103,7 @@
28A4CCD3117E064B006EB479 /* LogViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4CCD2117E064B006EB479 /* LogViewController.m */; };
28A4CCF5117E1D4D006EB479 /* LogEntry.m in Sources */ = {isa = PBXBuildFile; fileRef = 28A4CCF4117E1D4D006EB479 /* LogEntry.m */; };
28AD733F0D9D9553002E5188 /* MainWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28AD733E0D9D9553002E5188 /* MainWindow.xib */; };
+ 28BC8219124D543B00D0D1F9 /* WelcomeScreenController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28BC8218124D543B00D0D1F9 /* WelcomeScreenController.m */; };
28C6EF0A11BBF38100E426C8 /* CountryServerListController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28C6EF0911BBF38100E426C8 /* CountryServerListController.m */; };
28F8B04511D97E0B006EFCBC /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = 28F8B04211D97E0B006EFCBC /* sqlite3.c */; };
28F9174811B946250030D649 /* FMDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = 28F9174211B946250030D649 /* FMDatabase.m */; };
@@ -328,6 +336,14 @@
281D1BA411D66E3C006BE21C /* Identity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Identity.m; sourceTree = "<group>"; };
281EF08611CD721D001C6B73 /* AdvancedAudioPreferencesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AdvancedAudioPreferencesViewController.h; sourceTree = "<group>"; };
281EF08711CD721D001C6B73 /* AdvancedAudioPreferencesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AdvancedAudioPreferencesViewController.m; sourceTree = "<group>"; };
+ 2821B7DF124E8EAD001DF8E4 /* MumbleStyleSheet.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MumbleStyleSheet.h; sourceTree = "<group>"; };
+ 2821B7E0124E8EAD001DF8E4 /* MumbleStyleSheet.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MumbleStyleSheet.m; sourceTree = "<group>"; };
+ 2821B820124E9F4E001DF8E4 /* globe.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = globe.png; path = Resources/icons/ios/globe.png; sourceTree = "<group>"; };
+ 2821B828124EA09F001DF8E4 /* star.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = star.png; path = Resources/icons/ios/star.png; sourceTree = "<group>"; };
+ 2821B82E124EA784001DF8E4 /* person.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = person.png; path = Resources/icons/ios/person.png; sourceTree = "<group>"; };
+ 2821B836124EAA67001DF8E4 /* diagnostics.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = diagnostics.png; path = Resources/icons/ios/diagnostics.png; sourceTree = "<group>"; };
+ 2821B842124EAC1B001DF8E4 /* cloud.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = cloud.png; path = Resources/icons/ios/cloud.png; sourceTree = "<group>"; };
+ 2821B870124EB3F3001DF8E4 /* Splash.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Splash.png; path = Resources/icons/Splash.png; sourceTree = "<group>"; };
2830A18A11CE983B00970A41 /* DiagnosticsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DiagnosticsViewController.h; sourceTree = "<group>"; };
2830A18B11CE983B00970A41 /* DiagnosticsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DiagnosticsViewController.m; sourceTree = "<group>"; };
284BBBA312495C4400366F4C /* MumbleApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MumbleApplication.h; sourceTree = "<group>"; };
@@ -380,7 +396,7 @@
2861C2C4116BEA11002B8514 /* comment_seen.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = comment_seen.pdf; sourceTree = "<group>"; };
2861C2C5116BEA11002B8514 /* deafened_self.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = deafened_self.pdf; sourceTree = "<group>"; };
2861C2C6116BEA11002B8514 /* deafened_server.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = deafened_server.pdf; sourceTree = "<group>"; };
- 2861C2C7116BEA11002B8514 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = "<group>"; };
+ 2861C2C7116BEA11002B8514 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = Resources/icons/Default.png; sourceTree = "<group>"; };
2861C3BB116BEA11002B8514 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; };
2861C3BC116BEA11002B8514 /* layout_classic.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = layout_classic.pdf; sourceTree = "<group>"; };
2861C3BD116BEA11002B8514 /* layout_custom.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = layout_custom.pdf; sourceTree = "<group>"; };
@@ -440,6 +456,8 @@
28A4CCF3117E1D4D006EB479 /* LogEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LogEntry.h; sourceTree = "<group>"; };
28A4CCF4117E1D4D006EB479 /* LogEntry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LogEntry.m; sourceTree = "<group>"; };
28AD733E0D9D9553002E5188 /* MainWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainWindow.xib; path = ../MainWindow.xib; sourceTree = "<group>"; };
+ 28BC8217124D543B00D0D1F9 /* WelcomeScreenController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WelcomeScreenController.h; sourceTree = "<group>"; };
+ 28BC8218124D543B00D0D1F9 /* WelcomeScreenController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WelcomeScreenController.m; sourceTree = "<group>"; };
28C6EF0911BBF38100E426C8 /* CountryServerListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CountryServerListController.m; sourceTree = "<group>"; };
28F8B04211D97E0B006EFCBC /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sqlite3.c; path = Dependencies/sqlite/sqlite3.c; sourceTree = "<group>"; };
28F8B04311D97E0B006EFCBC /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sqlite3.h; path = Dependencies/sqlite/sqlite3.h; sourceTree = "<group>"; };
@@ -549,6 +567,10 @@
2858DBA21233E31B000D6F75 /* VersionChecker.m */,
28FEA680124AA5A000A3F6B5 /* ServerConnectionViewController.h */,
28FEA681124AA5A000A3F6B5 /* ServerConnectionViewController.m */,
+ 28BC8217124D543B00D0D1F9 /* WelcomeScreenController.h */,
+ 28BC8218124D543B00D0D1F9 /* WelcomeScreenController.m */,
+ 2821B7DF124E8EAD001DF8E4 /* MumbleStyleSheet.h */,
+ 2821B7E0124E8EAD001DF8E4 /* MumbleStyleSheet.m */,
);
name = Classes;
path = Source/Classes;
@@ -565,6 +587,13 @@
2858A58A123B9EC700A82155 /* icons */ = {
isa = PBXGroup;
children = (
+ 2861C2C7116BEA11002B8514 /* Default.png */,
+ 2821B870124EB3F3001DF8E4 /* Splash.png */,
+ 2821B842124EAC1B001DF8E4 /* cloud.png */,
+ 2821B836124EAA67001DF8E4 /* diagnostics.png */,
+ 2821B82E124EA784001DF8E4 /* person.png */,
+ 2821B828124EA09F001DF8E4 /* star.png */,
+ 2821B820124E9F4E001DF8E4 /* globe.png */,
2858A58B123B9EE000A82155 /* certificate16.png */,
2858A597123BA05E00A82155 /* certificate32.png */,
2858A58D123B9EE000A82155 /* certificate64.png */,
@@ -627,7 +656,6 @@
2861C2C4116BEA11002B8514 /* comment_seen.pdf */,
2861C2C5116BEA11002B8514 /* deafened_self.pdf */,
2861C2C6116BEA11002B8514 /* deafened_server.pdf */,
- 2861C2C7116BEA11002B8514 /* Default.png */,
2861C3BB116BEA11002B8514 /* icon.png */,
2861C3BC116BEA11002B8514 /* layout_classic.pdf */,
2861C3BD116BEA11002B8514 /* layout_custom.pdf */,
@@ -1125,6 +1153,12 @@
2858A598123BA05E00A82155 /* certificate32.png in Resources */,
2858A62C123BB9B300A82155 /* AvatarCell.xib in Resources */,
28FEA6A2124AAA7100A3F6B5 /* ServerConnectionView.xib in Resources */,
+ 2821B821124E9F4E001DF8E4 /* globe.png in Resources */,
+ 2821B829124EA09F001DF8E4 /* star.png in Resources */,
+ 2821B82F124EA784001DF8E4 /* person.png in Resources */,
+ 2821B837124EAA67001DF8E4 /* diagnostics.png in Resources */,
+ 2821B843124EAC1B001DF8E4 /* cloud.png in Resources */,
+ 2821B871124EB3F3001DF8E4 /* Splash.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1192,6 +1226,8 @@
28847911124696BA0068364D /* IdentityPickerViewController.m in Sources */,
284BBBA512495C4400366F4C /* MumbleApplication.m in Sources */,
28FEA682124AA5A000A3F6B5 /* ServerConnectionViewController.m in Sources */,
+ 28BC8219124D543B00D0D1F9 /* WelcomeScreenController.m in Sources */,
+ 2821B7E1124E8EAD001DF8E4 /* MumbleStyleSheet.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/Resources/about/Legal.html b/Resources/about/Legal.html
index d8ffab8..e7e7e14 100644
--- a/Resources/about/Legal.html
+++ b/Resources/about/Legal.html
@@ -17,7 +17,7 @@
<body>
Mumble is Open Source software, developed collaboratively on the internet.
-Mumble for the iPhone is released under the following terms:
+Mumble for iOS is released under the following terms:
<br/><br />
<hr/>
@@ -220,7 +220,143 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
</pre>
-</hr>
+<hr/>
+
+<br/>Three20<br/><br/>
+
+<hr/>
+<pre>
+Copyright 2008 Joe Hewitt
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+</pre>
+<hr/>
+
+<br/>OpenSSL Toolkit<br/><br/>
+
+<hr/>
+<pre>
+/* ====================================================================
+ * Copyright (c) 1998-2008 The OpenSSL Project. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. 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.
+ *
+ * 3. All advertising materials mentioning features or use of this
+ * software must display the following acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
+ *
+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
+ * endorse or promote products derived from this software without
+ * prior written permission. For written permission, please contact
+ * openssl-core@openssl.org.
+ *
+ * 5. Products derived from this software may not be called "OpenSSL"
+ * nor may "OpenSSL" appear in their names without prior written
+ * permission of the OpenSSL Project.
+ *
+ * 6. Redistributions of any form whatsoever must retain the following
+ * acknowledgment:
+ * "This product includes software developed by the OpenSSL Project
+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
+ * EXPRESSED 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 OpenSSL PROJECT OR
+ * ITS 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.
+ * ====================================================================
+ *
+ * This product includes cryptographic software written by Eric Young
+ * (eay@cryptsoft.com). This product includes software written by Tim
+ * Hudson (tjh@cryptsoft.com).
+ *
+ */
+
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
+ * All rights reserved.
+ *
+ * This package is an SSL implementation written
+ * by Eric Young (eay@cryptsoft.com).
+ * The implementation was written so as to conform with Netscapes SSL.
+ *
+ * This library is free for commercial and non-commercial use as long as
+ * the following conditions are aheared to. The following conditions
+ * apply to all code found in this distribution, be it the RC4, RSA,
+ * lhash, DES, etc., code; not just the SSL code. The SSL documentation
+ * included with this distribution is covered by the same copyright terms
+ * except that the holder is Tim Hudson (tjh@cryptsoft.com).
+ *
+ * Copyright remains Eric Young's, and as such any Copyright notices in
+ * the code are not to be removed.
+ * If this package is used in a product, Eric Young should be given attribution
+ * as the author of the parts of the library used.
+ * This can be in the form of a textual message at program startup or
+ * in documentation (online or textual) provided with the package.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * "This product includes cryptographic software written by
+ * Eric Young (eay@cryptsoft.com)"
+ * The word 'cryptographic' can be left out if the rouines from the library
+ * being used are not cryptographic related :-).
+ * 4. If you include any Windows specific code (or a derivative thereof) from
+ * the apps directory (application code) you must include an acknowledgement:
+ * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
+ *
+ * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``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 AUTHOR 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.
+ *
+ * The licence and distribution terms for any publically available version or
+ * derivative of this code cannot be changed. i.e. this code cannot simply be
+ * copied and put under another distribution licence
+ * [including the GNU Public Licence.]
+ */
+</pre>
</body>
</html>
diff --git a/Resources/icons/Splash.png b/Resources/icons/Splash.png
new file mode 100644
index 0000000..ede3aab
--- /dev/null
+++ b/Resources/icons/Splash.png
Binary files differ
diff --git a/Resources/icons/ios/cloud.png b/Resources/icons/ios/cloud.png
new file mode 100644
index 0000000..7813665
--- /dev/null
+++ b/Resources/icons/ios/cloud.png
Binary files differ
diff --git a/Resources/icons/ios/cloud.svg b/Resources/icons/ios/cloud.svg
new file mode 100644
index 0000000..f476334
--- /dev/null
+++ b/Resources/icons/ios/cloud.svg
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg3874"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="cloud.svg">
+ <defs
+ id="defs3876">
+ <linearGradient
+ id="linearGradient4417">
+ <stop
+ style="stop-color:#ffffff;stop-opacity:1;"
+ offset="0"
+ id="stop4419" />
+ <stop
+ style="stop-color:#f4f4f4;stop-opacity:1;"
+ offset="1"
+ id="stop4421" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4417"
+ id="linearGradient4433"
+ x1="42.857143"
+ y1="489.50504"
+ x2="331.42856"
+ y2="489.50504"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35"
+ inkscape:cx="25.154261"
+ inkscape:cy="520"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="797"
+ inkscape:window-height="597"
+ inkscape:window-x="241"
+ inkscape:window-y="58"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata3879">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g3894"
+ style="fill:url(#linearGradient4433);fill-opacity:1.0;fill-rule:nonzero;stroke:none"
+ transform="matrix(1,0,0,1.2625,148.57143,-98.495071)"
+ inkscape:export-filename="/Users/mkrautz/Desktop/cloud.png"
+ inkscape:export-xdpi="16.219999"
+ inkscape:export-ydpi="16.219999">
+ <path
+ id="path3892"
+ transform="translate(105.71428,-74.285719)"
+ style="fill:url(#linearGradient4433);fill-opacity:1.0;fill-rule:nonzero;stroke:none"
+ d="m 225.71429,542.36218 c 0,33.92606 -33.89844,61.42857 -75.71429,61.42857 -41.81585,0 -75.714287,-27.50251 -75.714287,-61.42857 0,-33.92606 33.898437,-61.42857 75.714287,-61.42857 41.81585,0 75.71429,27.50251 75.71429,61.42857 z m -65.71428,-31.42857 c 0,33.92606 -33.89844,61.42857 -75.714293,61.42857 -41.81585,0 -75.714287,-27.50251 -75.714287,-61.42857 0,-33.92606 33.898437,-61.42857 75.714287,-61.42857 41.815853,0 75.714293,27.50251 75.714293,61.42857 z m 17.14285,51.42857 c 0,33.92606 -33.89844,61.42857 -75.71429,61.42857 -41.815846,0 -75.714283,-27.50251 -75.714283,-61.42857 0,-33.92606 33.898437,-61.42857 75.714283,-61.42857 41.81585,0 75.71429,27.50251 75.71429,61.42857 z m 45.71429,51.42858 c 0,33.92606 -33.89844,61.42857 -75.71429,61.42857 -41.81585,0 -75.714287,-27.50251 -75.714287,-61.42857 0,-33.92606 33.898437,-61.42857 75.714287,-61.42857 41.81585,0 75.71429,27.50251 75.71429,61.42857 z M 88.571439,548.07647 c 0,33.92606 -33.89844,61.42857 -75.71429,61.42857 -41.81585,0 -75.714287,-27.50251 -75.714287,-61.42857 0,-33.92606 33.898437,-61.42857 75.714287,-61.42857 41.81585,0 75.71429,27.50251 75.71429,61.42857 z m 31.428571,68.57143 c 0,33.92606 -33.89844,61.42857 -75.71429,61.42857 -41.81585,0 -75.714287,-27.50251 -75.714287,-61.42857 0,-33.92606 33.898437,-61.42857 75.714287,-61.42857 41.81585,0 75.71429,27.50251 75.71429,61.42857 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+</svg>
diff --git a/Resources/icons/ios/diagnostics.png b/Resources/icons/ios/diagnostics.png
new file mode 100644
index 0000000..d1865e1
--- /dev/null
+++ b/Resources/icons/ios/diagnostics.png
Binary files differ
diff --git a/Resources/icons/ios/diagnostics.svg b/Resources/icons/ios/diagnostics.svg
new file mode 100644
index 0000000..171489b
--- /dev/null
+++ b/Resources/icons/ios/diagnostics.svg
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2993"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="diagnostics.svg">
+ <defs
+ id="defs2995">
+ <linearGradient
+ id="linearGradient3807">
+ <stop
+ style="stop-color:#000000;stop-opacity:1;"
+ offset="0"
+ id="stop3809" />
+ <stop
+ style="stop-color:#4a4a4a;stop-opacity:1;"
+ offset="1"
+ id="stop3811" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient3779">
+ <stop
+ style="stop-color:#da1800;stop-opacity:1;"
+ offset="0"
+ id="stop3781" />
+ <stop
+ style="stop-color:#cf2e00;stop-opacity:1;"
+ offset="1"
+ id="stop3783" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3779"
+ id="linearGradient3785"
+ x1="105.22845"
+ y1="388.98865"
+ x2="120.79485"
+ y2="388.98865"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.0116693,0,0,3.0116693,-175.58209,-758.06807)" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3779"
+ id="linearGradient3793"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(3.6473824,0,0,3.6473824,-212.64454,-1094.6405)"
+ x1="105.22845"
+ y1="388.98865"
+ x2="120.79485"
+ y2="388.98865" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient3807"
+ id="linearGradient3815"
+ x1="870.37061"
+ y1="406.90881"
+ x2="870.00171"
+ y2="366.10193"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="2.9406779"
+ inkscape:cx="871.63682"
+ inkscape:cy="677.31778"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="884"
+ inkscape:window-height="519"
+ inkscape:window-x="221"
+ inkscape:window-y="38"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata2998">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <text
+ xml:space="preserve"
+ style="font-size:145.89529419px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient3793);fill-opacity:1;stroke:none;font-family:Sans"
+ x="160.69186"
+ y="378.29071"
+ id="text3775"
+ sodipodi:linespacing="125%"
+ transform="scale(0.92205326,1.084536)"><tspan
+ sodipodi:role="line"
+ id="tspan3777"
+ x="160.69186"
+ y="378.29071"
+ style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:url(#linearGradient3793);fill-opacity:1;font-family:Luxi Serif;-inkscape-font-specification:Luxi Serif Bold">?</tspan></text>
+ <rect
+ style="fill:url(#linearGradient3815);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="rect3795"
+ width="52"
+ height="52"
+ x="843.16602"
+ y="353.36417"
+ inkscape:export-filename="/Users/mkrautz/Desktop/diagnostics.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90" />
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot3797"
+ style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
+ transform="matrix(0.58963261,0,0,0.58963261,350.34194,165.21292)"
+ inkscape:export-filename="/Users/mkrautz/Desktop/diagnostics.png"
+ inkscape:export-xdpi="90"
+ inkscape:export-ydpi="90"><flowRegion
+ id="flowRegion3799"><rect
+ id="rect3801"
+ width="73.508476"
+ height="50.325035"
+ x="845.34747"
+ y="325.75916" /></flowRegion><flowPara
+ id="flowPara3803"
+ style="font-size:12px;fill:#ffffff"># rm -rf /</flowPara></flowRoot> </g>
+</svg>
diff --git a/Resources/icons/ios/globe.png b/Resources/icons/ios/globe.png
new file mode 100644
index 0000000..145de45
--- /dev/null
+++ b/Resources/icons/ios/globe.png
Binary files differ
diff --git a/Resources/icons/ios/globe.svg b/Resources/icons/ios/globe.svg
new file mode 100644
index 0000000..3c3f826
--- /dev/null
+++ b/Resources/icons/ios/globe.svg
@@ -0,0 +1,526 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="New document 1">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient4885">
+ <stop
+ style="stop-color:#5dd922;stop-opacity:1;"
+ offset="0"
+ id="stop4887" />
+ <stop
+ style="stop-color:#00b41e;stop-opacity:1;"
+ offset="1"
+ id="stop4889" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient4875">
+ <stop
+ style="stop-color:#3744ff;stop-opacity:1;"
+ offset="0"
+ id="stop4877" />
+ <stop
+ style="stop-color:#00cdf1;stop-opacity:1;"
+ offset="1"
+ id="stop4879" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient4891-3"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ id="linearGradient4885-0">
+ <stop
+ style="stop-color:#5dd922;stop-opacity:1;"
+ offset="0"
+ id="stop4887-2" />
+ <stop
+ style="stop-color:#00b41e;stop-opacity:1;"
+ offset="1"
+ id="stop4889-2" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient4989"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,237.99138,333.59675)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient4991"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5049"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,679.26501,-115.38037)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5063"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,237.99138,333.59675)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5072"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,245.00729,-44.09322)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5082"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,245.00729,-44.09322)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5092"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,245.00729,-44.09322)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5095"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5099"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5116"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5123"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5127"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5140"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5142"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5144"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5154"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5164"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5176"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5192"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5197"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5290"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,237.99138,333.59675)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5292"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.42915919,-0.00299677,-0.00347981,0.35188092,199.80352,196.13738)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4885-0"
+ id="linearGradient5294"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(0.85628741,0,0,0.60000002,237.99138,333.59675)"
+ x1="-21.047737"
+ y1="299.90555"
+ x2="40.926159"
+ y2="299.90555" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5370"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath5372">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient5376);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path5374"
+ sodipodi:cx="284.14447"
+ sodipodi:cy="399.29764"
+ sodipodi:rx="159.02736"
+ sodipodi:ry="136.22563"
+ d="m 443.17183,399.29764 a 159.02736,136.22563 0 1 1 -318.05472,0 159.02736,136.22563 0 1 1 318.05472,0 z"
+ transform="matrix(0.74264706,0,0,0.81974248,-15.74282,87.177543)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5376"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath5378">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient5382);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path5380"
+ sodipodi:cx="284.14447"
+ sodipodi:cy="399.29764"
+ sodipodi:rx="159.02736"
+ sodipodi:ry="136.22563"
+ d="m 443.17183,399.29764 a 159.02736,136.22563 0 1 1 -318.05472,0 159.02736,136.22563 0 1 1 318.05472,0 z"
+ transform="matrix(-0.27916147,-0.01142415,0.01883878,-0.27778873,94.163958,463.71532)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5382"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath5384">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient5388);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path5386"
+ sodipodi:cx="284.14447"
+ sodipodi:cy="399.29764"
+ sodipodi:rx="159.02736"
+ sodipodi:ry="136.22563"
+ d="m 443.17183,399.29764 a 159.02736,136.22563 0 1 1 -318.05472,0 159.02736,136.22563 0 1 1 318.05472,0 z"
+ transform="matrix(0.74264706,0,0,0.81974248,-118.64287,-57.817982)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5388"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath5390">
+ <path
+ sodipodi:type="arc"
+ style="fill:url(#linearGradient5394);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ id="path5392"
+ sodipodi:cx="284.14447"
+ sodipodi:cy="399.29764"
+ sodipodi:rx="159.02736"
+ sodipodi:ry="136.22563"
+ d="m 443.17183,399.29764 a 159.02736,136.22563 0 1 1 -318.05472,0 159.02736,136.22563 0 1 1 318.05472,0 z"
+ transform="matrix(0.74264706,0,0,0.81974248,-15.74282,87.177543)" />
+ </clipPath>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient4875"
+ id="linearGradient5394"
+ gradientUnits="userSpaceOnUse"
+ x1="124.61711"
+ y1="399.29764"
+ x2="443.67184"
+ y2="399.29764" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.35651146"
+ inkscape:cx="219.72561"
+ inkscape:cy="843.98737"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="1680"
+ inkscape:window-height="988"
+ inkscape:window-x="1272"
+ inkscape:window-y="-8"
+ inkscape:window-maximized="1" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ transform="matrix(0.74264706,0,0,0.81974248,50.30648,-25.575668)"
+ d="m 443.17183,399.29764 a 159.02736,136.22563 0 1 1 -318.05472,0 159.02736,136.22563 0 1 1 318.05472,0 z"
+ sodipodi:ry="136.22563"
+ sodipodi:rx="159.02736"
+ sodipodi:cy="399.29764"
+ sodipodi:cx="284.14447"
+ id="path5368"
+ style="fill:url(#linearGradient5370);fill-opacity:1;fill-rule:evenodd;stroke:none"
+ sodipodi:type="arc"
+ inkscape:export-filename="c:\users\mkrautz\desktop\globe.png"
+ inkscape:export-xdpi="19.813515"
+ inkscape:export-ydpi="19.813515" />
+ <g
+ id="g4978"
+ transform="translate(66.049299,-112.75321)"
+ clip-path="url(#clipPath5390)"
+ inkscape:export-filename="c:\users\mkrautz\desktop\globe.png"
+ inkscape:export-xdpi="19.813515"
+ inkscape:export-ydpi="19.813515">
+ <path
+ id="path4974"
+ style="fill:url(#linearGradient5294);fill-opacity:1;stroke:none"
+ d="m 273.03593,513.54008 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30539 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40746 26.53373,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87956,27.71286 -26.53373,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30538 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53373,12.40747 26.53373,27.71285 z m 16.50699,8.0683 c 0,15.30539 -11.87955,27.71286 -26.53372,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30539 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53372,12.40746 26.53372,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30538 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40747 26.53373,27.71285 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ <g
+ id="g5051">
+ <g
+ id="g5033"
+ transform="matrix(0.46107779,0,0,0.65891476,-243.40735,210.14261)" />
+ <g
+ transform="matrix(0.46107779,0,0,0.65891476,-227.03689,189.09487)"
+ id="g5039" />
+ </g>
+ <g
+ id="g5065"
+ transform="translate(168.94935,32.242322)"
+ clip-path="url(#clipPath5384)"
+ inkscape:export-filename="c:\users\mkrautz\desktop\globe.png"
+ inkscape:export-xdpi="19.813515"
+ inkscape:export-ydpi="19.813515">
+ <g
+ id="g5045"
+ transform="matrix(0.46107779,0,0,0.65891476,-256.26986,557.43029)" />
+ <g
+ id="g5059"
+ transform="translate(-205.80011,49.111386)">
+ <path
+ id="path5061"
+ style="fill:url(#linearGradient5072);fill-opacity:1;stroke:none"
+ d="m 280.05184,135.85011 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30539 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40746 26.53373,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87956,27.71286 -26.53373,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30538 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53373,12.40747 26.53373,27.71285 z m 16.50699,8.0683 c 0,15.30539 -11.87955,27.71286 -26.53372,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30539 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53372,12.40746 26.53372,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30538 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40747 26.53373,27.71285 z m 50.41724,17.32495 c 0,10.08495 -5.47739,18.26041 -12.23411,18.26041 -6.75672,0 -12.23411,-8.17546 -12.23411,-18.26041 0,-10.08495 5.47739,-18.26041 12.23411,-18.26041 6.75672,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17547 -12.23412,-18.26041 0,-10.08494 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17547 12.23411,18.26041 z m 7.61101,5.31632 c 0,10.08495 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17546 -12.23412,-18.26041 0,-10.08495 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23412,18.26041 -6.75671,0 -12.23411,-8.17547 -12.23411,-18.26041 0,-10.08494 5.4774,-18.26041 12.23411,-18.26041 6.75672,0 12.23412,8.17547 12.23412,18.26041 z m 15.87325,-34.22298 c 0,10.08495 -5.47739,18.26041 -12.23411,18.26041 -6.75672,0 -12.23411,-8.17546 -12.23411,-18.26041 0,-10.08495 5.47739,-18.26041 12.23411,-18.26041 6.75672,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17547 -12.23412,-18.26041 0,-10.08494 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17547 12.23411,18.26041 z m 7.61101,5.31632 c 0,10.08495 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17546 -12.23412,-18.26041 0,-10.08495 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23412,18.26041 -6.75671,0 -12.23411,-8.17547 -12.23411,-18.26041 0,-10.08494 5.4774,-18.26041 12.23411,-18.26041 6.75672,0 12.23412,8.17547 12.23412,18.26041 z m 4.18007,7.8725 c 0,10.08495 -5.47739,18.26041 -12.23411,18.26041 -6.75672,0 -12.23411,-8.17546 -12.23411,-18.26041 0,-10.08495 5.47739,-18.26041 12.23411,-18.26041 6.75672,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17547 -12.23412,-18.26041 0,-10.08494 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17547 12.23411,18.26041 z m 7.61101,5.31632 c 0,10.08495 -5.4774,18.26041 -12.23411,18.26041 -6.75672,0 -12.23412,-8.17546 -12.23412,-18.26041 0,-10.08495 5.4774,-18.26041 12.23412,-18.26041 6.75671,0 12.23411,8.17546 12.23411,18.26041 z m -14.08077,3.92946 c 0,10.08494 -5.4774,18.26041 -12.23412,18.26041 -6.75671,0 -12.23411,-8.17547 -12.23411,-18.26041 0,-10.08494 5.4774,-18.26041 12.23411,-18.26041 6.75672,0 12.23412,8.17547 12.23412,18.26041 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ id="g5074"
+ transform="matrix(-0.31888513,2.6364321,-2.9321479,-0.30803745,717.90501,701.16466)">
+ <g
+ transform="matrix(0.46107779,0,0,0.65891476,-256.26986,557.43029)"
+ id="g5076" />
+ <g
+ transform="translate(-205.80011,49.111386)"
+ id="g5078" />
+ </g>
+ <g
+ transform="matrix(-2.6529152,0.12042802,-0.17991259,-2.9427895,383.5437,1327.701)"
+ id="g5084"
+ clip-path="url(#clipPath5378)"
+ inkscape:export-filename="c:\users\mkrautz\desktop\globe.png"
+ inkscape:export-xdpi="19.813515"
+ inkscape:export-ydpi="19.813515">
+ <g
+ id="g5086"
+ transform="matrix(0.46107779,0,0,0.65891476,-256.26986,557.43029)" />
+ <g
+ id="g5088"
+ transform="translate(-205.80011,49.111386)">
+ <path
+ id="path5090"
+ style="fill:url(#linearGradient5292);fill-opacity:1;stroke:none"
+ d="m 216.32375,301.54577 c -0.0888,8.97612 -6.11459,16.29429 -13.45906,16.34557 -7.34447,0.0513 -13.22637,-7.18372 -13.13761,-16.15985 0.0888,-8.97612 6.11459,-16.29428 13.45906,-16.34556 7.34447,-0.0513 13.22637,7.18372 13.13761,16.15984 z m -15.34022,3.6043 c -0.0888,8.97612 -6.11459,16.29428 -13.45905,16.34557 -7.34447,0.0513 -13.22638,-7.18373 -13.13762,-16.15985 0.0888,-8.97612 6.1146,-16.29428 13.45907,-16.34557 7.34446,-0.0513 13.22637,7.18373 13.1376,16.15985 z m 8.22628,4.67403 c -0.0888,8.97612 -6.11459,16.29429 -13.45905,16.34557 -7.34447,0.0513 -13.22638,-7.18372 -13.13761,-16.15985 0.0888,-8.97612 6.11459,-16.29428 13.45906,-16.34556 7.34446,-0.0513 13.22637,7.18372 13.1376,16.15984 z m -15.34021,3.6043 c -0.0888,8.97612 -6.11459,16.29428 -13.45906,16.34557 -7.34447,0.0513 -13.22637,-7.18373 -13.13761,-16.15985 0.0888,-8.97612 6.11459,-16.29428 13.45906,-16.34557 7.34447,-0.0513 13.22637,7.18373 13.13761,16.15985 z m 25.16793,9.98408 c -0.0585,5.91451 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75183 -6.02566,-10.66633 0.0585,-5.91451 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0236 6.08415,4.75183 6.02566,10.66633 z m -7.07987,2.35379 c -0.0585,5.91449 -2.8511,10.72831 -6.23747,10.75196 -3.38638,0.0236 -6.08416,-4.75184 -6.02567,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23748,-10.75197 3.38636,-0.0236 6.08415,4.75184 6.02566,10.66634 z m 3.78369,3.09121 c -0.0585,5.9145 -2.8511,10.72832 -6.23746,10.75197 -3.38638,0.0236 -6.08416,-4.75183 -6.02567,-10.66634 0.0585,-5.9145 2.8511,-10.72832 6.23747,-10.75196 3.38637,-0.0236 6.08415,4.75183 6.02566,10.66633 z m -7.07987,2.35378 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0237 -6.08415,-4.75184 -6.02566,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0237 6.08415,4.75184 6.02566,10.66633 z m 8.15393,-20.12624 c -0.0585,5.9145 -2.85109,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08414,-4.75183 -6.02566,-10.66634 0.0585,-5.9145 2.8511,-10.72831 6.23747,-10.75196 3.38638,-0.0237 6.08415,4.75183 6.02566,10.66633 z m -7.07987,2.35378 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75184 -6.02566,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0237 6.08415,4.75184 6.02566,10.66633 z m 3.7837,3.09122 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75183 -6.02567,-10.66634 0.0585,-5.9145 2.85111,-10.72832 6.23748,-10.75196 3.38637,-0.0237 6.08415,4.75183 6.02566,10.66633 z m -7.07988,2.35378 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75184 -6.02566,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0237 6.08415,4.75184 6.02566,10.66633 z m 2.04934,4.60234 c -0.0585,5.91451 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0237 -6.08415,-4.75183 -6.02566,-10.66633 0.0585,-5.91451 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0236 6.08415,4.75183 6.02566,10.66633 z m -7.07988,2.35379 c -0.0585,5.91449 -2.8511,10.72832 -6.23746,10.75196 -3.38638,0.0236 -6.08416,-4.75183 -6.02567,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23748,-10.75197 3.38636,-0.0236 6.08414,4.75184 6.02565,10.66634 z m 3.7837,3.09121 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75183 -6.02566,-10.66634 0.0585,-5.9145 2.8511,-10.72831 6.23747,-10.75196 3.38637,-0.0236 6.08415,4.75183 6.02566,10.66633 z m -7.07987,2.35378 c -0.0585,5.9145 -2.8511,10.72832 -6.23747,10.75197 -3.38637,0.0236 -6.08415,-4.75184 -6.02566,-10.66633 0.0585,-5.9145 2.8511,-10.72832 6.23747,-10.75197 3.38637,-0.0237 6.08415,4.75184 6.02566,10.66633 z m -8.67862,-47.69207 c 8.38721,1.28319 14.05074,8.52116 12.64986,16.16646 -1.40088,7.6453 -9.33569,12.80281 -17.7229,11.51962 -8.3872,-1.28319 -14.05073,-8.52116 -12.64985,-16.16646 1.40088,-7.6453 9.33569,-12.80281 17.72289,-11.51962 z m 0.34857,16.43253 c 8.38721,1.28319 14.05074,8.52116 12.64986,16.16646 -1.40088,7.6453 -9.33569,12.80281 -17.7229,11.51962 -8.3872,-1.28318 -14.05073,-8.52116 -12.64985,-16.16646 1.40088,-7.6453 9.33569,-12.80281 17.72289,-11.51962 z m 5.99936,-7.9355 c 8.3872,1.28319 14.05073,8.52116 12.64985,16.16645 -1.40088,7.6453 -9.33569,12.80281 -17.72289,11.51963 -8.38721,-1.28319 -14.05074,-8.52117 -12.64986,-16.16646 1.40088,-7.6453 9.33569,-12.80281 17.7229,-11.51962 z m 0.34856,16.43253 c 8.3872,1.28319 14.05074,8.52116 12.64986,16.16645 -1.40088,7.64531 -9.33569,12.80281 -17.7229,11.51963 -8.3872,-1.28319 -14.05073,-8.52116 -12.64985,-16.16646 1.40088,-7.6453 9.33569,-12.80281 17.72289,-11.51962 z m 14.31359,-24.85091 c 5.52645,0.84551 9.48291,4.38856 8.837,7.91365 -0.64592,3.52508 -5.64961,5.69729 -11.17606,4.85178 -5.52646,-0.84552 -9.48291,-4.38857 -8.837,-7.91365 0.64592,-3.52509 5.64961,-5.6973 11.17606,-4.85178 z m 0.80724,7.67558 c 5.52645,0.84552 9.48291,4.38858 8.83699,7.91365 -0.64591,3.52509 -5.64961,5.6973 -11.17606,4.85179 -5.52644,-0.84551 -9.4829,-4.38858 -8.83699,-7.91366 0.64592,-3.52507 5.64961,-5.69729 11.17606,-4.85178 z m 3.64088,-3.52506 c 5.52645,0.84552 9.4829,4.38858 8.83699,7.91365 -0.64592,3.52509 -5.64961,5.6973 -11.17606,4.85179 -5.52645,-0.84551 -9.48291,-4.38858 -8.83699,-7.91366 0.64591,-3.52507 5.6496,-5.69729 11.17606,-4.85178 z m 0.80724,7.67559 c 5.52644,0.84551 9.4829,4.38857 8.83699,7.91366 -0.64592,3.52507 -5.64961,5.69729 -11.17606,4.85178 -5.52645,-0.84551 -9.48291,-4.38858 -8.83699,-7.91366 0.64591,-3.52507 5.64961,-5.69729 11.17606,-4.85178 z m -17.23645,-11.15053 c 5.52646,0.84551 9.48291,4.38857 8.837,7.91365 -0.64592,3.52508 -5.6496,5.6973 -11.17606,4.85178 -5.52645,-0.84551 -9.48291,-4.38857 -8.83699,-7.91365 0.64591,-3.52508 5.6496,-5.69729 11.17605,-4.85178 z m 0.80725,7.67559 c 5.52645,0.84551 9.4829,4.38857 8.83699,7.91365 -0.64591,3.52508 -5.64961,5.6973 -11.17606,4.85178 -5.52645,-0.8455 -9.48291,-4.38857 -8.83699,-7.91365 0.64591,-3.52508 5.64961,-5.6973 11.17606,-4.85178 z m 3.64087,-3.52506 c 5.52646,0.84551 9.48291,4.38857 8.83699,7.91365 -0.64591,3.52508 -5.6496,5.6973 -11.17606,4.85178 -5.52645,-0.84551 -9.48291,-4.38857 -8.83699,-7.91365 0.64592,-3.52508 5.6496,-5.6973 11.17606,-4.85178 z m 0.80724,7.67558 c 5.52645,0.84552 9.48291,4.38858 8.83699,7.91366 -0.64591,3.52508 -5.64961,5.69729 -11.17606,4.85178 -5.52645,-0.84551 -9.4829,-4.38857 -8.83699,-7.91365 0.64591,-3.52508 5.64961,-5.6973 11.17606,-4.85179 z m 4.71365,-1.52078 c 5.52645,0.84552 9.48291,4.38857 8.837,7.91365 -0.64592,3.52509 -5.64961,5.6973 -11.17606,4.85178 -5.52646,-0.84551 -9.48291,-4.38857 -8.837,-7.91365 0.64592,-3.52508 5.64961,-5.69729 11.17606,-4.85178 z m 0.80724,7.67559 c 5.52645,0.84551 9.48291,4.38858 8.83699,7.91366 -0.64591,3.52507 -5.64961,5.69729 -11.17606,4.85178 -5.52644,-0.84551 -9.4829,-4.38858 -8.83699,-7.91366 0.64592,-3.52507 5.64961,-5.69729 11.17606,-4.85178 z m 3.64088,-3.52506 c 5.52645,0.84551 9.4829,4.38857 8.83699,7.91365 -0.64592,3.52508 -5.64961,5.6973 -11.17606,4.85178 -5.52645,-0.8455 -9.48291,-4.38857 -8.83699,-7.91365 0.64591,-3.52508 5.6496,-5.69729 11.17606,-4.85178 z m 0.80724,7.67559 c 5.52644,0.84551 9.4829,4.38858 8.83699,7.91365 -0.64592,3.52508 -5.64961,5.6973 -11.17606,4.85179 -5.52645,-0.84552 -9.48291,-4.38858 -8.83699,-7.91366 0.64591,-3.52507 5.64961,-5.69729 11.17606,-4.85178 z"
+ inkscape:connector-curvature="0" />
+ </g>
+ </g>
+ <g
+ transform="translate(66.049299,-112.75321)"
+ id="g5178"
+ clip-path="url(#clipPath5372)"
+ inkscape:export-filename="c:\users\mkrautz\desktop\globe.png"
+ inkscape:export-xdpi="19.813515"
+ inkscape:export-ydpi="19.813515">
+ <path
+ inkscape:connector-curvature="0"
+ d="m 273.03593,513.54008 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30539 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40746 26.53373,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87956,27.71286 -26.53373,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30538 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53373,12.40747 26.53373,27.71285 z m 16.50699,8.0683 c 0,15.30539 -11.87955,27.71286 -26.53372,27.71286 -14.65418,0 -26.53374,-12.40747 -26.53374,-27.71286 0,-15.30539 11.87956,-27.71285 26.53374,-27.71285 14.65417,0 26.53372,12.40746 26.53372,27.71285 z m -30.53882,5.96353 c 0,15.30539 -11.87955,27.71286 -26.53373,27.71286 -14.65418,0 -26.53373,-12.40747 -26.53373,-27.71286 0,-15.30538 11.87955,-27.71285 26.53373,-27.71285 14.65418,0 26.53373,12.40747 26.53373,27.71285 z"
+ style="fill:url(#linearGradient5290);fill-opacity:1;stroke:none"
+ id="path5180" />
+ </g>
+ <g
+ style="fill-rule:nonzero"
+ id="g5186"
+ transform="matrix(-1.2232003,0.05552669,-0.11854706,-1.9390474,984.7668,38.135329)" />
+ </g>
+</svg>
diff --git a/Resources/icons/ios/person.png b/Resources/icons/ios/person.png
new file mode 100644
index 0000000..6dcae9a
--- /dev/null
+++ b/Resources/icons/ios/person.png
Binary files differ
diff --git a/Resources/icons/ios/person.svg b/Resources/icons/ios/person.svg
new file mode 100644
index 0000000..f9106b5
--- /dev/null
+++ b/Resources/icons/ios/person.svg
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg5452"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="New document 7">
+ <defs
+ id="defs5454">
+ <linearGradient
+ id="linearGradient5979">
+ <stop
+ style="stop-color:#3b48ee;stop-opacity:1;"
+ offset="0"
+ id="stop5981" />
+ <stop
+ style="stop-color:#149ffb;stop-opacity:1;"
+ offset="1"
+ id="stop5983" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5979"
+ id="linearGradient5985"
+ x1="80.000015"
+ y1="762.36224"
+ x2="317.14288"
+ y2="368.07645"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5979"
+ id="linearGradient5987"
+ gradientUnits="userSpaceOnUse"
+ x1="237.14287"
+ y1="530.93365"
+ x2="237.14287"
+ y2="690.93359" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5979"
+ id="linearGradient6041"
+ gradientUnits="userSpaceOnUse"
+ x1="237.14287"
+ y1="530.93365"
+ x2="237.14287"
+ y2="690.93359" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5979"
+ id="linearGradient6043"
+ gradientUnits="userSpaceOnUse"
+ x1="80.000015"
+ y1="762.36224"
+ x2="317.14288"
+ y2="368.07645" />
+ <clipPath
+ clipPathUnits="userSpaceOnUse"
+ id="clipPath6089">
+ <rect
+ style="fill:none;stroke:none"
+ id="rect6091"
+ width="495.55228"
+ height="188.1076"
+ x="9.7530012"
+ y="552.29968" />
+ </clipPath>
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.98879577"
+ inkscape:cx="234.95811"
+ inkscape:cy="673.12322"
+ inkscape:document-units="px"
+ inkscape:current-layer="g5972"
+ showgrid="false"
+ inkscape:window-width="904"
+ inkscape:window-height="578"
+ inkscape:window-x="40"
+ inkscape:window-y="43"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata5457">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <g
+ id="g5972"
+ style="fill:url(#linearGradient6043);fill-opacity:1"
+ transform="translate(-22.857143,-245.71429)">
+ <path
+ id="path5970"
+ transform="matrix(0.57142857,0,0,1,99.201828,-33.959549)"
+ style="fill:url(#linearGradient6041);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ d="m 322.85715,638.07648 c 0,33.13708 -40.29438,60 -90,60 -49.70563,0 -90,-26.86292 -90,-60 0,-33.13709 40.29437,-60 90,-60 49.70562,0 90,26.86291 90,60 z m 65.00001,88.57143 c 0,33.13708 -70.51517,60 -157.5,60 -86.98486,0 -157.500005,-26.86292 -157.500005,-60 0,-33.13709 70.515145,-60 157.500005,-60 86.98483,0 157.5,26.86291 157.5,60 z"
+ inkscape:connector-curvature="0"
+ clip-path="url(#clipPath6089)"
+ inkscape:export-filename="/Users/mkrautz/Desktop/person.png"
+ inkscape:export-xdpi="26"
+ inkscape:export-ydpi="26" />
+ </g>
+ </g>
+</svg>
diff --git a/Resources/icons/ios/star.png b/Resources/icons/ios/star.png
new file mode 100644
index 0000000..a59495a
--- /dev/null
+++ b/Resources/icons/ios/star.png
Binary files differ
diff --git a/Resources/icons/ios/star.svg b/Resources/icons/ios/star.svg
new file mode 100644
index 0000000..03ca1ac
--- /dev/null
+++ b/Resources/icons/ios/star.svg
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="744.09448819"
+ height="1052.3622047"
+ id="svg2"
+ version="1.1"
+ inkscape:version="0.48.0 r9654"
+ sodipodi:docname="New document 1">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient5425">
+ <stop
+ style="stop-color:#f6e301;stop-opacity:1;"
+ offset="0"
+ id="stop5427" />
+ <stop
+ style="stop-color:#f0b301;stop-opacity:1;"
+ offset="1"
+ id="stop5429" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient5307">
+ <stop
+ style="stop-color:#0b96ff;stop-opacity:1;"
+ offset="0"
+ id="stop5309" />
+ <stop
+ style="stop-color:#1155d6;stop-opacity:1;"
+ offset="1"
+ id="stop5311" />
+ </linearGradient>
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5307"
+ id="linearGradient5313"
+ x1="205.71429"
+ y1="405.21933"
+ x2="325.71429"
+ y2="405.21933"
+ gradientUnits="userSpaceOnUse" />
+ <linearGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient5425"
+ id="linearGradient5431"
+ x1="15.779661"
+ y1="334.43832"
+ x2="111.58981"
+ y2="334.43832"
+ gradientUnits="userSpaceOnUse" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="0.77576143"
+ inkscape:cx="64.208853"
+ inkscape:cy="854.89583"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ showgrid="false"
+ inkscape:window-width="986"
+ inkscape:window-height="602"
+ inkscape:window-x="20"
+ inkscape:window-y="23"
+ inkscape:window-maximized="0" />
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="star"
+ style="fill:url(#linearGradient5431);fill-opacity:1;fill-rule:nonzero;stroke:none"
+ id="path5423"
+ sodipodi:sides="5"
+ sodipodi:cx="67.030914"
+ sodipodi:cy="329.20172"
+ sodipodi:r1="53.971287"
+ sodipodi:r2="26.985643"
+ sodipodi:arg1="0.70085441"
+ sodipodi:arg2="1.3291729"
+ inkscape:flatsided="false"
+ inkscape:rounded="0"
+ inkscape:randomized="0"
+ d="M 108.28071,364.00624 73.488018,355.40345 46.676742,379.18779 44.106941,343.43957 13.201549,325.2903 46.406016,311.79946 54.11671,276.79826 77.208,304.20868 112.87886,300.72602 93.945597,331.15743 z"
+ inkscape:transform-center-x="-0.33209885"
+ inkscape:transform-center-y="2.3476245"
+ inkscape:export-filename="/Users/mkrautz/Desktop/star.png"
+ inkscape:export-xdpi="45.707802"
+ inkscape:export-ydpi="45.707802"
+ transform="translate(88.944871,-195.93653)" />
+ </g>
+</svg>
diff --git a/Source/Classes/MumbleApplicationDelegate.m b/Source/Classes/MumbleApplicationDelegate.m
index 8b428d6..9e2a56a 100644
--- a/Source/Classes/MumbleApplicationDelegate.m
+++ b/Source/Classes/MumbleApplicationDelegate.m
@@ -33,8 +33,11 @@
#import "MumbleApplication.h"
#import "WelcomeScreenPhone.h"
#import "WelcomeScreenPad.h"
+#import "WelcomeScreenController.h"
#import "Database.h"
+#import "MumbleStyleSheet.h"
+
#import <MumbleKit/MKAudio.h>
@interface MumbleApplicationDelegate (Private)
@@ -50,21 +53,31 @@
- (void) applicationDidFinishLaunching:(UIApplication *)application {
_launchDate = [[NSDate alloc] init];
- [window addSubview:[navigationController view]];
+ UIUserInterfaceIdiom idiom = [[UIDevice currentDevice] userInterfaceIdiom];
[window makeKeyAndVisible];
[self reloadPreferences];
[Database initializeDatabase];
+ [TTDefaultStyleSheet setGlobalStyleSheet:[[[MumbleStyleSheet alloc] init] autorelease]];
+
+ self.navigationController.toolbarHidden = YES;
+ [window addSubview:[navigationController view]];
- // If we're running on anything below OS 3.2, UIDevice does not
- // respond to the userInterfaceIdiom method. We must assume we're
- // running on an iPhone or iPod Touch.
- UIDevice *device = [UIDevice currentDevice];
- UIUserInterfaceIdiom idiom = UIUserInterfaceIdiomPhone;
- if ([device respondsToSelector:@selector(userInterfaceIdiom)]) {
- idiom = [[UIDevice currentDevice] userInterfaceIdiom];
- }
+ // Create a fake splash screen that we can animate to give us
+ // a pretty fade-in launch...
+ UIScreen *screen = [UIScreen mainScreen];
+ UIImageView *imageView = [[UIImageView alloc] initWithFrame:[screen applicationFrame]];
+ [imageView setImage:[UIImage imageNamed:@"Splash.png"]];
+ [window addSubview:imageView];
+#if 1
+ self.navigationController.view.autoresizesSubviews = YES;
+
+ WelcomeScreenController *welcomeScreen = [[WelcomeScreenController alloc] init];
+ [navigationController pushViewController:welcomeScreen animated:NO];
+ [welcomeScreen release];
+
+#else
if (idiom == UIUserInterfaceIdiomPad) {
NSLog(@"UIUserInterfaceIdiomPad detected.");
WelcomeScreenPad *welcomeScreen = [[WelcomeScreenPad alloc] initWithNibName:@"WelcomeScreenPad" bundle:nil];
@@ -76,10 +89,17 @@
[navigationController pushViewController:welcomeScreen animated:YES];
[welcomeScreen release];
}
-
- [self notifyCrash];
-
- _verCheck = [[VersionChecker alloc] init];
+#endif
+
+ [UIView animateWithDuration:0.8f animations:^{
+ imageView.alpha = 0.0f;
+ } completion:^(BOOL finished){
+ [imageView removeFromSuperview];
+ [imageView release];
+
+ [self notifyCrash];
+ _verCheck = [[VersionChecker alloc] init];
+ }];
}
- (void) applicationWillTerminate:(UIApplication *)application {
diff --git a/Source/Classes/MumbleStyleSheet.h b/Source/Classes/MumbleStyleSheet.h
new file mode 100644
index 0000000..2de1109
--- /dev/null
+++ b/Source/Classes/MumbleStyleSheet.h
@@ -0,0 +1,35 @@
+/* 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 <Three20/Three20.h>
+
+@interface MumbleStyleSheet : TTDefaultStyleSheet
+
+@end
diff --git a/Source/Classes/MumbleStyleSheet.m b/Source/Classes/MumbleStyleSheet.m
new file mode 100644
index 0000000..6194389
--- /dev/null
+++ b/Source/Classes/MumbleStyleSheet.m
@@ -0,0 +1,46 @@
+/* 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 "MumbleStyleSheet.h"
+
+@implementation MumbleStyleSheet
+
+- (TTStyle *) launcherButton:(UIControlState)state {
+ return [TTPartStyle styleWithName:@"image"
+ style:TTSTYLESTATE(launcherButtonImage:, state) next:
+ [TTTextStyle styleWithFont:[UIFont boldSystemFontOfSize:11]
+ color:[UIColor whiteColor]
+ minimumFontSize:11
+ shadowColor:[UIColor lightGrayColor]
+ shadowOffset:CGSizeMake(-1.5f, 1.5f)
+ next:nil]];
+}
+
+@end
diff --git a/Source/Classes/WelcomeScreenController.h b/Source/Classes/WelcomeScreenController.h
new file mode 100644
index 0000000..529cc99
--- /dev/null
+++ b/Source/Classes/WelcomeScreenController.h
@@ -0,0 +1,35 @@
+/* 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 WelcomeScreenController : UIViewController <TTLauncherViewDelegate> {
+ TTLauncherView *_launcherView;
+}
+
+@end
diff --git a/Source/Classes/WelcomeScreenController.m b/Source/Classes/WelcomeScreenController.m
new file mode 100644
index 0000000..acd66a8
--- /dev/null
+++ b/Source/Classes/WelcomeScreenController.m
@@ -0,0 +1,186 @@
+/* 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 <Three20/Three20.h> // force Xcode to syntax highlight
+#import "WelcomeScreenController.h"
+
+#import "PublicServerListController.h"
+#import "FavouriteServerListController.h"
+#import "LanServerListController.h"
+#import "DiagnosticsViewController.h"
+#import "PreferencesViewController.h"
+#import "IdentityViewController.h"
+#import "ServerRootViewController.h"
+#import "AboutViewController.h"
+
+@implementation WelcomeScreenController
+
+- (void) viewWillAppear:(BOOL)animated {
+ self.navigationItem.title = @"Mumble";
+
+ TTLauncherItem *item;
+ item = [[TTLauncherItem alloc] initWithTitle:@"Public Servers"
+ image:@"bundle://globe.png"
+ URL:@"mumbleapp://public"];
+ [_launcherView addItem:item animated:YES];
+
+ item = [[TTLauncherItem alloc] initWithTitle:@"Favourite Servers"
+ image:@"bundle://star.png"
+ URL:@"mumbleapp://favourite"];
+ [_launcherView addItem:item animated:YES];
+
+ item = [[TTLauncherItem alloc] initWithTitle:@"LAN Servers"
+ image:@"bundle://cloud.png"
+ URL:@"mumbleapp://lan"];
+ [_launcherView addItem:item animated:YES];
+
+ item = [[TTLauncherItem alloc] initWithTitle:@"Diagnostics"
+ image:@"bundle://diagnostics.png"
+ URL:@"mumbleapp://diag"];
+ [_launcherView addItem:item animated:YES];
+
+ item = [[TTLauncherItem alloc] initWithTitle:@"Identities"
+ image:@"bundle://person.png"
+ URL:@"mumbleapp://ident"];
+ [_launcherView addItem:item animated:YES];
+
+ [_launcherView setDelegate:self];
+
+ UIBarButtonItem *about = [[UIBarButtonItem alloc] initWithTitle:@"About" style:UIBarButtonItemStyleBordered target:self action:@selector(aboutClicked:)];
+ [self.navigationItem setRightBarButtonItem:about];
+ [about release];
+
+ UIBarButtonItem *prefs = [[UIBarButtonItem alloc] initWithTitle:@"Preferences" style:UIBarButtonItemStyleBordered target:self action:@selector(prefsClicked:)];
+ [self.navigationItem setLeftBarButtonItem:prefs];
+ [prefs release];
+}
+
+- (void) loadView {
+ UIScreen *screen = [UIScreen mainScreen];
+ _launcherView = [[TTLauncherView alloc] initWithFrame:[screen applicationFrame]];
+ _launcherView.backgroundColor = [UIColor groupTableViewBackgroundColor];
+ self.view = _launcherView;
+ [_launcherView release];
+}
+
+- (void) viewDidLoad {
+ [super viewDidLoad];
+ self.view.autoresizesSubviews = YES;
+ self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
+}
+
+- (void) viewDidUnload {
+ [super viewDidUnload];
+}
+
+#pragma mark -
+#pragma mark TTLauncherView delegate
+
+- (void) launcherView:(TTLauncherView *)launcherView didSelectItem:(TTLauncherItem *)item {
+ UIViewController *controller = nil;
+ if ([[item URL] isEqualToString:@"mumbleapp://public"]) {
+ controller = [[PublicServerListController alloc] init];
+ } else if ([[item URL] isEqualToString:@"mumbleapp://favourite"]) {
+ controller = [[FavouriteServerListController alloc] init];
+ } else if ([[item URL] isEqualToString:@"mumbleapp://lan"]) {
+ controller = [[LanServerListController alloc] init];
+ } else if ([[item URL] isEqualToString:@"mumbleapp://diag"]) {
+ controller = [[DiagnosticsViewController alloc] init];
+ } else if ([[item URL] isEqualToString:@"mumbleapp://ident"]) {
+ controller = [[IdentityViewController alloc] init];
+ }
+
+ if (controller) {
+ [[self navigationController] pushViewController:controller animated:YES];
+ [controller release];
+ }
+}
+
+
+- (void) launcherViewDidBeginEditing:(TTLauncherView *)launcher {
+ UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
+ UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneEditingClicked:)];
+ [self setToolbarItems:[NSArray arrayWithObjects:flexSpace, doneButton, flexSpace, nil]];
+ [self.navigationController setToolbarHidden:NO animated:YES];
+ [doneButton release];
+ [flexSpace release];
+}
+
+- (void) launcherViewDidEndEditing:(TTLauncherView *)launcher {
+ [self.navigationController setToolbarHidden:YES animated:YES];
+}
+
+#pragma mark -
+#pragma mark Actions
+
+- (void) aboutClicked:(id)sender {
+ NSString *aboutTitle = [NSString stringWithFormat:@"Mumble %@", [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]];
+ NSString *aboutMessage = @"Low-latency, high-quality VoIP app";
+
+ UIAlertView *aboutView = [[UIAlertView alloc] initWithTitle:aboutTitle message:aboutMessage delegate:self
+ cancelButtonTitle:@"OK"
+ otherButtonTitles:@"Website", @"Contributors", @"Legal", nil];
+ [aboutView show];
+ [aboutView release];
+}
+
+- (void) prefsClicked:(id)sender {
+ PreferencesViewController *prefs = [[[PreferencesViewController alloc] init] autorelease];
+ [self.navigationController pushViewController:prefs animated:YES];
+}
+
+- (void) doneEditingClicked:(id)sender {
+ [_launcherView endEditing];
+}
+
+#pragma mark -
+#pragma mark About Dialog
+
+- (void) alertView:(UIAlertView *)alert didDismissWithButtonIndex:(NSInteger)buttonIndex {
+ if (buttonIndex == 1) {
+ [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.mumble.info/"]];
+ } else if (buttonIndex == 2) {
+ AboutViewController *contribView = [[AboutViewController alloc] initWithContent:@"Contributors"];
+ UINavigationController *navController = [[UINavigationController alloc] init];
+ [navController pushViewController:contribView animated:NO];
+ [contribView release];
+ [[self navigationController] presentModalViewController:navController animated:YES];
+ [navController release];
+ } else if (buttonIndex == 3) {
+ AboutViewController *legalView = [[AboutViewController alloc] initWithContent:@"Legal"];
+ UINavigationController *navController = [[UINavigationController alloc] init];
+ [navController pushViewController:legalView animated:NO];
+ [legalView release];
+ [[self navigationController] presentModalViewController:navController animated:YES];
+ [navController release];
+ }
+}
+
+@end