| 1 |
// |
| 2 |
// StripChartView.h |
| 3 |
// Created by Toshi Nagata on Sun Jan 26 2003. |
| 4 |
// |
| 5 |
/* |
| 6 |
Copyright (c) 2003-2016 Toshi Nagata. All rights reserved. |
| 7 |
|
| 8 |
This program is free software; you can redistribute it and/or modify |
| 9 |
it under the terms of the GNU General Public License as published by |
| 10 |
the Free Software Foundation version 2 of the License. |
| 11 |
|
| 12 |
This program is distributed in the hope that it will be useful, |
| 13 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 14 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 15 |
GNU General Public License for more details. |
| 16 |
*/ |
| 17 |
|
| 18 |
#import <AppKit/AppKit.h> |
| 19 |
|
| 20 |
#import <Cocoa/Cocoa.h> |
| 21 |
#import "GraphicClientView.h" |
| 22 |
#import "MDHeaders.h" |
| 23 |
|
| 24 |
enum { |
| 25 |
kStripChartBarMode, kStripChartBoxMode |
| 26 |
}; |
| 27 |
|
| 28 |
@interface StripChartView : GraphicClientView |
| 29 |
{ |
| 30 |
unsigned char mode; |
| 31 |
int eventKind, eventCode; |
| 32 |
int focusTrack; // -1: same as the piano roll, 0,1,...: track number |
| 33 |
MDCalibrator *calib; |
| 34 |
int stripDraggingMode; |
| 35 |
int lineShape; // 0: no drawing, >0: drawing with line shapes defined as kGraphic****Shape (cf. GraphicWindowController.h) |
| 36 |
BOOL horizontal; |
| 37 |
NSPoint draggingStartPoint; |
| 38 |
NSPoint draggingPoint; |
| 39 |
NSRect selectionRect; |
| 40 |
NSRect limitRect; |
| 41 |
|
| 42 |
// Used for showing cursor info when stripDraggingMode > 0 |
| 43 |
// (i.e. while dragging the selected event(s)) |
| 44 |
float initialDraggedValue; // The initial strip value of the dragged event |
| 45 |
int32_t initialDraggedTick; // The initial tick value of the dragged event |
| 46 |
float deltaDraggedValue; |
| 47 |
int32_t deltaDraggedTick; |
| 48 |
|
| 49 |
// Resolution of the y value. Usually 1.0, but can be other values. |
| 50 |
float resolution; |
| 51 |
|
| 52 |
// The center y coordinate when dragging is started; this is the baseline for add/sub or scale tool |
| 53 |
CGFloat centerY; |
| 54 |
} |
| 55 |
|
| 56 |
- (void)setKindAndCode: (int32_t)kindAndCode; |
| 57 |
- (int32_t)kindAndCode; |
| 58 |
- (void)setResolution: (float)resolution; |
| 59 |
|
| 60 |
// Dragging support (accompanying PianoRollView) |
| 61 |
- (void)startExternalDraggingAtPoint:(NSPoint)aPoint mode:(int)aMode; |
| 62 |
- (void)endExternalDragging; |
| 63 |
- (void)setExternalDraggingPoint:(NSPoint)aPoint; |
| 64 |
|
| 65 |
// Interval of the horizontal grid lines (measured in chart values; also used in StripChartRulerView) |
| 66 |
- (float)horizontalGridInterval; |
| 67 |
|
| 68 |
// Accessor methods for StripChartRulerView |
| 69 |
//- (float)minValue; |
| 70 |
//- (float)maxValue; |
| 71 |
|
| 72 |
@end |