From 7daabcb8b0264c0c611077f6b048daee3b295098 Mon Sep 17 00:00:00 2001 From: Matthias Neeracher Date: Tue, 12 Sep 2006 07:55:28 +0000 Subject: [PATCH] Start implementing field editor for chords --- English.lproj/VLDocument.nib/classes.nib | 4 +- English.lproj/VLDocument.nib/info.nib | 6 +- English.lproj/VLDocument.nib/keyedobjects.nib | Bin 13302 -> 15182 bytes Sources/VLModel.cpp | 11 +- Sources/VLModel.h | 2 +- Sources/VLSheetView.h | 7 +- Sources/VLSheetView.mm | 17 ++ Sources/VLSheetViewChords.h | 1 + Sources/VLSheetViewChords.mm | 23 +- Vocalese.xcodeproj/neeri.mode1v3 | 236 +++++++++++++++--- Vocalese.xcodeproj/neeri.pbxuser | 175 +++++++++++-- Vocalese.xcodeproj/project.pbxproj | 2 +- 12 files changed, 411 insertions(+), 73 deletions(-) diff --git a/English.lproj/VLDocument.nib/classes.nib b/English.lproj/VLDocument.nib/classes.nib index 96a02e2..0f561ee 100644 --- a/English.lproj/VLDocument.nib/classes.nib +++ b/English.lproj/VLDocument.nib/classes.nib @@ -4,10 +4,10 @@ {CLASS = MyDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; }, {CLASS = VLDocument; LANGUAGE = ObjC; SUPERCLASS = NSDocument; }, { - ACTIONS = {scroll = id; setDivisions = id; setKey = id; setTime = id; }; + ACTIONS = {hideFieldEditor = id; setDivisions = id; setKey = id; setTime = id; }; CLASS = VLSheetView; LANGUAGE = ObjC; - OUTLETS = {chords = id; }; + OUTLETS = {chords = id; fieldEditor = id; }; SUPERCLASS = NSView; } ); diff --git a/English.lproj/VLDocument.nib/info.nib b/English.lproj/VLDocument.nib/info.nib index 646f180..b2f609d 100644 --- a/English.lproj/VLDocument.nib/info.nib +++ b/English.lproj/VLDocument.nib/info.nib @@ -3,14 +3,14 @@ IBDocumentLocation - 41 30 356 240 0 0 1024 746 + 44 14 356 240 0 0 1024 746 IBFramework Version - 437.0 + 451.0 IBOpenObjects 5 IBSystem Version - 8F46 + 9A255 diff --git a/English.lproj/VLDocument.nib/keyedobjects.nib b/English.lproj/VLDocument.nib/keyedobjects.nib index 7803d4cd230eca2926f0f80d09c0ce79f8dec690..a512b0d03800d223845de1118a47abd42aac94f3 100644 GIT binary patch literal 15182 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 JZLM$f{{i!ci{StO diff --git a/Sources/VLModel.cpp b/Sources/VLModel.cpp index e6d9210..1bd377d 100644 --- a/Sources/VLModel.cpp +++ b/Sources/VLModel.cpp @@ -135,6 +135,7 @@ static const VLChordModifier kModifiers[] = { {"11", VLChord::kmMin7th | VLChord::kmMaj9th | VLChord::km11th, 0}, {"#9", VLChord::kmMin7th | VLChord::kmAug9th, VLChord::kmMaj9th}, {"b9", VLChord::kmMin7th | VLChord::kmMin9th, VLChord::kmMaj9th}, + {"69", VLChord::kmDim7th | VLChord::kmMaj9th, 0}, {"9", VLChord::kmMin7th | VLChord::kmMaj9th, 0}, {"7", VLChord::kmMin7th, 0}, {"maj", VLChord::kmMaj7th, VLChord::kmMin7th}, @@ -152,7 +153,7 @@ static const VLChordModifier kModifiers[] = { }; static const char * kStepNames[] = { - "", "", "sus2", "", "", "sus", "♭5", "", "+", "♭7", "7", "♯7", "", + "", "", "sus2", "", "", "sus", "♭5", "", "+", "6", "7", "♯7", "", "♭9", "9", "♯9", "", "11", "♯11", "", "♭9", "13" }; @@ -204,6 +205,7 @@ VLChord::VLChord(std::string name) } else name.erase(root, 2); } + // // Apply modifiers // @@ -261,6 +263,13 @@ void VLChord::Name(std::string & base, std::string & ext, std::string & root, bo steps&= ~kmMaj7th; } // + // 6/9 + // + if ((steps & (kmDim7th|kmMaj9th)) == (kmDim7th|kmMaj9th)) { + ext += "69"; + steps&= ~(kmDim7th|kmMaj9th); + } + // // Other extensions. Only the highest unaltered extension is listed. // if (uint32_t unaltered = steps & (kmMin7th | kmMaj9th | km11th | kmMaj13th)) { diff --git a/Sources/VLModel.h b/Sources/VLModel.h index 5e1cf94..5a47496 100644 --- a/Sources/VLModel.h +++ b/Sources/VLModel.h @@ -151,7 +151,7 @@ struct VLChord : VLNote { kmDim5th = (1 << kDim5th), km5th = (1 << k5th), kmAug5th = (1 << kAug5th), - kmDim7th = (1 << kDim7th), + kmDim7th = (1 << kDim7th), kmMin7th = (1 << kMin7th), kmMaj7th = (1 << kMaj7th), kmOctave = (1 << kOctave), diff --git a/Sources/VLSheetView.h b/Sources/VLSheetView.h index a28b233..fd29a9b 100644 --- a/Sources/VLSheetView.h +++ b/Sources/VLSheetView.h @@ -35,6 +35,7 @@ enum VLMusicElement { @interface VLSheetView : NSView { BOOL needsRecalc; + BOOL showFieldEditor; float clefKeyW; float measureW; int groups; @@ -51,13 +52,17 @@ enum VLMusicElement { int noteCursorMeasure; VLFract noteCursorAt; int noteCursorPitch; + id fieldBeingEdited; - IBOutlet id chords; + IBOutlet id chords; + IBOutlet id fieldEditor; } - (IBAction) setKey:(id)sender; - (IBAction) setTime:(id)sender; - (IBAction) setDivisions:(id)sender; +- (IBAction) showFieldEditor:(id)sender withAction:(SEL)selector; +- (IBAction) hideFieldEditor:(id)sender; - (void) setFirstMeasure: (NSNumber *)measure; diff --git a/Sources/VLSheetView.mm b/Sources/VLSheetView.mm index 5dd2de3..25b70c7 100644 --- a/Sources/VLSheetView.mm +++ b/Sources/VLSheetView.mm @@ -79,6 +79,7 @@ static float sFlatPos[] = { } } needsRecalc = YES; + showFieldEditor = NO; firstMeasure = 0; noteRectTracker = 0; noteCursorCache = nil; @@ -311,4 +312,20 @@ static float sFlatPos[] = { [self setNeedsDisplay: YES]; } +- (IBAction)showFieldEditor:(id)sender withAction:(SEL)selector +{ + fieldBeingEdited = sender; + [fieldEditor setObjectValue:[sender title]]; + [fieldEditor setAction:selector]; + [self setValue: [NSNumber numberWithBool:YES] + forKey: @"showFieldEditor"]; +} + +- (IBAction)hideFieldEditor:(id)sender +{ + [fieldEditor setAction:nil]; + [self setValue: [NSNumber numberWithBool:NO] + forKey: @"showFieldEditor"]; +} + @end diff --git a/Sources/VLSheetViewChords.h b/Sources/VLSheetViewChords.h index 480215e..5e18fbe 100644 --- a/Sources/VLSheetViewChords.h +++ b/Sources/VLSheetViewChords.h @@ -9,6 +9,7 @@ @interface VLSheetView (Chords) - (IBAction) editChord:(id)sender; +- (IBAction) doneEditingChord:(id)sender; - (void) setupChords; diff --git a/Sources/VLSheetViewChords.mm b/Sources/VLSheetViewChords.mm index cefa951..660c8e8 100644 --- a/Sources/VLSheetViewChords.mm +++ b/Sources/VLSheetViewChords.mm @@ -83,7 +83,6 @@ // // Build new list // - NSView * prevKeyView = nil; NSFont * chordFont = [NSFont controlContentFontOfSize: 14]; int beatsPerGroup = quarterBeats / groups; for (int m = 0; mfDuration; if (cCur != cEnd && at == VLFraction(beat, 4) && cCur->fPitch != VLNote::kNoPitch) - [chord setAttributedStringValue: [self stringWithChord:*cCur]]; + [chord setTitle: [self stringWithChord:*cCur]]; [chord release]; } } [chords setNeedsDisplay: YES]; } - - (IBAction) editChord:(id)sender +{ + [self showFieldEditor:sender withAction:@selector(doneEditingChord:)]; +} + +- (IBAction) doneEditingChord:(id)sender { VLSong * song = [self song]; @@ -163,12 +162,10 @@ } else { NSAttributedString * s = [self stringWithChord:chord]; [sender setAttributedStringValue: s]; + [fieldBeingEdited setTitle: s]; [sender setTextColor: [NSColor blackColor]]; - NSSize sz = [sender frame].size; - sz.width = [s size].width+10.0; - [sender setFrameSize: sz]; VLSoundOut::Instance()->PlayChord(chord); - int tag = [sender tag]; + int tag = [fieldBeingEdited tag]; song->AddChord(chord, tag >> 8, VLFraction(tag & 0xFF, 4)); } } diff --git a/Vocalese.xcodeproj/neeri.mode1v3 b/Vocalese.xcodeproj/neeri.mode1v3 index 20003d8..a281dd8 100644 --- a/Vocalese.xcodeproj/neeri.mode1v3 +++ b/Vocalese.xcodeproj/neeri.mode1v3 @@ -200,11 +200,29 @@ Content PBXProjectModuleGUID - 95FA70960AB3370800B2D764 + 95D1F8310AB694EC00EE6AC8 PBXProjectModuleLabel - <No Editor> + VLSheetView.mm PBXSplitModuleInNavigatorKey - + + Split0 + + PBXProjectModuleGUID + 95D1F8320AB694EC00EE6AC8 + PBXProjectModuleLabel + VLSheetView.mm + _historyCapacity + 0 + bookmark + 95D1F8BD0AB69F2F00EE6AC8 + history + + 95D1F82B0AB693AE00EE6AC8 + + + SplitCount + 1 + StatusBarVisibility @@ -215,14 +233,141 @@ PBXModuleWindowStatusBarHidden2 RubberWindowFrame - 203 96 763 593 0 0 1024 746 + 164 91 763 593 0 0 1024 746 Content PBXProjectModuleGUID - 956999A10AB370CD0033F43C + 95D1F8130AB6908400EE6AC8 + PBXProjectModuleLabel + VLSheetViewChords.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 95D1F8140AB6908400EE6AC8 + PBXProjectModuleLabel + VLSheetViewChords.h + _historyCapacity + 0 + bookmark + 95D1F8BE0AB69F2F00EE6AC8 + history + + 95D1F86A0AB6970400EE6AC8 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 186 75 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95D1F82E0AB694EC00EE6AC8 + PBXProjectModuleLabel + VLSheetView.mm + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 95D1F82F0AB694EC00EE6AC8 + PBXProjectModuleLabel + VLSheetView.mm + _historyCapacity + 0 + bookmark + 95D1F8BF0AB69F2F00EE6AC8 + history + + 95D1F8530AB6967E00EE6AC8 + 95D1F8540AB6967E00EE6AC8 + + prevStack + + 95D1F84C0AB6960700EE6AC8 + 95D1F8550AB6967E00EE6AC8 + 95D1F8560AB6967E00EE6AC8 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 15 148 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95D1F7FE0AB68C8C00EE6AC8 + PBXProjectModuleLabel + VLSheetView.h + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 95D1F7FF0AB68C8C00EE6AC8 + PBXProjectModuleLabel + VLSheetView.h + _historyCapacity + 0 + bookmark + 95D1F8C00AB69F2F00EE6AC8 + history + + 95D1F80B0AB68D3B00EE6AC8 + + + SplitCount + 1 + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 242 153 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95D1F8660AB6970400EE6AC8 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey @@ -237,7 +382,29 @@ PBXModuleWindowStatusBarHidden2 RubberWindowFrame - 38 127 763 593 0 0 1024 746 + 15 148 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95D1F8850AB69B6700EE6AC8 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 168 116 763 593 0 0 1024 746 @@ -312,19 +479,22 @@ PBXSmartGroupTreeModuleOutlineStateExpansionKey 2A37F4AAFDCFA73011CA2CEA + 2A37F4ABFDCFA73011CA2CEA + 955E59560957C0C50045FDA5 2A37F4B8FDCFA73011CA2CEA + 1C37FBAC04509CD000000102 1C37FABC05509CD000000102 PBXSmartGroupTreeModuleOutlineStateSelectionKey - 9 - 4 + 6 + 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 0}, {186, 338}} + {{0, 5}, {186, 338}} PBXTopSmartGroupGIDs @@ -424,9 +594,9 @@ TableOfContents - 956999870AB36FA30033F43C + 95D1F7F00AB6821400EE6AC8 1CE0B1FE06471DED0097A5F4 - 956999880AB36FA30033F43C + 95D1F7F10AB6821400EE6AC8 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -560,14 +730,18 @@ 5 WindowOrderList - 956999A10AB370CD0033F43C - 956999940AB36FA30033F43C - 956999950AB36FA30033F43C - 956999960AB36FA30033F43C + 95D1F8850AB69B6700EE6AC8 + 95D1F8660AB6970400EE6AC8 + 95D1F8240AB6930D00EE6AC8 + 95D1F8250AB6930D00EE6AC8 + 95D1F8260AB6930D00EE6AC8 95D7BFC80AA6C1A500D5E02C 95D7BFC00AA6C1A500D5E02C - 95FA70960AB3370800B2D764 1CD10A99069EF8BA00B06720 + 95D1F7FE0AB68C8C00EE6AC8 + 95D1F82E0AB694EC00EE6AC8 + 95D1F8130AB6908400EE6AC8 + 95D1F8310AB694EC00EE6AC8 /Users/neeri/Development/Vocalese/Vocalese.xcodeproj WindowString @@ -592,7 +766,7 @@ PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - + VLSheetViewChords.mm StatusBarVisibility @@ -609,6 +783,8 @@ 293pt + BecomeActive + ContentConfiguration PBXProjectModuleGUID @@ -648,7 +824,7 @@ TableOfContents 95D7BFC00AA6C1A500D5E02C - 9569998C0AB36FA30033F43C + 95D1F8220AB6930D00EE6AC8 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -690,8 +866,8 @@ yes sizes - {{0, 0}, {310, 200}} - {{310, 0}, {384, 200}} + {{0, 0}, {308, 200}} + {{308, 0}, {386, 200}} VerticalSplitView @@ -737,10 +913,10 @@ Value 85 Summary - 154 + 156 Frame - {{310, 0}, {384, 200}} + {{308, 0}, {386, 200}} RubberWindowFrame 254 208 694 422 0 0 1024 746 @@ -768,13 +944,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 9569998D0AB36FA30033F43C + 95D1F7F20AB6821400EE6AC8 1C162984064C10D400B95A72 - 9569998E0AB36FA30033F43C - 9569998F0AB36FA30033F43C - 956999900AB36FA30033F43C - 956999910AB36FA30033F43C - 956999920AB36FA30033F43C + 95D1F7F30AB6821400EE6AC8 + 95D1F7F40AB6821400EE6AC8 + 95D1F7F50AB6821400EE6AC8 + 95D1F7F60AB6821400EE6AC8 + 95D1F7F70AB6821400EE6AC8 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -783,7 +959,7 @@ WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible - + Identifier @@ -936,7 +1112,7 @@ TableOfContents 95D7BFC80AA6C1A500D5E02C - 956999930AB36FA30033F43C + 95D1F8230AB6930D00EE6AC8 1C78EAAC065D492600B07095 WindowString diff --git a/Vocalese.xcodeproj/neeri.pbxuser b/Vocalese.xcodeproj/neeri.pbxuser index 87e6b5c..62b256e 100644 --- a/Vocalese.xcodeproj/neeri.pbxuser +++ b/Vocalese.xcodeproj/neeri.pbxuser @@ -45,8 +45,8 @@ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; PBXFileTableDataSourceColumnWidthsKey = ( 20, - 200, - 63, + 203, + 60, 20, 48, 43, @@ -62,8 +62,22 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 179531674; - PBXWorkspaceStateSaveDate = 179531674; + PBXPerProjectTemplateStateSaveDate = 179733005; + PBXWorkspaceStateSaveDate = 179733005; + }; + perUserProjectItems = { + 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */ = 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */; + 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */ = 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */; + 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */ = 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */; + 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */; + 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */; + 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */; + 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */ = 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */; + 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */ = 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */; + 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */; + 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */; + 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */; + 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */ = 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */; }; sourceControlManager = 954D7413095406B2007D9571 /* Source Control */; userBuildSettings = { @@ -147,9 +161,17 @@ }; 952DCD76096BBB11001C2316 /* VLSheetViewChords.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {724, 520}}"; - sepNavSelRange = "{150, 0}"; - sepNavVisRect = "{{0, 0}, {724, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 520}}"; + sepNavSelRange = "{184, 35}"; + sepNavVisRect = "{{0, 0}, {704, 520}}"; + sepNavWindowFrame = "{{186, 19}, {763, 649}}"; + }; + }; + 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = { + uiCtxt = { + sepNavIntBoundsRect = "{{0, 0}, {703, 2100}}"; + sepNavSelRange = "{4592, 34}"; + sepNavVisRect = "{{0, 1837}, {703, 261}}"; sepNavWindowFrame = "{{15, 92}, {763, 649}}"; }; }; @@ -197,16 +219,16 @@ 955E58E3095658AB0045FDA5 /* VLModel.h */ = { uiCtxt = { sepNavIntBoundsRect = "{{0, 0}, {704, 3080}}"; - sepNavSelRange = "{2267, 0}"; - sepNavVisRect = "{{0, 558}, {704, 497}}"; + sepNavSelRange = "{2773, 0}"; + sepNavVisRect = "{{0, 1807}, {704, 497}}"; sepNavWindowFrame = "{{203, 40}, {763, 649}}"; }; }; 955E58E4095658AB0045FDA5 /* VLModel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 4564}}"; - sepNavSelRange = "{9472, 29}"; - sepNavVisRect = "{{0, 2375}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}"; + sepNavSelRange = "{4436, 0}"; + sepNavVisRect = "{{0, 2758}, {704, 497}}"; sepNavWindowFrame = "{{256, 62}, {763, 649}}"; }; }; @@ -242,9 +264,9 @@ }; 955E59600957C1400045FDA5 /* TVLChord.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {724, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 497}}"; sepNavSelRange = "{557, 0}"; - sepNavVisRect = "{{0, 0}, {724, 520}}"; + sepNavVisRect = "{{0, 0}, {704, 497}}"; sepNavWindowFrame = "{{84, 29}, {763, 649}}"; }; }; @@ -324,23 +346,134 @@ hitCount = 0; ignoreCount = 0; lineNumber = 21; - modificationTime = 179531977.512253; + modificationTime = 179740227.391068; state = 2; }; 95BDA15709540BF1009F9D65 /* VLSheetView.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 1064}}"; - sepNavSelRange = "{890, 0}"; - sepNavVisRect = "{{0, 434}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 1134}}"; + sepNavSelRange = "{1065, 16}"; + sepNavVisRect = "{{0, 472}, {704, 520}}"; sepNavWindowFrame = "{{242, 97}, {763, 649}}"; }; }; 95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 4410}}"; - sepNavSelRange = "{3053, 0}"; - sepNavVisRect = "{{0, 0}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 3626}}"; + sepNavSelRange = "{7591, 0}"; + sepNavVisRect = "{{0, 3106}, {704, 520}}"; sepNavWindowFrame = "{{164, 35}, {763, 649}}"; }; }; + 95D1F80B0AB68D3B00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15709540BF1009F9D65 /* VLSheetView.h */; + name = "VLSheetView.h: 57"; + rLen = 0; + rLoc = 1134; + rType = 0; + vrLen = 829; + vrLoc = 672; + }; + 95D1F82B0AB693AE00EE6AC8 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + }; + 95D1F84C0AB6960700EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; + name = "VLSheetViewChords.mm: 164"; + rLen = 0; + rLoc = 4620; + rType = 0; + vrLen = 839; + vrLoc = 3237; + }; + 95D1F8530AB6967E00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; + name = "VLSheetViewChords.mm: 116"; + rLen = 0; + rLoc = 3410; + rType = 0; + vrLen = 971; + vrLoc = 2859; + }; + 95D1F8540AB6967E00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + rLen = 0; + rLoc = 326; + rType = 1; + }; + 95D1F8550AB6967E00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 317"; + rLen = 0; + rLoc = 7520; + rType = 0; + vrLen = 758; + vrLoc = 7108; + }; + 95D1F8560AB6967E00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */; + name = "VLSheetViewChords.mm: 116"; + rLen = 0; + rLoc = 3410; + rType = 0; + vrLen = 971; + vrLoc = 2859; + }; + 95D1F86A0AB6970400EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 952DCD76096BBB11001C2316 /* VLSheetViewChords.h */; + name = "VLSheetViewChords.h: 11"; + rLen = 35; + rLoc = 184; + rType = 0; + vrLen = 290; + vrLoc = 0; + }; + 95D1F8BD0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 318"; + rLen = 0; + rLoc = 7591; + rType = 0; + vrLen = 766; + vrLoc = 7108; + }; + 95D1F8BE0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 952DCD76096BBB11001C2316 /* VLSheetViewChords.h */; + name = "VLSheetViewChords.h: 11"; + rLen = 35; + rLoc = 184; + rType = 0; + vrLen = 290; + vrLoc = 0; + }; + 95D1F8BF0AB69F2F00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 327"; + rLen = 0; + rLoc = 7785; + rType = 0; + vrLen = 786; + vrLoc = 7088; + }; + 95D1F8C00AB69F2F00EE6AC8 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15709540BF1009F9D65 /* VLSheetView.h */; + name = "VLSheetView.h: 55"; + rLen = 16; + rLoc = 1065; + rType = 0; + vrLen = 925; + vrLoc = 566; + }; } diff --git a/Vocalese.xcodeproj/project.pbxproj b/Vocalese.xcodeproj/project.pbxproj index 9a97642..5e156f6 100644 --- a/Vocalese.xcodeproj/project.pbxproj +++ b/Vocalese.xcodeproj/project.pbxproj @@ -428,7 +428,7 @@ GCC_PREFIX_HEADER = Sources/Vocalese_Prefix.pch; GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = Info.plist; + INFOPLIST_FILE = Resources/Info.plist; INSTALL_PATH = "$(HOME)/Applications"; PREBINDING = NO; PRODUCT_NAME = Vocalese;