diff options
author | jan Iversen <jani@libreoffice.org> | 2017-10-29 12:29:55 +0100 |
---|---|---|
committer | jan Iversen <jani@libreoffice.org> | 2017-10-29 12:31:22 +0100 |
commit | ba73d5e72e2eb5d787ae916631c4e3ef430f1008 (patch) | |
tree | b10dd6b57759a19b27e4c17fec7703093f63fc93 /ios | |
parent | adff3863890af26c9c3fb4fb5611c333c746fe61 (diff) |
iOS, completed doc of DocumentController
Added "close" menu
moved popover menu class to own file
solved clang problem with C headers () is not permitted (void) is
Change-Id: Id4f5053e325e2952171e10b0ca7f995447955748
Diffstat (limited to 'ios')
6 files changed, 227 insertions, 112 deletions
diff --git a/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h b/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h index 56843ddfe0a2..1314f0df66eb 100644 --- a/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h +++ b/ios/LibreOfficeKit/LibreOfficeKit/LibreOfficeKit.h @@ -14,5 +14,5 @@ int BridgeLOkit_Init(const char *path); int BridgeLOkit_open(const char *path); int BridgeLOkit_ClientCommand(const char *input); -int BridgeLOkit_Hipernate(); -int BridgeLOkit_LeaveHipernate(); +int BridgeLOkit_Hipernate(void); +int BridgeLOkit_LeaveHipernate(void); diff --git a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj index fd71169bfa57..d51d49ea88f1 100644 --- a/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj +++ b/ios/LibreOfficeLight/LibreOfficeLight.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 39022C211EDC2D0800100066 /* icudt59l.dat in Resources */ = {isa = PBXBuildFile; fileRef = 39022C201EDC2D0800100066 /* icudt59l.dat */; }; 39022C241EDC303200100066 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 39022C221EDC303200100066 /* InfoPlist.strings */; }; 39284DB11FA5E150006F43E4 /* dummyLOkit.c in Sources */ = {isa = PBXBuildFile; fileRef = 39284DB01FA5E150006F43E4 /* dummyLOkit.c */; }; + 39284DB31FA5F207006F43E4 /* DocumentActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39284DB21FA5F207006F43E4 /* DocumentActions.swift */; }; 392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */; }; 393975781F8BECB0002DC80B /* libiconv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975771F8BECB0002DC80B /* libiconv.tbd */; }; 3939757A1F8BECC1002DC80B /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 393975791F8BECC1002DC80B /* libz.tbd */; }; @@ -41,6 +42,7 @@ 39022C201EDC2D0800100066 /* icudt59l.dat */ = {isa = PBXFileReference; lastKnownFileType = file; name = icudt59l.dat; path = ../generated/resources/icudt59l.dat; sourceTree = "<group>"; }; 39022C231EDC303200100066 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; 39284DB01FA5E150006F43E4 /* dummyLOkit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dummyLOkit.c; sourceTree = "<group>"; }; + 39284DB21FA5F207006F43E4 /* DocumentActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DocumentActions.swift; sourceTree = "<group>"; }; 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ViewPrintManager.swift; path = LibreOfficeLight/ViewPrintManager.swift; sourceTree = SOURCE_ROOT; }; 393975771F8BECB0002DC80B /* libiconv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.tbd; path = usr/lib/libiconv.tbd; sourceTree = SDKROOT; }; 393975791F8BECC1002DC80B /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; @@ -131,6 +133,7 @@ 39284DB01FA5E150006F43E4 /* dummyLOkit.c */, 397E08FD1E597BD8001374E0 /* AppDelegate.swift */, 3992D8591E5B762A00BEA987 /* DocumentController.swift */, + 39284DB21FA5F207006F43E4 /* DocumentActions.swift */, 39EF4E2E1FA500C9001914AC /* PropertiesController.swift */, 392ED9B21E5E4B03005C8435 /* ViewPrintManager.swift */, 399648461E5B87DC00E73E83 /* ViewProperties.swift */, @@ -257,6 +260,7 @@ files = ( 392ED9B31E5E4B03005C8435 /* ViewPrintManager.swift in Sources */, 399648471E5B87DC00E73E83 /* ViewProperties.swift in Sources */, + 39284DB31FA5F207006F43E4 /* DocumentActions.swift in Sources */, 39284DB11FA5E150006F43E4 /* dummyLOkit.c in Sources */, 3992D85A1E5B762A00BEA987 /* DocumentController.swift in Sources */, 397E08FE1E597BD8001374E0 /* AppDelegate.swift in Sources */, diff --git a/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift b/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift new file mode 100644 index 000000000000..d3c41977f09b --- /dev/null +++ b/ios/LibreOfficeLight/LibreOfficeLight/DocumentActions.swift @@ -0,0 +1,53 @@ +// +// 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 + + + +// Protocol for action popover callback +protocol MenuDelegate +{ + func actionMenuSelected(_ tag : Int) +} + + + +class DocumentActions: UITableViewController +{ + // Pointer to callback class + var delegate : MenuDelegate? + var isDocActive : Bool = false + + // Calling class might enable/disable each button + @IBAction func actionMenuSelect(_ sender: UIButton) + { + dismiss(animated: false) + delegate?.actionMenuSelected(sender.tag) + } + + @IBOutlet weak var buttonClose: UIButton! + @IBOutlet weak var buttonProperties: UIButton! + @IBOutlet weak var buttonNew: UIButton! + @IBOutlet weak var buttonOpen: UIButton! + @IBOutlet weak var buttonSave: UIButton! + @IBOutlet weak var buttonSaveAs: UIButton! + @IBOutlet weak var buttonSaveAsPDF: UIButton! + @IBOutlet weak var buttonPrint: UIButton! + @IBOutlet weak var buttonCopy: UIButton! + @IBOutlet weak var buttonMove: UIButton! + @IBOutlet weak var buttonDelete: UIButton! + + override func viewDidLoad() + { + super.viewDidLoad() + buttonSave.isEnabled = isDocActive + buttonSaveAs.isEnabled = isDocActive + buttonSaveAsPDF.isEnabled = isDocActive + buttonPrint.isEnabled = isDocActive + } +} diff --git a/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift b/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift index 28f18b5afd66..a6c4a0b26f82 100755 --- a/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift +++ b/ios/LibreOfficeLight/LibreOfficeLight/DocumentController.swift @@ -15,7 +15,7 @@ import UIKit // It is a delegate class to recieve Menu events as well as file handling events class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewControllerDelegate { - // Handling of DocumentController + // *** Handling of DocumentController // this is normal functions every controller must implement @@ -41,7 +41,7 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC - // Handling of Background (hipernate) + // *** Handling of Background (hipernate) // iOS is not true multitasking, only 1 app can be active (foreground) at any time, // therefore apps frequently are moved to the background. // background really means hipernate by terminating all threads and solely keep the @@ -63,7 +63,7 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC - // handling of PropertiesController + // *** handling of PropertiesController // The PropertiesController is a left sidebar, that will scroll in when activated // The Controller handles manipulation of properties in the document @@ -122,134 +122,183 @@ class DocumentController: UIViewController, MenuDelegate, UIDocumentBrowserViewC + // *** Handling of menu popover + // the menu contain all globbal functions and use seque/delegate - // var currentDocumentName : String? + var currentDocumentName : String? = nil - internal func documentBrowser(_ controller: UIDocumentBrowserViewController, - didRequestDocumentCreationWithHandler importHandler: @escaping (URL?, UIDocumentBrowserViewController.ImportMode) -> Void) + + + // Last stop before displaying popover + override func prepare(for segue: UIStoryboardSegue, sender: Any?) { - // Asks the delegate to create a new document. + // "showActions" is the name of the popover menu, see storyboard + if segue.identifier == "showActions" { + let vc = segue.destination as! DocumentActions + vc.delegate = self + vc.isDocActive = (currentDocumentName != nil) + } } - internal func documentBrowser(_ controller: UIDocumentBrowserViewController, - didImportDocumentAt sourceURL: URL, - toDestinationURL destinationURL: URL) + + + // Delegate call from menu (see protocol MenuDelegate) + func actionMenuSelected(_ tag : Int) { - // Tells the delegate that a document has been successfully imported. - //FIX BridgeLOkit_open("jan"); - //FIX BridgeLOkit_ClientCommand("jan"); + // a tag can sadly enough only be a number and not a string, + // whenever adding a menu entry, it (of course) needs to be added + // to the Document actions scene in storyboard and assigned a tag number + // the tag number must be repeated in the following switch + // BE CAREFULL to keep the tags synchronized (manually) + switch tag + { + case 1: // Open... + doOpenDocument() + + case 2: // Properties + doProperties() + case 3: // Save + doSave() + + case 4: // Close... + doClose() + + case 4: // Save as... + doSaveAs() + + case 5: // Save as PDF... + doSaveAsPDF() + + case 6: // Print... + doPrint() + + default: // should not happen + print("unknown menu" + String(tag)) + } } - internal func documentBrowser(_ controller: UIDocumentBrowserViewController, - failedToImportDocumentAt documentURL: URL, - error: Error?) + + + // *** handling of menu actions + // This is the real base of the application + + + + // Load document into LibreOfficeKit and present it + internal func doOpenDocument() { - // Tells the delegate that the document browser failed to import the specified document. + //FIXME + + // let openMenu = UIDocumentPickerViewController(documentTypes: ["public.data"], in: .open) + let openMenu = UIDocumentBrowserViewController() + //penMenu.allowsDocumentCreation = true + // UIDocumentBrowserViewController.ImportMode = UIDocumentBrowserViewController.ImportMode.none // copy, move + //openMenu.InterfaceStyle = UIDocumentPickerViewController.dark + openMenu.delegate = self + self.present(openMenu, animated: true, completion: nil) + print("menu Open... to be done") } - internal func documentBrowser(_ controller: UIDocumentBrowserViewController, - didPickDocumentURLs documentURLs: [URL]) + + + // Show document properties (new overloaded page) + internal func doProperties() { - // Tells the delegate that the user has selected one or more documents. - //FIX BridgeLOkit_open("jan"); - //FIX BridgeLOkit_ClientCommand("jan"); + //FIXME + print("menu Properties to be done") } - @IBOutlet weak var janTest: UILabel! - // Last stop before displaying popover - override func prepare(for segue: UIStoryboardSegue, sender: Any?) + + // Save current document + internal func doSave() { - if segue.identifier == "showActions" { - let vc = segue.destination as! DocumentActions - vc.delegate = self + //FIXME + print("menu Save to be done") + } - // JIX, TO BE CHANGED - vc.isDocActive = true - } + + + // Close current document (without saving) + internal func doClose() + { + //FIXME + print("menu Close to be done") } - func actionMenuSelected(_ tag : Int) + // make a copy of current document, and save + internal func doSaveAs() { - switch tag - { - case 1: // Open... - // let openMenu = UIDocumentPickerViewController(documentTypes: ["public.data"], in: .open) - let openMenu = UIDocumentBrowserViewController() - //penMenu.allowsDocumentCreation = true - // UIDocumentBrowserViewController.ImportMode = UIDocumentBrowserViewController.ImportMode.none // copy, move - //openMenu.InterfaceStyle = UIDocumentPickerViewController.dark - openMenu.delegate = self - self.present(openMenu, animated: true, completion: nil) - print("menu Open... to be done") + //FIXME + print("menu Save as... to be done") + } - case 2: // Properties - print("menu Properties to be done") - case 3: // Save - print("menu Save to be done") - case 4: // Save as... - print("menu Save as... to be done") + // save current document as PDF + internal func doSaveAsPDF() + { + //FIXME + print("menu Save as PDF... to be done") + } - case 5: // Save as PDF... - print("menu Save as PDF... to be done") - case 6: // Print... - print("menu Print... to be done") - default: // should not happen - print("unknown menu" + String(tag)) - } + // print current document + internal func doPrint() + { + //FIXME + print("menu Print... to be done") } -} -// Protocol for action popover callback -protocol MenuDelegate -{ - func actionMenuSelected(_ tag : Int) -} + // *** Handling of DocumentViewController delegate functions + // this handles open/create/copy/delete document -class DocumentActions: UITableViewController -{ - // Pointer to callback class - var delegate : MenuDelegate? - var isDocActive : Bool = false + // Create an empty document, and present it + internal func documentBrowser(_ controller: UIDocumentBrowserViewController, + didRequestDocumentCreationWithHandler importHandler: @escaping (URL?, + UIDocumentBrowserViewController.ImportMode) -> Void) + { + //FIXME + } + - // Calling class might enable/disable each button - @IBAction func actionMenuSelect(_ sender: UIButton) + + // import (copy from iCloud to iPad) document, open it and present it + internal func documentBrowser(_ controller: UIDocumentBrowserViewController, + didImportDocumentAt sourceURL: URL, + toDestinationURL destinationURL: URL) { - dismiss(animated: false) - delegate?.actionMenuSelected(sender.tag) + //FIXME } - @IBOutlet weak var buttonProperties: UIButton! - @IBOutlet weak var buttonNew: UIButton! - @IBOutlet weak var buttonOpen: UIButton! - @IBOutlet weak var buttonSave: UIButton! - @IBOutlet weak var buttonSaveAs: UIButton! - @IBOutlet weak var buttonSaveAsPDF: UIButton! - @IBOutlet weak var buttonPrint: UIButton! - @IBOutlet weak var buttonCopy: UIButton! - @IBOutlet weak var buttonMove: UIButton! - @IBOutlet weak var buttonDelete: UIButton! - override func viewDidLoad() + + // Import failed, inform user + internal func documentBrowser(_ controller: UIDocumentBrowserViewController, + failedToImportDocumentAt documentURL: URL, + error: Error?) { - super.viewDidLoad() - buttonSave.isEnabled = isDocActive - buttonSaveAs.isEnabled = isDocActive - buttonSaveAsPDF.isEnabled = isDocActive - buttonPrint.isEnabled = isDocActive + //FIXME + } + + + + // open document and present it + internal func documentBrowser(_ controller: UIDocumentBrowserViewController, + didPickDocumentURLs documentURLs: [URL]) + { + //FIXME + //BridgeLOkit_open(documentURLs); } } diff --git a/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c b/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c index 5063f0f1317e..5d6effbf9647 100644 --- a/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c +++ b/ios/LibreOfficeLight/LibreOfficeLight/dummyLOkit.c @@ -5,6 +5,8 @@ // 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/. // +#include "lokit-Bridging-Header.h" + // replaces LibreOfficeKit and thereby reducing turn around time, which is diff --git a/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard b/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard index 925ce28c9b27..936c0620eb13 100755 --- a/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard +++ b/ios/LibreOfficeLight/LibreOfficeLight/en.lproj/Main.storyboard @@ -20,15 +20,6 @@ <view key="view" contentMode="scaleToFill" id="kh9-bI-dsS"> <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <subviews> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="My document" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="D1P-q2-3PT"> - <rect key="frame" x="193" y="476" width="156" height="21"/> - <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> - <fontDescription key="fontDescription" type="system" pointSize="17"/> - <nil key="textColor"/> - <nil key="highlightedColor"/> - </label> - </subviews> <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> </view> <toolbarItems/> @@ -47,9 +38,6 @@ </barButtonItem> </navigationItem> <simulatedToolbarMetrics key="simulatedBottomBarMetrics"/> - <connections> - <outlet property="janTest" destination="D1P-q2-3PT" id="ERV-pa-Fs9"/> - </connections> </viewController> <placeholder placeholderIdentifier="IBFirstResponder" id="x5A-6p-PRh" sceneMemberID="firstResponder"/> </objects> @@ -286,7 +274,7 @@ <objects> <tableViewController autoresizesArchivedViewToFullSize="NO" title="Document Actions" automaticallyAdjustsScrollViewInsets="NO" modalTransitionStyle="crossDissolve" modalPresentationStyle="overCurrentContext" clearsSelectionOnViewWillAppear="NO" id="IER-X5-Ax8" customClass="DocumentActions" customModule="LibreOfficeLight" customModuleProvider="target" sceneMemberID="viewController"> <tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="plain" separatorStyle="default" rowHeight="30" sectionHeaderHeight="28" sectionFooterHeight="28" id="RqF-IL-YJc"> - <rect key="frame" x="0.0" y="0.0" width="134" height="180"/> + <rect key="frame" x="0.0" y="0.0" width="134" height="210"/> <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/> <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> <sections> @@ -341,7 +329,7 @@ <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> - <button opaque="NO" tag="3" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m45-MR-Gca"> + <button opaque="NO" tag="3" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="m45-MR-Gca" userLabel="Button Save"> <rect key="frame" x="8" y="0.0" width="118" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <accessibility key="accessibilityConfiguration" identifier="actionSave"> @@ -355,14 +343,32 @@ </subviews> </tableViewCellContentView> </tableViewCell> - <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="AN7-6j-wO7"> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="Kys-Iw-SeT"> <rect key="frame" x="0.0" y="90" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Kys-Iw-SeT" id="2C9-6w-WS3"> + <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> + <autoresizingMask key="autoresizingMask"/> + <subviews> + <button opaque="NO" tag="4" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="95N-Hk-rcU" userLabel="Button Close"> + <rect key="frame" x="8" y="0.0" width="118" height="30"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <accessibility key="accessibilityConfiguration" identifier="actionSave"> + <bool key="isElement" value="NO"/> + </accessibility> + <state key="normal" title="Close"/> + </button> + </subviews> + </tableViewCellContentView> + </tableViewCell> + <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="AN7-6j-wO7"> + <rect key="frame" x="0.0" y="120" width="134" height="30"/> + <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="AN7-6j-wO7" id="kl1-nQ-aIu"> <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> - <button opaque="NO" tag="4" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6vH-aM-aYe"> + <button opaque="NO" tag="5" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="6vH-aM-aYe" userLabel="Button Save copy"> <rect key="frame" x="8" y="0.0" width="118" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <accessibility key="accessibilityConfiguration"> @@ -370,20 +376,20 @@ </accessibility> <state key="normal" title="Save copy..."/> <connections> - <action selector="actionMenuSelect:" destination="IER-X5-Ax8" eventType="touchUpInside" id="0gI-or-ji4"/> + <action selector="actionMenuSelect:" destination="IER-X5-Ax8" eventType="touchUpInside" id="KBW-3d-D5Z"/> </connections> </button> </subviews> </tableViewCellContentView> </tableViewCell> <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="GmK-gj-GYu"> - <rect key="frame" x="0.0" y="120" width="134" height="30"/> + <rect key="frame" x="0.0" y="150" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="GmK-gj-GYu" id="3OK-Zz-mqN"> <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> - <button opaque="NO" tag="5" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt" userLabel="Button Save As PDF"> + <button opaque="NO" tag="6" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="apE-3B-lUt" userLabel="Button Save As PDF"> <rect key="frame" x="8" y="0.0" width="118" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <accessibility key="accessibilityConfiguration" identifier="actionSaveAsPDF"> @@ -398,13 +404,13 @@ </tableViewCellContentView> </tableViewCell> <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="diN-3v-tgm"> - <rect key="frame" x="0.0" y="150" width="134" height="30"/> + <rect key="frame" x="0.0" y="180" width="134" height="30"/> <autoresizingMask key="autoresizingMask"/> <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="diN-3v-tgm" id="24s-fs-4cw"> <rect key="frame" x="0.0" y="0.0" width="134" height="29.5"/> <autoresizingMask key="autoresizingMask"/> <subviews> - <button opaque="NO" tag="6" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tvH-WR-c61" userLabel="Button Print"> + <button opaque="NO" tag="7" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="tvH-WR-c61" userLabel="Button Print"> <rect key="frame" x="8" y="0.0" width="118" height="30"/> <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> <accessibility key="accessibilityConfiguration"> @@ -427,13 +433,14 @@ </connections> </tableView> <extendedEdge key="edgesForExtendedLayout"/> - <value key="contentSizeForViewInPopover" type="size" width="134" height="180"/> + <value key="contentSizeForViewInPopover" type="size" width="134" height="210"/> <nil key="simulatedStatusBarMetrics"/> <nil key="simulatedTopBarMetrics"/> <nil key="simulatedBottomBarMetrics"/> <freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/> - <size key="freeformSize" width="134" height="180"/> + <size key="freeformSize" width="134" height="210"/> <connections> + <outlet property="buttonClose" destination="6vH-aM-aYe" id="zNg-Rc-hcL"/> <outlet property="buttonOpen" destination="myk-zs-md7" id="xQK-I1-pDl"/> <outlet property="buttonPrint" destination="tvH-WR-c61" id="4YU-p2-Fim"/> <outlet property="buttonProperties" destination="b90-ja-Wm0" id="scY-Fn-fss"/> |