Start implementing help

This commit is contained in:
Matthias Neeracher 2015-07-11 00:48:39 +02:00 committed by Matthias Neeracher
parent d3a17159ad
commit 9fbd4b9d91
13 changed files with 314 additions and 10 deletions

View File

@ -23,6 +23,7 @@
95468DE31A228E1300668EE2 /* Defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 95468DE21A228E1300668EE2 /* Defaults.plist */; };
9548A7CA1AED51530090FB0B /* ASSerialWin.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9548A7CC1AED51530090FB0B /* ASSerialWin.xib */; };
95539B681A3E7EAF00D8595C /* ASSerial.mm in Sources */ = {isa = PBXBuildFile; fileRef = 95539B671A3E7EAF00D8595C /* ASSerial.mm */; };
955EFECB1AFF1A8400D34967 /* Help in Resources */ = {isa = PBXBuildFile; fileRef = 955EFEC91AFF1A8400D34967 /* Help */; };
956005F41A4EF79D00327007 /* ASSerialWin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 956005F21A4EF79D00327007 /* ASSerialWin.swift */; };
95A7C6401A38914300EF1963 /* ASPreferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = 95A7C63E1A38914300EF1963 /* ASPreferences.xib */; };
95A7C6461A3894C900EF1963 /* ASPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A7C6451A3894C900EF1963 /* ASPreferences.swift */; };
@ -112,6 +113,7 @@
9548A7CB1AED51530090FB0B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ASSerialWin.xib; sourceTree = "<group>"; };
95539B661A3E7EAF00D8595C /* ASSerial.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASSerial.h; sourceTree = "<group>"; };
95539B671A3E7EAF00D8595C /* ASSerial.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ASSerial.mm; sourceTree = "<group>"; };
955EFECA1AFF1A8400D34967 /* Base */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Base; path = Base.lproj/Help; sourceTree = "<group>"; };
956005F21A4EF79D00327007 /* ASSerialWin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ASSerialWin.swift; sourceTree = "<group>"; };
958D76811A17DA1C00917D96 /* AVRsack-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AVRsack-Bridging-Header.h"; sourceTree = "<group>"; };
95A7C63F1A38914300EF1963 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ASPreferences.xib; sourceTree = "<group>"; };
@ -231,6 +233,7 @@
95BF80EC1A185CD90004A693 /* Resources */ = {
isa = PBXGroup;
children = (
955EFEC91AFF1A8400D34967 /* Help */,
9501D8081A17025C0034C530 /* Images.xcassets */,
950AB9261A296A160033A9DA /* ProjIcon.icns */,
95CC3EFF1A6385B8003507AD /* AsmSrcIcon.icns */,
@ -393,6 +396,7 @@
951CD1771A2615000066C1A1 /* BuildProject in Resources */,
95CC3F081A6385B8003507AD /* HSrcIcon.icns in Resources */,
95388E5D1AB6882600061435 /* FileRevision in Resources */,
955EFECB1AFF1A8400D34967 /* Help in Resources */,
95CC3F061A6385B8003507AD /* CppSrcIcon.icns in Resources */,
95CC3F051A6385B8003507AD /* AsmSrcIcon.icns in Resources */,
);
@ -474,6 +478,14 @@
name = ASSerialWin.xib;
sourceTree = "<group>";
};
955EFEC91AFF1A8400D34967 /* Help */ = {
isa = PBXVariantGroup;
children = (
955EFECA1AFF1A8400D34967 /* Base */,
);
name = Help;
sourceTree = "<group>";
};
95A7C63E1A38914300EF1963 /* ASPreferences.xib */ = {
isa = PBXVariantGroup;
children = (

View File

@ -3,10 +3,11 @@
// AVRsack
//
// Created by Matthias Neeracher on 11/15/14.
// Copyright (c) 2014 Aere Perennius. All rights reserved.
// Copyright (c) 2014-2015 Aere Perennius. All rights reserved.
//
import Cocoa
import Carbon
@NSApplicationMain
class ASApplication: NSObject, NSApplicationDelegate, NSMenuDelegate {
@ -196,5 +197,28 @@ class ASApplication: NSObject, NSApplicationDelegate, NSMenuDelegate {
})
}
}
@IBAction func goToHelpPage(sender: AnyObject) {
let helpString: String
switch sender.tag() {
case 0:
helpString = "license.html"
default:
abort()
}
let locBookName = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleHelpBookName") as! String
AHGotoPage(locBookName, helpString, nil)
}
@IBAction func goToHelpURL(sender: AnyObject) {
let helpString: String
switch sender.tag() {
case 0:
helpString = "https://github.com/microtherion/AVRsack/issues"
default:
abort()
}
NSWorkspace.sharedWorkspace().openURL(NSURL(string: helpString)!)
}
}

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7531" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<development version="6200" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7531"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7702"/>
<capability name="Constraints with non-1.0 multipliers" minToolsVersion="5.1"/>
</dependencies>
<objects>
@ -46,7 +46,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnResizing="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="89u-w6-f1G" id="nij-C2-Fna">
<rect key="frame" x="0.0" y="0.0" width="227" height="0.0"/>
<rect key="frame" x="0.0" y="0.0" width="43" height="0.0"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
@ -82,7 +82,7 @@
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<button verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Mar-ts-Ae2">
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Mar-ts-Ae2">
<rect key="frame" x="0.0" y="-1" width="114" height="23"/>
<constraints>
<constraint firstAttribute="height" constant="21" id="eBY-nc-VZ2"/>
@ -95,7 +95,7 @@
<action selector="add:" target="-1" id="2u6-qG-b4q"/>
</connections>
</button>
<button verticalHuggingPriority="750" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nX2-CL-r24">
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nX2-CL-r24">
<rect key="frame" x="114" y="-1" width="115" height="23"/>
<buttonCell key="cell" type="smallSquare" title="" bezelStyle="smallSquare" imagePosition="overlaps" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="bih-cm-8LF">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@ -185,7 +185,7 @@
<popUpButton key="view" verticalHuggingPriority="750" allowsExpansionToolTips="YES" id="xO5-xB-HHj">
<rect key="frame" x="0.0" y="14" width="75" height="28"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="roundTextured" title="Item 1" bezelStyle="texturedRounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="border" imageScaling="proportionallyDown" inset="2" pullsDown="YES" selectedItem="BI3-Mj-Hjl" id="70v-IV-ury">
<popUpButtonCell key="cell" type="roundTextured" title="Item 1" bezelStyle="texturedRounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="border" imageScaling="proportionallyDown" inset="2" pullsDown="YES" id="70v-IV-ury">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" title="Boards" id="0W3-Jd-NvF">

