tastudio: dynamically resize usertext column

This commit is contained in:
feos 2017-03-15 21:46:46 +03:00
parent 2fa40bac04
commit a9cda4a21f
4 changed files with 37 additions and 3 deletions

View File

@ -193,7 +193,6 @@ namespace BizHawk.Client.Common
}
});
bl.GetLump(nusertext, false, delegate(TextReader tr)
{
string line;

View File

@ -26,6 +26,7 @@ namespace BizHawk.Client.EmuHawk
public TasBranch BackupBranch;
private enum BranchUndo { Load, Update, Text, Remove, None }
private BranchUndo _branchUndo = BranchUndo.None;
private int LongestBranchText = 0;
public int HoverInterval {
get { return BranchView.HoverInterval; }
set { BranchView.HoverInterval = value; }
@ -464,6 +465,32 @@ namespace BizHawk.Client.EmuHawk
BranchView.Refresh();
}
public void UpdateTextColumnWidth()
{
int temp = 0;
foreach (TasBranch b in Movie.Branches)
{
if (string.IsNullOrEmpty(b.UserText))
continue;
if (temp < b.UserText.Length)
temp = b.UserText.Length;
}
LongestBranchText = temp;
int textWidth = LongestBranchText * 12 + 14; // sorry for magic numbers. see TAStudio.SetUpColumns()
InputRoll.RollColumn column = BranchView.AllColumns.Where(c => c.Name == UserTextColumnName).SingleOrDefault();
if (textWidth < 90)
textWidth = 90;
if (column.Width != textWidth)
{
column.Width = textWidth;
BranchView.AllColumns.ColumnsChanged();
}
}
public bool EditBranchTextPopUp(int index)
{
TasBranch branch = Movie.GetBranch(index);
@ -485,6 +512,7 @@ namespace BizHawk.Client.EmuHawk
if (result == DialogResult.OK)
{
branch.UserText = i.PromptText;
UpdateTextColumnWidth();
UpdateValues();
return true;
}

View File

@ -75,7 +75,7 @@ namespace BizHawk.Client.EmuHawk
{
LoadFile(new FileInfo(ofd.FileName));
}
else if (ofd.FileName.EndsWith(".bkm") || ofd.FileName.EndsWith(".bk2")) // was loaded using "All Files" filter. todo: proper extention iteration
else if (ofd.FileName.EndsWith(".bkm") || ofd.FileName.EndsWith(".bk2")) // todo: proper extention iteration
{
Mainform.StartNewMovie(MovieService.Get(ofd.FileName), false);

View File

@ -449,7 +449,7 @@ namespace BizHawk.Client.EmuHawk
type = InputRoll.RollColumn.InputType.Boolean;
digits = kvp.Value.Length;
}
AddColumn(kvp.Key, kvp.Value, (digits * 6) + 14, type);
AddColumn(kvp.Key, kvp.Value, (digits * 6) + 14, type); // magic numbers reused in EditBranchTextPopUp()
}
var columnsToHide = TasView.AllColumns
@ -578,6 +578,7 @@ namespace BizHawk.Client.EmuHawk
CurrentTasMovie.PropertyChanged += new PropertyChangedEventHandler(this.TasMovie_OnPropertyChanged);
CurrentTasMovie.CurrentBranch = CurrentTasMovie.Session.CurrentBranch;
BookMarkControl.UpdateTextColumnWidth();
// clear all selections
TasView.DeselectAll();
@ -644,13 +645,19 @@ namespace BizHawk.Client.EmuHawk
private bool StartNewMovieWrapper(bool record, IMovie movie = null)
{
_initializing = true;
if (movie == null)
movie = CurrentTasMovie;
SetTasMovieCallbacks(movie as TasMovie);
bool result = Mainform.StartNewMovie(movie, record);
if (result)
CurrentTasMovie.TasStateManager.Capture(); // Capture frame 0 always.
TastudioPlayMode();
BookMarkControl.UpdateTextColumnWidth();
_initializing = false;
return result;