[Libreoffice-commits] core.git: ios/iosremote

Siqi LIU me at siqi.fr
Tue Jul 30 14:55:24 PDT 2013


 ios/iosremote/UserDefaults.plist                                      |   10 
 ios/iosremote/iPad_autosize.storyboard                                |  576 ++++++++++
 ios/iosremote/iosremote/AppDelegate_ipad.h                            |   16 
 ios/iosremote/iosremote/AppDelegate_ipad.m                            |   16 
 ios/iosremote/iosremote/ControlVariables.h                            |   43 
 ios/iosremote/iosremote/HorizontalSlideCell.h                         |   16 
 ios/iosremote/iosremote/HorizontalSlideCell.m                         |   65 +
 ios/iosremote/iosremote/MainSplitViewController.h                     |   17 
 ios/iosremote/iosremote/MainSplitViewController.m                     |   80 +
 ios/iosremote/iosremote/arrow_left.png                                |binary
 ios/iosremote/iosremote/arrow_left at 2x.png                             |binary
 ios/iosremote/iosremote/arrow_right.png                               |binary
 ios/iosremote/iosremote/arrow_right at 2x.png                            |binary
 ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.h |   13 
 ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.m |   43 
 ios/iosremote/iosremote/server_list_vc_ipad.h                         |   15 
 ios/iosremote/iosremote/server_list_vc_ipad.m                         |   46 
 ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h               |   21 
 ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m               |   73 +
 ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h             |   14 
 ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m             |   39 
 ios/iosremote/iosremote/slideShowSwipeInList_ipad.h                   |   13 
 ios/iosremote/iosremote/slideShowSwipeInList_ipad.m                   |  168 ++
 ios/iosremote/iosremote/slideShowSwipeInList_iphone.h                 |   12 
 ios/iosremote/iosremote/slideShowSwipeInList_iphone.m                 |  183 +++
 ios/iosremote/iosremote/slideShow_vc_iphone.h                         |   31 
 ios/iosremote/iosremote/slideShow_vc_iphone.m                         |  401 ++++++
 ios/iosremote/iosremote/stopWatch.h                                   |   31 
 ios/iosremote/iosremote/stopWatch.m                                   |  148 ++
 ios/iosremote/iosremote_ipad_icon.png                                 |binary
 ios/iosremote/iosremote_ipad_icon at 2x.png                              |binary
 ios/iosremote/iosremote_iphone_icon.png                               |binary
 ios/iosremote/iosremote_iphone_icon at 2x.png                            |binary
 ios/iosremote/libO_icon.png                                           |binary
 ios/iosremote/nextButton_normal.png                                   |binary
 ios/iosremote/nextButton_normal at 2x.png                                |binary
 ios/iosremote/nextButton_pressed.png                                  |binary
 ios/iosremote/nextButton_pressed at 2x.png                               |binary
 ios/iosremote/previousButton_normal.png                               |binary
 ios/iosremote/previousButton_normal at 2x.png                            |binary
 ios/iosremote/previousButton_pressed.png                              |binary
 ios/iosremote/previousButton_pressed at 2x.png                           |binary
 ios/iosremote/slideshowRail.png                                       |binary
 ios/iosremote/slideshowRail at 2x.png                                    |binary
 44 files changed, 2090 insertions(+)

New commits:
commit ef4c98cdbb5394520eb68ae3d23f1b0a31b7a803
Author: Siqi LIU <me at siqi.fr>
Date:   Tue Jul 30 23:54:59 2013 +0200

    add iPad specific files & ressources
    
    Change-Id: I1bf6b4f1476ea668ea9973d8b8dfab8779cdabbc