View File

@ -0,0 +1,31 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>About AVRsack</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
</head>
<body>
<center><h1>About <span class="logo">AVRsack</span></h1></center>
<p><span class="logo">AVRsack</span> is an integrated development environment for the Atmel AVR series of microcontrollers.
It is designed to be an alternative for the Arduino 1.0.x application, offering:</p>
<ul type="circle">
<li>A more powerful text editor with a variety of styles.</li>
<li>A more powerful build system with incremental rebuilds.</li>
<li>A more powerful upload system with finer grained control over logging.</li>
<li>Full build/upload logs without arbitrary size restrictions.</li>
<li>Support for handling multiple simultaneous serial ports.</li>
<li>Support for assembly programming and disassembly of object code.</li>
<li>Support for alternate AVR toolchains, such as <a href="https://www.obdev.at/products/crosspack/index.html">Crosspack-AVR</a></li>
</ul>
<p><span class="logo">AVRsack</span> was written and designed by <span style="white-space:nowrap">Matthias Neeracher
&lt;<a href="mailto:microtherion@gmail.com">microtherion@gmail.com</a>&gt;</span></p>
<p>For editing text, <span class="logo">AVRsack</span> relies on Michael Robinson's <a href="https://github.com/faceleg/ACEView">ACEView</a>,
a Cocoa wrapper for the <a href="http://ace.c9.io">Ace</a> code editor.
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

