Reland "Add a menu where you can choose the app icon"

Last attempt didn't work out because it inadvertently removed the
ASSETCATALOG_COMPILER_APPICON_NAME from the xcodeproj.

This reverts commit c65cc4bfa7.
This commit is contained in:
Theodore Dubois
2020-08-17 23:15:55 -07:00
parent 8774dc6b07
commit d1a10bd26d
13 changed files with 613 additions and 18 deletions
+16
View File
@@ -0,0 +1,16 @@
//
// IconViewController.h
// iSH
//
// Created by Theodore Dubois on 12/13/19.
//
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface AltIconViewController : UIViewController <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout>
@end
NS_ASSUME_NONNULL_END
+151
View File
@@ -0,0 +1,151 @@
//
// IconViewController.m
// iSH
//
// Created by Theodore Dubois on 12/13/19.
//
#import "AltIconViewController.h"
#import "UIApplication+OpenURL.h"
@interface AltIconViewController ()
@property (weak) IBOutlet UICollectionView *collectionView;
@property NSDictionary<NSString *, NSDictionary *> *altIcons;
@property NSArray<NSString *> *altIconNames;
@end
@interface AltIconCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UIImageView *checkboxImageView;
@property (weak, nonatomic) IBOutlet UILabel *descriptionLabel;
@property (weak, nonatomic) IBOutlet UIButton *authorButton;
@property (nonatomic) NSString *link;
- (void)updateImage:(UIImage *)image description:(NSString *)description author:(NSString *)author link:(NSURL *)link;
@end
@implementation AltIconViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.altIcons = [NSDictionary dictionaryWithContentsOfURL:
[NSBundle.mainBundle URLForResource:@"Icons"
withExtension:@"plist"]];
self.altIconNames = [self.altIcons.allKeys sortedArrayUsingSelector:@selector(compare:)];
NSString *iconName = UIApplication.sharedApplication.alternateIconName;
if (iconName == nil)
iconName = @"";
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:[self.altIconNames indexOfObject:iconName]
inSection:0];
[self.collectionView selectItemAtIndexPath:indexPath
animated:NO
scrollPosition:UICollectionViewScrollPositionTop];
// UICollectionViewFlowLayout *layout = self.collectionView.collectionViewLayout;
// layout.sectionFootersPinToVisibleBounds = YES;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
return self.altIconNames.count;
}
- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath {
return [collectionView dequeueReusableSupplementaryViewOfKind:kind withReuseIdentifier:@"footer" forIndexPath:indexPath];
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
AltIconCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"icon" forIndexPath:indexPath];
NSString *iconName = self.altIconNames[indexPath.item];
[cell updateImage:[UIImage imageNamed:iconName.length == 0 ? @"icon" : iconName]
description:self.altIcons[iconName][@"description"]
author:self.altIcons[iconName][@"author"]
link:self.altIcons[iconName][@"link"]];
return cell;
}
- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath {
NSString *iconName = self.altIconNames[indexPath.item];
if (iconName.length == 0)
iconName = nil;
[UIApplication.sharedApplication setAlternateIconName:iconName completionHandler:^(NSError *err) {
if (err != nil)
NSLog(@"%@", err);
}];
}
- (IBAction)openSubmissions:(id)sender {
[UIApplication openURL:@"https://github.com/tbodt/ish/issues/578"];
}
- (CGFloat)sideInset:(UICollectionViewFlowLayout *)layout {
// For maximum aesthetics, there should be a decent amount of spacing between cells
static const CGFloat kMinSpacer = 20;
// The insets should be somewhat smaller than the spacer
static const CGFloat kInsetToSpacerRatio = 0.75;
CGFloat total = layout.collectionView.frame.size.width;
CGFloat item = layout.itemSize.width;
NSUInteger count = (int) (total / item);
CGFloat spacer;
CGFloat inset;
do {
CGFloat slack = total - (item * count);
spacer = slack / (2 * kInsetToSpacerRatio + count - 1);
inset = spacer * kInsetToSpacerRatio;
count--;
} while (spacer < kMinSpacer);
return inset;
}
- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewFlowLayout *)layout insetForSectionAtIndex:(NSInteger)section {
CGFloat sideInset = [self sideInset:layout];
return UIEdgeInsetsMake(sideInset, sideInset, 20, sideInset);
}
@end
@implementation AltIconCell
- (void)awakeFromNib {
[super awakeFromNib];
CAShapeLayer *iconMask = [CAShapeLayer new];
iconMask.frame = self.imageView.bounds;
iconMask.path = [UIBezierPath bezierPathWithRoundedRect:self.imageView.bounds
cornerRadius:self.imageView.bounds.size.width * 0.225].CGPath;
self.imageView.layer.mask = iconMask;
self.imageView.layer.minificationFilter = kCAFilterTrilinear;
if (@available(iOS 13, *)) {
self.checkboxImageView.image = UIImage.checkmarkImage;
} else {
// self.checkboxImageView.backgroundColor = UIColor.whiteColor;
// self.checkboxImageView.layer.cornerRadius = self.checkboxImageView.bounds.size.width / 2;
}
self.authorButton.titleLabel.adjustsFontForContentSizeCategory = YES;
}
- (void)updateImage:(UIImage *)image description:(NSString *)description author:(NSString *)author link:(NSString *)url {
self.imageView.image = image;
self.descriptionLabel.text = description;
[self.authorButton setTitle:[NSString stringWithFormat:@"by %@", author] forState:UIControlStateNormal];
self.link = url;
}
- (IBAction)openSource:(id)sender {
[UIApplication openURL:self.link];
}
- (void)setSelected:(BOOL)selected {
[super setSelected:selected];
self.checkboxImageView.hidden = !selected;
}
@end
+16
View File
@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "checkbox.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
},
"properties" : {
"template-rendering-intent" : "template",
"preserves-vector-representation" : true
}
}
+84
View File
@@ -0,0 +1,84 @@
%PDF-1.7
1 0 obj
<< >>
endobj
2 0 obj
<< /Length 3 0 R >>
stream
/DeviceRGB CS
/DeviceRGB cs
q
1.000000 0.000000 -0.000000 1.000000 8.740234 9.239258 cm
0.000000 0.000000 0.000000 scn
49.804668 -0.000031 m
77.050766 -0.000031 99.609772 22.558578 99.609772 49.804672 c
99.609772 77.001968 77.001968 99.609375 49.755871 99.609375 c
22.558571 99.609375 0.000000 77.001968 0.000000 49.804672 c
0.000000 22.558578 22.607468 -0.000031 49.804668 -0.000031 c
h
43.115269 24.755875 m
41.455070 24.755875 40.136768 25.488274 38.769569 27.148476 c
24.658169 44.531273 l
23.925768 45.458973 23.486370 46.630875 23.486370 47.705074 c
23.486370 49.999973 25.292969 51.757774 27.490269 51.757774 c
28.857470 51.757774 30.078169 51.220673 31.201168 49.706974 c
42.871071 34.619171 l
65.576172 70.996078 l
66.503868 72.509773 67.773476 73.242172 69.091774 73.242172 c
71.240273 73.242172 73.290970 71.826172 73.290970 69.482376 c
73.290970 68.408173 72.656273 67.236275 72.070274 66.259773 c
47.216770 27.148476 l
46.142570 25.537079 44.775368 24.755875 43.115269 24.755875 c
h
f
n
Q
endstream
endobj
3 0 obj
1002
endobj
4 0 obj
<< /MediaBox [ 0.000000 0.000000 117.000000 119.000000 ]
/Resources 1 0 R
/Contents 2 0 R
/Parent 5 0 R
/Type /Page
>>
endobj
5 0 obj
<< /Kids [ 4 0 R ]
/Count 1
/Type /Pages
>>
endobj
6 0 obj
<< /Type /Catalog
/Pages 5 0 R
>>
endobj
xref
0 7
0000000000 65535 f
0000000010 00000 n
0000000034 00000 n
0000001092 00000 n
0000001115 00000 n
0000001274 00000 n
0000001348 00000 n
trailer
<< /ID [ (some) (id) ]
/Root 6 0 R
/Size 7
>>
startxref
1407
%%EOF
+178 -14
View File
@@ -4,6 +4,8 @@
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="collection view cell content view" minToolsVersion="11.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
@@ -58,9 +60,29 @@
<segue destination="Zzy-IN-laJ" kind="show" id="3W3-8y-gVF"/>
</connections>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="3CC-Gj-X6f" userLabel="Disable Dimming">
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="6Qv-kp-ISr" style="IBUITableViewCellStyleDefault" id="LVQ-SX-dAA" userLabel="Caps Lock">
<rect key="frame" x="0.0" y="143.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="LVQ-SX-dAA" id="plU-fp-Ybd">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" insetsLayoutMarginsFromSafeArea="NO" text="App Icon" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="6Qv-kp-ISr">
<rect key="frame" x="16" y="0.0" width="269" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
</subviews>
</tableViewCellContentView>
<connections>
<segue destination="cfv-rk-mN1" kind="show" id="0jv-rd-adN"/>
</connections>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="3CC-Gj-X6f" userLabel="Disable Dimming">
<rect key="frame" x="0.0" y="187.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="3CC-Gj-X6f" id="6Sy-Y9-UdH">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
@@ -91,7 +113,7 @@
<tableViewSection id="u3N-3a-97w">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="dVs-7k-zeJ" style="IBUITableViewCellStyleDefault" id="HHU-Ju-BtM">
<rect key="frame" x="0.0" y="223.5" width="320" height="44"/>
<rect key="frame" x="0.0" y="267.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="HHU-Ju-BtM" id="CqF-qp-HgQ">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
@@ -115,7 +137,7 @@
<tableViewSection footerTitle="" id="DVR-sH-TdL">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="g6W-FX-yYa" style="IBUITableViewCellStyleDefault" id="gMm-4C-5X3">
<rect key="frame" x="0.0" y="303.5" width="320" height="44"/>
<rect key="frame" x="0.0" y="347.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="gMm-4C-5X3" id="mVT-2h-5kM">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
@@ -132,7 +154,7 @@
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="Fe5-tr-fWm" style="IBUITableViewCellStyleDefault" id="F4i-eC-hQ6">
<rect key="frame" x="0.0" y="347.5" width="320" height="44"/>
<rect key="frame" x="0.0" y="391.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="F4i-eC-hQ6" id="gU6-0E-hOf">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
@@ -149,7 +171,7 @@
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="xMw-wC-igF" style="IBUITableViewCellStyleDefault" id="K5r-jy-Dzl">
<rect key="frame" x="0.0" y="391.5" width="320" height="44"/>
<rect key="frame" x="0.0" y="435.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="K5r-jy-Dzl" id="UIr-IB-yu1">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
@@ -166,7 +188,7 @@
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="default" accessoryType="disclosureIndicator" indentationWidth="10" textLabel="wyO-AY-ccm" style="IBUITableViewCellStyleDefault" id="bge-GA-6p8">
<rect key="frame" x="0.0" y="435.5" width="320" height="44"/>
<rect key="frame" x="0.0" y="479.5" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="bge-GA-6p8" id="JXA-Ff-hkB">
<rect key="frame" x="0.0" y="0.0" width="293" height="44"/>
@@ -187,20 +209,20 @@
<tableViewSection headerTitle="Secret Advanced Debugging Options" footerTitle="Warning: Changing these can break everything! If that happens, there's a reset switch in the Settings app." id="d0T-DL-SuP">
<cells>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="RKb-ed-FOs" userLabel="Init Command">
<rect key="frame" x="0.0" y="547" width="320" height="44"/>
<rect key="frame" x="0.0" y="591" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="RKb-ed-FOs" id="I4F-81-mWS">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" multipleTouchEnabled="YES" contentMode="left" horizontalHuggingPriority="1000" insetsLayoutMarginsFromSafeArea="NO" text="Launch cmd" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="G8D-8d-aOp">
<rect key="frame" x="16" y="11.5" width="94.5" height="21"/>
<rect key="frame" x="8" y="11.5" width="94.5" height="21"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="/bin/login -f root" adjustsFontSizeToFit="NO" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="gDx-hv-hhV">
<rect key="frame" x="122.5" y="13" width="181.5" height="18"/>
<rect key="frame" x="114.5" y="13" width="197.5" height="18"/>
<fontDescription key="fontDescription" name="Menlo-Regular" family="Menlo" pointSize="14"/>
<textInputTraits key="textInputTraits" autocorrectionType="no" spellCheckingType="no" keyboardType="alphabet" returnKeyType="done" smartDashesType="no" smartInsertDeleteType="no" smartQuotesType="no"/>
<connections>
@@ -219,7 +241,7 @@
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="none" indentationWidth="10" id="Xc7-9V-RXm" userLabel="Boot Command">
<rect key="frame" x="0.0" y="591" width="320" height="44"/>
<rect key="frame" x="0.0" y="635" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="Xc7-9V-RXm" id="IEt-PC-8fZ">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
@@ -251,7 +273,7 @@
</tableViewCellContentView>
</tableViewCell>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" preservesSuperviewLayoutMargins="YES" selectionStyle="blue" indentationWidth="10" textLabel="83j-2z-XRR" style="IBUITableViewCellStyleDefault" id="OIE-9g-Btx" userLabel="Export">
<rect key="frame" x="0.0" y="635" width="320" height="44"/>
<rect key="frame" x="0.0" y="679" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" preservesSuperviewLayoutMargins="YES" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="OIE-9g-Btx" id="uY3-tT-dwz">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
@@ -473,7 +495,145 @@
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="XlH-jX-0dL" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1073" y="-15"/>
<point key="canvasLocation" x="1058" y="430"/>
</scene>
<!--App Icon-->
<scene sceneID="jc8-Gv-xpK">
<objects>
<viewController title="App Icon" id="cfv-rk-mN1" customClass="AltIconViewController" sceneMemberID="viewController">
<view key="view" contentMode="scaleToFill" id="bZC-Ac-YDX">
<rect key="frame" x="0.0" y="0.0" width="320" height="548"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<collectionView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" dataMode="prototypes" translatesAutoresizingMaskIntoConstraints="NO" id="wGQ-0K-Rcg">
<rect key="frame" x="0.0" y="56" width="320" height="492"/>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<collectionViewFlowLayout key="collectionViewLayout" automaticEstimatedItemSize="YES" minimumLineSpacing="20" minimumInteritemSpacing="0.0" id="zz1-Bs-CFW">
<size key="itemSize" width="120" height="120"/>
<size key="headerReferenceSize" width="0.0" height="0.0"/>
<size key="footerReferenceSize" width="50" height="50"/>
<inset key="sectionInset" minX="30" minY="30" maxX="30" maxY="30"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="boolean" keyPath="sectionFootersPinToVisibleBounds" value="YES"/>
</userDefinedRuntimeAttributes>
</collectionViewFlowLayout>
<cells>
<collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="icon" id="S3m-Be-XtT" customClass="AltIconCell">
<rect key="frame" x="30" y="30" width="120" height="175.5"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<collectionViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="IWa-a1-skf">
<rect key="frame" x="0.0" y="0.0" width="120" height="175.5"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="9aw-Kk-k95">
<rect key="frame" x="0.0" y="0.0" width="120" height="120"/>
<constraints>
<constraint firstAttribute="width" constant="120" id="2sn-wy-ZoN"/>
<constraint firstAttribute="height" constant="120" id="Zde-qc-BM8"/>
</constraints>
</imageView>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Description" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontForContentSizeCategory="YES" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="L8N-WR-seO">
<rect key="frame" x="0.0" y="128" width="120" height="20.5"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleHeadline"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="Checkbox" translatesAutoresizingMaskIntoConstraints="NO" id="cAC-0O-uY6">
<rect key="frame" x="74" y="74" width="38" height="38"/>
<constraints>
<constraint firstAttribute="width" constant="38" id="WO8-mB-47S"/>
<constraint firstAttribute="height" constant="38" id="fG2-qK-0uJ"/>
</constraints>
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WNa-qg-ZN5">
<rect key="frame" x="0.0" y="148.5" width="120" height="27"/>
<fontDescription key="fontDescription" style="UICTFontTextStyleCaption1"/>
<state key="normal" title="by @author"/>
<connections>
<action selector="openSource:" destination="S3m-Be-XtT" eventType="primaryActionTriggered" id="YSV-x5-8bZ"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="9aw-Kk-k95" firstAttribute="bottom" secondItem="cAC-0O-uY6" secondAttribute="bottom" constant="8" id="1Nx-lw-WeM"/>
<constraint firstAttribute="trailing" secondItem="WNa-qg-ZN5" secondAttribute="trailing" id="1QP-qJ-bqg"/>
<constraint firstItem="9aw-Kk-k95" firstAttribute="top" secondItem="IWa-a1-skf" secondAttribute="top" id="79p-Wm-2JF"/>
<constraint firstItem="L8N-WR-seO" firstAttribute="leading" secondItem="IWa-a1-skf" secondAttribute="leading" id="7aw-Xv-bcY"/>
<constraint firstItem="WNa-qg-ZN5" firstAttribute="top" secondItem="L8N-WR-seO" secondAttribute="bottom" id="B7h-4W-Kad"/>
<constraint firstAttribute="trailing" secondItem="L8N-WR-seO" secondAttribute="trailing" id="Itz-cf-WxT"/>
<constraint firstItem="L8N-WR-seO" firstAttribute="top" secondItem="9aw-Kk-k95" secondAttribute="bottom" constant="8" symbolic="YES" id="P1X-sO-yLj"/>
<constraint firstItem="9aw-Kk-k95" firstAttribute="leading" secondItem="IWa-a1-skf" secondAttribute="leading" id="aFx-qK-TC2"/>
<constraint firstAttribute="bottom" secondItem="WNa-qg-ZN5" secondAttribute="bottom" id="aGh-9T-AGA"/>
<constraint firstItem="WNa-qg-ZN5" firstAttribute="leading" secondItem="IWa-a1-skf" secondAttribute="leading" id="cdk-fK-xdr"/>
<constraint firstAttribute="trailing" secondItem="9aw-Kk-k95" secondAttribute="trailing" id="jeT-pz-ZFy"/>
<constraint firstAttribute="trailing" secondItem="cAC-0O-uY6" secondAttribute="trailing" constant="8" id="l0V-Kb-Ul1"/>
</constraints>
</collectionViewCellContentView>
<connections>
<outlet property="authorButton" destination="WNa-qg-ZN5" id="3mb-95-R06"/>
<outlet property="checkboxImageView" destination="cAC-0O-uY6" id="9Jd-uf-T9P"/>
<outlet property="descriptionLabel" destination="L8N-WR-seO" id="4Ku-3c-ZsI"/>
<outlet property="imageView" destination="9aw-Kk-k95" id="tW1-tN-k8G"/>
</connections>
</collectionViewCell>
</cells>
<collectionReusableView key="sectionFooterView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" reuseIdentifier="footer" id="lNw-1e-UqP">
<rect key="frame" x="0.0" y="235.5" width="320" height="50"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<visualEffectView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="L98-Nf-4Wv">
<rect key="frame" x="0.0" y="0.0" width="320" height="50"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="qL6-vf-qc3">
<rect key="frame" x="0.0" y="0.0" width="320" height="50"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="E9e-hb-zQw">
<rect key="frame" x="8" y="8" width="304" height="34"/>
<state key="normal" title="Submit your own icon!"/>
<connections>
<action selector="openSubmissions:" destination="cfv-rk-mN1" eventType="primaryActionTriggered" id="d9r-k6-6Vz"/>
</connections>
</button>
</subviews>
<constraints>
<constraint firstItem="E9e-hb-zQw" firstAttribute="leading" secondItem="qL6-vf-qc3" secondAttribute="leading" constant="8" id="07g-r1-yQe"/>
<constraint firstAttribute="bottom" secondItem="E9e-hb-zQw" secondAttribute="bottom" constant="8" id="1Nw-tH-oGL"/>
<constraint firstAttribute="trailing" secondItem="E9e-hb-zQw" secondAttribute="trailing" constant="8" id="Mr4-0C-09T"/>
<constraint firstItem="E9e-hb-zQw" firstAttribute="top" secondItem="qL6-vf-qc3" secondAttribute="top" constant="8" id="wcu-3V-6BT"/>
</constraints>
</view>
<blurEffect style="regular"/>
</visualEffectView>
</subviews>
<constraints>
<constraint firstItem="L98-Nf-4Wv" firstAttribute="leading" secondItem="lNw-1e-UqP" secondAttribute="leading" id="6Rs-ht-afI"/>
<constraint firstAttribute="trailing" secondItem="L98-Nf-4Wv" secondAttribute="trailing" id="F9n-YU-6bs"/>
<constraint firstItem="L98-Nf-4Wv" firstAttribute="top" secondItem="lNw-1e-UqP" secondAttribute="top" id="b2D-gK-294"/>
<constraint firstAttribute="bottom" secondItem="L98-Nf-4Wv" secondAttribute="bottom" id="yy8-dN-Lqd"/>
</constraints>
</collectionReusableView>
<connections>
<outlet property="dataSource" destination="cfv-rk-mN1" id="Ejj-y8-k4C"/>
<outlet property="delegate" destination="cfv-rk-mN1" id="LaN-3H-ht3"/>
</connections>
</collectionView>
</subviews>
<color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
<constraints>
<constraint firstItem="wGQ-0K-Rcg" firstAttribute="top" secondItem="G6v-G0-r5a" secondAttribute="top" id="ECg-8n-6xl"/>
<constraint firstItem="wGQ-0K-Rcg" firstAttribute="trailing" secondItem="G6v-G0-r5a" secondAttribute="trailing" id="JXu-0v-zd6"/>
<constraint firstItem="wGQ-0K-Rcg" firstAttribute="leading" secondItem="G6v-G0-r5a" secondAttribute="leading" id="o7s-il-U4s"/>
<constraint firstItem="G6v-G0-r5a" firstAttribute="bottom" secondItem="wGQ-0K-Rcg" secondAttribute="bottom" id="pTK-0F-HyJ"/>
</constraints>
<viewLayoutGuide key="safeArea" id="G6v-G0-r5a"/>
</view>
<connections>
<outlet property="collectionView" destination="wGQ-0K-Rcg" id="GJB-nY-8gE"/>
</connections>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="wE1-cE-kl7" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1057.5" y="1132.3943661971832"/>
</scene>
<!--Appearance-->
<scene sceneID="Sh1-9Z-h4V">
@@ -579,7 +739,7 @@
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="qup-pC-GMP" userLabel="First Responder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1058" y="725"/>
<point key="canvasLocation" x="1058" y="-274"/>
</scene>
<!--Font-->
<scene sceneID="qlT-r4-5Rb">
@@ -615,7 +775,7 @@
</tableViewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="LW4-gI-8cW" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="1770" y="725"/>
<point key="canvasLocation" x="1766" y="-275"/>
</scene>
<!--About Navigation Controller-->
<scene sceneID="Vga-Xh-1SC">
@@ -649,4 +809,8 @@
<point key="canvasLocation" x="292" y="641"/>
</scene>
</scenes>
<resources>
<image name="Checkbox" width="117" height="119"/>
<image name="icon.png" width="1024" height="1024"/>
</resources>
</document>
+51
View File
@@ -0,0 +1,51 @@
<?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></key>
<dict>
<key>description</key>
<string>Default</string>
<key>author</key>
<string>@tbodt</string>
<key>link</key>
<string>https://twitter.com/tblodt</string>
</dict>
<key>ihash1</key>
<dict>
<key>description</key>
<string>i#</string>
<key>author</key>
<string>@01010101lzy</string>
<key>link</key>
<string>https://github.com/tbodt/ish/issues/578#issuecomment-562960935</string>
</dict>
<key>uninspired</key>
<dict>
<key>description</key>
<string>uninspired</string>
<key>author</key>
<string>@saagarjha</string>
<key>link</key>
<string>https://github.com/tbodt/ish/issues/578#issuecomment-562906800</string>
</dict>
<key>pydann2</key>
<dict>
<key>description</key>
<string>&gt;| Light</string>
<key>author</key>
<string>@PyDann</string>
<key>link</key>
<string>https://github.com/tbodt/ish/issues/578#issuecomment-562897067</string>
</dict>
<key>pydann1</key>
<dict>
<key>description</key>
<string>&gt;| Dark</string>
<key>author</key>
<string>@PyDann</string>
<key>link</key>
<string>https://github.com/tbodt/ish/issues/578#issuecomment-562897067</string>
</dict>
</dict>
</plist>
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