diff --git a/ios/iosremote/UserDefaults.plist b/ios/iosremote/UserDefaults.plist
new file mode 100644
index 0000000..d7714cf
--- /dev/null
+++ b/ios/iosremote/UserDefaults.plist
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>TOUCH_POINTER_ENABLED</key>
+	<true/>
+	<key>TIMER_AUTOSTART_ENABLED</key>
+	<false/>
+</dict>
+</plist>
diff --git a/ios/iosremote/iPad_autosize.storyboard b/ios/iosremote/iPad_autosize.storyboard
new file mode 100644
index 0000000..2028340
--- /dev/null
+++ b/ios/iosremote/iPad_autosize.storyboard
@@ -0,0 +1,576 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12E55" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" initialViewController="XiK-Ye-iB8">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/>
+    </dependencies>
+    <scenes>
+        <!--Server list vc ipad - Connect-->
+        <scene sceneID="ydU-fu-qHI">
+            <objects>
+                <viewController storyboardIdentifier="" id="5QV-E7-KNT" customClass="server_list_vc_ipad" sceneMemberID="viewController">
+                    <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="grouped" separatorStyle="singleLineEtched" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="0vt-Sx-o55">
+                        <rect key="frame" x="0.0" y="64" width="540" height="556"/>
+                        <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
+                        <prototypes>
+                            <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="server_item_cell" editingAccessoryType="disclosureIndicator" textLabel="h0a-Zq-2vY" detailTextLabel="Fsp-wI-AAW" style="IBUITableViewCellStyleValue1" id="HZp-VJ-Pgz">
+                                <rect key="frame" x="0.0" y="54" width="540" height="46"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                    <rect key="frame" x="31" y="1" width="478" height="43"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="h0a-Zq-2vY">
+                                            <rect key="frame" x="10" y="11" width="35" height="21"/>
+                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="17"/>
+                                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                            <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                        </label>
+                                        <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Fsp-wI-AAW">
+                                            <rect key="frame" x="424" y="11" width="44" height="21"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                            <color key="textColor" red="0.21960784310000001" green="0.3294117647" blue="0.52941176469999995" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                </view>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="5QV-E7-KNT" id="Vhs-k2-fLj"/>
+                            <outlet property="delegate" destination="5QV-E7-KNT" id="L4W-DD-RiQ"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" title="Connect" id="wYh-MF-Ao6">
+                        <barButtonItem key="leftBarButtonItem" systemItem="cancel" id="yai-U0-WT9">
+                            <connections>
+                                <action selector="cancelModalView:" destination="5QV-E7-KNT" id="rSl-Rp-xQb"/>
+                            </connections>
+                        </barButtonItem>
+                        <barButtonItem key="rightBarButtonItem" systemItem="add" id="pU6-XF-laS">
+                            <connections>
+                                <segue destination="65c-5D-pB7" kind="push" identifier="create_new_server" id="ORn-0W-dHd"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                    <connections>
+                        <outlet property="serverTable" destination="0vt-Sx-o55" id="Szp-pH-0rk"/>
+                        <segue destination="m26-i1-eiL" kind="push" identifier="pinValidation" id="yUv-cB-P15"/>
+                        <segue destination="B8g-8S-pgn" kind="push" identifier="SlideShowPreview" id="XCJ-4d-eG4"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="KBf-aZ-Hhk" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="254" y="-1374"/>
+        </scene>
+        <!--Pin Validation vc-->
+        <scene sceneID="wDk-2x-G9p">
+            <objects>
+                <viewController id="m26-i1-eiL" customClass="pinValidation_vc" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="hAq-tq-hru">
+                        <rect key="frame" x="0.0" y="64" width="540" height="556"/>
+                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <subviews>
+                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="3128" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Bp1-Dv-nt4">
+                                <rect key="frame" x="159" y="71" width="223" height="118"/>
+                                <fontDescription key="fontDescription" name="HelveticaNeue-UltraLight" family="Helvetica Neue" pointSize="100"/>
+                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Please enter the pin code above in Impress - Slide Show - Impress Remote" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="3" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="9zr-53-YfP">
+                                <rect key="frame" x="137" y="267" width="266" height="38"/>
+                                <fontDescription key="fontDescription" name="Helvetica-Light" family="Helvetica" pointSize="15"/>
+                                <color key="textColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                            <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Waiting for validation from Impress..." lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="VVO-s2-eCV">
+                                <rect key="frame" x="147" y="403" width="246" height="19"/>
+                                <fontDescription key="fontDescription" name="Helvetica-Light" family="Helvetica" pointSize="15"/>
+                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                <nil key="highlightedColor"/>
+                            </label>
+                        </subviews>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                    <navigationItem key="navigationItem" id="V5z-WP-qrM"/>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                    <connections>
+                        <outlet property="pinLabel" destination="Bp1-Dv-nt4" id="6xd-P5-J5U"/>
+                        <outlet property="statusLabel" destination="VVO-s2-eCV" id="Uhy-iy-HAW"/>
+                        <segue destination="B8g-8S-pgn" kind="push" identifier="pinValidated" id="gCy-Mv-VrC"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="gh4-1U-6Dm" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1024" y="-500"/>
+        </scene>
+        <!--New Server View Controller - New Server-->
+        <scene sceneID="RcY-Im-ohw">
+            <objects>
+                <tableViewController id="65c-5D-pB7" customClass="newServerViewController" sceneMemberID="viewController">
+                    <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="qow-Yc-8dL">
+                        <rect key="frame" x="0.0" y="64" width="540" height="556"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
+                        <sections>
+                            <tableViewSection footerTitle="Register a new server and remeber it for future connection" id="CVG-Eq-rLd">
+                                <cells>
+                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="b8A-jh-k26" customClass="EditableTableViewCell">
+                                        <rect key="frame" x="0.0" y="30" width="540" height="45"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="31" y="1" width="478" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="jrI-wU-4NT" customClass="EditableTableViewCell">
+                                        <rect key="frame" x="0.0" y="75" width="540" height="45"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="31" y="0.0" width="478" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                </cells>
+                            </tableViewSection>
+                        </sections>
+                        <connections>
+                            <outlet property="dataSource" destination="65c-5D-pB7" id="Omw-kB-sR2"/>
+                            <outlet property="delegate" destination="65c-5D-pB7" id="eNx-uc-YkW"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" title="New Server" id="oAP-jt-6Z9">
+                        <barButtonItem key="rightBarButtonItem" systemItem="save" id="PoE-MY-hSB">
+                            <connections>
+                                <action selector="save:" destination="65c-5D-pB7" id="Ww6-Jy-5eG"/>
+                            </connections>
+                        </barButtonItem>
+                    </navigationItem>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="JK3-FB-UoN" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1024" y="-1831"/>
+        </scene>
+        <!--Slide Show Preview Table vc ipad-->
+        <scene sceneID="ejm-Sz-YCw">
+            <objects>
+                <tableViewController storyboardIdentifier="slideShowPreview" id="B8g-8S-pgn" customClass="slideShowPreviewTable_vc_ipad" sceneMemberID="viewController">
+                    <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="Pc5-8o-PrW">
+                        <rect key="frame" x="0.0" y="64" width="540" height="556"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" cocoaTouchSystemColor="groupTableViewBackgroundColor"/>
+                        <view key="tableHeaderView" contentMode="scaleToFill" id="YCJ-J4-RGt">
+                            <rect key="frame" x="0.0" y="0.0" width="540" height="281"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" id="Is1-dX-SaP">
+                                    <rect key="frame" x="36" y="53" width="468" height="208"/>
+                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                    <subviews>
+                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Title of the presentation(TODO)" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="5" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="JEW-I6-sw5">
+                                            <rect key="frame" x="22" y="30" width="424" height="44"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES" flexibleMaxY="YES"/>
+                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="28"/>
+                                            <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Last modified:  3 Jul 2013" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0je-bV-nk1">
+                                            <rect key="frame" x="21" y="129" width="416" height="20"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                                            <color key="textColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Author:  author name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="vfH-4C-Sag">
+                                            <rect key="frame" x="21" y="97" width="1664" height="20"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                                            <color key="textColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                        <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Current slide:  5 of 22" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="mRZ-fv-RAC">
+                                            <rect key="frame" x="21" y="165" width="392" height="20"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                                            <fontDescription key="fontDescription" type="system" pointSize="19"/>
+                                            <color key="textColor" name="alternateSelectedControlColor" catalog="System" colorSpace="catalog"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                                </view>
+                            </subviews>
+                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                        </view>
+                        <sections>
+                            <tableViewSection id="gMl-dC-GqD">
+                                <cells>
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="tqg-R4-Coi">
+                                        <rect key="frame" x="0.0" y="291" width="540" height="45"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="31" y="1" width="478" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                    <tableViewCell contentMode="scaleToFill" restorationIdentifier="" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="f4z-FH-mar">
+                                        <rect key="frame" x="0.0" y="336" width="540" height="44"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="31" y="0.0" width="478" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="optionCell" id="5jP-bD-Vcy">
+                                        <rect key="frame" x="0.0" y="380" width="540" height="45"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="31" y="0.0" width="478" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                </cells>
+                            </tableViewSection>
+                        </sections>
+                        <connections>
+                            <outlet property="dataSource" destination="B8g-8S-pgn" id="SGm-yW-lAs"/>
+                            <outlet property="delegate" destination="B8g-8S-pgn" id="p2A-1P-NJP"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" id="4ju-ge-QPw"/>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                    <connections>
+                        <outlet property="optionsTable" destination="Pc5-8o-PrW" id="18R-Zo-CBq"/>
+                    </connections>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="gg2-6d-fyF" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="1768" y="-1374"/>
+        </scene>
+        <!--Base Presentation View Controller-->
+        <scene sceneID="5zi-ge-3SF">
+            <objects>
+                <viewController storyboardIdentifier="basePresentation" id="TYh-Hw-m1Q" customClass="BasePresentationViewController" sceneMemberID="viewController">
+                    <view key="view" contentMode="scaleToFill" id="qHB-hR-vFc">
+                        <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <view contentMode="scaleToFill" id="KCA-UU-Lu1" userLabel="Preview">
+                                <rect key="frame" x="0.0" y="0.0" width="768" height="459"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                <subviews>
+                                    <imageView userInteractionEnabled="NO" tag="19" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" image="Default-568h at 2x.png" id="x7C-rs-s4K">
+                                        <rect key="frame" x="0.0" y="0.0" width="768" height="459"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    </imageView>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="left" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="wWm-KR-C5L">
+                                        <rect key="frame" x="685" y="427" width="83" height="32"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES" heightSizable="YES"/>
+                                        <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        <rect key="contentStretch" x="1.3877787807814457e-17" y="0.0" width="1" height="1"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="25"/>
+                                        <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    </label>
+                                    <view hidden="YES" contentMode="scaleToFill" id="2SJ-3f-E3k" userLabel="pointer">
+                                        <rect key="frame" x="191" y="277" width="8" height="7"/>
+                                        <color key="backgroundColor" red="1" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                    </view>
+                                    <button opaque="NO" alpha="0.69999999999999996" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="I1u-1Z-GsZ">
+                                        <rect key="frame" x="0.0" y="0.0" width="84" height="459"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" heightSizable="YES"/>
+                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                        <state key="normal" backgroundImage="previousButton_normal.png">
+                                            <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <state key="highlighted" backgroundImage="previousButton_pressed.png">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="previousSlideAction:" destination="TYh-Hw-m1Q" eventType="touchUpInside" id="qvs-3Y-Ifz"/>
+                                        </connections>
+                                    </button>
+                                    <button opaque="NO" alpha="0.69999999999999996" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="bfp-PJ-NrP">
+                                        <rect key="frame" x="684" y="0.0" width="84" height="459"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" heightSizable="YES"/>
+                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                        <state key="normal" backgroundImage="nextButton_normal.png">
+                                            <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <state key="highlighted" backgroundImage="nextButton_pressed.png">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="nextSlideAction:" destination="TYh-Hw-m1Q" eventType="touchUpInside" id="7OP-xX-gva"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                            </view>
+                            <view clipsSubviews="YES" contentMode="scaleToFill" verticalCompressionResistancePriority="547" restorationIdentifier="" id="Pk1-fD-KAi" userLabel="NotesView">
+                                <rect key="frame" x="-13" y="595" width="794" height="303"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                <subviews>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Lecturer's Notes   " textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="5Yn-0z-Cjz">
+                                        <rect key="frame" x="20" y="0.0" width="754" height="31"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                        <color key="backgroundColor" red="1" green="0.66274509800000003" blue="0.074509803920000006" alpha="1" colorSpace="calibratedRGB"/>
+                                        <fontDescription key="fontDescription" name="Helvetica-Bold" family="Helvetica" pointSize="17"/>
+                                        <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="calibratedRGB"/>
+                                        <nil key="highlightedColor"/>
+                                    </label>
+                                    <webView tag="4" contentMode="scaleToFill" verticalCompressionResistancePriority="1" id="pAh-4g-JCn" userLabel="Notes">
+                                        <rect key="frame" x="20" y="29" width="754" height="274"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                        <rect key="contentStretch" x="0.0" y="1" width="1" height="1"/>
+                                    </webView>
+                                </subviews>
+                                <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                            </view>
+                            <tableView contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="Iok-mu-c0T" customClass="HorizontalTableView">
+                                <rect key="frame" x="0.0" y="458" width="129" height="768"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <color key="backgroundColor" white="0.33333333333333331" alpha="1" colorSpace="calibratedWhite"/>
+                                <prototypes>
+                                    <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="zSs-IC-htx">
+                                        <rect key="frame" x="0.0" y="22" width="129" height="44"/>
+                                        <autoresizingMask key="autoresizingMask"/>
+                                        <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                            <rect key="frame" x="0.0" y="0.0" width="129" height="43"/>
+                                            <autoresizingMask key="autoresizingMask"/>
+                                            <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                        </view>
+                                    </tableViewCell>
+                                </prototypes>
+                                <connections>
+                                    <outlet property="dataSource" destination="TYh-Hw-m1Q" id="42R-0X-OyE"/>
+                                    <outlet property="delegate" destination="TYh-Hw-m1Q" id="mMV-1F-8OM"/>
+                                </connections>
+                            </tableView>
+                            <view contentMode="scaleToFill" restorationIdentifier="" id="xYX-bt-wuI" userLabel="Bottom">
+                                <rect key="frame" x="0.0" y="906" width="768" height="98"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
+                                <subviews>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" tag="1" contentMode="left" text="00:00:00" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="dtc-vP-agf">
+                                        <rect key="frame" x="20" y="7" width="382" height="91"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" heightSizable="YES"/>
+                                        <fontDescription key="fontDescription" name="HelveticaNeue-Light" family="Helvetica Neue" pointSize="55"/>
+                                        <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                        <color key="highlightedColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    </label>
+                                    <button opaque="NO" tag="2" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="8iO-H3-CJ7">
+                                        <rect key="frame" x="410" y="0.0" width="120" height="98"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
+                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                        <state key="normal" image="timer_start_btn.png">
+                                            <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <state key="highlighted">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="stopWatchStart:" destination="VQa-vM-8pF" eventType="touchUpInside" id="om8-GY-NhP"/>
+                                        </connections>
+                                    </button>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" id="MKb-4h-13P">
+                                        <rect key="frame" x="518" y="0.0" width="117" height="98"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
+                                        <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                        <state key="normal" image="timer_clear_btn.png">
+                                            <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <state key="highlighted">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="stopWatchClear:" destination="VQa-vM-8pF" eventType="touchUpInside" id="aD5-Wp-WRC"/>
+                                        </connections>
+                                    </button>
+                                </subviews>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                            </view>
+                            <view alpha="0.50000000000000011" contentMode="scaleToFill" id="jX5-gj-cqE">
+                                <rect key="frame" x="0.0" y="0.0" width="768" height="1004"/>
+                                <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                <subviews>
+                                    <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" image="libO_icon.png" id="Qe8-38-thk">
+                                        <rect key="frame" x="264" y="95" width="240" height="248"/>
+                                        <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
+                                    </imageView>
+                                    <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="1Yr-C2-huW">
+                                        <rect key="frame" x="294" y="610" width="180" height="77"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES"/>
+                                        <fontDescription key="fontDescription" type="system" pointSize="28"/>
+                                        <state key="normal" title="Connect">
+                                            <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/>
+                                            <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <state key="highlighted">
+                                            <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        </state>
+                                        <connections>
+                                            <action selector="startConnectionModal:" destination="TYh-Hw-m1Q" eventType="touchUpInside" id="8aS-7k-5Ga"/>
+                                        </connections>
+                                    </button>
+                                    <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="LibreOffice Impress Remote" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsLetterSpacingToFitWidth="YES" adjustsFontSizeToFit="NO" id="yiP-rQ-s7i">
+                                        <rect key="frame" x="124" y="471" width="520" height="62"/>
+                                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                                        <fontDescription key="fontDescription" name="AppleSDGothicNeo-Bold" family="Apple SD Gothic Neo" pointSize="38"/>
+                                        <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                        <nil key="highlightedColor"/>
+                                        <color key="shadowColor" cocoaTouchSystemColor="tableCellGroupedBackgroundColor"/>
+                                        <size key="shadowOffset" width="0.0" height="0.0"/>
+                                    </label>
+                                </subviews>
+                                <color key="backgroundColor" red="0.29803921568627451" green="0.74509803921568629" blue="0.22745098039215686" alpha="1" colorSpace="calibratedRGB"/>
+                            </view>
+                        </subviews>
+                        <color key="backgroundColor" red="0.90196079019999997" green="0.90196079019999997" blue="0.90196079019999997" alpha="1" colorSpace="calibratedRGB"/>
+                    </view>
+                    <toolbarItems/>
+                    <connections>
+                        <outlet property="NoteWebView" destination="pAh-4g-JCn" id="h2a-iy-ahp"/>
+                        <outlet property="NotesView" destination="Pk1-fD-KAi" id="2ZD-si-fls"/>
+                        <outlet property="clearButton" destination="MKb-4h-13P" id="7Xz-n6-sre"/>
+                        <outlet property="currentSlideImageView" destination="x7C-rs-s4K" id="Qtf-99-j0C"/>
+                        <outlet property="horizontalTableView" destination="Iok-mu-c0T" id="SJT-pa-4Hb"/>
+                        <outlet property="movingPointer" destination="2SJ-3f-E3k" id="mxV-zz-hjx"/>
+                        <outlet property="nextButton" destination="bfp-PJ-NrP" id="1Uf-1g-iQl"/>
+                        <outlet property="previousButton" destination="I1u-1Z-GsZ" id="Vjj-em-GQj"/>
+                        <outlet property="slideNumber" destination="wWm-KR-C5L" id="Vb0-Wv-6gb"/>
+                        <outlet property="startButton" destination="8iO-H3-CJ7" id="ym1-Hg-BPE"/>
+                        <outlet property="timeLabel" destination="dtc-vP-agf" id="WsH-Gm-dBN"/>
+                        <outlet property="welcome_blocking_page" destination="jX5-gj-cqE" id="5dH-dT-AG4"/>
+                        <outlet property="welcome_connect_button" destination="1Yr-C2-huW" id="fm5-IB-oyc"/>
+                        <outlet property="welcome_label" destination="yiP-rQ-s7i" id="rGp-xL-dH2"/>
+                        <outlet property="welcome_libO_icon" destination="Qe8-38-thk" id="w3C-h1-OL0"/>
+                    </connections>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="e0y-Q9-Urg" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-611" y="487"/>
+        </scene>
+        <!--Navigation Controller-->
+        <scene sceneID="uu7-eo-v6A">
+            <objects>
+                <navigationController storyboardIdentifier="slidesTable" id="Z0a-WL-DOn" sceneMemberID="viewController">
+                    <navigationBar key="navigationBar" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="238-WF-42z">
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <connections>
+                        <segue destination="VQa-vM-8pF" kind="relationship" relationship="rootViewController" id="hqy-57-zTC"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="bhU-cc-Ssa" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-611" y="-493"/>
+        </scene>
+        <!--Main Split View Controller-->
+        <scene sceneID="myh-dM-403">
+            <objects>
+                <splitViewController id="XiK-Ye-iB8" customClass="MainSplitViewController" sceneMemberID="viewController">
+                    <toolbarItems/>
+                    <connections>
+                        <segue destination="Z0a-WL-DOn" kind="relationship" relationship="masterViewController" id="2YO-8l-YoY"/>
+                        <segue destination="TYh-Hw-m1Q" kind="relationship" relationship="detailViewController" id="qi1-27-bFk"/>
+                        <segue destination="KDH-tS-eoR" kind="modal" identifier="connectionModalUp" modalPresentationStyle="formSheet" modalTransitionStyle="flipHorizontal" id="pYZ-nF-jdE"/>
+                    </connections>
+                </splitViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="TtW-hD-5Ub" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-1587" y="-25"/>
+        </scene>
+        <!--Slide Show Swipe In List ipad-->
+        <scene sceneID="Abu-7b-l1S">
+            <objects>
+                <tableViewController clearsSelectionOnViewWillAppear="NO" id="VQa-vM-8pF" customClass="slideShowSwipeInList_ipad" sceneMemberID="viewController">
+                    <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="170" sectionHeaderHeight="22" sectionFooterHeight="22" id="U9c-sP-NVQ">
+                        <rect key="frame" x="0.0" y="64" width="320" height="788"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/>
+                        <prototypes>
+                            <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="slide" rowHeight="178" id="c4j-oH-LnN">
+                                <rect key="frame" x="0.0" y="22" width="320" height="178"/>
+                                <autoresizingMask key="autoresizingMask"/>
+                                <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="177"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <subviews>
+                                        <imageView userInteractionEnabled="NO" tag="1" contentMode="scaleToFill" image="Default-568h at 2x.png" id="dn1-99-Dde">
+                                            <rect key="frame" x="44" y="7" width="233" height="163"/>
+                                        </imageView>
+                                        <label clipsSubviews="YES" userInteractionEnabled="NO" tag="2" contentMode="left" text="1" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="1" highlighted="YES" id="qrH-bi-qw7">
+                                            <rect key="frame" x="291" y="156" width="29" height="21"/>
+                                            <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+                                            <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                            <accessibility key="accessibilityConfiguration">
+                                                <accessibilityTraits key="traits" none="YES" selected="YES" staticText="YES"/>
+                                            </accessibility>
+                                            <fontDescription key="fontDescription" type="system" pointSize="17"/>
+                                            <color key="textColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/>
+                                            <nil key="highlightedColor"/>
+                                        </label>
+                                    </subviews>
+                                    <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
+                                </view>
+                            </tableViewCell>
+                        </prototypes>
+                        <connections>
+                            <outlet property="dataSource" destination="VQa-vM-8pF" id="Txq-JQ-qey"/>
+                            <outlet property="delegate" destination="VQa-vM-8pF" id="ae6-wj-kAw"/>
+                        </connections>
+                    </tableView>
+                    <navigationItem key="navigationItem" id="tG3-aQ-qyu"/>
+                    <simulatedStatusBarMetrics key="simulatedStatusBarMetrics" statusBarStyle="blackTranslucent"/>
+                </tableViewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="EJg-kN-O5N" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-145" y="-493"/>
+        </scene>
+        <!--Auto Dismiss Keyboard Navigation View Controller-->
+        <scene sceneID="tvQ-2n-hpX">
+            <objects>
+                <navigationController storyboardIdentifier="serverList" id="KDH-tS-eoR" customClass="autoDismissKeyboardNavigationViewController" sceneMemberID="viewController">
+                    <toolbarItems/>
+                    <navigationBar key="navigationBar" contentMode="scaleToFill" id="9T5-Qi-Tr9">
+                        <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
+                        <autoresizingMask key="autoresizingMask"/>
+                    </navigationBar>
+                    <nil name="viewControllers"/>
+                    <connections>
+                        <segue destination="5QV-E7-KNT" kind="relationship" relationship="rootViewController" id="euZ-Wr-AwZ"/>
+                    </connections>
+                </navigationController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="MVE-66-SWg" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="-636" y="-1374"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="Default-568h at 2x.png" width="640" height="1136"/>
+        <image name="libO_icon.png" width="598" height="598"/>
+        <image name="nextButton_normal.png" width="42" height="230"/>
+        <image name="nextButton_pressed.png" width="42" height="230"/>
+        <image name="previousButton_normal.png" width="42" height="230"/>
+        <image name="previousButton_pressed.png" width="42" height="230"/>
+        <image name="timer_clear_btn.png" width="74" height="74"/>
+        <image name="timer_start_btn.png" width="74" height="74"/>
+    </resources>
+    <simulatedMetricsContainer key="defaultSimulatedMetrics">
+        <simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
+        <simulatedOrientationMetrics key="orientation"/>
+        <simulatedScreenMetrics key="destination"/>
+    </simulatedMetricsContainer>
+    <inferredMetricsTieBreakers>
+        <segue reference="XCJ-4d-eG4"/>
+    </inferredMetricsTieBreakers>
+</document>
\ No newline at end of file
diff --git a/ios/iosremote/iosremote/AppDelegate_ipad.h b/ios/iosremote/iosremote/AppDelegate_ipad.h
new file mode 100644
index 0000000..0c120c4
--- /dev/null
+++ b/ios/iosremote/iosremote/AppDelegate_ipad.h
@@ -0,0 +1,16 @@
+//
+//  AppDelegate_ipad.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "AppDelegate.h"
+
+ at class BasePresentationViewController;
+ at class MainSplitViewController;
+
+ at interface AppDelegate_ipad : AppDelegate
+
+ at end
diff --git a/ios/iosremote/iosremote/AppDelegate_ipad.m b/ios/iosremote/iosremote/AppDelegate_ipad.m
new file mode 100644
index 0000000..ad5f2b7
--- /dev/null
+++ b/ios/iosremote/iosremote/AppDelegate_ipad.m
@@ -0,0 +1,16 @@
+//
+//  AppDelegate_ipad.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "AppDelegate_ipad.h"
+#import "slideShowSwipeInList_ipad.h"
+#import "MainSplitViewController.h"
+#import "BasePresentationViewController.h"
+
+ at implementation AppDelegate_ipad
+
+ at end
diff --git a/ios/iosremote/iosremote/ControlVariables.h b/ios/iosremote/iosremote/ControlVariables.h
new file mode 100644
index 0000000..b96e5b7
--- /dev/null
+++ b/ios/iosremote/iosremote/ControlVariables.h
@@ -0,0 +1,43 @@
+//
+//  ControlVariables.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#ifndef iosremote_ControlVariables_h
+#define iosremote_ControlVariables_h
+
+// Width (or length before rotation) of the table view embedded within another table view's row
+#define kTableLength                                768
+
+// Width of the cells of the embedded table view (after rotation, which means it controls the rowHeight property)
+#define kCellWidth                                  172
+// Height of the cells of the embedded table view (after rotation, which would be the table's width)
+#define kCellHeight                                 129
+
+// Padding for the Cell containing the article image and title
+#define kArticleCellVerticalInnerPadding            6
+#define kArticleCellHorizontalInnerPadding          7
+
+// Padding for the title label in an article's cell
+#define kArticleTitleLabelPadding                   10
+
+// Vertical padding for the embedded table view within the row
+#define kRowVerticalPadding                         1
+// Horizontal padding for the embedded table view within the row
+#define kRowHorizontalPadding                       1
+
+// The background color of the vertical table view
+#define kVerticalTableBackgroundColor               [UIColor colorWithRed:0.58823529 green:0.58823529 blue:0.58823529 alpha:1.0]
+
+// Background color for the horizontal table view (the one embedded inside the rows of our vertical table)
+#define kHorizontalTableBackgroundColor             [UIColor blackColor]
+
+// The background color on the horizontal table view for when we select a particular cell
+#define kHorizontalTableSelectedBackgroundColor     [UIColor colorWithRed:0.0 green:0.59607843 blue:0.37254902 alpha:1.0]
+
+#define kHorizontalTableCellHighlightedBackgroundColor [UIColor colorWithRed:0 green:0.4745098 blue:0.29019808 alpha:0.9]
+
+#endif
diff --git a/ios/iosremote/iosremote/HorizontalSlideCell.h b/ios/iosremote/iosremote/HorizontalSlideCell.h
new file mode 100644
index 0000000..599a1d0
--- /dev/null
+++ b/ios/iosremote/iosremote/HorizontalSlideCell.h
@@ -0,0 +1,16 @@
+//
+//  HorizontalSlideCell.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+ at interface HorizontalSlideCell : UITableViewCell
+
+ at property (strong, nonatomic) UIImageView *thumbnail;
+ at property (strong, nonatomic) UILabel *numberLabel;
+
+ at end
diff --git a/ios/iosremote/iosremote/HorizontalSlideCell.m b/ios/iosremote/iosremote/HorizontalSlideCell.m
new file mode 100644
index 0000000..e114095
--- /dev/null
+++ b/ios/iosremote/iosremote/HorizontalSlideCell.m
@@ -0,0 +1,65 @@
+//
+//  HorizontalSlideCell.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "HorizontalSlideCell.h"
+#import "ControlVariables.h"
+
+ at implementation HorizontalSlideCell
+
+ at synthesize thumbnail = _thumbnail;
+ at synthesize numberLabel = _numberLabel;
+
+- (NSString *)reuseIdentifier
+{
+    return @"HorizontalTableSlideCell";
+}
+
+- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
+{
+    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
+    if (self) {
+        // Initialization code
+    }
+    return self;
+}
+
+- (id)initWithFrame:(CGRect)frame
+{
+    self = [super initWithFrame:frame];
+    
+    self.thumbnail = [[UIImageView alloc] initWithFrame:CGRectMake(kArticleCellHorizontalInnerPadding, kArticleCellVerticalInnerPadding, kCellWidth - kArticleCellHorizontalInnerPadding * 2, kCellHeight - kArticleCellVerticalInnerPadding * 2)];
+    self.thumbnail.opaque = YES;
+    
+    [self.contentView addSubview:self.thumbnail];
+    
+    self.numberLabel = [[UILabel alloc] initWithFrame:CGRectMake(self.thumbnail.frame.size.width * 0.8, self.thumbnail.frame.size.height * 0.8, self.thumbnail.frame.size.width * 0.2, self.thumbnail.frame.size.height * 0.2)];
+    self.numberLabel.opaque = YES;
+	self.numberLabel.backgroundColor = kHorizontalTableCellHighlightedBackgroundColor;
+    self.numberLabel.textColor = [UIColor whiteColor];
+    self.numberLabel.font = [UIFont boldSystemFontOfSize:11];
+    self.numberLabel.textAlignment = UITextAlignmentCenter;
+    self.numberLabel.numberOfLines = 1;
+    [self.thumbnail addSubview:self.numberLabel];
+    
+    self.backgroundColor = [UIColor colorWithRed:0 green:0.40784314 blue:0.21568627 alpha:1.0];
+    self.selectedBackgroundView = [[UIView alloc] initWithFrame:self.thumbnail.frame];
+    self.selectedBackgroundView.backgroundColor = kHorizontalTableSelectedBackgroundColor;
+    
+    self.transform = CGAffineTransformMakeRotation(M_PI * 0.5);
+    
+    return self;
+}
+
+- (void)setSelected:(BOOL)selected animated:(BOOL)animated
+{
+    [super setSelected:selected animated:animated];
+
+    // Configure the view for the selected state
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/MainSplitViewController.h b/ios/iosremote/iosremote/MainSplitViewController.h
new file mode 100644
index 0000000..2ae6eff
--- /dev/null
+++ b/ios/iosremote/iosremote/MainSplitViewController.h
@@ -0,0 +1,17 @@
+//
+//  PresentationViewController.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "slideShowPreviewTable_vc_ipad.h"
+
+ at interface MainSplitViewController : UISplitViewController <MainSplitViewControllerProtocol>
+
+- (void) didReceivePresentationStarted;
+
+ at property (strong, nonatomic) UIViewController * splitController;
+ at end
diff --git a/ios/iosremote/iosremote/MainSplitViewController.m b/ios/iosremote/iosremote/MainSplitViewController.m
new file mode 100644
index 0000000..fbb8b02
--- /dev/null
+++ b/ios/iosremote/iosremote/MainSplitViewController.m
@@ -0,0 +1,80 @@
+//
+//  PresentationViewController.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "MainSplitViewController.h"
+#import "server_list_vc_ipad.h"
+#import "CommunicationManager.h"
+#import "BasePresentationViewController.h"
+#import "slideShowSwipeInList_ipad.h"
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+ at interface MainSplitViewController ()
+
+ at property UINavigationController * masterViewController;
+ at property BasePresentationViewController * detailViewController;
+
+ at end
+
+ at implementation MainSplitViewController
+
+# pragma mark - System defaults
+
+- (BOOL) shouldAutorotate
+{
+    return YES;
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+    return YES;
+}
+
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+    [[[[UIApplication sharedApplication] delegate] window] setRootViewController:self];
+    // Do any additional setup after loading the view.
+    
+    self.detailViewController = [self.viewControllers objectAtIndex:1];
+    self.masterViewController = [self.viewControllers objectAtIndex:0];
+    
+    self.delegate = self.detailViewController;
+}
+
+-(void) viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (void) didReceivePresentationStarted
+{
+    [self.detailViewController hideMaster:NO];
+    [self dismissViewControllerAnimated:YES completion:nil];
+//    [(UITableView *)[(slideShowSwipeInList_ipad *)[[self viewControllers] objectAtIndex:2] view] reloadData];
+    [(slideShowSwipeInList_ipad *)[(UINavigationController *)[[self viewControllers] objectAtIndex:0] topViewController] didReceivePresentationStarted];
+    [(BasePresentationViewController *)[[self viewControllers] objectAtIndex:1] setWelcomePageVisible:NO];
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/arrow_left.png b/ios/iosremote/iosremote/arrow_left.png
new file mode 100644
index 0000000..d99560f
Binary files /dev/null and b/ios/iosremote/iosremote/arrow_left.png differ
diff --git a/ios/iosremote/iosremote/arrow_left at 2x.png b/ios/iosremote/iosremote/arrow_left at 2x.png
new file mode 100644
index 0000000..dba2497
Binary files /dev/null and b/ios/iosremote/iosremote/arrow_left at 2x.png differ
diff --git a/ios/iosremote/iosremote/arrow_right.png b/ios/iosremote/iosremote/arrow_right.png
new file mode 100644
index 0000000..e271d46
Binary files /dev/null and b/ios/iosremote/iosremote/arrow_right.png differ
diff --git a/ios/iosremote/iosremote/arrow_right at 2x.png b/ios/iosremote/iosremote/arrow_right at 2x.png
new file mode 100644
index 0000000..44be9d6
Binary files /dev/null and b/ios/iosremote/iosremote/arrow_right at 2x.png differ
diff --git a/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.h b/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.h
new file mode 100644
index 0000000..93d1da1
--- /dev/null
+++ b/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.h
@@ -0,0 +1,13 @@
+//
+//  autoDismissKeyboardNavigationViewController.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+ at interface autoDismissKeyboardNavigationViewController : UINavigationController
+
+ at end
diff --git a/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.m b/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.m
new file mode 100644
index 0000000..fb60398
--- /dev/null
+++ b/ios/iosremote/iosremote/autoDismissKeyboardNavigationViewController.m
@@ -0,0 +1,43 @@
+//
+//  autoDismissKeyboardNavigationViewController.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/28/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "autoDismissKeyboardNavigationViewController.h"
+
+ at interface autoDismissKeyboardNavigationViewController ()
+
+ at end
+
+ at implementation autoDismissKeyboardNavigationViewController
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (BOOL)disablesAutomaticKeyboardDismissal
+{
+    return NO;
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/server_list_vc_ipad.h b/ios/iosremote/iosremote/server_list_vc_ipad.h
new file mode 100644
index 0000000..2fb881e
--- /dev/null
+++ b/ios/iosremote/iosremote/server_list_vc_ipad.h
@@ -0,0 +1,15 @@
+//
+//  server_list_vc_ipad.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "serverList_vc.h"
+
+ at interface server_list_vc_ipad : server_list_vc
+
+- (IBAction)cancelModalView:(id)sender;
+
+ at end
diff --git a/ios/iosremote/iosremote/server_list_vc_ipad.m b/ios/iosremote/iosremote/server_list_vc_ipad.m
new file mode 100644
index 0000000..bb4dea6
--- /dev/null
+++ b/ios/iosremote/iosremote/server_list_vc_ipad.m
@@ -0,0 +1,46 @@
+//
+//  server_list_vc_ipad.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "server_list_vc_ipad.h"
+
+ at interface server_list_vc_ipad ()
+
+ at end
+
+ at implementation server_list_vc_ipad
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	// Do any additional setup after loading the view.
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (void)viewDidUnload {
+    [super viewDidUnload];
+}
+
+#pragma mark - Actions
+- (IBAction)cancelModalView:(id)sender {
+    [self.presentingViewController dismissModalViewControllerAnimated:YES];
+}
+ at end
diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h
new file mode 100644
index 0000000..ded75b0
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.h
@@ -0,0 +1,21 @@
+//
+//  slideShowPreview_vc~ipad.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "slideShowPreviewTable_vc.h"
+
+ at protocol MainSplitViewControllerProtocol <NSObject>
+
+- (void) didReceivePresentationStarted;
+
+ at end
+
+ at interface slideShowPreviewTable_vc_ipad : slideShowPreviewTable_vc
+
+ at property (strong, nonatomic) id <MainSplitViewControllerProtocol> delegate;
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m
new file mode 100644
index 0000000..9347462
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_ipad.m
@@ -0,0 +1,73 @@
+//
+//  slideShowPreview_vc~ipad.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "slideShowPreviewTable_vc_ipad.h"
+#import "slideShowPreviewTable_vc.h"
+#import "CommunicationManager.h"
+#import "CommandTransmitter.h"
+#import "CommandInterpreter.h"
+#import "SlideShow.h"
+#import "MainSplitViewController.h"
+
+ at interface slideShowPreviewTable_vc_ipad ()
+
+ at end
+
+ at implementation slideShowPreviewTable_vc_ipad
+
+#pragma mark - System defaults
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (void) viewDidLoad
+{
+   [super viewDidLoad];
+    if (self.navigationController)
+        self.delegate = (MainSplitViewController *) self.navigationController.presentingViewController;
+    else
+        self.delegate = (MainSplitViewController *) self.presentingViewController;
+    NSLog(@"%@", [self.delegate class]);
+    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
+        self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, nil];
+    } else 
+        self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, OPTION_POINTER, nil];
+    self.comManager = [CommunicationManager sharedComManager];
+    self.comManager.delegate = self;
+}
+
+- (void) viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+    if ([self.comManager.interpreter.slideShow size] > 0){
+        NSLog(@"3");
+        [self.delegate didReceivePresentationStarted];
+    }
+    NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
+    self.slideShowStartObserver = [[NSNotificationCenter defaultCenter] addObserverForName:STATUS_CONNECTED_SLIDESHOW_RUNNING
+                                                                                    object:nil
+                                                                                     queue:mainQueue
+                                                                                usingBlock:^(NSNotification *note) {
+                                                                                    [self.delegate didReceivePresentationStarted];
+                                                                                }];
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h
new file mode 100644
index 0000000..1f2d5d5
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.h
@@ -0,0 +1,14 @@
+//
+//  slideShowPreview_vc~iphone.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "slideShowPreviewTable_vc.h"
+
+ at interface slideShowPreviewTable_vc_iphone : slideShowPreviewTable_vc
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m
new file mode 100644
index 0000000..51cf96a
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowPreviewTable_vc_iphone.m
@@ -0,0 +1,39 @@
+//
+//  slideShowPreview_vc~iphone.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/26/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "slideShowPreviewTable_vc_iphone.h"
+#import "CommandInterpreter.h"
+#import "SlideShow.h"
+
+ at implementation slideShowPreviewTable_vc_iphone
+
+- (void) viewDidLoad
+{
+    [super viewDidLoad];
+    self.optionsArray = [NSArray arrayWithObjects:OPTION_TIMER, OPTION_POINTER, nil];
+    self.comManager = [CommunicationManager sharedComManager];
+    self.comManager.delegate = self;
+}
+
+- (void) viewDidAppear:(BOOL)animated
+{
+    [super viewDidAppear:animated];
+
+    if ([self.comManager.interpreter.slideShow size] > 0){
+        [self performSegueWithIdentifier:@"slideShowSegue" sender:self];
+    }
+    NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
+    self.slideShowStartObserver = [[NSNotificationCenter defaultCenter] addObserverForName:STATUS_CONNECTED_SLIDESHOW_RUNNING
+                                                                                    object:nil
+                                                                                     queue:mainQueue
+                                                                                usingBlock:^(NSNotification *note) {
+                                                                                    [self performSegueWithIdentifier:@"slideShowSegue" sender:self];
+                                                                                }];
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_ipad.h b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.h
new file mode 100644
index 0000000..3bb1a5d
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.h
@@ -0,0 +1,13 @@
+//
+//  slideShowSwipeInList~ipad.h
+//  iosremote
+//
+//  Created by Siqi Liu on 7/27/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+ at interface slideShowSwipeInList_ipad : UITableViewController
+
+- (void) didReceivePresentationStarted;
+
+ at end
\ No newline at end of file
diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m
new file mode 100644
index 0000000..77c6258
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowSwipeInList_ipad.m
@@ -0,0 +1,168 @@
+//
+//  slideShowSwipeInList~ipad.m
+//  iosremote
+//
+//  Created by Siqi Liu on 7/27/13.
+//  Copyright (c) 2013 libreoffice. All rights reserved.
+//
+
+#import "slideShowSwipeInList_ipad.h"
+#import "CommunicationManager.h"
+#import "CommandInterpreter.h"
+#import "SlideShow.h"
+#import "CommandTransmitter.h"
+#import "SWRevealViewController.h"
+#import "slideShowPreviewTable_vc.h"
+#import <QuartzCore/CALayer.h>
+
+ at interface slideShowSwipeInList_ipad ()
+
+ at property (nonatomic, strong) CommunicationManager *comManager;
+ at property (nonatomic, strong) SlideShow *slideshow;
+ at property (nonatomic, strong) id slideChangedObserver;
+
+ at end
+
+ at implementation slideShowSwipeInList_ipad
+
+ at synthesize comManager = _comManager;
+ at synthesize slideshow = _slideshow;
+ at synthesize slideChangedObserver = _slideChangedObserver;
+
+dispatch_queue_t backgroundQueue;
+
+- (void) handleBack:(id)sender
+{
+    [self.comManager.transmitter stopPresentation];
+    [self.tableView reloadData];
+}
+
+- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
+{
+    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
+    if (self) {
+        // Custom initialization
+    }
+    return self;
+}
+
+- (SlideShow *)slideshow
+{
+    return self.comManager.interpreter.slideShow;
+}
+
+- (void)viewDidLoad
+{
+    [super viewDidLoad];
+	self.comManager = [CommunicationManager sharedComManager];
+    self.slideshow.secondaryDelegate = self;
+    
+    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Stop Presentation"
+                                                                   style:UIBarButtonItemStyleBordered
+                                                                  target:self
+                                                                  action:@selector(handleBack:)];
+    [backButton setTintColor:[UIColor redColor]];
+    self.navigationItem.leftBarButtonItem = backButton;
+    
+    NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
+    NSOperationQueue *mainQueue = [NSOperationQueue mainQueue];
+    self.slideChangedObserver =[center addObserverForName:MSG_SLIDE_CHANGED
+                                                   object:nil
+                                                    queue:mainQueue
+                                               usingBlock:^(NSNotification *note) {
+                                                   if ([self.tableView numberOfRowsInSection:0] > 0){
+                                                       NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.slideshow.currentSlide inSection:0];
+                                                       [self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
+                                                       [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:YES];
+                                                   }
+                                               }];
+    UIImageView *bgImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"slideshowRail"]];
+    [bgImageView setFrame:self.tableView.frame];
+    
+    self.tableView.backgroundView = bgImageView;
+}
+
+- (void)viewDidUnload
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self.slideChangedObserver];
+    [super viewDidUnload];
+}
+
+- (void)didReceiveMemoryWarning
+{
+    [super didReceiveMemoryWarning];
+    // Dispose of any resources that can be recreated.
+}
+
+- (void) viewWillAppear:(BOOL)animated
+{
+    [self.tableView reloadData];
+    [super viewWillAppear:animated];
+}
+
+- (void) viewDidAppear:(BOOL)animated
+{
+    if ([self.comManager.interpreter.slideShow size] > 0) {
+        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.slideshow.currentSlide
+                                                    inSection:0];
+        [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
+        [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
+    }
+}
+
+- (void) didReceivePresentationStarted
+{
+    self.slideshow.secondaryDelegate = self;
+    [self.tableView reloadData];
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 1;
+}
+
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    return [self.slideshow size];
+}
+
+- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
+{
+    return @"Slides";
+}
+
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    static NSString *CellIdentifier = @"slide";
+    
+    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
+    UILabel * slideNumber = (UILabel *)[cell viewWithTag:2];
+    
+    // Starting 20, all tags are used for thumbnails in this sidebar
+    [cell setTag:20+indexPath.row];
+    [self.slideshow getContentAtIndex:indexPath.row forView:cell];
+    [slideNumber setText:[NSString stringWithFormat:@"%u", indexPath.row+1]];
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
+    // Otherwise selection will disable background color and make slide number unreadable
+    if(cell.selected){
+        UILabel *label = (UILabel *)[cell viewWithTag:2];
+        if ([label backgroundColor]!=[UIColor lightGrayColor]) {
+            [label setBackgroundColor:[UIColor lightGrayColor]];
+        }
+    }
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    [self.comManager.transmitter gotoSlide:indexPath.row];
+    [[[self.tableView cellForRowAtIndexPath:indexPath] viewWithTag:2] setBackgroundColor:[UIColor lightGrayColor]];
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_iphone.h b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.h
new file mode 100644
index 0000000..2953e59
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.h
@@ -0,0 +1,12 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#import <UIKit/UIKit.h>
+
+ at interface slideShowSwipeInList : UITableViewController <UITableViewDataSource, UITableViewDelegate>
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m
new file mode 100644
index 0000000..67db07a
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShowSwipeInList_iphone.m
@@ -0,0 +1,183 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#import "slideShowSwipeInList_iphone.h"
+#import "CommunicationManager.h"
+#import "CommandInterpreter.h"
+#import "SlideShow.h"
+#import "CommandTransmitter.h"
+#import "SWRevealViewController.h"
+#import "slideShowPreviewTable_vc.h"
+#import "ControlVariables.h"
+#import "stopWatch.h"
+#import <QuartzCore/CALayer.h>
+
+ at interface slideShowSwipeInList ()
+
+ at property (nonatomic, strong) CommunicationManager *comManager;
+ at property (nonatomic, strong) SlideShow *slideshow;
+ at property (nonatomic, strong) stopWatch *stopWatch;
+
+ at end
+
+ at implementation slideShowSwipeInList
+
+ at synthesize comManager = _comManager;
+ at synthesize slideshow = _slideshow;
+
+dispatch_queue_t backgroundQueue;
+
+- (void) viewDidLoad
+{
+    [super viewDidLoad];
+
+    self.comManager = [CommunicationManager sharedComManager];
+    self.slideshow = self.comManager.interpreter.slideShow;
+    self.slideshow.secondaryDelegate = self;
+    
+    self.clearsSelectionOnViewWillAppear = NO;
+    
+    self.stopWatch = [[stopWatch alloc] init];
+    if ([[NSUserDefaults standardUserDefaults] boolForKey:KEY_TIMER]) {
+        [self.stopWatch start];
+    }
+    
+    UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"slideshowRail.png"]];
+    [tempImageView setFrame:self.tableView.frame];
+    
+    self.tableView.backgroundView = tempImageView;
+}
+
+- (void) viewDidAppear:(BOOL)animated
+{
+    if (!self.stopWatch.set) {
+        [self.stopWatch setupWithTableViewCell:[self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]];
+    }
+    [self.stopWatch updateStartButtonIcon];
+    if ([self.comManager.interpreter.slideShow size] > 0) {
+        [self.stopWatch updateStartButtonIcon];
+        NSIndexPath *indexPath = [NSIndexPath indexPathForRow:self.slideshow.currentSlide
+                                                    inSection:1];
+        [self.tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone];
+        [self.tableView scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionMiddle animated:NO];
+    }
+}
+
+- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender
+{
+    // configure the segue.
+    // in this case we dont swap out the front view controller, which is a UINavigationController.
+    // but we could..
+    if ( [segue isKindOfClass: [SWRevealViewControllerSegue class]] )
+    {
+        SWRevealViewControllerSegue* rvcs = (SWRevealViewControllerSegue*) segue;
+
+        SWRevealViewController* rvc = self.revealViewController;
+        NSAssert( rvc != nil, @"oops! must have a revealViewController" );
+
+        NSAssert( [rvc.frontViewController isKindOfClass: [UINavigationController class]], @"oops!  for this segue we want a permanent navigation controller in the front!" );
+
+        rvcs.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) {
+
+            UINavigationController* nc = (UINavigationController*)rvc.frontViewController;
+            [nc setViewControllers: @[ dvc ] animated: YES ];
+
+            [rvc setFrontViewPosition: FrontViewPositionLeft animated: YES];
+        };
+    }
+}
+
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+    return 2;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+    // Section one used for stopwatch
+    if (section == 0)
+        return 1;
+    else
+        return [self.slideshow size];
+}
+
+- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
+{
+    switch (section) {
+        case 0:
+            return @"Stop Watch";
+            break;
+        case 1:
+            return @"Slides";
+        default:
+            break;
+    }
+    return nil;
+}
+
+- (void) tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath
+{
+    [self performSegueWithIdentifier: @"sw_customized_segue" sender: [tableView cellForRowAtIndexPath: indexPath]];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (indexPath.section == 0) {
+        static NSString *CellIdentifier = @"stopWatch";
+
+        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
+        [cell setSelectionStyle:UITableViewCellSelectionStyleNone];
+        cell.contentView.backgroundColor = [UIColor whiteColor];
+        return cell;
+    } else {
+        static NSString *CellIdentifier = @"slide";
+
+        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier: CellIdentifier];
+        UILabel * slideNumber = (UILabel *)[cell viewWithTag:2];
+
+        // Starting 20, all tags are used for thumbnails in this sidebar
+        [cell setTag:20+indexPath.row];
+        [self.slideshow getContentAtIndex:indexPath.row forView:cell];
+        [slideNumber setText:[NSString stringWithFormat:@"%u", indexPath.row+1]];
+        
+        
+        cell.backgroundColor = [UIColor colorWithRed:0 green:0.40784314 blue:0.21568627 alpha:1.0];
+        
+        return cell;
+    }
+}
+
+- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
+    // Otherwise selection will disable background color and make slide number unreadable
+    if(indexPath.section == 1 && cell.selected){
+        UILabel *label = (UILabel *)[cell viewWithTag:2];
+        if ([label backgroundColor]!=[UIColor lightGrayColor]) {
+            [label setBackgroundColor:[UIColor lightGrayColor]];
+        }
+    }
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    if (indexPath.section == 0)
+        return;
+    [self.comManager.transmitter gotoSlide:indexPath.row];
+    [[[self.tableView cellForRowAtIndexPath:indexPath] viewWithTag:2] setBackgroundColor:[UIColor lightGrayColor]];
+    [self.revealViewController revealToggle: self];
+}
+
+
+- (void)viewDidUnload {
+    [self setStopWatch:nil];
+    [super viewDidUnload];
+}
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShow_vc_iphone.h b/ios/iosremote/iosremote/slideShow_vc_iphone.h
new file mode 100644
index 0000000..67f3b60
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShow_vc_iphone.h
@@ -0,0 +1,31 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#import <UIKit/UIKit.h>
+#import "SlideShow.h"
+
+ at interface slideShow_vc : UIViewController <AsyncLoadHorizontalTableDelegate>
+
+- (IBAction)nextSlideAction:(id)sender;
+- (IBAction)previousSlideAction:(id)sender;
+- (IBAction)pointerAction:(id)sender;
+- (IBAction)accPointerAction:(id)sender;
+
+ at property (weak, nonatomic) IBOutlet UIView *notesView;
+ at property (weak, nonatomic) IBOutlet UIWebView *lecturer_notes;
+ at property (weak, nonatomic) IBOutlet UIImageView *slideView;
+ at property (weak, nonatomic) IBOutlet UIImageView *secondarySlideView;
+ at property (weak, nonatomic) IBOutlet UILabel *slideNumber;
+
+ at property (weak, nonatomic) IBOutlet UIView *movingPointer;
+ at property (weak, nonatomic) IBOutlet UIImageView *touchPointerImage;
+ at property (weak, nonatomic) IBOutlet UIView *blockingView;
+ at property (weak, nonatomic) IBOutlet UIView *bottomView;
+ at property (weak, nonatomic) IBOutlet UIButton *pointerBtn;
+
+ at end
diff --git a/ios/iosremote/iosremote/slideShow_vc_iphone.m b/ios/iosremote/iosremote/slideShow_vc_iphone.m
new file mode 100644
index 0000000..6ddde90
--- /dev/null
+++ b/ios/iosremote/iosremote/slideShow_vc_iphone.m
@@ -0,0 +1,401 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+#import "slideShow_vc_iphone.h"
+#import "SlideShow.h"
+#import "UIViewTransitionCategory.h"
+#import "CommunicationManager.h"
+#import "SWRevealViewController.h"
+#import "CommandInterpreter.h"
+#import "CommandTransmitter.h"
+#import "slideShowPreviewTable_vc.h"
+#import <QuartzCore/QuartzCore.h>
+#import <CoreMotion/CoreMotion.h>
+
+
+#define CURRENT_SLIDE_IMAGEVIEW 1
+#define NEXT_SLIDE_IMAGEVIEW 2
+#define TOUCH_POINTER_VIEW 3
+#define CURRENT_SLIDE_NOTES 4
+
+ at interface slideShow_vc ()
+
+ at property (nonatomic, strong) CommunicationManager *comManager;
+ at property (nonatomic, strong) id slideShowImageNoteReadyObserver;
+ at property (nonatomic, strong) id slideShowFinishedObserver;
+ at property (nonatomic, strong) SlideShow* slideshow;
+
+ at property BOOL pointerCalibrationOn;
+ at property CGPoint refLeftUpperGravity;
+ at property CGPoint refRightUpperGravity;
+ at property CGPoint refRightLowerGravity;
+
+// SWReveal Controller
+ at property (readwrite) IBOutlet UIBarButtonItem* revealButtonItem;
+
+ at property int count;
+
+ at end
+
+ at implementation slideShow_vc
+
+ at synthesize comManager = _comManager;
+ at synthesize slideShowImageNoteReadyObserver = _slideShowImageNoteReadyObserver;
+ at synthesize slideShowFinishedObserver = _slideShowFinishedObserver;
+ at synthesize slideshow = _slideshow;
+
+#pragma mark - Pointer
+
+- (CMMotionManager *)motionManager
+{
+    CMMotionManager *motionManager = nil;
+
+    id appDelegate = [UIApplication sharedApplication].delegate;
+
+    if ([appDelegate respondsToSelector:@selector(motionManager)]) {
+        motionManager = [appDelegate motionManager];
+    }
+
+    return motionManager;
+}
+
+- (void)startMotionDetect
+{
+    //    __block float stepMoveFactorX = 5;
+    //    __block float stepMoveFactorY = 5;
+    //    __block double refX, refY;
+
+    [self.motionManager
+     startAccelerometerUpdatesToQueue:[[NSOperationQueue alloc] init]
+     withHandler:^(CMAccelerometerData *data, NSError *error)
+     {
+
+         dispatch_async(dispatch_get_main_queue(),
+                        ^{
+                            CGRect rect = self.movingPointer.frame;
+                            NSLog(@"x:%f y:%f z:%f", data.acceleration.x, data.acceleration.y, data.acceleration.z);
+                            // Used to calibrate pointer based on initial position
+                            //                            if (self.pointerCalibrationOn){
+                            //                                refX = data.acceleration.x;
+                            //                                refY = data.acceleration.y;
+                            //                                self.pointerCalibrationOn = NO;
+                            //                            }
+                            //                                float movetoX = rect.origin.x + ((data.acceleration.x - refX) * stepMoveFactorX);
+
+                            float movetoX = self.touchPointerImage.frame.origin.x + self.touchPointerImage.frame.size.width * ABS(data.acceleration.x - self.refLeftUpperGravity.x) / ABS(self.refRightUpperGravity.x - self.refLeftUpperGravity.x);
+                            float maxX = self.touchPointerImage.frame.origin.x + self.touchPointerImage.frame.size.width - rect.size.width;
+
+                            //                                float movetoY = (rect.origin.y) + ((data.acceleration.y - refY) * stepMoveFactorY);
+                            float movetoY = self.touchPointerImage.frame.origin.y + self.touchPointerImage.frame.size.height * ABS(data.acceleration.y - self.refRightUpperGravity.y) / ABS(self.refRightLowerGravity.y - self.refRightUpperGravity.y);
+                            float maxY = self.touchPointerImage.frame.origin.y + self.touchPointerImage.frame.size.height;
+
+                            if ( movetoX > self.touchPointerImage.frame.origin.x && movetoX < maxX ) {
+                                rect.origin.x = movetoX;
+                            };
+
+                            if ( movetoY > self.touchPointerImage.frame.origin.y && movetoY < maxY ) {
+                                rect.origin.y = movetoY;
+                            };
+
+                            [UIView animateWithDuration:0 delay:0
+                                                options:UIViewAnimationOptionCurveEaseIn
+                                             animations:^{
+                                                 self.movingPointer.frame = rect;
+                                             }
+                                             completion:nil
+                             ];
+                        });
+     }];
+}
+
+- (IBAction)accPointerAction:(id)sender{
+    BOOL acc = [[NSUserDefaults standardUserDefaults] boolForKey:KEY_POINTER];
+    if (!acc) {
+        static BOOL pointer = NO;
+        if (!pointer){
+            [self startMotionDetect];
+            [self.movingPointer setHidden:NO];
+        }
+        else {
+            [self.motionManager stopAccelerometerUpdates];
+            self.pointerCalibrationOn = NO;
+            [self.movingPointer setHidden:YES];
+        }
+        pointer = !pointer;
+    }
+}
+
+- (IBAction)pointerAction:(id)sender {
+    if (self.count == 0 || self.count == 1){
+        CGPoint p;
+        p.x = [self.motionManager accelerometerData].acceleration.x;
+        p.y = [self.motionManager accelerometerData].acceleration.y;
+        self.refLeftUpperGravity = p;
+        if (self.count == 1) {
+            UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration"
+                                                              message:@"Upper left corner calibrated, now point your device to the upper right corner of the screen and click Pointer button again"
+                                                             delegate:nil
+                                                    cancelButtonTitle:@"OK"
+                                                    otherButtonTitles:@"Help", nil];
+            [message show];
+        }
+        ++self.count;
+    } else if (self.count == 2 || self.count == 3) {
+        CGPoint p;
+        p.x = [self.motionManager accelerometerData].acceleration.x;
+        p.y = [self.motionManager accelerometerData].acceleration.y;
+        self.refRightUpperGravity = p;
+        if (self.count == 3) {
+            UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration"
+                                                              message:@"Upper right corner calibrated, now point your device to the lower right corner of the screen and click Pointer button again!"
+                                                             delegate:nil
+                                                    cancelButtonTitle:@"OK"
+                                                    otherButtonTitles:@"Help", nil];
+            [message show];
+        }
+        ++self.count;
+    } else if (self.count == 4 || self.count == 5) {
+        CGPoint p;
+        p.x = [self.motionManager accelerometerData].acceleration.x;
+        p.y = [self.motionManager accelerometerData].acceleration.y;
+        self.refRightLowerGravity = p;
+        if (self.count == 5) {
+            UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Calibration"
+                                                              message:@"Lower right corner calibrated, enjoy your pointer!"
+                                                             delegate:nil
+                                                    cancelButtonTitle:@"OK"
+                                                    otherButtonTitles:@"Help", nil];
+            [message show];
+        }
+        ++self.count;
+    } else {
+        if ([self.touchPointerImage isHidden]){
+            [self.slideshow getContentAtIndex:self.slideshow.currentSlide forView:self.touchPointerImage];
+            CGPoint p = self.view.center;
+            p.y -= 50;
+            self.touchPointerImage.center = p;
+        }
+        [self.touchPointerImage fadeInfadeOutwithDuration:0.0 maxAlpha:1.0];
+        [self.blockingView fadeInfadeOutwithDuration:0.0 maxAlpha:0.7];
+    }
+}
+
+- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
+    UITouch *touch = [[event allTouches] anyObject];
+    if (!self.touchPointerImage.isHidden){
+        CGPoint loc = [touch locationInView:self.touchPointerImage];
+        if (loc.x >= 0 && loc.x <= self.touchPointerImage.frame.size.width
+            && loc.y >= 0 && loc.y <= self.touchPointerImage.frame.size.height){
+            CGPoint pointerInPercentage;
+            pointerInPercentage.x = loc.x / self.touchPointerImage.frame.size.width;
+            pointerInPercentage.y = loc.y / self.touchPointerImage.frame.size.height;
+            [self.comManager.transmitter setPointerVisibleAt:pointerInPercentage];
+            
+            CGPoint p;
+            p.x = loc.x + self.touchPointerImage.frame.origin.x;
+            p.y = loc.y + self.touchPointerImage.frame.origin.y;
+            self.movingPointer.center = p;
+            [self.movingPointer setHidden:NO];
+        }
+    }
+    
+    if ([touch view] == self.secondarySlideView)
+    {
+        // Change to the next slide when secondary slide is clicked

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list