mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 03:04:00 +00:00
Chord editing mostly works again
This commit is contained in:
parent
74a6637574
commit
50da584417
2
English.lproj/VLDocument.nib/classes.nib
generated
2
English.lproj/VLDocument.nib/classes.nib
generated
|
@ -7,7 +7,7 @@
|
|||
ACTIONS = {hideFieldEditor = id; setDivisions = id; setKey = id; setTime = id; };
|
||||
CLASS = VLSheetView;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {fChords = id; fFieldBeingEdited = id; fFieldEditor = id; };
|
||||
OUTLETS = {fFieldEditor = id; };
|
||||
SUPERCLASS = NSView;
|
||||
}
|
||||
);
|
||||
|
|
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
Binary file not shown.
|
@ -6,13 +6,23 @@
|
|||
// Copyright __MyCompanyName__ 2005 . All rights reserved.
|
||||
//
|
||||
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "VLModel.h"
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
@interface VLEditable : NSObject
|
||||
{
|
||||
}
|
||||
|
||||
- (NSString *) stringValue;
|
||||
- (void) setStringValue:(NSString*)val;
|
||||
- (BOOL) validValue:(NSString*)val;
|
||||
|
||||
@end
|
||||
|
||||
@interface VLDocument : NSDocument
|
||||
{
|
||||
VLSong * song;
|
||||
VLEditable *editTarget;
|
||||
}
|
||||
|
||||
- (VLSong *) song;
|
||||
|
@ -23,4 +33,5 @@
|
|||
- (void) setKey:(int)key transpose:(BOOL)transpose;
|
||||
- (void) setTimeNum:(int)num denom:(int)denom;
|
||||
- (void) setDivisions:(int)divisions;
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,6 +8,24 @@
|
|||
|
||||
#import "VLDocument.h"
|
||||
|
||||
@implementation VLEditable
|
||||
|
||||
- (NSString *) stringValue
|
||||
{
|
||||
return @"";
|
||||
}
|
||||
|
||||
- (void) setStringValue:(NSString*)val
|
||||
{
|
||||
}
|
||||
|
||||
- (BOOL) validValue:(NSString*)val
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation VLDocument
|
||||
|
||||
- (id)init
|
||||
|
@ -18,7 +36,8 @@
|
|||
// Add your subclass-specific initialization here.
|
||||
// If an error occurs here, send a [self release] message and return nil.
|
||||
|
||||
song = new VLSong;
|
||||
song = new VLSong;
|
||||
editTarget = nil;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
|
|
@ -53,20 +53,18 @@ enum VLRegion {
|
|||
float fDisplayScale;
|
||||
NSPoint fLastNoteCenter;
|
||||
NSTrackingRectTag fCursorTracking;
|
||||
VLRegion fCursorRegion;
|
||||
int fCursorMeasure;
|
||||
VLFract fCursorAt;
|
||||
int fCursorPitch;
|
||||
id fFieldBeingEdited;
|
||||
|
||||
BOOL fShowFieldEditor;
|
||||
IBOutlet id fChords;
|
||||
IBOutlet id fFieldEditor;
|
||||
}
|
||||
|
||||
- (IBAction) setKey:(id)sender;
|
||||
- (IBAction) setTime:(id)sender;
|
||||
- (IBAction) setDivisions:(id)sender;
|
||||
- (IBAction) showFieldEditor:(id)sender withAction:(SEL)selector;
|
||||
- (IBAction) hideFieldEditor:(id)sender;
|
||||
|
||||
- (VLDocument *) document;
|
||||
|
@ -83,6 +81,8 @@ enum VLRegion {
|
|||
- (void) mouseEntered:(NSEvent *)event;
|
||||
- (void) mouseExited:(NSEvent *)event;
|
||||
|
||||
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor;
|
||||
|
||||
@end
|
||||
|
||||
// Local Variables:
|
||||
|
|
|
@ -346,15 +346,6 @@ static float sFlatPos[] = {
|
|||
[self setNeedsDisplay: YES];
|
||||
}
|
||||
|
||||
- (IBAction)showFieldEditor:(id)sender withAction:(SEL)selector
|
||||
{
|
||||
fFieldBeingEdited = sender;
|
||||
[fFieldEditor setObjectValue:[sender title]];
|
||||
[fFieldEditor setAction:selector];
|
||||
[self setValue: [NSNumber numberWithBool:YES]
|
||||
forKey: @"fShowFieldEditor"];
|
||||
}
|
||||
|
||||
- (IBAction)hideFieldEditor:(id)sender
|
||||
{
|
||||
[fFieldEditor setAction:nil];
|
||||
|
@ -386,14 +377,14 @@ static int sSemiToPitch[] = {
|
|||
loc = [self convertPoint:loc fromView:nil];
|
||||
|
||||
if (loc.y < 0.0f || loc.y >= fNumSystems*kSystemH)
|
||||
return kRegionNowhere;
|
||||
return fCursorRegion = kRegionNowhere;
|
||||
|
||||
int system = fNumSystems - static_cast<int>(loc.y / kSystemH) - 1;
|
||||
loc.y = fmodf(loc.y, kSystemH);
|
||||
|
||||
loc.x -= fClefKeyW;
|
||||
if (loc.x < 0.0f || loc.x >= fMeasPerSystem*fMeasureW)
|
||||
return kRegionNowhere;
|
||||
return fCursorRegion = kRegionNowhere;
|
||||
|
||||
int measure = static_cast<int>(loc.x / fMeasureW);
|
||||
loc.x -= measure*fMeasureW;
|
||||
|
@ -404,16 +395,25 @@ static int sSemiToPitch[] = {
|
|||
fCursorAt = VLFraction(div+group*fDivPerGroup, 4*prop.fDivisions);
|
||||
fCursorMeasure = measure+system*fMeasPerSystem;
|
||||
|
||||
if (loc.y >= kSystemY+kChordY)
|
||||
return kRegionChord;
|
||||
else if (loc.y < kSystemY+kLyricsY)
|
||||
return kRegionLyrics;
|
||||
if (fCursorMeasure > [self song]->fMeasures.size())
|
||||
return fCursorRegion = kRegionNowhere;
|
||||
|
||||
if (loc.y >= kSystemY+kChordY) {
|
||||
//
|
||||
// Chord, round to quarters
|
||||
//
|
||||
int scale = fCursorAt.fDenom / 4;
|
||||
fCursorAt = VLFraction(fCursorAt.fNum / scale, 4);
|
||||
return fCursorRegion = kRegionChord;
|
||||
} else if (loc.y < kSystemY+kLyricsY) {
|
||||
return fCursorRegion = kRegionLyrics;
|
||||
}
|
||||
|
||||
loc.y -= kSystemY+kSemiFloor;
|
||||
int semi = static_cast<int>(roundf(loc.y / (0.5f*kLineH)));
|
||||
fCursorPitch = sSemiToPitch[semi];
|
||||
|
||||
return kRegionNote;
|
||||
return fCursorRegion = kRegionNote;
|
||||
}
|
||||
|
||||
- (void) mouseMoved:(NSEvent *)event
|
||||
|
@ -446,6 +446,9 @@ static int sSemiToPitch[] = {
|
|||
case kRegionNote:
|
||||
[self addNoteAtCursor];
|
||||
break;
|
||||
case kRegionChord:
|
||||
[self editChord];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -470,4 +473,11 @@ static int sSemiToPitch[] = {
|
|||
}
|
||||
}
|
||||
|
||||
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
|
||||
{
|
||||
VLDocument * doc = [self document];
|
||||
VLEditable * editable = [[self document] valueForKey: @"editTarget"];
|
||||
return [editable validValue:[fFieldEditor stringValue]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
|
||||
@interface VLSheetView (Chords)
|
||||
|
||||
- (IBAction) editChord:(id)sender;
|
||||
- (IBAction) doneEditingChord:(id)sender;
|
||||
|
||||
- (void) editChord;
|
||||
- (void) drawChordsForSystem:(int)system;
|
||||
|
||||
@end
|
||||
|
|
|
@ -12,10 +12,49 @@
|
|||
|
||||
#import "VLModel.h"
|
||||
#import "VLSoundOut.h"
|
||||
#import "VLDocument.h"
|
||||
|
||||
@implementation VLSheetView (Chords)
|
||||
std::string NormalizeName(NSString* rawName)
|
||||
{
|
||||
std::string chordName =
|
||||
(const char *)[[rawName lowercaseString] UTF8String];
|
||||
//
|
||||
// Normalize # and b
|
||||
//
|
||||
for (;;) {
|
||||
size_t found;
|
||||
|
||||
- (NSAttributedString *) attributedStringWithCppString:(const std::string &)s
|
||||
found = chordName.find("\xE2\x99\xAF", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, '#');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find("\xE2\x99\xAD", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, 'b');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find(" ", 0, 1);
|
||||
if (found != std::string::npos) {
|
||||
chordName.erase(found);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return chordName;
|
||||
}
|
||||
|
||||
@interface NSAttributedString (Chords)
|
||||
|
||||
+ (NSAttributedString *) attributedStringWithCppString:(const std::string &)s
|
||||
attributes:(NSDictionary *)a;
|
||||
|
||||
@end
|
||||
|
||||
@implementation NSAttributedString (Chords)
|
||||
|
||||
+ (NSAttributedString *) attributedStringWithCppString:(const std::string &)s
|
||||
attributes:(NSDictionary *)a
|
||||
{
|
||||
return [[[NSAttributedString alloc]
|
||||
|
@ -24,6 +63,98 @@
|
|||
autorelease];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface VLChordEditable : VLEditable {
|
||||
NSView * fView;
|
||||
VLSong * fSong;
|
||||
int fMeasure;
|
||||
VLFract fAt;
|
||||
}
|
||||
|
||||
- (VLChordEditable *)initWithView:(NSView *)view
|
||||
song:(VLSong *)song
|
||||
measure:(int)measure
|
||||
at:(VLFract)at;
|
||||
- (NSString *) stringValue;
|
||||
- (void) setStringValue:(NSString*)val;
|
||||
- (BOOL) validValue:(NSString*)val;
|
||||
|
||||
@end
|
||||
|
||||
@implementation VLChordEditable
|
||||
|
||||
- (VLChordEditable *)initWithView:(NSView *)view
|
||||
song:(VLSong *)song
|
||||
measure:(int)measure
|
||||
at:(VLFract)at;
|
||||
{
|
||||
self = [super init];
|
||||
fView = view;
|
||||
fSong = song;
|
||||
fMeasure= measure;
|
||||
fAt = at;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *) stringValue
|
||||
{
|
||||
const VLMeasure measure = fSong->fMeasures[fMeasure];
|
||||
const VLChordList & chords = measure.fChords;
|
||||
VLFraction at(0);
|
||||
for (VLChordList::const_iterator chord = chords.begin();
|
||||
chord != chords.end() && at <= fAt;
|
||||
++chord
|
||||
) {
|
||||
if (at == fAt && chord->fPitch != VLNote::kNoPitch) {
|
||||
//
|
||||
// Found it!
|
||||
//
|
||||
const VLProperties & prop = fSong->fProperties.front();
|
||||
std::string name, ext, root;
|
||||
chord->Name(name, ext, root, prop.fKey > 0);
|
||||
|
||||
return [NSString stringWithFormat:@"%s%s%s",
|
||||
name.c_str(), ext.c_str(),
|
||||
root.size() ? ("/"+root).c_str() : ""];
|
||||
}
|
||||
at += chord->fDuration;
|
||||
}
|
||||
return @"";
|
||||
}
|
||||
|
||||
- (void) setStringValue:(NSString *)val
|
||||
{
|
||||
std::string chordName = NormalizeName(val);
|
||||
if (!chordName.size()) {
|
||||
fSong->DelChord(fMeasure, fAt);
|
||||
} else {
|
||||
VLChord chord(chordName);
|
||||
VLSoundOut::Instance()->PlayChord(chord);
|
||||
fSong->AddChord(chord, fMeasure, fAt);
|
||||
[fView setNeedsDisplay:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (BOOL) validValue:(NSString *)val
|
||||
{
|
||||
std::string chordName = NormalizeName(val);
|
||||
if (!chordName.size())
|
||||
return YES;
|
||||
|
||||
//
|
||||
// Check for valid chord
|
||||
//
|
||||
VLChord chord(chordName);
|
||||
|
||||
return chord.fPitch != VLNote::kNoPitch;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation VLSheetView (Chords)
|
||||
|
||||
- (NSAttributedString *) stringWithChord:(const VLChord &)chord
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
|
@ -53,14 +184,14 @@
|
|||
NSMutableAttributedString * s =
|
||||
[[[NSMutableAttributedString alloc] init] autorelease];
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: name
|
||||
[NSAttributedString attributedStringWithCppString: name
|
||||
attributes: sBigFont]];
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: ext.size() ? ext : " "
|
||||
[NSAttributedString attributedStringWithCppString: ext.size() ? ext : " "
|
||||
attributes: sSuperFont]];
|
||||
if (root.size())
|
||||
[s appendAttributedString:
|
||||
[self attributedStringWithCppString: "/" + root
|
||||
[NSAttributedString attributedStringWithCppString: "/" + root
|
||||
attributes: sBigFont]];
|
||||
|
||||
return s;
|
||||
|
@ -68,7 +199,8 @@
|
|||
|
||||
- (void) drawChordsForSystem:(int)system
|
||||
{
|
||||
const VLSong * song = [self song];
|
||||
const VLSong * song = [self song];
|
||||
const float kSystemY = [self systemY:system];
|
||||
|
||||
//
|
||||
// Build new list
|
||||
|
@ -86,69 +218,25 @@
|
|||
) {
|
||||
NSAttributedString * chordName = [self stringWithChord:*chord];
|
||||
NSPoint chordLoc =
|
||||
NSMakePoint(kClefX+kClefW+(m+at)*fMeasureW+0.5f*kNoteW,
|
||||
NSMakePoint(fClefKeyW+(m+at)*fMeasureW+0.5f*kNoteW,
|
||||
kSystemY+kChordY);
|
||||
[chordName drawAtPoint:chordLoc];
|
||||
at += chord->fDuration;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction) editChord:(id)sender
|
||||
- (void) editChord
|
||||
{
|
||||
[self showFieldEditor:sender withAction:@selector(doneEditingChord:)];
|
||||
}
|
||||
|
||||
- (IBAction) doneEditingChord:(id)sender
|
||||
{
|
||||
VLSong * song = [self song];
|
||||
|
||||
std::string chordName =
|
||||
(const char *)[[[sender stringValue] lowercaseString] UTF8String];
|
||||
//
|
||||
// Normalize # and b
|
||||
//
|
||||
for (;;) {
|
||||
size_t found;
|
||||
|
||||
found = chordName.find("\xE2\x99\xAF", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, '#');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find("\xE2\x99\xAD", 0, 3);
|
||||
if (found != std::string::npos) {
|
||||
chordName.replace(found, 3, 1, 'b');
|
||||
continue;
|
||||
}
|
||||
found = chordName.find(" ", 0, 1);
|
||||
if (found != std::string::npos) {
|
||||
chordName.erase(found);
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
//
|
||||
// Check for valid chord
|
||||
//
|
||||
VLChord chord(chordName);
|
||||
if (!chordName.size()) {
|
||||
[sender setTextColor: [NSColor blackColor]];
|
||||
} else if (chord.fPitch == VLChord::kNoPitch) {
|
||||
if (chordName.size()) {
|
||||
NSBeep();
|
||||
[sender setTextColor: [NSColor redColor]];
|
||||
}
|
||||
int tag = [sender tag];
|
||||
song->DelChord(tag >> 8, VLFraction(tag & 0xFF, 4));
|
||||
} else {
|
||||
NSAttributedString * s = [self stringWithChord:chord];
|
||||
[sender setAttributedStringValue: s];
|
||||
[fFieldBeingEdited setTitle: s];
|
||||
[sender setTextColor: [NSColor blackColor]];
|
||||
VLSoundOut::Instance()->PlayChord(chord);
|
||||
int tag = [fFieldBeingEdited tag];
|
||||
song->AddChord(chord, tag >> 8, VLFraction(tag & 0xFF, 4));
|
||||
}
|
||||
VLDocument * doc= [self document];
|
||||
VLEditable * e =
|
||||
[[VLChordEditable alloc]
|
||||
initWithView:self
|
||||
song:[self song]
|
||||
measure:fCursorMeasure
|
||||
at:fCursorAt];
|
||||
[doc setValue:e forKey:@"editTarget"];
|
||||
[self setValue:[NSNumber numberWithBool:YES] forKey:@"fShowFieldEditor"];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -200,47 +200,7 @@
|
|||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95DFE83A0AD105A300375606</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>VLSheetView.mm</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95DFE83B0AD105A300375606</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>VLSheetView.mm</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>95DFE83E0AD105C900375606</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>95DFE8370AD1053A00375606</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||
<string>95B042FC0ACE431A00236B52</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
|
@ -262,117 +222,7 @@
|
|||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>242 153 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8130AB6908400EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>186 75 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>168 116 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8660AB6970400EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>15 148 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95B042FA0ACE431A00236B52</string>
|
||||
<string>95B042FB0ACE431A00236B52</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
|
@ -416,7 +266,7 @@
|
|||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95B042FB0ACE431A00236B52</string>
|
||||
<string>95B042FA0ACE431A00236B52</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
|
@ -438,7 +288,315 @@
|
|||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95B042FC0ACE431A00236B52</string>
|
||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8660AB6970400EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>15 148 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>168 116 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F8130AB6908400EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>186 75 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>242 153 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>15 148 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95DFE83A0AD105A300375606</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E725400AD25B5700407A9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E725560AD25CA500407A9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>164 91 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E725270AD2587900407A9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>15 148 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E7B5000AD2CBD800753F9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>15 148 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E7B51C0AD2CDC800753F9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>171 132 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E7B5280AD2CE8800753F9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>171 132 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E7B54E0AD2D12A00753F9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict/>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>Geometry</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 20}, {763, 552}}</string>
|
||||
<key>PBXModuleWindowStatusBarHidden2</key>
|
||||
<false/>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>171 132 763 593 0 0 1024 746 </string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Content</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>95E7B5510AD2D12A00753F9B</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
|
@ -490,6 +648,8 @@
|
|||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
@ -535,7 +695,7 @@
|
|||
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
|
||||
<array>
|
||||
<array>
|
||||
<integer>9</integer>
|
||||
<integer>4</integer>
|
||||
<integer>1</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
|
@ -605,8 +765,6 @@
|
|||
<string>0pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
|
@ -643,9 +801,9 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>95DFE81B0AD0F18B00375606</string>
|
||||
<string>95E7B4FB0AD2CBD800753F9B</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>95DFE81C0AD0F18B00375606</string>
|
||||
<string>95E7B4FC0AD2CBD800753F9B</string>
|
||||
<string>1CE0B20306471E060097A5F4</string>
|
||||
<string>1CE0B20506471E060097A5F4</string>
|
||||
</array>
|
||||
|
@ -779,24 +937,37 @@
|
|||
<integer>5</integer>
|
||||
<key>WindowOrderList</key>
|
||||
<array>
|
||||
<string>95DFE82C0AD0F29C00375606</string>
|
||||
<string>95DFE82D0AD0F29C00375606</string>
|
||||
<string>95DFE82E0AD0F29C00375606</string>
|
||||
<string>95B042FC0ACE431A00236B52</string>
|
||||
<string>95B042FB0ACE431A00236B52</string>
|
||||
<string>95B042F70ACE431A00236B52</string>
|
||||
<string>95B042FA0ACE431A00236B52</string>
|
||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||
<string>95D1F8660AB6970400EE6AC8</string>
|
||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||
<string>95D1F8130AB6908400EE6AC8</string>
|
||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<string>95E7B5B20AD2DA4F00753F9B</string>
|
||||
<string>95E7B5A10AD2D8EE00753F9B</string>
|
||||
<string>95E7B5A20AD2D8EE00753F9B</string>
|
||||
<string>95E7B56A0AD2D24400753F9B</string>
|
||||
<string>95E7B5510AD2D12A00753F9B</string>
|
||||
<string>95E7B54E0AD2D12A00753F9B</string>
|
||||
<string>1C530D57069F1CE1000CFCEE</string>
|
||||
<string>95E7B5280AD2CE8800753F9B</string>
|
||||
<string>95E7B51C0AD2CDC800753F9B</string>
|
||||
<string>95E7B5100AD2CC9400753F9B</string>
|
||||
<string>95E7B5110AD2CC9400753F9B</string>
|
||||
<string>95E7B5120AD2CC9400753F9B</string>
|
||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||
<string>/Development/Vocalese/Vocalese.xcodeproj</string>
|
||||
<string>95DFE83A0AD105A300375606</string>
|
||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||
<string>95E7B5000AD2CBD800753F9B</string>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<string>95E725270AD2587900407A9B</string>
|
||||
<string>95E725560AD25CA500407A9B</string>
|
||||
<string>95E725400AD25B5700407A9B</string>
|
||||
<string>95DFE83A0AD105A300375606</string>
|
||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
||||
<string>95D1F8130AB6908400EE6AC8</string>
|
||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
||||
<string>95D1F8660AB6970400EE6AC8</string>
|
||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
||||
<string>95B042FA0ACE431A00236B52</string>
|
||||
<string>95B042F70ACE431A00236B52</string>
|
||||
<string>95B042FB0ACE431A00236B52</string>
|
||||
<string>95B042FC0ACE431A00236B52</string>
|
||||
<string>/Development/Vocalese/Vocalese.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>167 326 690 397 0 0 1024 746 </string>
|
||||
|
@ -815,12 +986,14 @@
|
|||
<key>Dock</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>VLSheetView.mm</string>
|
||||
<string>VLSheetViewChords.mm</string>
|
||||
<key>StatusBarVisibility</key>
|
||||
<true/>
|
||||
</dict>
|
||||
|
@ -837,8 +1010,6 @@
|
|||
<string>293pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
|
@ -878,7 +1049,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||
<string>95DFE81D0AD0F18B00375606</string>
|
||||
<string>95E7B5010AD2CBD800753F9B</string>
|
||||
<string>1CD0528F0623707200166675</string>
|
||||
<string>XCMainBuildResultsModuleGUID</string>
|
||||
</array>
|
||||
|
@ -889,7 +1060,7 @@
|
|||
<key>WindowToolGUID</key>
|
||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||
<key>WindowToolIsVisible</key>
|
||||
<true/>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FirstTimeWindowDisplayed</key>
|
||||
|
@ -920,8 +1091,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {308, 203}}</string>
|
||||
<string>{{308, 0}, {386, 203}}</string>
|
||||
<string>{{0, 0}, {412, 239}}</string>
|
||||
<string>{{412, 0}, {516, 239}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>VerticalSplitView</key>
|
||||
|
@ -936,8 +1107,8 @@
|
|||
<string>yes</string>
|
||||
<key>sizes</key>
|
||||
<array>
|
||||
<string>{{0, 0}, {694, 203}}</string>
|
||||
<string>{{0, 203}, {694, 178}}</string>
|
||||
<string>{{0, 0}, {928, 239}}</string>
|
||||
<string>{{0, 239}, {928, 210}}</string>
|
||||
</array>
|
||||
</dict>
|
||||
</dict>
|
||||
|
@ -957,7 +1128,7 @@
|
|||
<key>DebugSTDIOWindowFrame</key>
|
||||
<string>{{200, 200}, {500, 300}}</string>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {694, 381}}</string>
|
||||
<string>{{0, 0}, {928, 449}}</string>
|
||||
<key>PBXDebugSessionStackFrameViewKey</key>
|
||||
<dict>
|
||||
<key>DebugVariablesTableConfiguration</key>
|
||||
|
@ -967,24 +1138,24 @@
|
|||
<string>Value</string>
|
||||
<real>85</real>
|
||||
<string>Summary</string>
|
||||
<real>156</real>
|
||||
<real>286</real>
|
||||
</array>
|
||||
<key>Frame</key>
|
||||
<string>{{308, 0}, {386, 203}}</string>
|
||||
<string>{{412, 0}, {516, 239}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>254 208 694 422 0 0 1024 746 </string>
|
||||
<string>56 117 928 490 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>254 208 694 422 0 0 1024 746 </string>
|
||||
<string>56 117 928 490 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXDebugSessionModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>381pt</string>
|
||||
<string>449pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>381pt</string>
|
||||
<string>449pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
@ -998,26 +1169,30 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<string>95DFE81E0AD0F18B00375606</string>
|
||||
<string>95E7B5020AD2CBD800753F9B</string>
|
||||
<string>1C162984064C10D400B95A72</string>
|
||||
<string>95DFE81F0AD0F18B00375606</string>
|
||||
<string>95DFE8200AD0F18B00375606</string>
|
||||
<string>95DFE8210AD0F18B00375606</string>
|
||||
<string>95DFE8220AD0F18B00375606</string>
|
||||
<string>95DFE8230AD0F18B00375606</string>
|
||||
<string>95E7B5030AD2CBD800753F9B</string>
|
||||
<string>95E7B5040AD2CBD800753F9B</string>
|
||||
<string>95E7B5050AD2CBD800753F9B</string>
|
||||
<string>95E7B5060AD2CBD800753F9B</string>
|
||||
<string>95E7B5070AD2CBD800753F9B</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.debugV3</string>
|
||||
<key>WindowString</key>
|
||||
<string>254 208 694 422 0 0 1024 746 </string>
|
||||
<string>56 117 928 490 0 0 1024 746 </string>
|
||||
<key>WindowToolGUID</key>
|
||||
<string>1CD10A99069EF8BA00B06720</string>
|
||||
<key>WindowToolIsVisible</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FirstTimeWindowDisplayed</key>
|
||||
<false/>
|
||||
<key>Identifier</key>
|
||||
<string>windowTool.find</string>
|
||||
<key>IsVertical</key>
|
||||
<true/>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
@ -1032,26 +1207,16 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CDD528C0622207200134675</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string><No Editor></string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
<string>1CD0528D0623707200166675</string>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
<string></string>
|
||||
<key>StatusBarVisibility</key>
|
||||
<integer>1</integer>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {781, 167}}</string>
|
||||
<string>{{0, 0}, {781, 212}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>62 385 781 470 0 0 1440 878 </string>
|
||||
<string>185 191 781 470 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
|
@ -1060,11 +1225,9 @@
|
|||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>50%</string>
|
||||
<string>212pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<integer>1</integer>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
|
@ -1075,18 +1238,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{8, 0}, {773, 254}}</string>
|
||||
<string>{{0, 217}, {781, 212}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>62 385 781 470 0 0 1440 878 </string>
|
||||
<string>185 191 781 470 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXProjectFindModule</string>
|
||||
<key>Proportion</key>
|
||||
<string>50%</string>
|
||||
<string>212pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Proportion</key>
|
||||
<string>428pt</string>
|
||||
<string>429pt</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>Name</key>
|
||||
|
@ -1096,23 +1259,21 @@
|
|||
<string>PBXProjectFindModule</string>
|
||||
</array>
|
||||
<key>StatusbarIsVisible</key>
|
||||
<integer>1</integer>
|
||||
<true/>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>1C530D57069F1CE1000CFCEE</string>
|
||||
<string>1C530D58069F1CE1000CFCEE</string>
|
||||
<string>1C530D59069F1CE1000CFCEE</string>
|
||||
<string>95E7B5410AD2D02200753F9B</string>
|
||||
<string>95E7B5420AD2D02200753F9B</string>
|
||||
<string>1CDD528C0622207200134675</string>
|
||||
<string>1C530D5A069F1CE1000CFCEE</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>1CD0528E0623707200166675</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>62 385 781 470 0 0 1440 878 </string>
|
||||
<string>185 191 781 470 0 0 1024 746 </string>
|
||||
<key>WindowToolGUID</key>
|
||||
<string>1C530D57069F1CE1000CFCEE</string>
|
||||
<key>WindowToolIsVisible</key>
|
||||
<integer>0</integer>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Identifier</key>
|
||||
|
@ -1168,7 +1329,7 @@
|
|||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||
<string>95DFE82B0AD0F29400375606</string>
|
||||
<string>95E7B50E0AD2CC9400753F9B</string>
|
||||
<string>1C78EAAC065D492600B07095</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
|
@ -1351,18 +1512,18 @@
|
|||
<string>743 379 452 308 0 0 1280 1002 </string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>FirstTimeWindowDisplayed</key>
|
||||
<false/>
|
||||
<key>Identifier</key>
|
||||
<string>windowTool.breakpoints</string>
|
||||
<key>IsVertical</key>
|
||||
<integer>0</integer>
|
||||
<false/>
|
||||
<key>Layout</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Dock</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<integer>1</integer>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXBottomSmartGroupGIDs</key>
|
||||
|
@ -1404,7 +1565,7 @@
|
|||
<key>PBXTopSmartGroupGIDs</key>
|
||||
<array/>
|
||||
<key>XCIncludePerspectivesSwitch</key>
|
||||
<integer>0</integer>
|
||||
<false/>
|
||||
</dict>
|
||||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
|
@ -1416,7 +1577,7 @@
|
|||
<real>168</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>315 424 744 409 0 0 1440 878 </string>
|
||||
<string>117 147 744 409 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
@ -1424,6 +1585,8 @@
|
|||
<string>185pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>BecomeActive</key>
|
||||
<true/>
|
||||
<key>ContentConfiguration</key>
|
||||
<dict>
|
||||
<key>PBXProjectModuleGUID</key>
|
||||
|
@ -1436,7 +1599,7 @@
|
|||
<key>Frame</key>
|
||||
<string>{{190, 0}, {554, 368}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>315 424 744 409 0 0 1440 878 </string>
|
||||
<string>117 147 744 409 0 0 1024 746 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
@ -1460,22 +1623,22 @@
|
|||
<string>XCDetailModule</string>
|
||||
</array>
|
||||
<key>StatusbarIsVisible</key>
|
||||
<integer>1</integer>
|
||||
<true/>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>1CDDB66807F98D9800BB5817</string>
|
||||
<string>1CDDB66907F98D9800BB5817</string>
|
||||
<string>95E7B56A0AD2D24400753F9B</string>
|
||||
<string>95E7B56B0AD2D24400753F9B</string>
|
||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||
<string>1CA1AED706398EBD00589147</string>
|
||||
</array>
|
||||
<key>ToolbarConfiguration</key>
|
||||
<string>xcode.toolbar.config.breakpointsV3</string>
|
||||
<key>WindowString</key>
|
||||
<string>315 424 744 409 0 0 1440 878 </string>
|
||||
<string>117 147 744 409 0 0 1024 746 </string>
|
||||
<key>WindowToolGUID</key>
|
||||
<string>1CDDB66807F98D9800BB5817</string>
|
||||
<string>95E7B56A0AD2D24400753F9B</string>
|
||||
<key>WindowToolIsVisible</key>
|
||||
<integer>1</integer>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Identifier</key>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user