View File

@ -0,0 +1,13 @@
div.sidebar {
margin-bottom: 5mm;
margin-top: 5mm;
margin-right: 15%;
margin-left: 15%;
background-color: #eeeeee;
width: 70%;
padding: 3mm 3mm 3mm 3mm;
}
span.logo {
font-size: smaller;
font-family: "Lucida Grande", Verdana, Arial, sans-serif;
}

View File

@ -0,0 +1,23 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>Welcome to AVRsack</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
<meta name="AppleTitle" content="AVRsack Help">
</head>
<body>
<H1>Welcome to <span class="logo">AVRsack</span></H1>
<img src="asapp.png" alt="AVRsack Application Icon" style="float:center">
<ul type="circle">
<li><a href="about.html">About <span class="logo">AVRsack</span></a></li>
<li><a href="setup.html">Setting up <span class="logo">AVRsack</span></a></li>
<li><a href="projects.html">Creating and Editing Sketches</a></li>
<li><a href="running.html">Compiling and Running Sketches</a></li>
<li><a href="bugs.html">Reporting Bugs</a></li>
</ul>
</body>
</html>

View File

@ -0,0 +1,26 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>AVRsack License</title>
<meta name="AppleTitle" content="AVRsack License">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1><span class="logo">AVRsack</span> License</h1>
<blockquote>
<p><span class="logo">AVRsack</span> Copyright © 2015, Matthias Neeracher<br>
ACEView Copyright © 2012, Michael Robinson<br>
ace Copyright © 2010, Ajax.org B.V.<br>
All rights reserved.</p>
<p>Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:</p>
<p>1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.</p>
<p>2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.</p>
<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
</blockquote>

View File

@ -0,0 +1,57 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>Working with AVRsack Sketches</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
</head>
<body>
<center><h1>Creating and Editing <span class="logo">AVRsack</span> Sketches</h1></center>
<p>Like many integrated development environments, <span class="logo">AVRsack</span> keeps information about your projects (called <i>sketches</i> to follow Arduino practice) in a project file. This file always should have the same name as the directory it resides in, and for compatibility with the Arduino IDE, <span class="logo">AVRsack</span> will automatically create missing project files.</p>
<h2>Creating a New Sketch</h2>
<p>From the <code>File</code> menu, select <code>New</code>&rarr;<code>Sketch…</code>. You will be prompted for a project name, and <span class="logo">AVRsack</span> will then proceed to create</p>
<ul type=circle>
<li>A directory by that <code>NAME</code></li>
<li>A project file <code>NAME/NAME.avrsackproj</code></li>
<li>An Arduino code file <code>NAME/NAME.ino</code></li>
</ul>
<h2>Adding a New File to a Sketch</h2>
<p>From the <code>File</code> menu, select <code>New</code>&rarr;<code>File…</code>. You will be prompted for a file name, and <span class="logo">AVRsack</span> will create the file and add it to the frontmost open sketch. Preferably, the file should be placed in the sketch directory.</p>
<p>Currently, <span class="logo">AVRsack</span> understands the following file extensions:</p>
<dl>
<dt><code>.h (.hpp, .hh)</code></dt>
<dd>C/C++ header file</dd>
<dt><code>.c</code></dt>
<dd>C source file</dd>
<dt><code>.cpp (.cxx, .c++, .cc)</code></dt>
<dd>C++ source file</dd>
<dt><code>.S</code></dt>
<dd>Assembly source file</dd>
<dt><code>.md</code></dt>
<dd>Markdown file</dd>
</dl>
<p>Be aware that the Arduino IDE will only understand a subset of these file types and extensions.</p>
<h2>Adding an Existing File to a Sketch</h2>
<p>Click the <code>+</code> button in the sketch window. You will be prompted for an existing file, which will be added to the sketch. Note that the file is <b>NOT</b> copied to the sketch directory, it should already reside there.</p>
<h2>Deleting a File or Removing it From a Sketch</h2>
<p>Select the file name and click the <code>-</code> button in the sketch window. You will be asked whether you want to move the file to the trash, or merely remove it from its sketch.</p>
<h2>Using Libraries</h2>
<p>The Arduino IDE ships with a selection of standard libraries, and many third party libraries exist on the web. In the <code>Sketch</code> menu, select the library you want to se from the <code>Import Standard Library</code> or <code>Import Contributed Library</code> submenus.</p>
</body>
</html>

