mirror of
https://github.com/microtherion/VocalEasel.git
synced 2024-12-22 11:14:00 +00:00
Rename instance variables of VLSheetView
This commit is contained in:
parent
925f3d1b28
commit
810ff2ee2f
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; };
|
ACTIONS = {hideFieldEditor = id; setDivisions = id; setKey = id; setTime = id; };
|
||||||
CLASS = VLSheetView;
|
CLASS = VLSheetView;
|
||||||
LANGUAGE = ObjC;
|
LANGUAGE = ObjC;
|
||||||
OUTLETS = {chords = id; fieldEditor = id; };
|
OUTLETS = {fChords = id; fFieldBeingEdited = id; fFieldEditor = id; };
|
||||||
SUPERCLASS = NSView;
|
SUPERCLASS = NSView;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
BIN
English.lproj/VLDocument.nib/keyedobjects.nib
generated
Binary file not shown.
|
@ -34,31 +34,29 @@ enum VLMusicElement {
|
||||||
};
|
};
|
||||||
|
|
||||||
@interface VLSheetView : NSView {
|
@interface VLSheetView : NSView {
|
||||||
BOOL needsRecalc;
|
BOOL fNeedsRecalc;
|
||||||
BOOL showFieldEditor;
|
float fClefKeyW;
|
||||||
float clefKeyW;
|
float fMeasureW;
|
||||||
float measureW;
|
float fLineH;
|
||||||
float lineH;
|
int fGroups;
|
||||||
int groups;
|
int fQuarterBeats;
|
||||||
int quarterBeats;
|
int fDivPerGroup;
|
||||||
int divPerGroup;
|
int fMeasPerSystem;
|
||||||
int firstMeasure;
|
int fNumSystems;
|
||||||
int lastMeasure;
|
float fDisplayScale;
|
||||||
int measuresPerSystem;
|
NSImageRep * fNoteCursorCache;
|
||||||
int numSystems;
|
NSPoint fNoteCursorLocation;
|
||||||
float displayScale;
|
NSPoint fLastNoteCenter;
|
||||||
NSImageRep * noteCursorCache;
|
NSRect fNoteRect;
|
||||||
NSPoint noteCursorLocation;
|
NSTrackingRectTag fNoteRectTracker;
|
||||||
NSPoint lastNoteCenter;
|
int fNoteCursorMeasure;
|
||||||
NSRect noteRect;
|
VLFract fNoteCursorAt;
|
||||||
NSTrackingRectTag noteRectTracker;
|
int fNoteCursorPitch;
|
||||||
int noteCursorMeasure;
|
id fFieldBeingEdited;
|
||||||
VLFract noteCursorAt;
|
|
||||||
int noteCursorPitch;
|
|
||||||
id fieldBeingEdited;
|
|
||||||
|
|
||||||
IBOutlet id chords;
|
BOOL fShowFieldEditor;
|
||||||
IBOutlet id fieldEditor;
|
IBOutlet id fChords;
|
||||||
|
IBOutlet id fFieldEditor;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction) setKey:(id)sender;
|
- (IBAction) setKey:(id)sender;
|
||||||
|
@ -67,8 +65,6 @@ enum VLMusicElement {
|
||||||
- (IBAction) showFieldEditor:(id)sender withAction:(SEL)selector;
|
- (IBAction) showFieldEditor:(id)sender withAction:(SEL)selector;
|
||||||
- (IBAction) hideFieldEditor:(id)sender;
|
- (IBAction) hideFieldEditor:(id)sender;
|
||||||
|
|
||||||
- (void) setFirstMeasure: (NSNumber *)measure;
|
|
||||||
|
|
||||||
- (VLDocument *) document;
|
- (VLDocument *) document;
|
||||||
- (VLSong *) song;
|
- (VLSong *) song;
|
||||||
- (NSImage *) musicElement:(VLMusicElement)elt;
|
- (NSImage *) musicElement:(VLMusicElement)elt;
|
||||||
|
|
|
@ -78,13 +78,12 @@ static float sFlatPos[] = {
|
||||||
[sMusic[i] setSize:sz];
|
[sMusic[i] setSize:sz];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
needsRecalc = YES;
|
fNeedsRecalc = YES;
|
||||||
showFieldEditor = NO;
|
fShowFieldEditor = NO;
|
||||||
displayScale = 1.0f;
|
fDisplayScale = 1.0f;
|
||||||
firstMeasure = 0;
|
fNoteRectTracker = 0;
|
||||||
noteRectTracker = 0;
|
fNoteCursorCache = nil;
|
||||||
noteCursorCache = nil;
|
fNoteCursorMeasure = -1;
|
||||||
noteCursorMeasure = -1;
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -152,38 +151,37 @@ static float sFlatPos[] = {
|
||||||
- (float) noteXInMeasure:(int)measure at:(VLFraction)at
|
- (float) noteXInMeasure:(int)measure at:(VLFraction)at
|
||||||
{
|
{
|
||||||
const VLProperties & prop = [self song]->fProperties.front();
|
const VLProperties & prop = [self song]->fProperties.front();
|
||||||
const float mx = clefKeyW+(measure-firstMeasure)*measureW;
|
const float mx = fClefKeyW+(measure%fMeasPerSystem)*fMeasureW;
|
||||||
|
|
||||||
at /= prop.fTime / (4 * prop.fDivisions);
|
at /= prop.fTime / (4 * prop.fDivisions);
|
||||||
int div = at.fNum / at.fDenom;
|
int div = at.fNum / at.fDenom;
|
||||||
|
|
||||||
return mx + (div + (div / divPerGroup) + 1)*kNoteW;
|
return mx + (div + (div / fDivPerGroup) + 1)*kNoteW;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) recalculateDimensions
|
- (void) recalculateDimensions
|
||||||
{
|
{
|
||||||
needsRecalc = NO;
|
fNeedsRecalc = NO;
|
||||||
|
|
||||||
NSSize contentSz = [[self enclosingScrollView] contentSize];
|
NSSize sz = [[self enclosingScrollView] contentSize];
|
||||||
contentSz.width /= displayScale;
|
sz.width /= fDisplayScale;
|
||||||
contentSz.height/= displayScale;
|
sz.height/= fDisplayScale;
|
||||||
|
|
||||||
const VLSong * song = [self song];
|
const VLSong * song = [self song];
|
||||||
const VLProperties & prop = song->fProperties.front();
|
const VLProperties & prop = song->fProperties.front();
|
||||||
|
|
||||||
groups = prop.fTime.fNum / std::max(prop.fTime.fDenom / 4, 1);
|
fGroups = prop.fTime.fNum / std::max(prop.fTime.fDenom / 4, 1);
|
||||||
quarterBeats = (prop.fTime.fNum*4) / prop.fTime.fDenom;
|
fQuarterBeats = (prop.fTime.fNum*4) / prop.fTime.fDenom;
|
||||||
divPerGroup = prop.fDivisions * (quarterBeats / groups);
|
fDivPerGroup = prop.fDivisions * (fQuarterBeats / fGroups);
|
||||||
clefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW;
|
fClefKeyW = kClefX+kClefW+(std::labs(prop.fKey)+1)*kKeyW;
|
||||||
measureW = groups*(divPerGroup+1)*kNoteW;
|
fMeasureW = fGroups*(fDivPerGroup+1)*kNoteW;
|
||||||
measuresPerSystem =
|
fMeasPerSystem = (int)std::floor((sz.width-fClefKeyW) / fMeasureW);
|
||||||
(int)std::floor((contentSz.width - clefKeyW) / measureW);
|
fNumSystems = (song->CountMeasures()+fMeasPerSystem-1)/fMeasPerSystem;
|
||||||
numSystems = (song->CountMeasures()+measuresPerSystem-1)/measuresPerSystem;
|
sz.height = fNumSystems*kSystemH;
|
||||||
contentSz.height = numSystems*kSystemH;
|
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH,
|
noteRect = NSMakeRect(clefKeyW, kLineY-kMaxLedgers*kLineH,
|
||||||
visibleMeasures*measureW,
|
visibleMeasures*fMeasureW,
|
||||||
(4.0f+2.0f*kMaxLedgers)*kLineH);
|
(4.0f+2.0f*kMaxLedgers)*kLineH);
|
||||||
NSPoint mouse =
|
NSPoint mouse =
|
||||||
[self convertPoint:[[self window] mouseLocationOutsideOfEventStream]
|
[self convertPoint:[[self window] mouseLocationOutsideOfEventStream]
|
||||||
|
@ -198,10 +196,10 @@ static float sFlatPos[] = {
|
||||||
|
|
||||||
[[self window] makeFirstResponder:self];
|
[[self window] makeFirstResponder:self];
|
||||||
|
|
||||||
NSSize frameSz = {contentSz.width * displayScale, contentSz.height * displayScale};
|
NSSize frameSz = {sz.width * fDisplayScale, sz.height * fDisplayScale};
|
||||||
|
|
||||||
[self setFrameSize:frameSz];
|
[self setFrameSize:frameSz];
|
||||||
[self setBoundsSize:contentSz];
|
[self setBoundsSize:sz];
|
||||||
[self setNeedsDisplay:YES];
|
[self setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -224,13 +222,13 @@ static float sFlatPos[] = {
|
||||||
// Draw lines
|
// Draw lines
|
||||||
//
|
//
|
||||||
[bz setLineWidth:0.0];
|
[bz setLineWidth:0.0];
|
||||||
if (needsRecalc)
|
if (fNeedsRecalc)
|
||||||
[self recalculateDimensions];
|
[self recalculateDimensions];
|
||||||
for (int system = 0; system<numSystems; ++system) {
|
for (int system = 0; system<fNumSystems; ++system) {
|
||||||
float kLineY = [self systemY:system];
|
float kLineY = [self systemY:system];
|
||||||
for (int line = 0; line<5; ++line) {
|
for (int line = 0; line<5; ++line) {
|
||||||
const float x0 = kLineX;
|
const float x0 = kLineX;
|
||||||
const float xx = x0 + clefKeyW + measuresPerSystem*measureW;
|
const float xx = x0 + fClefKeyW + fMeasPerSystem*fMeasureW;
|
||||||
const float y = kLineY+line*kLineH;
|
const float y = kLineY+line*kLineH;
|
||||||
[bz moveToPoint: NSMakePoint(x0, y)];
|
[bz moveToPoint: NSMakePoint(x0, y)];
|
||||||
[bz lineToPoint: NSMakePoint(xx, y)];
|
[bz lineToPoint: NSMakePoint(xx, y)];
|
||||||
|
@ -242,10 +240,10 @@ static float sFlatPos[] = {
|
||||||
// Draw measure lines
|
// Draw measure lines
|
||||||
//
|
//
|
||||||
[bz setLineWidth:2.0];
|
[bz setLineWidth:2.0];
|
||||||
for (int system = 0; system<numSystems; ++system) {
|
for (int system = 0; system<fNumSystems; ++system) {
|
||||||
float kLineY = [self systemY:system];
|
float kLineY = [self systemY:system];
|
||||||
for (int measure = 0; measure<=measuresPerSystem; ++measure) {
|
for (int measure = 0; measure<=fMeasPerSystem; ++measure) {
|
||||||
const float x = clefKeyW+measure*measureW;
|
const float x = fClefKeyW+measure*fMeasureW;
|
||||||
const float yy = kLineY+4.0f*kLineH;
|
const float yy = kLineY+4.0f*kLineH;
|
||||||
[bz moveToPoint: NSMakePoint(x, kLineY)];
|
[bz moveToPoint: NSMakePoint(x, kLineY)];
|
||||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||||
|
@ -259,15 +257,15 @@ static float sFlatPos[] = {
|
||||||
//
|
//
|
||||||
[bz setLineWidth:0.0];
|
[bz setLineWidth:0.0];
|
||||||
[[NSColor colorWithDeviceWhite:0.8f alpha:1.0f] set];
|
[[NSColor colorWithDeviceWhite:0.8f alpha:1.0f] set];
|
||||||
for (int system = 0; system<numSystems; ++system) {
|
for (int system = 0; system<fNumSystems; ++system) {
|
||||||
float kLineY = [self systemY:system];
|
float kLineY = [self systemY:system];
|
||||||
for (int measure = 0; measure<measuresPerSystem; ++measure) {
|
for (int measure = 0; measure<fMeasPerSystem; ++measure) {
|
||||||
const float mx = clefKeyW+measure*measureW;
|
const float mx = fClefKeyW+measure*fMeasureW;
|
||||||
const float y0 = kLineY-2.0f*kLineH;
|
const float y0 = kLineY-2.0f*kLineH;
|
||||||
const float yy = kLineY+6.0f*kLineH;
|
const float yy = kLineY+6.0f*kLineH;
|
||||||
for (int group = 0; group < groups; ++group) {
|
for (int group = 0; group < fGroups; ++group) {
|
||||||
for (int div = 0; div < divPerGroup; ++div) {
|
for (int div = 0; div < fDivPerGroup; ++div) {
|
||||||
const float x = mx+(group*(divPerGroup+1)+div+1)*kNoteW;
|
const float x = mx+(group*(fDivPerGroup+1)+div+1)*kNoteW;
|
||||||
[bz moveToPoint: NSMakePoint(x, y0)];
|
[bz moveToPoint: NSMakePoint(x, y0)];
|
||||||
[bz lineToPoint: NSMakePoint(x, yy)];
|
[bz lineToPoint: NSMakePoint(x, yy)];
|
||||||
}
|
}
|
||||||
|
@ -276,7 +274,7 @@ static float sFlatPos[] = {
|
||||||
}
|
}
|
||||||
[bz stroke];
|
[bz stroke];
|
||||||
|
|
||||||
for (int system = 0; system<numSystems; ++system) {
|
for (int system = 0; system<fNumSystems; ++system) {
|
||||||
float kLineY = [self systemY:system];
|
float kLineY = [self systemY:system];
|
||||||
//
|
//
|
||||||
// Draw clef
|
// Draw clef
|
||||||
|
@ -287,7 +285,7 @@ static float sFlatPos[] = {
|
||||||
//
|
//
|
||||||
// Draw measure #
|
// Draw measure #
|
||||||
//
|
//
|
||||||
[[NSString stringWithFormat:@"%d", system*measuresPerSystem+1]
|
[[NSString stringWithFormat:@"%d", system*fMeasPerSystem+1]
|
||||||
drawAtPoint: NSMakePoint(kMeasNoX, kLineY+kMeasNoY)
|
drawAtPoint: NSMakePoint(kMeasNoX, kLineY+kMeasNoY)
|
||||||
withAttributes: sMeasNoFont];
|
withAttributes: sMeasNoFont];
|
||||||
//
|
//
|
||||||
|
@ -322,7 +320,7 @@ static float sFlatPos[] = {
|
||||||
{
|
{
|
||||||
int key = [[sender selectedItem] tag];
|
int key = [[sender selectedItem] tag];
|
||||||
[[self document] setKey: key transpose: YES];
|
[[self document] setKey: key transpose: YES];
|
||||||
needsRecalc = YES;
|
fNeedsRecalc = YES;
|
||||||
[self setNeedsDisplay: YES];
|
[self setNeedsDisplay: YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,7 +329,7 @@ static float sFlatPos[] = {
|
||||||
int time = [[sender selectedItem] tag];
|
int time = [[sender selectedItem] tag];
|
||||||
|
|
||||||
[[self document] setTimeNum: time >> 8 denom: time & 0xFF];
|
[[self document] setTimeNum: time >> 8 denom: time & 0xFF];
|
||||||
needsRecalc = YES;
|
fNeedsRecalc = YES;
|
||||||
[self setNeedsDisplay: YES];
|
[self setNeedsDisplay: YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,32 +338,24 @@ static float sFlatPos[] = {
|
||||||
int div = [[sender selectedItem] tag];
|
int div = [[sender selectedItem] tag];
|
||||||
|
|
||||||
[[self document] setDivisions: div];
|
[[self document] setDivisions: div];
|
||||||
needsRecalc = YES;
|
fNeedsRecalc = YES;
|
||||||
[self setNeedsDisplay: YES];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void) setFirstMeasure: (NSNumber *)measure
|
|
||||||
{
|
|
||||||
firstMeasure = [measure intValue];
|
|
||||||
|
|
||||||
[self setupChords];
|
|
||||||
[self setNeedsDisplay: YES];
|
[self setNeedsDisplay: YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)showFieldEditor:(id)sender withAction:(SEL)selector
|
- (IBAction)showFieldEditor:(id)sender withAction:(SEL)selector
|
||||||
{
|
{
|
||||||
fieldBeingEdited = sender;
|
fFieldBeingEdited = sender;
|
||||||
[fieldEditor setObjectValue:[sender title]];
|
[fFieldEditor setObjectValue:[sender title]];
|
||||||
[fieldEditor setAction:selector];
|
[fFieldEditor setAction:selector];
|
||||||
[self setValue: [NSNumber numberWithBool:YES]
|
[self setValue: [NSNumber numberWithBool:YES]
|
||||||
forKey: @"showFieldEditor"];
|
forKey: @"fShowFieldEditor"];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)hideFieldEditor:(id)sender
|
- (IBAction)hideFieldEditor:(id)sender
|
||||||
{
|
{
|
||||||
[fieldEditor setAction:nil];
|
[fFieldEditor setAction:nil];
|
||||||
[self setValue: [NSNumber numberWithBool:NO]
|
[self setValue: [NSNumber numberWithBool:NO]
|
||||||
forKey: @"showFieldEditor"];
|
forKey: @"fShowFieldEditor"];
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
@ -164,10 +164,10 @@
|
||||||
} else {
|
} else {
|
||||||
NSAttributedString * s = [self stringWithChord:chord];
|
NSAttributedString * s = [self stringWithChord:chord];
|
||||||
[sender setAttributedStringValue: s];
|
[sender setAttributedStringValue: s];
|
||||||
[fieldBeingEdited setTitle: s];
|
[fFieldBeingEdited setTitle: s];
|
||||||
[sender setTextColor: [NSColor blackColor]];
|
[sender setTextColor: [NSColor blackColor]];
|
||||||
VLSoundOut::Instance()->PlayChord(chord);
|
VLSoundOut::Instance()->PlayChord(chord);
|
||||||
int tag = [fieldBeingEdited tag];
|
int tag = [fFieldBeingEdited tag];
|
||||||
song->AddChord(chord, tag >> 8, VLFraction(tag & 0xFF, 4));
|
song->AddChord(chord, tag >> 8, VLFraction(tag & 0xFF, 4));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,16 +37,16 @@ static int sSemiToPitch[] = {
|
||||||
NSPoint loc = [event locationInWindow];
|
NSPoint loc = [event locationInWindow];
|
||||||
loc = [self convertPoint:loc fromView:nil];
|
loc = [self convertPoint:loc fromView:nil];
|
||||||
|
|
||||||
loc.x -= noteRect.origin.x;
|
loc.x -= fNoteRect.origin.x;
|
||||||
int measure = static_cast<int>(loc.x / measureW)+firstMeasure;
|
int measure = static_cast<int>(loc.x / fMeasureW);
|
||||||
loc.x -= (measure-firstMeasure)*measureW;
|
loc.x -= measure*fMeasureW;
|
||||||
int group = static_cast<int>(loc.x / ((divPerGroup+1)*kNoteW));
|
int group = static_cast<int>(loc.x / ((fDivPerGroup+1)*kNoteW));
|
||||||
loc.x -= group*(divPerGroup+1)*kNoteW;
|
loc.x -= group*(fDivPerGroup+1)*kNoteW;
|
||||||
int div = static_cast<int>(roundf(loc.x / kNoteW))-1;
|
int div = static_cast<int>(roundf(loc.x / kNoteW))-1;
|
||||||
div = std::min(std::max(div, 0), divPerGroup-1);
|
div = std::min(std::max(div, 0), fDivPerGroup-1);
|
||||||
VLFraction at(div+group*divPerGroup, 4*prop.fDivisions);
|
VLFraction at(div+group*fDivPerGroup, 4*prop.fDivisions);
|
||||||
|
|
||||||
loc.y -= noteRect.origin.y;
|
loc.y -= fNoteRect.origin.y;
|
||||||
int semi = static_cast<int>(roundf(loc.y / (0.5f*kLineH)));
|
int semi = static_cast<int>(roundf(loc.y / (0.5f*kLineH)));
|
||||||
int pitch = sSemiToPitch[semi];
|
int pitch = sSemiToPitch[semi];
|
||||||
|
|
||||||
|
@ -55,10 +55,10 @@ static int sSemiToPitch[] = {
|
||||||
|
|
||||||
- (void) addNoteAtCursor:(BOOL)isRest
|
- (void) addNoteAtCursor:(BOOL)isRest
|
||||||
{
|
{
|
||||||
if (noteCursorMeasure > -1) {
|
if (fNoteCursorMeasure > -1) {
|
||||||
VLNote newNote(1, !isRest ? noteCursorPitch : VLNote::kNoPitch);
|
VLNote newNote(1, !isRest ? fNoteCursorPitch : VLNote::kNoPitch);
|
||||||
|
|
||||||
[self song]->AddNote(newNote, noteCursorMeasure, noteCursorAt);
|
[self song]->AddNote(newNote, fNoteCursorMeasure, fNoteCursorAt);
|
||||||
|
|
||||||
[self setNeedsDisplay:YES];
|
[self setNeedsDisplay:YES];
|
||||||
|
|
||||||
|
@ -87,10 +87,10 @@ static int sSemiToPitch[] = {
|
||||||
|
|
||||||
- (void) startKeyboardCursor
|
- (void) startKeyboardCursor
|
||||||
{
|
{
|
||||||
if (noteCursorMeasure < 0) {
|
if (fNoteCursorMeasure < 0) {
|
||||||
noteCursorMeasure = firstMeasure;
|
fNoteCursorMeasure = 0;
|
||||||
noteCursorPitch = VLNote::kMiddleC;
|
fNoteCursorPitch = VLNote::kMiddleC;
|
||||||
noteCursorAt = VLFraction(0);
|
fNoteCursorAt = VLFraction(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,22 +105,22 @@ static int sSemiToPitch[] = {
|
||||||
break;
|
break;
|
||||||
case ' ':
|
case ' ':
|
||||||
[self startKeyboardCursor];
|
[self startKeyboardCursor];
|
||||||
VLSoundOut::Instance()->PlayNote(VLNote(1, noteCursorPitch));
|
VLSoundOut::Instance()->PlayNote(VLNote(1, fNoteCursorPitch));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) hideNoteCursor
|
- (void) hideNoteCursor
|
||||||
{
|
{
|
||||||
noteCursorMeasure = -1;
|
fNoteCursorMeasure = -1;
|
||||||
[self setNeedsDisplay:YES];
|
[self setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) drawNoteCursor
|
- (void) drawNoteCursor
|
||||||
{
|
{
|
||||||
NSPoint note =
|
NSPoint note =
|
||||||
NSMakePoint([self noteXInMeasure:noteCursorMeasure at:noteCursorAt],
|
NSMakePoint([self noteXInMeasure:fNoteCursorMeasure at:fNoteCursorAt],
|
||||||
[self noteYWithPitch:noteCursorPitch]);
|
[self noteYWithPitch:fNoteCursorPitch]);
|
||||||
NSRect noteCursorRect =
|
NSRect noteCursorRect =
|
||||||
NSMakeRect(note.x-kNoteX, note.y-kNoteY, 2.0f*kNoteX, 2.0f*kNoteY);
|
NSMakeRect(note.x-kNoteX, note.y-kNoteY, 2.0f*kNoteX, 2.0f*kNoteY);
|
||||||
[[self musicElement:kMusicNoteCursor]
|
[[self musicElement:kMusicNoteCursor]
|
||||||
|
@ -191,22 +191,22 @@ static int sSemiToPitch[] = {
|
||||||
//
|
//
|
||||||
if (tied) {
|
if (tied) {
|
||||||
NSPoint mid =
|
NSPoint mid =
|
||||||
NSMakePoint(0.5f*(lastNoteCenter.x+c.x),
|
NSMakePoint(0.5f*(fLastNoteCenter.x+c.x),
|
||||||
0.5f*(lastNoteCenter.y+c.y));
|
0.5f*(fLastNoteCenter.y+c.y));
|
||||||
NSPoint dir = NSMakePoint(c.y-mid.y, c.x-mid.x);
|
NSPoint dir = NSMakePoint(c.y-mid.y, c.x-mid.x);
|
||||||
float n = dir.x*dir.x+dir.y*dir.y;
|
float n = dir.x*dir.x+dir.y*dir.y;
|
||||||
float r = (kTieDepth*kTieDepth+n) / (2.0f*kTieDepth);
|
float r = (kTieDepth*kTieDepth+n) / (2.0f*kTieDepth);
|
||||||
float l = (r-kTieDepth) / sqrtf(n);
|
float l = (r-kTieDepth) / sqrtf(n);
|
||||||
mid.x += dir.x*l;
|
mid.x += dir.x*l;
|
||||||
mid.y += dir.y*l;
|
mid.y += dir.y*l;
|
||||||
float a1 = atan2(lastNoteCenter.y-mid.y, lastNoteCenter.x-mid.x);
|
float a1 = atan2(fLastNoteCenter.y-mid.y, fLastNoteCenter.x-mid.x);
|
||||||
float a2 = atan2(c.y-mid.y, c.x-mid.x);
|
float a2 = atan2(c.y-mid.y, c.x-mid.x);
|
||||||
NSBezierPath * bz = [NSBezierPath bezierPath];
|
NSBezierPath * bz = [NSBezierPath bezierPath];
|
||||||
[bz appendBezierPathWithArcWithCenter:mid radius:r
|
[bz appendBezierPathWithArcWithCenter:mid radius:r
|
||||||
startAngle:a1*180.0f/M_PI endAngle:a2*180.0f/M_PI];
|
startAngle:a1*180.0f/M_PI endAngle:a2*180.0f/M_PI];
|
||||||
[bz stroke];
|
[bz stroke];
|
||||||
}
|
}
|
||||||
lastNoteCenter = c;
|
fLastNoteCenter = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) drawRest:(VLFraction)dur at:(NSPoint)p
|
- (void) drawRest:(VLFraction)dur at:(NSPoint)p
|
||||||
|
@ -253,10 +253,10 @@ static int sSemiToPitch[] = {
|
||||||
VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing
|
VLFraction swung(3, prop.fDivisions*8, true); // Which notes to swing
|
||||||
VLFraction swingGrid(2*swung); // Alignment of swing notes
|
VLFraction swingGrid(2*swung); // Alignment of swing notes
|
||||||
|
|
||||||
for (int system = 0; system<numSystems; ++system) {
|
for (int system = 0; system<fNumSystems; ++system) {
|
||||||
float kLineY = [self systemY:system];
|
float kLineY = [self systemY:system];
|
||||||
for (int m = 0; m<measuresPerSystem; ++m) {
|
for (int m = 0; m<fMeasPerSystem; ++m) {
|
||||||
int measIdx = m+system*measuresPerSystem;
|
int measIdx = m+system*fMeasPerSystem;
|
||||||
if (measIdx >= song->CountMeasures())
|
if (measIdx >= song->CountMeasures())
|
||||||
break;
|
break;
|
||||||
const VLMeasure measure = song->fMeasures[measIdx];
|
const VLMeasure measure = song->fMeasures[measIdx];
|
||||||
|
@ -311,18 +311,18 @@ static int sSemiToPitch[] = {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (noteCursorMeasure > -1)
|
if (fNoteCursorMeasure > -1)
|
||||||
[self drawNoteCursor];
|
[self drawNoteCursor];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) setNoteCursorMeasure:(int)measure at:(VLFraction)at pitch:(int)pitch
|
- (void) setNoteCursorMeasure:(int)measure at:(VLFraction)at pitch:(int)pitch
|
||||||
{
|
{
|
||||||
if (measure != noteCursorMeasure || at != noteCursorAt
|
if (measure != fNoteCursorMeasure || at != fNoteCursorAt
|
||||||
|| pitch != noteCursorPitch
|
|| pitch != fNoteCursorPitch
|
||||||
) {
|
) {
|
||||||
noteCursorMeasure = measure;
|
fNoteCursorMeasure = measure;
|
||||||
noteCursorAt = at;
|
fNoteCursorAt = at;
|
||||||
noteCursorPitch = pitch;
|
fNoteCursorPitch = pitch;
|
||||||
|
|
||||||
[self setNeedsDisplay:YES];
|
[self setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,7 +200,7 @@
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95D1F82E0AB694EC00EE6AC8</string>
|
<string>95B042FC0ACE431A00236B52</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string><No Editor></string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
@ -222,117 +222,7 @@
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
<string>95B042FB0ACE431A00236B52</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>
|
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string><No Editor></string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
@ -376,7 +266,7 @@
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>95B042FB0ACE431A00236B52</string>
|
<string>95B042FA0ACE431A00236B52</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string><No Editor></string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
@ -398,7 +288,117 @@
|
||||||
<key>Content</key>
|
<key>Content</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>PBXProjectModuleGUID</key>
|
<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>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string><No Editor></string>
|
<string><No Editor></string>
|
||||||
<key>PBXSplitModuleInNavigatorKey</key>
|
<key>PBXSplitModuleInNavigatorKey</key>
|
||||||
|
@ -603,9 +603,9 @@
|
||||||
</array>
|
</array>
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95B042DA0ACE37CB00236B52</string>
|
<string>9529DCA60AD0E18200C9D67E</string>
|
||||||
<string>1CE0B1FE06471DED0097A5F4</string>
|
<string>1CE0B1FE06471DED0097A5F4</string>
|
||||||
<string>95B042DB0ACE37CB00236B52</string>
|
<string>9529DCA70AD0E18200C9D67E</string>
|
||||||
<string>1CE0B20306471E060097A5F4</string>
|
<string>1CE0B20306471E060097A5F4</string>
|
||||||
<string>1CE0B20506471E060097A5F4</string>
|
<string>1CE0B20506471E060097A5F4</string>
|
||||||
</array>
|
</array>
|
||||||
|
@ -739,24 +739,23 @@
|
||||||
<integer>5</integer>
|
<integer>5</integer>
|
||||||
<key>WindowOrderList</key>
|
<key>WindowOrderList</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95B043090ACE46F000236B52</string>
|
<string>9529DCB30AD0E40700C9D67E</string>
|
||||||
<string>95B042FC0ACE431A00236B52</string>
|
<string>9529DCB40AD0E40700C9D67E</string>
|
||||||
<string>95B042FB0ACE431A00236B52</string>
|
<string>9529DCB50AD0E40700C9D67E</string>
|
||||||
<string>95B042F70ACE431A00236B52</string>
|
|
||||||
<string>95B042FA0ACE431A00236B52</string>
|
|
||||||
<string>95B042E40ACE37CB00236B52</string>
|
|
||||||
<string>95B042E50ACE37CB00236B52</string>
|
|
||||||
<string>95B042E60ACE37CB00236B52</string>
|
|
||||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||||
<string>95D1F8310AB694EC00EE6AC8</string>
|
|
||||||
<string>95D1F8660AB6970400EE6AC8</string>
|
|
||||||
<string>95D1F8850AB69B6700EE6AC8</string>
|
|
||||||
<string>95D1F8130AB6908400EE6AC8</string>
|
|
||||||
<string>95D1F7FE0AB68C8C00EE6AC8</string>
|
|
||||||
<string>95D1F82E0AB694EC00EE6AC8</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>1CD10A99069EF8BA00B06720</string>
|
||||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||||
<string>/Development/Vocalese/Vocalese.xcodeproj</string>
|
<string>/Development/Vocalese/Vocalese.xcodeproj</string>
|
||||||
<string>1CD10A99069EF8BA00B06720</string>
|
|
||||||
</array>
|
</array>
|
||||||
<key>WindowString</key>
|
<key>WindowString</key>
|
||||||
<string>167 326 690 397 0 0 1024 746 </string>
|
<string>167 326 690 397 0 0 1024 746 </string>
|
||||||
|
@ -782,7 +781,7 @@
|
||||||
<key>PBXProjectModuleGUID</key>
|
<key>PBXProjectModuleGUID</key>
|
||||||
<string>1CD0528F0623707200166675</string>
|
<string>1CD0528F0623707200166675</string>
|
||||||
<key>PBXProjectModuleLabel</key>
|
<key>PBXProjectModuleLabel</key>
|
||||||
<string>new_allocator.h</string>
|
<string>VLSheetViewNotes.mm</string>
|
||||||
<key>StatusBarVisibility</key>
|
<key>StatusBarVisibility</key>
|
||||||
<true/>
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
|
@ -838,7 +837,7 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D7BFC00AA6C1A500D5E02C</string>
|
<string>95D7BFC00AA6C1A500D5E02C</string>
|
||||||
<string>95B042DC0ACE37CB00236B52</string>
|
<string>9529DCA80AD0E18200C9D67E</string>
|
||||||
<string>1CD0528F0623707200166675</string>
|
<string>1CD0528F0623707200166675</string>
|
||||||
<string>XCMainBuildResultsModuleGUID</string>
|
<string>XCMainBuildResultsModuleGUID</string>
|
||||||
</array>
|
</array>
|
||||||
|
@ -958,13 +957,13 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>1CD10A99069EF8BA00B06720</string>
|
<string>1CD10A99069EF8BA00B06720</string>
|
||||||
<string>95B042DD0ACE37CB00236B52</string>
|
<string>9529DCA90AD0E18200C9D67E</string>
|
||||||
<string>1C162984064C10D400B95A72</string>
|
<string>1C162984064C10D400B95A72</string>
|
||||||
<string>95B042DE0ACE37CB00236B52</string>
|
<string>9529DCAA0AD0E18200C9D67E</string>
|
||||||
<string>95B042DF0ACE37CB00236B52</string>
|
<string>9529DCAB0AD0E18200C9D67E</string>
|
||||||
<string>95B042E00ACE37CB00236B52</string>
|
<string>9529DCAC0AD0E18200C9D67E</string>
|
||||||
<string>95B042E10ACE37CB00236B52</string>
|
<string>9529DCAD0AD0E18200C9D67E</string>
|
||||||
<string>95B042E20ACE37CB00236B52</string>
|
<string>9529DCAE0AD0E18200C9D67E</string>
|
||||||
</array>
|
</array>
|
||||||
<key>ToolbarConfiguration</key>
|
<key>ToolbarConfiguration</key>
|
||||||
<string>xcode.toolbar.config.debugV3</string>
|
<string>xcode.toolbar.config.debugV3</string>
|
||||||
|
@ -1126,7 +1125,7 @@
|
||||||
<key>TableOfContents</key>
|
<key>TableOfContents</key>
|
||||||
<array>
|
<array>
|
||||||
<string>95D7BFC80AA6C1A500D5E02C</string>
|
<string>95D7BFC80AA6C1A500D5E02C</string>
|
||||||
<string>95B042E30ACE37CB00236B52</string>
|
<string>9529DCB20AD0E40700C9D67E</string>
|
||||||
<string>1C78EAAC065D492600B07095</string>
|
<string>1C78EAAC065D492600B07095</string>
|
||||||
</array>
|
</array>
|
||||||
<key>WindowString</key>
|
<key>WindowString</key>
|
||||||
|
|
|
@ -62,13 +62,8 @@
|
||||||
PBXFileDataSource_Warnings_ColumnID,
|
PBXFileDataSource_Warnings_ColumnID,
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
PBXPerProjectTemplateStateSaveDate = 181286523;
|
PBXPerProjectTemplateStateSaveDate = 181460906;
|
||||||
PBXWorkspaceStateSaveDate = 181286523;
|
PBXWorkspaceStateSaveDate = 181460906;
|
||||||
};
|
|
||||||
perUserProjectItems = {
|
|
||||||
95B042F40ACE42E800236B52 /* PBXBookmark */ = 95B042F40ACE42E800236B52 /* PBXBookmark */;
|
|
||||||
95B042F90ACE431A00236B52 /* PBXTextBookmark */ = 95B042F90ACE431A00236B52 /* PBXTextBookmark */;
|
|
||||||
95B043000ACE435E00236B52 /* PBXTextBookmark */ = 95B043000ACE435E00236B52 /* PBXTextBookmark */;
|
|
||||||
};
|
};
|
||||||
sourceControlManager = 954D7413095406B2007D9571 /* Source Control */;
|
sourceControlManager = 954D7413095406B2007D9571 /* Source Control */;
|
||||||
userBuildSettings = {
|
userBuildSettings = {
|
||||||
|
@ -160,9 +155,9 @@
|
||||||
};
|
};
|
||||||
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {
|
952DCD77096BBB11001C2316 /* VLSheetViewChords.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {703, 2268}}";
|
sepNavIntBoundsRect = "{{0, 0}, {703, 2114}}";
|
||||||
sepNavSelRange = "{3383, 0}";
|
sepNavSelRange = "{4746, 0}";
|
||||||
sepNavVisRect = "{{0, 1151}, {703, 261}}";
|
sepNavVisRect = "{{0, 1851}, {703, 261}}";
|
||||||
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
sepNavWindowFrame = "{{15, 92}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -300,30 +295,6 @@
|
||||||
sepNavWindowFrame = "{{120, 85}, {763, 649}}";
|
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 */ = {
|
95B66653096BC6A100FE18C9 /* VLSheetViewInternal.h */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 497}}";
|
sepNavIntBoundsRect = "{{0, 0}, {704, 497}}";
|
||||||
|
@ -342,9 +313,9 @@
|
||||||
};
|
};
|
||||||
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {
|
95B66657096BCA1F00FE18C9 /* VLSheetViewNotes.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {703, 2660}}";
|
sepNavIntBoundsRect = "{{0, 0}, {703, 4130}}";
|
||||||
sepNavSelRange = "{8068, 0}";
|
sepNavSelRange = "{1225, 0}";
|
||||||
sepNavVisRect = "{{0, 1965}, {703, 238}}";
|
sepNavVisRect = "{{0, 479}, {703, 261}}";
|
||||||
sepNavWindowFrame = "{{38, 71}, {763, 649}}";
|
sepNavWindowFrame = "{{38, 71}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -361,7 +332,7 @@
|
||||||
hitCount = 0;
|
hitCount = 0;
|
||||||
ignoreCount = 0;
|
ignoreCount = 0;
|
||||||
lineNumber = 21;
|
lineNumber = 21;
|
||||||
modificationTime = 181290725.024457;
|
modificationTime = 181461973.028078;
|
||||||
state = 2;
|
state = 2;
|
||||||
};
|
};
|
||||||
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {
|
95BDA15709540BF1009F9D65 /* VLSheetView.h */ = {
|
||||||
|
@ -374,9 +345,9 @@
|
||||||
};
|
};
|
||||||
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {
|
95BDA15809540BF1009F9D65 /* VLSheetView.mm */ = {
|
||||||
uiCtxt = {
|
uiCtxt = {
|
||||||
sepNavIntBoundsRect = "{{0, 0}, {704, 5208}}";
|
sepNavIntBoundsRect = "{{0, 0}, {703, 2814}}";
|
||||||
sepNavSelRange = "{3996, 0}";
|
sepNavSelRange = "{8722, 0}";
|
||||||
sepNavVisRect = "{{0, 2269}, {704, 497}}";
|
sepNavVisRect = "{{0, 2553}, {703, 261}}";
|
||||||
sepNavWindowFrame = "{{164, 35}, {763, 649}}";
|
sepNavWindowFrame = "{{164, 35}, {763, 649}}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue
Block a user