+79 -4
View File
@@ -6,6 +6,81 @@
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIcons</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>ihash1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>ihash1</string>
</array>
</dict>
<key>pydann1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>pydann1</string>
</array>
</dict>
<key>pydann2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>pydann2</string>
</array>
</dict>
<key>uninspired</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>uninspired</string>
</array>
</dict>
</dict>
<key>CFBundlePrimaryIcon</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>icon</string>
</array>
</dict>
</dict>
<key>CFBundleIcons~ipad</key>
<dict>
<key>CFBundleAlternateIcons</key>
<dict>
<key>ihash1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>ihash1</string>
</array>
</dict>
<key>pydann1</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>pydann1</string>
</array>
</dict>
<key>pydann2</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>pydann2</string>
</array>
</dict>
<key>uninspired</key>
<dict>
<key>CFBundleIconFiles</key>
<array>
<string>uninspired</string>
</array>
</dict>
</dict>
</dict>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
@@ -32,6 +107,8 @@
</array>
<key>UIApplicationSceneManifest</key>
<dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
<key>UISceneConfigurations</key>
<dict>
<key>UIWindowSceneSessionRoleApplication</key>
@@ -39,17 +116,15 @@
<dict>
<key>UISceneClassName</key>
<string>UIWindowScene</string>
<key>UISceneDelegateClassName</key>
<string>SceneDelegate</string>
<key>UISceneConfigurationName</key>
<string>Main App</string>
<key>UISceneDelegateClassName</key>
<string>SceneDelegate</string>
<key>UISceneStoryboardFile</key>
<string>Terminal</string>
</dict>
</array>
</dict>
<key>UIApplicationSupportsMultipleScenes</key>
<true/>
</dict>
<key>UIBackgroundModes</key>
<array>
+38
View File
@@ -11,6 +11,11 @@
650B337422EA235C00B4C03E /* PasteboardDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = 650B337322EA235C00B4C03E /* PasteboardDevice.m */; };
8632A7BF219A59FB00F02325 /* UserPreferences.m in Sources */ = {isa = PBXBuildFile; fileRef = 8632A7BE219A59FB00F02325 /* UserPreferences.m */; };
9A28E4EA219A8B670073D200 /* AboutAppearanceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 9A28E4E9219A8B670073D200 /* AboutAppearanceViewController.m */; };
BB0F552E239F8A790032A2A1 /* Icons.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB0F552D239F8A790032A2A1 /* Icons.plist */; };
BB0F5530239F8B360032A2A1 /* uninspired.png in Resources */ = {isa = PBXBuildFile; fileRef = BB0F552F239F8B360032A2A1 /* uninspired.png */; };
BB0F553223A0AB9C0032A2A1 /* pydann1.png in Resources */ = {isa = PBXBuildFile; fileRef = BB0F553123A0AB9B0032A2A1 /* pydann1.png */; };
BB0F553423A0AC760032A2A1 /* ihash1.png in Resources */ = {isa = PBXBuildFile; fileRef = BB0F553323A0AC760032A2A1 /* ihash1.png */; };
BB0F553623A0ACFC0032A2A1 /* pydann2.png in Resources */ = {isa = PBXBuildFile; fileRef = BB0F553523A0ACFC0032A2A1 /* pydann2.png */; };
BB0FC5921F980A6C00803272 /* Terminal.m in Sources */ = {isa = PBXBuildFile; fileRef = BB0FC5911F980A6B00803272 /* Terminal.m */; };
BB101B382364CF57000A93BC /* FontPickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB101B372364CF57000A93BC /* FontPickerViewController.m */; };
BB10E5C3248DBA7B009C7A74 /* fakefsify.c in Sources */ = {isa = PBXBuildFile; fileRef = BB10E5C2248DBA7B009C7A74 /* fakefsify.c */; };
@@ -19,10 +24,12 @@
BB10E5D0248DC21D009C7A74 /* Roots.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = BB10E5CF248DC21D009C7A74 /* Roots.storyboard */; };
BB10E5D3248DCFEA009C7A74 /* RootsTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB10E5D2248DCFEA009C7A74 /* RootsTableViewController.m */; };
BB13F7EA200ADCED003D1C4D /* libish.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BB13F7DC200AD81D003D1C4D /* libish.a */; };
BB1B9A4323A5E96900414052 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = BB1B9A4223A5E96900414052 /* icon.png */; };
BB1D9D93234A8FE100F364E8 /* AboutNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB1D9D92234A8FE100F364E8 /* AboutNavigationController.m */; };
BB235534235D488500139E00 /* LocationDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = BB235533235D488400139E00 /* LocationDevice.m */; };
BB235537235D49B300139E00 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB235536235D49B300139E00 /* CoreLocation.framework */; };
BB23F58D231E1D1400585522 /* ScrollbarView.m in Sources */ = {isa = PBXBuildFile; fileRef = BB23F58C231E1D1400585522 /* ScrollbarView.m */; };
BB267FA623A48F1500ED7CAF /* AltIconViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = BB267FA523A48F1500ED7CAF /* AltIconViewController.m */; };
BB2B4DAC231D94C300CB578B /* hterm_all.js in Resources */ = {isa = PBXBuildFile; fileRef = BB2B4DAB231D94C300CB578B /* hterm_all.js */; };
BB2B4DAD231D998300CB578B /* term.js in Resources */ = {isa = PBXBuildFile; fileRef = BB4A539C1FAA490C00A72ACE /* term.js */; };
BB2B4DAE231D998300CB578B /* term.css in Resources */ = {isa = PBXBuildFile; fileRef = BB4A53AF1FAA787900A72ACE /* term.css */; };
@@ -139,6 +146,11 @@
8632A7BE219A59FB00F02325 /* UserPreferences.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UserPreferences.m; sourceTree = "<group>"; };
9A28E4E8219A8B670073D200 /* AboutAppearanceViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AboutAppearanceViewController.h; sourceTree = "<group>"; };
9A28E4E9219A8B670073D200 /* AboutAppearanceViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AboutAppearanceViewController.m; sourceTree = "<group>"; };
BB0F552D239F8A790032A2A1 /* Icons.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Icons.plist; sourceTree = "<group>"; };
BB0F552F239F8B360032A2A1 /* uninspired.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = uninspired.png; sourceTree = "<group>"; };
BB0F553123A0AB9B0032A2A1 /* pydann1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pydann1.png; sourceTree = "<group>"; };
BB0F553323A0AC760032A2A1 /* ihash1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ihash1.png; sourceTree = "<group>"; };
BB0F553523A0ACFC0032A2A1 /* pydann2.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = pydann2.png; sourceTree = "<group>"; };
BB0FC5901F980A6B00803272 /* Terminal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Terminal.h; sourceTree = "<group>"; };
BB0FC5911F980A6B00803272 /* Terminal.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Terminal.m; sourceTree = "<group>"; };
BB101B362364CF57000A93BC /* FontPickerViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FontPickerViewController.h; sourceTree = "<group>"; };
@@ -178,6 +190,7 @@
BB13F4DD21C5770000343E17 /* NSError+ISHErrno.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSError+ISHErrno.m"; sourceTree = "<group>"; };
BB13F7C8200ACC24003D1C4D /* xcode-meson.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = "xcode-meson.sh"; sourceTree = "<group>"; };
BB13F7DC200AD81D003D1C4D /* libish.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libish.a; sourceTree = BUILT_PRODUCTS_DIR; };
BB1B9A4223A5E96900414052 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon.png; path = app/Icons/icon.png; sourceTree = SOURCE_ROOT; };
BB1D9D91234A8FE100F364E8 /* AboutNavigationController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AboutNavigationController.h; sourceTree = "<group>"; };
BB1D9D92234A8FE100F364E8 /* AboutNavigationController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AboutNavigationController.m; sourceTree = "<group>"; };
BB235533235D488400139E00 /* LocationDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LocationDevice.m; sourceTree = "<group>"; };
@@ -185,6 +198,8 @@
BB235536235D49B300139E00 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; };
BB23F58B231E1D1400585522 /* ScrollbarView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScrollbarView.h; sourceTree = "<group>"; };
BB23F58C231E1D1400585522 /* ScrollbarView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScrollbarView.m; sourceTree = "<group>"; };
BB267FA423A48F1500ED7CAF /* AltIconViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AltIconViewController.h; sourceTree = "<group>"; };
BB267FA523A48F1500ED7CAF /* AltIconViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AltIconViewController.m; sourceTree = "<group>"; };
BB2B4DAB231D94C300CB578B /* hterm_all.js */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.javascript; name = hterm_all.js; path = ../../deps/libapps/hterm/dist/js/hterm_all.js; sourceTree = "<group>"; };
BB2D71082354244700A10D1E /* darwin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = darwin.c; sourceTree = "<group>"; };
BB2D71092354244700A10D1E /* linux.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = linux.c; sourceTree = "<group>"; };
@@ -417,6 +432,19 @@
name = Scripts;
sourceTree = "<group>";
};
BB1B9A4123A5E92A00414052 /* Icons */ = {
isa = PBXGroup;
children = (
BB0F552D239F8A790032A2A1 /* Icons.plist */,
BB1B9A4223A5E96900414052 /* icon.png */,
BB0F552F239F8B360032A2A1 /* uninspired.png */,
BB0F553123A0AB9B0032A2A1 /* pydann1.png */,
BB0F553523A0ACFC0032A2A1 /* pydann2.png */,
BB0F553323A0AC760032A2A1 /* ihash1.png */,
);
path = Icons;
sourceTree = "<group>";
};
BB235532235D472F00139E00 /* Devices */ = {
isa = PBXGroup;
children = (
@@ -516,6 +544,7 @@
BBFB557221586C6600DFE6DE /* Utilities */,
BBBF7B5B2415CDBB00EC4C14 /* Settings.bundle */,
BB792B5C1F96D90D00FFB7A4 /* Assets.xcassets */,
BB1B9A4123A5E92A00414052 /* Icons */,
BB792B5E1F96D90D00FFB7A4 /* LaunchScreen.storyboard */,
BB792B611F96D90D00FFB7A4 /* Info.plist */,
BB792B621F96D90D00FFB7A4 /* main.m */,
@@ -777,6 +806,8 @@
BB101B372364CF57000A93BC /* FontPickerViewController.m */,
BB82A7FB21B4C2E8006AA5FD /* AboutExternalKeyboardViewController.h */,
BB82A7FC21B4C2E8006AA5FD /* AboutExternalKeyboardViewController.m */,
BB267FA423A48F1500ED7CAF /* AltIconViewController.h */,
BB267FA523A48F1500ED7CAF /* AltIconViewController.m */,
);
name = About;
sourceTree = "<group>";
@@ -975,14 +1006,20 @@
BB792B5D1F96D90D00FFB7A4 /* Assets.xcassets in Resources */,
BB792B601F96D90D00FFB7A4 /* LaunchScreen.storyboard in Resources */,
BBBF7B5C2415CDBB00EC4C14 /* Settings.bundle in Resources */,
BB0F553223A0AB9C0032A2A1 /* pydann1.png in Resources */,
BBBCE7E321D2F02200CA00B3 /* About.storyboard in Resources */,
BB792B5B1F96D90D00FFB7A4 /* Terminal.storyboard in Resources */,
BB0F552E239F8A790032A2A1 /* Icons.plist in Resources */,
BB0F5530239F8B360032A2A1 /* uninspired.png in Resources */,
BB0F553623A0ACFC0032A2A1 /* pydann2.png in Resources */,
BB0F553423A0AC760032A2A1 /* ihash1.png in Resources */,
BB2B4DAF231D998300CB578B /* term.html in Resources */,
BB10E5D0248DC21D009C7A74 /* Roots.storyboard in Resources */,
BBCE66E2249A807700F45269 /* alpine.tar.gz in Resources */,
BB2B4DAC231D94C300CB578B /* hterm_all.js in Resources */,
BB2B4DAE231D998300CB578B /* term.css in Resources */,
BB2B4DAD231D998300CB578B /* term.js in Resources */,
BB1B9A4323A5E96900414052 /* icon.png in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1050,6 +1087,7 @@
buildActionMask = 2147483647;
files = (
9A28E4EA219A8B670073D200 /* AboutAppearanceViewController.m in Sources */,
BB267FA623A48F1500ED7CAF /* AltIconViewController.m in Sources */,
BB1D9D93234A8FE100F364E8 /* AboutNavigationController.m in Sources */,
BB235534235D488500139E00 /* LocationDevice.m in Sources */,
BB792B581F96D90D00FFB7A4 /* TerminalViewController.m in Sources */,