Add tooltips to overflowing labels

This commit is contained in:
Ivaylo Draganov
2019-05-25 22:21:06 +03:00
committed by abcdefg30
parent 1fee50be2e
commit fde215360c
23 changed files with 91 additions and 30 deletions

View File

@@ -287,7 +287,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
() => currentFilename == filepath && currentPackage == package,
() => { LoadAsset(package, filepath); });
item.Get<LabelWidget>("TITLE").GetText = () => filepath;
var label = item.Get<LabelWithTooltipWidget>("TITLE");
WidgetUtils.TruncateLabelToTooltip(label, filepath);
item.IsVisible = () =>
{
bool visible;

View File

@@ -201,7 +201,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic
item.OnDoubleClick = Load;
var title = Path.GetFileNameWithoutExtension(savePath);
item.Get<LabelWidget>("TITLE").GetText = () => title;
var label = item.Get<LabelWithTooltipWidget>("TITLE");
WidgetUtils.TruncateLabelToTooltip(label, title);
var date = File.GetLastWriteTime(savePath).ToString("yyyy-MM-dd HH:mm:ss");
item.Get<LabelWidget>("DATE").GetText = () => date;

View File

@@ -192,7 +192,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
() => SelectMap(preview),
StartMissionClicked);
item.Get<LabelWidget>("TITLE").GetText = () => preview.Title;
var label = item.Get<LabelWithTooltipWidget>("TITLE");
WidgetUtils.TruncateLabelToTooltip(label, preview.Title);
missionList.AddChild(item);
}
}

View File

@@ -135,7 +135,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
foreach (var song in music)
{
var item = ScrollItemWidget.Setup(song.Filename, itemTemplate, () => currentSong == song, () => { currentSong = song; Play(); }, () => { });
item.Get<LabelWidget>("TITLE").GetText = () => song.Title;
var label = item.Get<LabelWithTooltipWidget>("TITLE");
WidgetUtils.TruncateLabelToTooltip(label, song.Title);
item.Get<LabelWidget>("LENGTH").GetText = () => SongLengthLabel(song);
musicList.AddChild(item);
}

View File

@@ -709,7 +709,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic
};
item.Text = Path.GetFileNameWithoutExtension(replay.FilePath);
item.Get<LabelWidget>("TITLE").GetText = () => item.Text;
var label = item.Get<LabelWithTooltipWidget>("TITLE");
WidgetUtils.TruncateLabelToTooltip(label, item.Text);
item.IsVisible = () => replayState[replay].Visible;
replayList.AddChild(item);
}

View File

@@ -594,12 +594,10 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var canJoin = game.IsJoinable;
var item = ScrollItemWidget.Setup(serverTemplate, () => currentServer == game, () => SelectServer(game), () => onJoin(game));
var title = item.GetOrNull<LabelWidget>("TITLE");
var title = item.GetOrNull<LabelWithTooltipWidget>("TITLE");
if (title != null)
{
var font = Game.Renderer.Fonts[title.Font];
var label = WidgetUtils.TruncateText(game.Name, title.Bounds.Width, font);
title.GetText = () => label;
WidgetUtils.TruncateLabelToTooltip(title, game.Name);
title.GetColor = () => canJoin ? title.TextColor : incompatibleGameColor;
}