From 925f3d1b281bb454495f0e1b57f9be30e05ed595 Mon Sep 17 00:00:00 2001 From: Matthias Neeracher Date: Mon, 2 Oct 2006 05:29:37 +0000 Subject: [PATCH] Switch to multi-line layout --- English.lproj/VLDocument.nib/info.nib | 6 +- English.lproj/VLDocument.nib/keyedobjects.nib | Bin 15182 -> 14493 bytes Sources/VLModel.cpp | 4 +- Sources/VLModel.h | 2 + Sources/VLSheetView.h | 6 +- Sources/VLSheetView.mm | 180 +++++---- Sources/VLSheetViewChords.mm | 2 + Sources/VLSheetViewInternal.h | 7 +- Sources/VLSheetViewNotes.mm | 89 ++--- Vocalese.xcodeproj/neeri.mode1v3 | 344 +++++++++--------- Vocalese.xcodeproj/neeri.pbxuser | 198 +++------- 11 files changed, 406 insertions(+), 432 deletions(-) diff --git a/English.lproj/VLDocument.nib/info.nib b/English.lproj/VLDocument.nib/info.nib index b2f609d..470d47e 100644 --- a/English.lproj/VLDocument.nib/info.nib +++ b/English.lproj/VLDocument.nib/info.nib @@ -3,14 +3,14 @@ IBDocumentLocation - 44 14 356 240 0 0 1024 746 + 36 103 356 240 0 0 1024 746 IBFramework Version - 451.0 + 452.0 IBOpenObjects 5 IBSystem Version - 9A255 + 9A274 diff --git a/English.lproj/VLDocument.nib/keyedobjects.nib b/English.lproj/VLDocument.nib/keyedobjects.nib index a512b0d03800d223845de1118a47abd42aac94f3..ce23cee7f1ce153dbd63b5fc764c3c7de09f0da9 100644 GIT binary patch literal 14493 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 literal 15182 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.front().fKey >= 0; - float y = kLineY+octave*3.5f*kLineH; + float y = octave*3.5f*kLineH; float sharp = useSharps ? 0.0f : 0.5f*kLineH; switch (semi) { @@ -156,6 +164,10 @@ static float sFlatPos[] = { { needsRecalc = NO; + NSSize contentSz = [[self enclosingScrollView] contentSize]; + contentSz.width /= displayScale; + contentSz.height/= displayScale; + const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); @@ -164,18 +176,12 @@ static float sFlatPos[] = { divPerGroup = prop.fDivisions * (quarterBeats / groups); clefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW; measureW = groups*(divPerGroup+1)*kNoteW; - visibleMeasures = (int)std::floor(([self bounds].size.width - clefKeyW) - / measureW); - [self setValue: - [NSNumber numberWithInt: - std::max((int)song->fMeasures.size()-visibleMeasures, 0)] - forKey: @"lastMeasure"]; - if (firstMeasure > lastMeasure) - [self setValue: [NSNumber numberWithInt:lastMeasure] - forKey: @"firstMeasure"]; - - [self setupChords]; + measuresPerSystem = + (int)std::floor((contentSz.width - clefKeyW) / measureW); + numSystems = (song->CountMeasures()+measuresPerSystem-1)/measuresPerSystem; + contentSz.height = numSystems*kSystemH; +#if 0 noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH, visibleMeasures*measureW, (4.0f+2.0f*kMaxLedgers)*kLineH); @@ -188,11 +194,27 @@ static float sFlatPos[] = { noteRectTracker = [self addTrackingRect:noteRect owner:self userData:nil assumeInside:inNoteRect]; [[self window] setAcceptsMouseMovedEvents:inNoteRect]; +#endif + [[self window] makeFirstResponder:self]; + + NSSize frameSz = {contentSz.width * displayScale, contentSz.height * displayScale}; + + [self setFrameSize:frameSz]; + [self setBoundsSize:contentSz]; + [self setNeedsDisplay:YES]; } - (void)drawRect:(NSRect)rect { + static NSDictionary * sMeasNoFont = nil; + if (!sMeasNoFont) + sMeasNoFont = + [[NSDictionary alloc] initWithObjectsAndKeys: + [NSFont fontWithName: @"Helvetica" size: 10], + NSFontAttributeName, + nil]; + const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); @@ -204,12 +226,15 @@ static float sFlatPos[] = { [bz setLineWidth:0.0]; if (needsRecalc) [self recalculateDimensions]; - for (int line = 0; line<5; ++line) { - const float x0 = kLineX; - const float xx = x0 + clefKeyW + visibleMeasures*measureW; - const float y = kLineY+line*kLineH; - [bz moveToPoint: NSMakePoint(x0, y)]; - [bz lineToPoint: NSMakePoint(xx, y)]; + for (int system = 0; system 0) { - float x = kClefX+kClefW; - for (int i=0; iprop.fKey; ++i) { - [[self musicElement: kMusicFlat] compositeToPoint: - NSMakePoint(x, sFlatPos[i]+kFlatY) - operation: NSCompositeSourceOver]; - x += kAccW; + for (int system = 0; system 0) { + float x = kClefX+kClefW; + for (int i=0; iprop.fKey; ++i) { + [[self musicElement: kMusicFlat] + compositeToPoint: NSMakePoint(x, kLineY+sFlatPos[i]+kFlatY) + operation: NSCompositeSourceOver]; + x += kAccW; + } } } diff --git a/Sources/VLSheetViewChords.mm b/Sources/VLSheetViewChords.mm index 660c8e8..2fa53e5 100644 --- a/Sources/VLSheetViewChords.mm +++ b/Sources/VLSheetViewChords.mm @@ -68,6 +68,7 @@ - (void) setupChords { +#if 0 const VLSong * song = [self song]; const VLProperties & prop = song->fProperties.front(); NSView * chordView = [chords contentView]; @@ -110,6 +111,7 @@ } } [chords setNeedsDisplay: YES]; +#endif } - (IBAction) editChord:(id)sender diff --git a/Sources/VLSheetViewInternal.h b/Sources/VLSheetViewInternal.h index fda03bc..30265ae 100644 --- a/Sources/VLSheetViewInternal.h +++ b/Sources/VLSheetViewInternal.h @@ -7,11 +7,14 @@ // const float kLineX = 5; -const float kLineY = 90.5; const float kLineH = 10; +const float kSystemH = 15.0f*kLineH; +const float kSystemY = 3.0f*kLineH; const float kClefX = 20.5f; -const float kClefY = 75.0f; +const float kClefY =-15.0f; const float kClefW = 30.0f; +const float kMeasNoX = 10.0f; +const float kMeasNoY = 4.5f*kLineH; const float kNoteW = 12.0f; const float kKeyW = 10.0f; const float kAccW = 10.0f; diff --git a/Sources/VLSheetViewNotes.mm b/Sources/VLSheetViewNotes.mm index 1c278e4..7724ef0 100644 --- a/Sources/VLSheetViewNotes.mm +++ b/Sources/VLSheetViewNotes.mm @@ -253,56 +253,61 @@ static int sSemiToPitch[] = { VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing VLFraction swingGrid(2*swung); // Alignment of swing notes - for (int m = 0; mfMeasures[measIdx]; - const VLNoteList & melody = measure.fMelody; - VLFraction at(0); - for (VLNoteList::const_iterator note = melody.begin(); - note != melody.end(); - ++note - ) { - VLFraction dur = note->fDuration; - BOOL first = !m || !note->fTied; - int pitch = note->fPitch; - while (dur > 0) { - VLFraction partialDur; // Actual value of note drawn - measure.fProperties->PartialNote(at, dur, &partialDur); + for (int system = 0; system= song->CountMeasures()) + break; + const VLMeasure measure = song->fMeasures[measIdx]; + const VLNoteList & melody = measure.fMelody; + VLFraction at(0); + for (VLNoteList::const_iterator note = melody.begin(); + note != melody.end(); + ++note + ) { + VLFraction dur = note->fDuration; + BOOL first = !m || !note->fTied; + int pitch = note->fPitch; + while (dur > 0) { + VLFraction partialDur; // Actual value of note drawn + measure.fProperties->PartialNote(at, dur, &partialDur); - BOOL triplet = !(partialDur.fDenom % 3); - VLFraction noteDur(1); // Visual value of note + BOOL triplet = !(partialDur.fDenom % 3); + VLFraction noteDur(1); // Visual value of note - if (triplet) { - if (swing) { // Swing 8ths / 16ths are written as straight 8ths - if (partialDur == 4*swung/3 && (at % swingGrid) == 0) { - noteDur = swung; - triplet = NO; - } else if (partialDur == 2*swung/3 && ((at+partialDur) % swingGrid) == 0) { - noteDur = swung; - triplet = NO; + if (triplet) { + if (swing) { // Swing 8ths / 16ths are written as straight 8ths + if (partialDur == 4*swung/3 && (at % swingGrid) == 0) { + noteDur = swung; + triplet = NO; + } else if (partialDur == 2*swung/3 && ((at+partialDur) % swingGrid) == 0) { + noteDur = swung; + triplet = NO; + } else { + noteDur = 4*partialDur/3; + } } else { noteDur = 4*partialDur/3; } } else { - noteDur = 4*partialDur/3; + noteDur = partialDur; } - } else { - noteDur = partialDur; + if (pitch != VLNote::kNoPitch) + [self drawNote:noteDur + at: NSMakePoint( + [self noteXInMeasure:m at:at], + kLineY+[self noteYWithPitch:pitch]) + tied:!first]; + else + [self drawRest:noteDur + at: NSMakePoint( + [self noteXInMeasure:m at:at], + kLineY+[self noteYWithPitch:65])]; + dur -= partialDur; + at += partialDur; + first = NO; } - if (pitch != VLNote::kNoPitch) - [self drawNote:noteDur - at: NSMakePoint( - [self noteXInMeasure:measIdx at:at], - [self noteYWithPitch:pitch]) - tied:!first]; - else - [self drawRest:noteDur - at: NSMakePoint( - [self noteXInMeasure:measIdx at:at], - [self noteYWithPitch:65])]; - dur -= partialDur; - at += partialDur; - first = NO; } } } diff --git a/Vocalese.xcodeproj/neeri.mode1v3 b/Vocalese.xcodeproj/neeri.mode1v3 index a281dd8..20fb974 100644 --- a/Vocalese.xcodeproj/neeri.mode1v3 +++ b/Vocalese.xcodeproj/neeri.mode1v3 @@ -196,120 +196,15 @@ OpenEditors - - Content - - PBXProjectModuleGUID - 95D1F8310AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F8320AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - _historyCapacity - 0 - bookmark - 95D1F8BD0AB69F2F00EE6AC8 - history - - 95D1F82B0AB693AE00EE6AC8 - - - SplitCount - 1 - - StatusBarVisibility - - - Geometry - - Frame - {{0, 20}, {763, 552}} - PBXModuleWindowStatusBarHidden2 - - RubberWindowFrame - 164 91 763 593 0 0 1024 746 - - - - Content - - PBXProjectModuleGUID - 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 + <No Editor> PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F82F0AB694EC00EE6AC8 - PBXProjectModuleLabel - VLSheetView.mm - _historyCapacity - 0 - bookmark - 95D1F8BF0AB69F2F00EE6AC8 - history - - 95D1F8530AB6967E00EE6AC8 - 95D1F8540AB6967E00EE6AC8 - - prevStack - - 95D1F84C0AB6960700EE6AC8 - 95D1F8550AB6967E00EE6AC8 - 95D1F8560AB6967E00EE6AC8 - - - SplitCount - 1 - + StatusBarVisibility @@ -329,27 +224,9 @@ PBXProjectModuleGUID 95D1F7FE0AB68C8C00EE6AC8 PBXProjectModuleLabel - VLSheetView.h + <No Editor> PBXSplitModuleInNavigatorKey - - Split0 - - PBXProjectModuleGUID - 95D1F7FF0AB68C8C00EE6AC8 - PBXProjectModuleLabel - VLSheetView.h - _historyCapacity - 0 - bookmark - 95D1F8C00AB69F2F00EE6AC8 - history - - 95D1F80B0AB68D3B00EE6AC8 - - - SplitCount - 1 - + StatusBarVisibility @@ -363,6 +240,50 @@ 242 153 763 593 0 0 1024 746 + + Content + + PBXProjectModuleGUID + 95D1F8130AB6908400EE6AC8 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 186 75 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 + + Content @@ -389,7 +310,7 @@ Content PBXProjectModuleGUID - 95D1F8850AB69B6700EE6AC8 + 95D1F8310AB694EC00EE6AC8 PBXProjectModuleLabel <No Editor> PBXSplitModuleInNavigatorKey @@ -404,7 +325,95 @@ PBXModuleWindowStatusBarHidden2 RubberWindowFrame - 168 116 763 593 0 0 1024 746 + 164 91 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FA0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 242 153 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042F70ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 164 91 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FB0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 242 153 763 593 0 0 1024 746 + + + + Content + + PBXProjectModuleGUID + 95B042FC0ACE431A00236B52 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + StatusBarVisibility + + + Geometry + + Frame + {{0, 20}, {763, 552}} + PBXModuleWindowStatusBarHidden2 + + RubberWindowFrame + 15 148 763 593 0 0 1024 746 @@ -488,13 +497,13 @@ PBXSmartGroupTreeModuleOutlineStateSelectionKey - 6 + 10 1 0 PBXSmartGroupTreeModuleOutlineStateVisibleRectKey - {{0, 5}, {186, 338}} + {{0, 0}, {186, 338}} PBXTopSmartGroupGIDs @@ -513,7 +522,7 @@ 186 RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module PBXSmartGroupTreeModule @@ -550,7 +559,7 @@ Frame {{0, 0}, {482, 0}} RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module PBXNavigatorGroup @@ -570,7 +579,7 @@ Frame {{0, 5}, {482, 351}} RubberWindowFrame - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 Module XCDetailModule @@ -594,9 +603,9 @@ TableOfContents - 95D1F7F00AB6821400EE6AC8 + 95B042DA0ACE37CB00236B52 1CE0B1FE06471DED0097A5F4 - 95D1F7F10AB6821400EE6AC8 + 95B042DB0ACE37CB00236B52 1CE0B20306471E060097A5F4 1CE0B20506471E060097A5F4 @@ -730,22 +739,27 @@ 5 WindowOrderList - 95D1F8850AB69B6700EE6AC8 - 95D1F8660AB6970400EE6AC8 - 95D1F8240AB6930D00EE6AC8 - 95D1F8250AB6930D00EE6AC8 - 95D1F8260AB6930D00EE6AC8 + 95B043090ACE46F000236B52 + 95B042FC0ACE431A00236B52 + 95B042FB0ACE431A00236B52 + 95B042F70ACE431A00236B52 + 95B042FA0ACE431A00236B52 + 95B042E40ACE37CB00236B52 + 95B042E50ACE37CB00236B52 + 95B042E60ACE37CB00236B52 95D7BFC80AA6C1A500D5E02C - 95D7BFC00AA6C1A500D5E02C - 1CD10A99069EF8BA00B06720 + 95D1F8310AB694EC00EE6AC8 + 95D1F8660AB6970400EE6AC8 + 95D1F8850AB69B6700EE6AC8 + 95D1F8130AB6908400EE6AC8 95D1F7FE0AB68C8C00EE6AC8 95D1F82E0AB694EC00EE6AC8 - 95D1F8130AB6908400EE6AC8 - 95D1F8310AB694EC00EE6AC8 - /Users/neeri/Development/Vocalese/Vocalese.xcodeproj + 95D7BFC00AA6C1A500D5E02C + /Development/Vocalese/Vocalese.xcodeproj + 1CD10A99069EF8BA00B06720 WindowString - 167 327 690 397 0 0 1024 746 + 167 326 690 397 0 0 1024 746 WindowToolsV3 @@ -761,12 +775,14 @@ Dock + BecomeActive + ContentConfiguration PBXProjectModuleGUID 1CD0528F0623707200166675 PBXProjectModuleLabel - VLSheetViewChords.mm + new_allocator.h StatusBarVisibility @@ -783,8 +799,6 @@ 293pt - BecomeActive - ContentConfiguration PBXProjectModuleGUID @@ -824,7 +838,7 @@ TableOfContents 95D7BFC00AA6C1A500D5E02C - 95D1F8220AB6930D00EE6AC8 + 95B042DC0ACE37CB00236B52 1CD0528F0623707200166675 XCMainBuildResultsModuleGUID @@ -835,7 +849,7 @@ WindowToolGUID 95D7BFC00AA6C1A500D5E02C WindowToolIsVisible - + FirstTimeWindowDisplayed @@ -866,8 +880,8 @@ yes sizes - {{0, 0}, {308, 200}} - {{308, 0}, {386, 200}} + {{0, 0}, {308, 203}} + {{308, 0}, {386, 203}} VerticalSplitView @@ -882,8 +896,8 @@ yes sizes - {{0, 0}, {694, 200}} - {{0, 200}, {694, 181}} + {{0, 0}, {694, 203}} + {{0, 203}, {694, 178}} @@ -916,7 +930,7 @@ 156 Frame - {{308, 0}, {386, 200}} + {{308, 0}, {386, 203}} RubberWindowFrame 254 208 694 422 0 0 1024 746 @@ -944,13 +958,13 @@ TableOfContents 1CD10A99069EF8BA00B06720 - 95D1F7F20AB6821400EE6AC8 + 95B042DD0ACE37CB00236B52 1C162984064C10D400B95A72 - 95D1F7F30AB6821400EE6AC8 - 95D1F7F40AB6821400EE6AC8 - 95D1F7F50AB6821400EE6AC8 - 95D1F7F60AB6821400EE6AC8 - 95D1F7F70AB6821400EE6AC8 + 95B042DE0ACE37CB00236B52 + 95B042DF0ACE37CB00236B52 + 95B042E00ACE37CB00236B52 + 95B042E10ACE37CB00236B52 + 95B042E20ACE37CB00236B52 ToolbarConfiguration xcode.toolbar.config.debugV3 @@ -959,7 +973,7 @@ WindowToolGUID 1CD10A99069EF8BA00B06720 WindowToolIsVisible - + Identifier @@ -1112,7 +1126,7 @@ TableOfContents 95D7BFC80AA6C1A500D5E02C - 95D1F8230AB6930D00EE6AC8 + 95B042E30ACE37CB00236B52 1C78EAAC065D492600B07095 WindowString diff --git a/Vocalese.xcodeproj/neeri.pbxuser b/Vocalese.xcodeproj/neeri.pbxuser index 62b256e..64ec5ca 100644 --- a/Vocalese.xcodeproj/neeri.pbxuser +++ b/Vocalese.xcodeproj/neeri.pbxuser @@ -62,22 +62,13 @@ PBXFileDataSource_Warnings_ColumnID, ); }; - PBXPerProjectTemplateStateSaveDate = 179733005; - PBXWorkspaceStateSaveDate = 179733005; + PBXPerProjectTemplateStateSaveDate = 181286523; + PBXWorkspaceStateSaveDate = 181286523; }; 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 */; + 95B042F40ACE42E800236B52 /* PBXBookmark */ = 95B042F40ACE42E800236B52 /* PBXBookmark */; + 95B042F90ACE431A00236B52 /* PBXTextBookmark */ = 95B042F90ACE431A00236B52 /* PBXTextBookmark */; + 95B043000ACE435E00236B52 /* PBXTextBookmark */ = 95B043000ACE435E00236B52 /* PBXTextBookmark */; }; sourceControlManager = 954D7413095406B2007D9571 /* Source Control */; userBuildSettings = { @@ -169,9 +160,9 @@ }; 952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {703, 2100}}"; - sepNavSelRange = "{4592, 34}"; - sepNavVisRect = "{{0, 1837}, {703, 261}}"; + sepNavIntBoundsRect = "{{0, 0}, {703, 2268}}"; + sepNavSelRange = "{3383, 0}"; + sepNavVisRect = "{{0, 1151}, {703, 261}}"; sepNavWindowFrame = "{{15, 92}, {763, 649}}"; }; }; @@ -218,17 +209,17 @@ }; 955E58E3095658AB0045FDA5 /* VLModel.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3080}}"; - sepNavSelRange = "{2773, 0}"; - sepNavVisRect = "{{0, 1807}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {644, 2170}}"; + sepNavSelRange = "{4342, 0}"; + sepNavVisRect = "{{0, 1726}, {633, 146}}"; sepNavWindowFrame = "{{203, 40}, {763, 649}}"; }; }; 955E58E4095658AB0045FDA5 /* VLModel.cpp */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}"; - sepNavSelRange = "{4436, 0}"; - sepNavVisRect = "{{0, 2758}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {806, 6118}}"; + sepNavSelRange = "{10226, 0}"; + sepNavVisRect = "{{0, 4813}, {704, 497}}"; sepNavWindowFrame = "{{256, 62}, {763, 649}}"; }; }; @@ -309,11 +300,35 @@ sepNavWindowFrame = "{{120, 85}, {763, 649}}"; }; }; + 95B042F40ACE42E800236B52 /* PBXBookmark */ = { + isa = PBXBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + }; + 95B042F90ACE431A00236B52 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 244"; + rLen = 0; + rLoc = 5713; + rType = 0; + vrLen = 966; + vrLoc = 5150; + }; + 95B043000ACE435E00236B52 /* PBXTextBookmark */ = { + isa = PBXTextBookmark; + fRef = 95BDA15809540BF1009F9D65 /* VLSheetView.mm */; + name = "VLSheetView.mm: 181"; + rLen = 0; + rLoc = 3996; + rType = 0; + vrLen = 1309; + vrLoc = 3259; + }; 95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {724, 520}}"; - sepNavSelRange = "{792, 0}"; - sepNavVisRect = "{{0, 0}, {724, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 497}}"; + sepNavSelRange = "{422, 0}"; + sepNavVisRect = "{{0, 0}, {704, 497}}"; sepNavWindowFrame = "{{15, 92}, {763, 649}}"; }; }; @@ -327,9 +342,9 @@ }; 95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3976}}"; - sepNavSelRange = "{5055, 0}"; - sepNavVisRect = "{{0, 2576}, {704, 497}}"; + sepNavIntBoundsRect = "{{0, 0}, {703, 2660}}"; + sepNavSelRange = "{8068, 0}"; + sepNavVisRect = "{{0, 1965}, {703, 238}}"; sepNavWindowFrame = "{{38, 71}, {763, 649}}"; }; }; @@ -346,134 +361,23 @@ hitCount = 0; ignoreCount = 0; lineNumber = 21; - modificationTime = 179740227.391068; + modificationTime = 181290725.024457; state = 2; }; 95BDA15709540BF1009F9D65 /* VLSheetView.h */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 1134}}"; - sepNavSelRange = "{1065, 16}"; - sepNavVisRect = "{{0, 472}, {704, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 1190}}"; + sepNavSelRange = "{848, 0}"; + sepNavVisRect = "{{0, 313}, {704, 497}}"; sepNavWindowFrame = "{{242, 97}, {763, 649}}"; }; }; 95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = { uiCtxt = { - sepNavIntBoundsRect = "{{0, 0}, {704, 3626}}"; - sepNavSelRange = "{7591, 0}"; - sepNavVisRect = "{{0, 3106}, {704, 520}}"; + sepNavIntBoundsRect = "{{0, 0}, {704, 5208}}"; + sepNavSelRange = "{3996, 0}"; + sepNavVisRect = "{{0, 2269}, {704, 497}}"; 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; - }; }