View File

@ -0,0 +1,44 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>Working with AVRsack Sketches</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
</head>
<body>
<center><h1>Compiling and Running <span class="logo">AVRsack</span> Sketches</h1></center>
<p>Once you've written your code, it's time to get to the fun part&#8212;actually running it on your hardware.</p>
<h2>Selecting Your Execution Target</h2>
<p>First, you have to let <span class="logo">AVRsack</span> know what hardware you want to target. You do this with three popup buttons in the window toolbar:</p>
<ul>
<li>The <code>Board</code> menu specifies the hardware you want to use (Typically either an Arduino or compatible board, or a "raw" microcontroller).</li>
<li>The <code>Programmer</code> menu specifies what protocol you want to use to program the board. Most Arduino-style boards come with a bootloader and use a fixed protocol, so this setting is ignored for regular programming and only is used when burning a new bootloader. When programming raw microcontrollers, on the other hand, this setting is always used.</li>
<li>The <code>Port</code> menu lists available serial ports. Ports used in the past, but not currently available, are listed in italics, while available ports are listed in a regular font.</li>
</ul>
<div class=sidebar>
<p>💡While these settings are similar to those in the Arduino IDE, in <span class="logo">AVRsack</span>, the settings are stored separately for each project, so you can simultaneously develop projects for different boards.</p>
</div>
<h2>Compiling and Uploading Your Program</h2>
<p>If all the necessary target information is selected (and the selected port exists), the <code>Upload</code> button in the toolbar becomes active. Clicking the button will compile your program (and, if necessary, the selected Arduino core and libraries) and then upload it to your board.</p>
<p>If you need more (or less) information for your upload, you can adjust the verbosity in the <b>Preferences</b> dialog.</p>
<h2>Serial Communication With Your Program</h2>
<p>In typical Arduino boards, the running program conducts its serial communication on the same port used for uploading the program. To interact with the serial port, click the <code>Connect</code> button in the toolbar.</p>
<p>However, <span class="logo">AVRsack</span> also supports connecting to arbitrary serial ports (and an unlimited number of them) through the <code>Sketch</code>&rarr;<code>Serial Monitor</code> submenu.</p>
<h2>Disassembling Your Program</h2>
<p>If you would like to see what machine instructions are produced for your program, click the <code>Disasm</code> toolbar button. The <b>Disassembly</b> window will then show an assembler listing of the machine code, interspersed with your original source code (If you prefer, you can turn off the source code display in the <b>Preferences</b> dialog.</p>
</body>

View File

@ -0,0 +1,53 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRANSITIONAL//EN">
<html>
<head>
<title>Setting up AVRsack</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<link href="help.css" rel="stylesheet" type="text/css">
</head>
<body>
<center><h1>Setting up AVRsack</h1></center>
<h2>Additional Installs</h2>
<h3>Arduino (required)</h3>
<p><span class="logo">AVRsack</span> is designed to borrow the examples, libraries, and, optionally, the
toolchain of an Arduino IDE. Get the
<a href="http://arduino.googlecode.com/files/arduino-1.0.5-macosx.zip">Arduino 1.0.5</a>
IDE, unpack it, and run it once (After that, keep it installed, but you don't
need to run it anymore). At this point, <span class="logo">AVRsack</span> does not yet support the newer Arduino 1.5.x and 1.6.x IDEs.
</p>
<p>Once you've done this, <span class="logo">AVRsack</span> will automatically find your installation.</p>
<h3>Crosspack-AVR (optional)</h3>
<p>The Arduino IDE contains a toolchain (compiler, linker, etc) which is suitable for the microcontrollers used on standard Arduino boards, i.e. the ATmega328p (Arduino Uno and many more) and the ATmega32u4 (Arduino Leonardo, Micro, and others).</p>
<p>If you're working with other AVR microcontrollers, however, e.g. the ATtiny1634, you will find that they are either not supported by the Arduino toolchain at all, or that there are significant bugs. It is therefore often useful to replace the Arduino toolchain with a more up to date version. One such toolchain is conveniently packaged as Crosspack-AVR.</p>
<p>Download the latest version from <a href="https://www.obdev.at/products/crosspack/index.html">here</a> and install it. Once you've done this, <span class="logo">AVRsack</span> will automatically use this toolchain.</p>
<h3>ATtiny Arduino Cores (optional)</h3>
<p>Many Arduino programmers prefer to keep using the same APIs when programming ATtiny microcontrollers, so a number of projects exist to offer Arduino APIs for ATtinys. One such project, to which I've contributed some code, is <a href="https://github.com/microtherion/arduino-tiny1634-43u">arduino-tiny</a>, so I recommend that for ATtiny development. Clone or download this project from github and install it.</p>
<p>At this point, arduino-tiny supports the following microcontrollers:</p>
<ul type=circle>
<li>ATtiny85/45/25 (8 pin, 8/4/2K flash)</li>
<li>ATtiny84/44/24 (14 pin, 8/4/2K flash)</li>
<li>ATtiny4313/2313 (20 pin, 4/2K flash)</li>
<li>ATtiny43u (20 pin, 4K flash)</li>
<li>ATtiny1634 (20 pin, 16K flash)</li>
</ul>
<p>Other ATtiny cores will work as well, but not all of them use the same mapping of Arduino pin numbers to hardware pins, so make sure the core you're using is compatible with your code!</p>
<h2>Project Locations</h2>
<p>By default, <span class="logo">AVRsack</span> will look for projects (and custom cores) in the Arduino sketchbook directory, <code>~/Documents/Arduino</code>, but if you prefer, you can store projects and cores in <code>~/Documents/AVRsack</code> instead.</p>
</body>
</html>

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7531" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="7702" systemVersion="14D136" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies>
<development version="6200" identifier="xcode"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7531"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="7702"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
@ -518,11 +518,28 @@ CA
<action selector="showHelp:" target="-1" id="y7X-2Q-9no"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="hUr-1i-cq0"/>
<menuItem title="Report Bug…" id="eoz-47-mnL">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="goToHelpURL:" target="Voe-Tx-rLC" id="XgV-c9-QXO"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="7gM-GK-JaV"/>
<menuItem title="License" id="0dF-mt-IsV">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="goToHelpPage:" target="Voe-Tx-rLC" id="XrA-R8-mAk"/>
</connections>
</menuItem>
</items>
</menu>
</menuItem>
</items>
</menu>
<userDefaultsController representsSharedInstance="YES" id="Jox-o7-4sb"/>
<menuItem title="Item" id="s23-UF-gYK">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
</objects>
</document>

View File

@ -49,6 +49,10 @@
</array>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleHelpBookFolder</key>
<string>Help</string>
<key>CFBundleHelpBookName</key>
<string>AVRsack Help</string>
<key>CFBundleIdentifier</key>
<string>org.aereperennius.$(PRODUCT_NAME:rfc1034identifier)</string>
<key>CFBundleInfoDictionaryVersion</key>
@ -60,7 +64,7 @@
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<string>Av®∑</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSMinimumSystemVersion</key>