Logger done for now, start on analysis tool
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
//
|
||||
// AppDelegate.swift
|
||||
// Graphic Analysis 2
|
||||
//
|
||||
// Created by Kilian Hofmann on 15.06.17.
|
||||
// Copyright © 2017 Kilian Hofmann. All rights reserved.
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
|
||||
@NSApplicationMain
|
||||
class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
|
||||
|
||||
|
||||
func applicationDidFinishLaunching(_ aNotification: Notification) {
|
||||
// Insert code here to initialize your application
|
||||
}
|
||||
|
||||
func applicationWillTerminate(_ aNotification: Notification) {
|
||||
// Insert code here to tear down your application
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,111 @@
|
||||
#!/usr/bin/env python
|
||||
#
|
||||
# Bump build number in Info.plist files if a source file have changed.
|
||||
#
|
||||
# usage: bump_buildnum.py buildnum.ver Info.plist [ ... Info.plist ]
|
||||
#
|
||||
# andy@trojanfoe.com, 2014.
|
||||
#
|
||||
|
||||
import sys, os, subprocess, re
|
||||
|
||||
def read_verfile(name):
|
||||
version = None
|
||||
build = None
|
||||
verfile = open(name, "r")
|
||||
for line in verfile:
|
||||
match = re.match(r"^version\s+(\S+)", line)
|
||||
if match:
|
||||
version = match.group(1).rstrip()
|
||||
match = re.match(r"^build\s+(\S+)", line)
|
||||
if match:
|
||||
build = int(match.group(1).rstrip())
|
||||
verfile.close()
|
||||
return (version, build)
|
||||
|
||||
def write_verfile(name, version, build):
|
||||
verfile = open(name, "w")
|
||||
verfile.write("version {0}\n".format(version))
|
||||
verfile.write("build {0}\n".format(build))
|
||||
verfile.close()
|
||||
return True
|
||||
|
||||
def set_plist_version(plistname, version, build):
|
||||
if not os.path.exists(plistname):
|
||||
print("{0} does not exist".format(plistname))
|
||||
return False
|
||||
|
||||
plistbuddy = '/usr/libexec/Plistbuddy'
|
||||
if not os.path.exists(plistbuddy):
|
||||
print("{0} does not exist".format(plistbuddy))
|
||||
return False
|
||||
|
||||
cmdline = [plistbuddy,
|
||||
"-c", "Set CFBundleShortVersionString {0}".format(version),
|
||||
"-c", "Set CFBundleVersion {0}".format(build),
|
||||
plistname]
|
||||
if subprocess.call(cmdline) != 0:
|
||||
print("Failed to update {0}".format(plistname))
|
||||
return False
|
||||
|
||||
print("Updated {0} with v{1} ({2})".format(plistname, version, build))
|
||||
return True
|
||||
|
||||
def should_bump(vername, dirname):
|
||||
verstat = os.stat(vername)
|
||||
allnames = []
|
||||
for dirname, dirnames, filenames in os.walk(dirname):
|
||||
for filename in filenames:
|
||||
allnames.append(os.path.join(dirname, filename))
|
||||
|
||||
for filename in allnames:
|
||||
filestat = os.stat(filename)
|
||||
if filestat.st_mtime > verstat.st_mtime:
|
||||
print("{0} is newer than {1}".format(filename, vername))
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def upver(vername):
|
||||
(version, build) = read_verfile(vername)
|
||||
if version == None or build == None:
|
||||
print("Failed to read version/build from {0}".format(vername))
|
||||
return False
|
||||
|
||||
# Bump the version number if any files in the same directory as the version file
|
||||
# have changed, including sub-directories.
|
||||
srcdir = os.path.dirname(vername)
|
||||
bump = should_bump(vername, srcdir)
|
||||
|
||||
if bump:
|
||||
build += 1
|
||||
print("Incremented to build {0}".format(build))
|
||||
write_verfile(vername, version, build)
|
||||
print("Written {0}".format(vername))
|
||||
else:
|
||||
print("Staying at build {0}".format(build))
|
||||
|
||||
return (version, build)
|
||||
|
||||
if __name__ == "__main__":
|
||||
if os.environ.has_key('ACTION') and os.environ['ACTION'] == 'clean':
|
||||
print("{0}: Not running while cleaning".format(sys.argv[0]))
|
||||
sys.exit(0)
|
||||
|
||||
if len(sys.argv) < 3:
|
||||
print("Usage: {0} buildnum.ver Info.plist [... Info.plist]".format(sys.argv[0]))
|
||||
sys.exit(1)
|
||||
vername = sys.argv[1]
|
||||
|
||||
(version_orig, build_orig) = read_verfile(vername)
|
||||
|
||||
(version, build) = upver(vername)
|
||||
if version == None or build == None:
|
||||
sys.exit(2)
|
||||
|
||||
if (version_orig, build_orig) < (version, build):
|
||||
for i in range(2, len(sys.argv)):
|
||||
plistname = sys.argv[i]
|
||||
set_plist_version(plistname, version, build)
|
||||
|
||||
sys.exit(0)
|
||||
@@ -0,0 +1,44 @@
|
||||
//
|
||||
// Document.swift
|
||||
// Graphic Analysis 2
|
||||
//
|
||||
// Created by Kilian Hofmann on 15.06.17.
|
||||
// Copyright © 2017 Kilian Hofmann. All rights reserved.
|
||||
//
|
||||
|
||||
import Cocoa
|
||||
|
||||
class Document: NSDocument {
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
// Add your subclass-specific initialization here.
|
||||
}
|
||||
|
||||
override class func autosavesInPlace() -> Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
override func makeWindowControllers() {
|
||||
// Returns the Storyboard that contains your Document window.
|
||||
let storyboard = NSStoryboard(name: "Main", bundle: nil)
|
||||
let windowController = storyboard.instantiateController(withIdentifier: "Document Window Controller") as! NSWindowController
|
||||
self.addWindowController(windowController)
|
||||
}
|
||||
|
||||
override func data(ofType typeName: String) throws -> Data {
|
||||
// Insert code here to write your document to data of the specified type. If outError != nil, ensure that you create and set an appropriate error when returning nil.
|
||||
// You can also choose to override fileWrapperOfType:error:, writeToURL:ofType:error:, or writeToURL:ofType:forSaveOperation:originalContentsURL:error: instead.
|
||||
throw NSError(domain: NSOSStatusErrorDomain, code: unimpErr, userInfo: nil)
|
||||
}
|
||||
|
||||
override func read(from data: Data, ofType typeName: String) throws {
|
||||
// Insert code here to read your document from the given data of the specified type. If outError != nil, ensure that you create and set an appropriate error when returning false.
|
||||
// You can also choose to override readFromFileWrapper:ofType:error: or readFromURL:ofType:error: instead.
|
||||
// If you override either of these, you should also override -isEntireFileLoaded to return false if the contents are lazily loaded.
|
||||
throw NSError(domain: NSOSStatusErrorDomain, code: unimpErr, userInfo: nil)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,140 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12121" systemVersion="16G12b" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12121"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="GraphDetailsController" customModule="Graphic_Analysis" customModuleProvider="target">
|
||||
<connections>
|
||||
<outlet property="freq" destination="l7u-Vy-iwa" id="cwp-LE-s9E"/>
|
||||
<outlet property="power" destination="TXD-Ji-2X2" id="OzI-qa-t7f"/>
|
||||
<outlet property="ranging" destination="Q4h-v5-Nwu" id="Wdl-ru-kuA"/>
|
||||
<outlet property="snr" destination="7Zc-lS-tmW" id="8lV-5y-zvh"/>
|
||||
<outlet property="time" destination="OJ8-uC-Y3l" id="gG1-Pf-LE2"/>
|
||||
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customView id="Hz6-mo-xeY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="258" height="162"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="fVO-dW-v0J">
|
||||
<rect key="frame" x="18" y="125" width="72" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Frequency:" id="tTx-Ii-q3Q">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="7Zc-lS-tmW">
|
||||
<rect key="frame" x="129" y="75" width="111" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="33 dBmV" id="mAc-rH-21s">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lSs-3C-Wh6">
|
||||
<rect key="frame" x="18" y="100" width="84" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Power Level: " id="yzi-sz-IPS">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="c43-bY-Gpy">
|
||||
<rect key="frame" x="18" y="75" width="107" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="SNR / Threshold:" id="hst-Bk-YtF">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TXD-Ji-2X2">
|
||||
<rect key="frame" x="129" y="100" width="111" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="36 dBmV" id="sHM-Uk-gSL">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="l7u-Vy-iwa">
|
||||
<rect key="frame" x="129" y="125" width="111" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="58.6 MHZ" id="mjT-6Q-7bd">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IzL-lu-zBV">
|
||||
<rect key="frame" x="18" y="50" width="76" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Timestamp:" id="YWT-IG-AmC">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="OJ8-uC-Y3l">
|
||||
<rect key="frame" x="129" y="50" width="111" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="00:00:00" id="xwJ-Dw-suj">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q4h-v5-Nwu">
|
||||
<rect key="frame" x="129" y="25" width="111" height="17"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="retries_exceeded" id="OW0-D8-FzY">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="59B-IJ-gKQ">
|
||||
<rect key="frame" x="18" y="25" width="100" height="17"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="96" id="bh7-4s-7og"/>
|
||||
</constraints>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Ranging Status:" id="nnW-k1-E1D">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="c43-bY-Gpy" firstAttribute="leading" secondItem="IzL-lu-zBV" secondAttribute="leading" id="0pl-Rv-rWS"/>
|
||||
<constraint firstItem="lSs-3C-Wh6" firstAttribute="leading" secondItem="c43-bY-Gpy" secondAttribute="leading" id="2KT-kh-aq4"/>
|
||||
<constraint firstItem="Q4h-v5-Nwu" firstAttribute="leading" secondItem="59B-IJ-gKQ" secondAttribute="trailing" constant="15" id="3UF-PM-YDZ"/>
|
||||
<constraint firstItem="7Zc-lS-tmW" firstAttribute="leading" secondItem="c43-bY-Gpy" secondAttribute="trailing" constant="8" symbolic="YES" id="6am-Rt-HbZ"/>
|
||||
<constraint firstItem="Q4h-v5-Nwu" firstAttribute="top" secondItem="OJ8-uC-Y3l" secondAttribute="bottom" constant="8" symbolic="YES" id="7X2-NE-2Ph"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="leading" secondItem="Q4h-v5-Nwu" secondAttribute="leading" id="7ZK-TD-vkR"/>
|
||||
<constraint firstItem="TXD-Ji-2X2" firstAttribute="leading" secondItem="7Zc-lS-tmW" secondAttribute="leading" id="Aut-RG-maq"/>
|
||||
<constraint firstItem="fVO-dW-v0J" firstAttribute="leading" secondItem="lSs-3C-Wh6" secondAttribute="leading" id="EVZ-jU-rAl"/>
|
||||
<constraint firstItem="59B-IJ-gKQ" firstAttribute="leading" secondItem="IzL-lu-zBV" secondAttribute="leading" id="Ext-0L-rXN"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="trailing" secondItem="Q4h-v5-Nwu" secondAttribute="trailing" id="FRt-Vv-2ss"/>
|
||||
<constraint firstItem="lSs-3C-Wh6" firstAttribute="top" secondItem="fVO-dW-v0J" secondAttribute="bottom" constant="8" symbolic="YES" id="JhZ-hu-rB2"/>
|
||||
<constraint firstItem="c43-bY-Gpy" firstAttribute="baseline" secondItem="7Zc-lS-tmW" secondAttribute="baseline" id="Ons-ef-Yqx"/>
|
||||
<constraint firstItem="c43-bY-Gpy" firstAttribute="top" secondItem="lSs-3C-Wh6" secondAttribute="bottom" constant="8" symbolic="YES" id="Pjl-r1-XRq"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="trailing" secondItem="l7u-Vy-iwa" secondAttribute="trailing" id="SYL-VZ-BBW"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="trailing" secondItem="TXD-Ji-2X2" secondAttribute="trailing" id="TLc-LW-px0"/>
|
||||
<constraint firstItem="l7u-Vy-iwa" firstAttribute="leading" secondItem="TXD-Ji-2X2" secondAttribute="leading" id="XVZ-ID-4gx"/>
|
||||
<constraint firstItem="fVO-dW-v0J" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" symbolic="YES" id="bHZ-p7-Hf5"/>
|
||||
<constraint firstItem="59B-IJ-gKQ" firstAttribute="baseline" secondItem="Q4h-v5-Nwu" secondAttribute="baseline" id="bO7-7g-Z43"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="baseline" secondItem="IzL-lu-zBV" secondAttribute="baseline" id="ceG-PY-PqP"/>
|
||||
<constraint firstItem="fVO-dW-v0J" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="hB1-UW-Ov6"/>
|
||||
<constraint firstItem="IzL-lu-zBV" firstAttribute="top" secondItem="c43-bY-Gpy" secondAttribute="bottom" constant="8" symbolic="YES" id="i7D-jq-gFT"/>
|
||||
<constraint firstItem="fVO-dW-v0J" firstAttribute="baseline" secondItem="l7u-Vy-iwa" secondAttribute="baseline" id="jQu-mQ-Uby"/>
|
||||
<constraint firstAttribute="trailing" secondItem="Q4h-v5-Nwu" secondAttribute="trailing" constant="20" symbolic="YES" id="sjN-3T-nyG"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="leading" secondItem="7Zc-lS-tmW" secondAttribute="leading" id="spU-N5-Lh0"/>
|
||||
<constraint firstItem="OJ8-uC-Y3l" firstAttribute="trailing" secondItem="7Zc-lS-tmW" secondAttribute="trailing" id="srp-nj-mFx"/>
|
||||
<constraint firstItem="lSs-3C-Wh6" firstAttribute="baseline" secondItem="TXD-Ji-2X2" secondAttribute="baseline" id="ucu-so-Aw2"/>
|
||||
</constraints>
|
||||
<point key="canvasLocation" x="28" y="114"/>
|
||||
</customView>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -0,0 +1,81 @@
|
||||
<?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>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>docsisplist2</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>Graph</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>????</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>com.alikja.DocumentType.docsisplist2</string>
|
||||
</array>
|
||||
<key>LSTypeIsPackage</key>
|
||||
<integer>1</integer>
|
||||
<key>NSDocumentClass</key>
|
||||
<string>$(PRODUCT_MODULE_NAME).Document</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.0</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2017 Kilian Hofmann. All rights reserved.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>UTExportedTypeDeclarations</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>UTTypeConformsTo</key>
|
||||
<array>
|
||||
<string>com.apple.package</string>
|
||||
</array>
|
||||
<key>UTTypeDescription</key>
|
||||
<string>DocumentType</string>
|
||||
<key>UTTypeIconFile</key>
|
||||
<string>Graph</string>
|
||||
<key>UTTypeIdentifier</key>
|
||||
<string>com.alikja.DocumentType.docsisplist2</string>
|
||||
<key>UTTypeTagSpecification</key>
|
||||
<dict>
|
||||
<key>public.filename-extension</key>
|
||||
<array>
|
||||
<string>docsisplist2</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,115 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="11185.3" systemVersion="16A320" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="11185.3"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="Voe-Tx-rLC" id="GzC-gU-4Uq"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate" customModule="Graphic_Analysis" customModuleProvider="target"/>
|
||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
||||
<items>
|
||||
<menuItem title="Graphic Analysis" id="1Xt-HY-uBw">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Graphic Analysis" systemMenu="apple" id="uQy-DD-JDr">
|
||||
<items>
|
||||
<menuItem title="About Graphic Analysis" id="5kV-Vb-QxS">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="orderFrontStandardAboutPanel:" target="-1" id="Exp-CZ-Vem"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||
<menuItem title="Hide Graphic Analysis" keyEquivalent="h" id="Olw-nP-bQN">
|
||||
<connections>
|
||||
<action selector="hide:" target="-1" id="PnN-Uc-m68"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="hideOtherApplications:" target="-1" id="VT4-aY-XCT"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Show All" id="Kd2-mp-pUS">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="unhideAllApplications:" target="-1" id="Dhg-Le-xox"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
|
||||
<menuItem title="Quit Graphic Analysis" keyEquivalent="q" id="4sb-4s-VLi">
|
||||
<connections>
|
||||
<action selector="terminate:" target="-1" id="Te7-pn-YzF"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="File" id="dMs-cI-mzQ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="File" id="bib-Uj-vzu">
|
||||
<items>
|
||||
<menuItem title="Open…" keyEquivalent="o" id="IAo-SY-fd9">
|
||||
<connections>
|
||||
<action selector="openDocument:" target="-1" id="bVn-NM-KNZ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Open Recent" id="tXI-mr-wws">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="oas-Oc-fiZ">
|
||||
<items>
|
||||
<menuItem title="Clear Menu" id="vNY-rz-j42">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="clearRecentDocuments:" target="-1" id="Daa-9d-B3U"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="m54-Is-iLE"/>
|
||||
<menuItem title="Close" keyEquivalent="w" id="DVo-aG-piG">
|
||||
<connections>
|
||||
<action selector="performClose:" target="-1" id="HmO-Ls-i7Q"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="aUF-d1-5bR">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
|
||||
<items>
|
||||
<menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
|
||||
<connections>
|
||||
<action selector="performMiniaturize:" target="-1" id="VwT-WD-YPe"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Zoom" id="R4o-n2-Eq4">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="performZoom:" target="-1" id="DIl-cC-cCs"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="eu3-7i-yIM"/>
|
||||
<menuItem title="Bring All to Front" id="LE2-aR-0XJ">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="arrangeInFront:" target="-1" id="DRN-fu-gQh"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -0,0 +1,2 @@
|
||||
version 2.0
|
||||
build 2
|
||||
Reference in New Issue
Block a user