update key bindings
This commit is contained in:
@ -27,10 +27,14 @@ import com.minres.scviewer.database.tx.ITx;
|
||||
|
||||
public interface IWaveformView extends PropertyChangeListener, ISelectionProvider{
|
||||
|
||||
String CURSOR_PROPERTY = "cursor_time";
|
||||
static final String CURSOR_PROPERTY = "cursor_time";
|
||||
|
||||
String MARKER_PROPERTY = "marker_time";
|
||||
static final String MARKER_PROPERTY = "marker_time";
|
||||
|
||||
static final int CURSOR_POS = 0;
|
||||
|
||||
static final int MARKER_POS = 1;
|
||||
|
||||
public static final RelationType NEXT_PREV_IN_STREAM = RelationTypeFactory.create("Prev/Next in stream");
|
||||
|
||||
public void addSelectionChangedListener(ISelectionChangedListener listener);
|
||||
@ -113,6 +117,8 @@ public interface IWaveformView extends PropertyChangeListener, ISelectionProvide
|
||||
|
||||
public void scrollHorizontal(int percent);
|
||||
|
||||
public void scrollTo(int pos);
|
||||
|
||||
public void addDisposeListener( DisposeListener listener );
|
||||
|
||||
public void deleteSelectedTracks();
|
||||
|
@ -496,6 +496,12 @@ public class WaveformCanvas extends Canvas {
|
||||
}
|
||||
}
|
||||
|
||||
public void centerAt(long time) {
|
||||
int scaledTime = (int) (time / scaleFactor);
|
||||
int newX = -scaledTime+getWidth()/2;
|
||||
setOrigin(newX>0?0:newX, origin.y);
|
||||
}
|
||||
|
||||
public int getRulerHeight() {
|
||||
return rulerHeight;
|
||||
}
|
||||
|
@ -292,8 +292,8 @@ public class WaveformView implements IWaveformView {
|
||||
@Override
|
||||
public void handleEvent(Event e) {
|
||||
switch (e.type) {
|
||||
// case SWT.MouseWheel:
|
||||
// break;
|
||||
// case SWT.MouseWheel:
|
||||
// break;
|
||||
case SWT.MouseDown:
|
||||
start = new Point(e.x, e.y);
|
||||
end = new Point(e.x, e.y);
|
||||
@ -1509,6 +1509,22 @@ public class WaveformView implements IWaveformView {
|
||||
waveformCanvas.redraw();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void scrollTo(int pos) {
|
||||
long time = 0;
|
||||
switch(pos) {
|
||||
case IWaveformView.CURSOR_POS:
|
||||
time = getCursorTime();
|
||||
break;
|
||||
case IWaveformView.MARKER_POS:
|
||||
time = getMarkerTime(selectedMarker);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
waveformCanvas.centerAt(time);
|
||||
}
|
||||
|
||||
public void asyncUpdate(Widget widget) {
|
||||
widget.getDisplay().asyncExec(() -> {
|
||||
waveformCanvas.redraw();
|
||||
@ -1539,4 +1555,13 @@ public class WaveformView implements IWaveformView {
|
||||
return e;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -357,9 +357,13 @@ public class WaveformViewer implements IFileChangeListener, IPreferenceChangeLis
|
||||
waveformPane.moveSelection(GotoDirection.DOWN);
|
||||
return;
|
||||
case SWT.HOME:
|
||||
waveformPane.scrollTo(IWaveformView.MARKER_POS);
|
||||
return;
|
||||
case SWT.END:
|
||||
waveformPane.scrollTo(IWaveformView.CURSOR_POS);
|
||||
return;
|
||||
case SWT.DEL:
|
||||
waveformPane.deleteSelectedTracks();
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user