tastudio makers text popup:
- appears when double-clicking existing marker in tasview - appears at cursor position when called from tasview (fancy) this required adding optional position to ShowHawkDialog()
This commit is contained in:
parent
17faf42b6e
commit
ae16703ffc
|
@ -157,9 +157,14 @@ namespace BizHawk.Client.EmuHawk.WinFormExtensions
|
|||
/// <summary>
|
||||
/// Handles EmuHawk specific issues before showing a modal dialog
|
||||
/// </summary>
|
||||
public static DialogResult ShowHawkDialog(this Form form, IWin32Window owner = null)
|
||||
public static DialogResult ShowHawkDialog(this Form form, IWin32Window owner = null, Point position = default(Point))
|
||||
{
|
||||
GlobalWin.Sound.StopSound();
|
||||
if (position != default(Point))
|
||||
{
|
||||
form.StartPosition = FormStartPosition.Manual;
|
||||
form.Location = position;
|
||||
}
|
||||
var result = (owner == null ? form.ShowDialog() : form.ShowDialog(owner));
|
||||
GlobalWin.Sound.StartSound();
|
||||
return result;
|
||||
|
|
|
@ -55,7 +55,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (prev != null && index == Markers.IndexOf(prev))
|
||||
{
|
||||
color = TAStudio.Marker_FrameCol;
|
||||
// feos: taseditor doesn't have it, so we're free to set arbitrary color scheme. and I prefer consistency
|
||||
color = TAStudio.CurrentFrame_InputLog;
|
||||
}
|
||||
else if (index < Markers.Count)
|
||||
{
|
||||
|
@ -174,7 +175,11 @@ namespace BizHawk.Client.EmuHawk
|
|||
Markers.PreviousOrCurrent(markerFrame).Message :
|
||||
""
|
||||
};
|
||||
var result = i.ShowHawkDialog();
|
||||
|
||||
var point = Cursor.Position;
|
||||
point.Offset(i.Width / -2, i.Height / -2);
|
||||
|
||||
var result = i.ShowHawkDialog(position: point);
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
Markers.Add(new TasMovieMarker(markerFrame, i.PromptText));
|
||||
|
@ -189,9 +194,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
Tastudio.RefreshDialog();
|
||||
}
|
||||
|
||||
public void EditMarkerPopUp(TasMovieMarker marker)
|
||||
public void EditMarkerPopUp(TasMovieMarker marker, bool followCursor = false)
|
||||
{
|
||||
var markerFrame = marker.Frame;
|
||||
var point = default(Point);
|
||||
InputPrompt i = new InputPrompt
|
||||
{
|
||||
Text = "Marker for frame " + markerFrame,
|
||||
|
@ -203,7 +209,12 @@ namespace BizHawk.Client.EmuHawk
|
|||
""
|
||||
};
|
||||
|
||||
var result = i.ShowHawkDialog();
|
||||
if (followCursor)
|
||||
{
|
||||
point = Cursor.Position;
|
||||
point.Offset(i.Width / -2, i.Height / -2);
|
||||
}
|
||||
var result = i.ShowHawkDialog(position: point);
|
||||
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
|
|
|
@ -726,21 +726,28 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
if (e.Button == MouseButtons.Left)
|
||||
{
|
||||
var buttonName = TasView.CurrentCell.Column.Name;
|
||||
|
||||
if (TasView.CurrentCell.RowIndex.HasValue &&
|
||||
buttonName == FrameColumnName &&
|
||||
TasView.CurrentCell.Column.Name == FrameColumnName &&
|
||||
!FloatEditingMode)
|
||||
{
|
||||
if (Settings.EmptyMarkers)
|
||||
var existingMarker = CurrentTasMovie.Markers.FirstOrDefault(m => m.Frame == TasView.CurrentCell.RowIndex.Value);
|
||||
|
||||
if (existingMarker != null)
|
||||
{
|
||||
CurrentTasMovie.Markers.Add(TasView.CurrentCell.RowIndex.Value, string.Empty);
|
||||
RefreshDialog();
|
||||
MarkerControl.EditMarkerPopUp(existingMarker, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClearLeftMouseStates();
|
||||
MarkerControl.AddMarker(false, TasView.CurrentCell.RowIndex.Value);
|
||||
if (Settings.EmptyMarkers)
|
||||
{
|
||||
CurrentTasMovie.Markers.Add(TasView.CurrentCell.RowIndex.Value, string.Empty);
|
||||
RefreshDialog();
|
||||
}
|
||||
else
|
||||
{
|
||||
ClearLeftMouseStates();
|
||||
MarkerControl.AddMarker(false, TasView.CurrentCell.RowIndex.Value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue