VocalEasel/Sources/VLSheetView.h

168 lines
3.8 KiB
C
Raw Normal View History

2006-09-11 02:49:56 +00:00
//
2007-04-27 06:41:34 +00:00
// File: VLSheetView.h - Lead sheet editing view
2006-09-11 02:49:56 +00:00
//
2007-04-27 06:41:34 +00:00
// Author(s):
//
// (MN) Matthias Neeracher
//
// Copyright © 2005-2011 Matthias Neeracher
2006-09-11 02:49:56 +00:00
//
#import <Cocoa/Cocoa.h>
2008-05-29 18:54:30 +00:00
#import <AudioToolbox/AudioToolbox.h>
2006-09-11 02:49:56 +00:00
#import "VLModel.h"
2007-12-23 12:45:17 +00:00
#import "VLLayout.h"
#import "VLKeyValueUndo.h"
2006-09-11 02:49:56 +00:00
@class VLDocument;
enum VLMusicElement {
2006-10-21 09:23:37 +00:00
kMusicNothing = 0,
kMusicGClef = 0,
2006-09-11 02:49:56 +00:00
kMusicFlat,
kMusicSharp,
kMusicNatural,
kMusic2Flat,
kMusic2Sharp,
2006-09-11 02:49:56 +00:00
kMusicWholeNote,
kMusicHalfNote,
kMusicNote,
kMusicWholeRest,
kMusicHalfRest,
kMusicQuarterRest,
kMusicEighthRest,
kMusicSixteenthRest,
kMusicThirtysecondthRest,
kMusicEighthFlag,
kMusicSixteenthFlag,
kMusicThirtysecondthFlag,
kMusicNoteCursor,
2006-10-21 09:23:37 +00:00
kMusicFlatCursor,
kMusicSharpCursor,
kMusicNaturalCursor,
kMusic2FlatCursor,
kMusic2SharpCursor,
kMusicRestCursor,
2006-10-21 09:23:37 +00:00
kMusicKillCursor,
2007-04-22 02:59:52 +00:00
kMusicExtendCursor,
2007-01-21 11:34:56 +00:00
kMusicCoda,
2006-09-11 02:49:56 +00:00
kMusicElements
};
enum VLRegion {
kRegionNowhere,
kRegionNote,
kRegionChord,
2006-12-28 05:03:28 +00:00
kRegionLyrics,
kRegionMeasure
};
enum VLRecalc {
kNoRecalc,
kRecalc,
kFirstRecalc
};
enum VLCursorVisual {
kCursorExtend = 1<<15,
kCursorFlagsMask= 0x8000,
kCursorNoPitch = -128
};
@class VLEditable;
2006-09-11 02:49:56 +00:00
@interface VLSheetView : NSView {
2006-12-02 23:05:12 +00:00
NSImage ** fMusic;
VLRecalc fNeedsRecalc;
char fClickMode;
2007-05-04 05:21:16 +00:00
size_t fLastMeasures;
float fDisplayScale;
NSPoint fLastNoteCenter;
NSTrackingRectTag fCursorTracking;
2006-10-03 17:52:54 +00:00
VLRegion fCursorRegion;
int fCursorMeasure;
VLFract fCursorAt;
int fCursorVertPos;
uint16_t fCursorVisual;
2006-12-02 09:02:44 +00:00
size_t fCursorStanza;
2006-12-28 05:03:28 +00:00
int fSelStart;
int fSelEnd;
2011-09-08 01:11:33 +00:00
int fSelAnchor;
int fNumTopLedgers;
int fNumBotLedgers;
int fNumStanzas;
size_t fVolta;
size_t fVoltaOK;
2007-12-23 12:45:17 +00:00
VLLayout * fLayout;
2008-05-29 18:54:30 +00:00
int fHighlightMeasure;
VLFract fHighlightAt;
size_t fHighlightStanza;
bool fHighlightNow;
bool fHighlightOne;
VLKeyValueUndo * fUndo;
2006-09-11 02:49:56 +00:00
IBOutlet id fFieldEditor;
IBOutlet id fRepeatSheet;
IBOutlet id fEndingSheet;
IBOutlet id fRepeatMsg;
IBOutlet id fEndingMsg;
2007-04-15 05:22:30 +00:00
IBOutlet id fGrooveMenu;
2008-01-16 13:04:01 +00:00
IBOutlet id fKeyMenu;
IBOutlet id fTimeMenu;
IBOutlet id fDivisionMenu;
2006-09-11 02:49:56 +00:00
}
@property (nonatomic) int numTopLedgers;
@property (nonatomic) int numBotLedgers;
@property (nonatomic) int numStanzas;
2006-09-11 02:49:56 +00:00
- (IBAction) setKey:(id)sender;
- (IBAction) setTime:(id)sender;
- (IBAction) setDivisions:(id)sender;
- (IBAction) hideFieldEditor:(id)sender;
- (IBAction) endSheetWithButton:(id)sender;
2007-04-15 05:22:30 +00:00
- (IBAction) selectGroove:(id)sender;
2008-04-12 21:33:43 +00:00
- (IBAction) transposeOctave:(id)sender;
- (IBAction) zoomIn: (id) sender;
- (IBAction) zoomOut: (id) sender;
2011-09-04 19:48:57 +00:00
2006-09-11 02:49:56 +00:00
- (VLDocument *) document;
- (VLSong *) song;
- (NSImage *) musicElement:(VLMusicElement)elt;
2006-10-02 05:29:37 +00:00
- (float) systemY:(int)system;
- (int) gridInSection:(int)section withPitch:(int)pitch visual:(uint16_t)visual;
- (float) noteYInGrid:(int)vertPos;
- (float) noteYInSection:(int)section withPitch:(int)pitch visual:(uint16_t *)visual;
- (float) noteYInSection:(int)section withPitch:(int)pitch;
- (VLMusicElement)accidentalForVisual:(uint16_t)visual;
- (float) noteYInMeasure:(int)measure withGrid:(int)vertPos;
2006-09-11 02:49:56 +00:00
- (float) noteXInMeasure:(int)measure at:(VLFraction)at;
- (void) needsRecalculation;
2006-09-11 02:49:56 +00:00
2006-10-09 07:28:49 +00:00
- (void) scrollMeasureToVisible:(int)measure;
- (void) mouseMoved:(NSEvent *)event;
- (void) mouseDown:(NSEvent *)event;
- (void) mouseEntered:(NSEvent *)event;
- (void) mouseExited:(NSEvent *)event;
2006-10-03 17:52:54 +00:00
- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor;
- (VLEditable *) editTarget;
- (void) setEditTarget:(VLEditable *)editable;
- (VLRegion) findRegionForEvent:(NSEvent *) event;
2007-04-15 05:22:30 +00:00
- (void) setGroove:(NSString *)groove;
2008-01-24 01:29:18 +00:00
- (void) playWithGroove:(NSString *)groove;
2007-04-15 05:22:30 +00:00
2008-05-29 18:54:30 +00:00
- (NSColor *)textBackgroundColorForSystem:(int)system;
- (void)removeObservers:(id)target;
2008-05-29 18:54:30 +00:00
2006-09-11 02:49:56 +00:00
@end
// Local Variables:
// mode:ObjC
// End: