diff --git a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs index 7500c86b49..917c182cfd 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/AssetBrowserLogic.cs @@ -287,7 +287,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic () => currentFilename == filepath && currentPackage == package, () => { LoadAsset(package, filepath); }); - item.Get("TITLE").GetText = () => filepath; + var label = item.Get("TITLE"); + WidgetUtils.TruncateLabelToTooltip(label, filepath); + item.IsVisible = () => { bool visible; diff --git a/OpenRA.Mods.Common/Widgets/Logic/GameSaveBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/GameSaveBrowserLogic.cs index a59f5d5fbd..21252a5ff9 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/GameSaveBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/GameSaveBrowserLogic.cs @@ -201,7 +201,8 @@ namespace OpenRA.Mods.Common.Widgets.Logic item.OnDoubleClick = Load; var title = Path.GetFileNameWithoutExtension(savePath); - item.Get("TITLE").GetText = () => title; + var label = item.Get("TITLE"); + WidgetUtils.TruncateLabelToTooltip(label, title); var date = File.GetLastWriteTime(savePath).ToString("yyyy-MM-dd HH:mm:ss"); item.Get("DATE").GetText = () => date; diff --git a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs index b9893e26b3..f8f2e214ea 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MissionBrowserLogic.cs @@ -192,7 +192,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic () => SelectMap(preview), StartMissionClicked); - item.Get("TITLE").GetText = () => preview.Title; + var label = item.Get("TITLE"); + WidgetUtils.TruncateLabelToTooltip(label, preview.Title); + missionList.AddChild(item); } } diff --git a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs index e3f433cfb5..cccfe345a9 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/MusicPlayerLogic.cs @@ -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("TITLE").GetText = () => song.Title; + var label = item.Get("TITLE"); + WidgetUtils.TruncateLabelToTooltip(label, song.Title); + item.Get("LENGTH").GetText = () => SongLengthLabel(song); musicList.AddChild(item); } diff --git a/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs index d7afb126ad..913c757c54 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ReplayBrowserLogic.cs @@ -709,7 +709,9 @@ namespace OpenRA.Mods.Common.Widgets.Logic }; item.Text = Path.GetFileNameWithoutExtension(replay.FilePath); - item.Get("TITLE").GetText = () => item.Text; + var label = item.Get("TITLE"); + WidgetUtils.TruncateLabelToTooltip(label, item.Text); + item.IsVisible = () => replayState[replay].Visible; replayList.AddChild(item); } diff --git a/OpenRA.Mods.Common/Widgets/Logic/ServerListLogic.cs b/OpenRA.Mods.Common/Widgets/Logic/ServerListLogic.cs index 672151d006..3875fa14f2 100644 --- a/OpenRA.Mods.Common/Widgets/Logic/ServerListLogic.cs +++ b/OpenRA.Mods.Common/Widgets/Logic/ServerListLogic.cs @@ -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("TITLE"); + var title = item.GetOrNull("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; } diff --git a/mods/cnc/chrome/assetbrowser.yaml b/mods/cnc/chrome/assetbrowser.yaml index 9ba5f78de8..5abe346f7f 100644 --- a/mods/cnc/chrome/assetbrowser.yaml +++ b/mods/cnc/chrome/assetbrowser.yaml @@ -48,11 +48,14 @@ Container@ASSETBROWSER_PANEL: X: 2 Y: 0 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 15 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@FILENAME_DESC: X: 15 Y: 340 @@ -200,3 +203,4 @@ Container@ASSETBROWSER_PANEL: Width: 140 Height: 35 Text: Back + TooltipContainer@TOOLTIP_CONTAINER: diff --git a/mods/cnc/chrome/gamesave-browser.yaml b/mods/cnc/chrome/gamesave-browser.yaml index 011f420462..18bbca9627 100644 --- a/mods/cnc/chrome/gamesave-browser.yaml +++ b/mods/cnc/chrome/gamesave-browser.yaml @@ -48,11 +48,14 @@ Container@GAMESAVE_BROWSER_PANEL: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 200 - 10 Height: 25 + TooltipContainer: GAMESAVE_TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@DATE: X: PARENT_RIGHT - WIDTH - 10 Width: 200 @@ -112,4 +115,4 @@ Container@GAMESAVE_BROWSER_PANEL: Height: 35 Text: Save Visible: False - TooltipContainer@TOOLTIP_CONTAINER: + TooltipContainer@GAMESAVE_TOOLTIP_CONTAINER: diff --git a/mods/cnc/chrome/lobby-music.yaml b/mods/cnc/chrome/lobby-music.yaml index 850ba465e1..647d7e8bf1 100644 --- a/mods/cnc/chrome/lobby-music.yaml +++ b/mods/cnc/chrome/lobby-music.yaml @@ -154,11 +154,14 @@ Container@LOBBY_MUSIC_BIN: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 50 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@LENGTH: X: PARENT_RIGHT - 60 Width: 50 diff --git a/mods/cnc/chrome/lobby-servers.yaml b/mods/cnc/chrome/lobby-servers.yaml index 8ea6e85bec..48f69313e9 100644 --- a/mods/cnc/chrome/lobby-servers.yaml +++ b/mods/cnc/chrome/lobby-servers.yaml @@ -85,10 +85,12 @@ Container@LOBBY_SERVERS_BIN: X: 2 EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 5 Width: 245 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Image@PASSWORD_PROTECTED: X: 272 Y: 6 diff --git a/mods/cnc/chrome/missionbrowser.yaml b/mods/cnc/chrome/missionbrowser.yaml index c0b839c055..eefd51bfd8 100644 --- a/mods/cnc/chrome/missionbrowser.yaml +++ b/mods/cnc/chrome/missionbrowser.yaml @@ -39,11 +39,14 @@ Container@MISSIONBROWSER_PANEL: Height: 25 X: 2 Visible: False + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Container@MISSION_INFO: X: 337 Y: 15 @@ -148,6 +151,7 @@ Container@MISSIONBROWSER_PANEL: Y: 1 Width: 712 Height: 418 + TooltipContainer@TOOLTIP_CONTAINER: Background@FULLSCREEN_PLAYER: Width: WINDOW_RIGHT diff --git a/mods/cnc/chrome/multiplayer-browser.yaml b/mods/cnc/chrome/multiplayer-browser.yaml index e0e7fc83ea..bb91f813f2 100644 --- a/mods/cnc/chrome/multiplayer-browser.yaml +++ b/mods/cnc/chrome/multiplayer-browser.yaml @@ -106,10 +106,12 @@ Container@MULTIPLAYER_PANEL: X: 2 EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 5 Width: 245 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Image@PASSWORD_PROTECTED: X: 272 Y: 6 diff --git a/mods/cnc/chrome/music.yaml b/mods/cnc/chrome/music.yaml index ce0c1c86f5..f578b31d30 100644 --- a/mods/cnc/chrome/music.yaml +++ b/mods/cnc/chrome/music.yaml @@ -30,11 +30,14 @@ Container@MUSIC_PANEL: X: 2 Y: 0 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 50 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@LENGTH: Width: 50 X: PARENT_RIGHT - 60 @@ -192,3 +195,4 @@ Container@MUSIC_PANEL: Width: 300 Height: 20 Font: Small + TooltipContainer@TOOLTIP_CONTAINER: diff --git a/mods/cnc/chrome/replaybrowser.yaml b/mods/cnc/chrome/replaybrowser.yaml index 13f206597e..26272e6809 100644 --- a/mods/cnc/chrome/replaybrowser.yaml +++ b/mods/cnc/chrome/replaybrowser.yaml @@ -167,7 +167,7 @@ Container@REPLAYBROWSER_PANEL: Container@REPLAY_LIST_CONTAINER: X: 310 Y: 20 - Width: 245 + Width: 250 Height: PARENT_BOTTOM - 20 - 20 Children: Label@REPLAYBROWSER_LABEL_TITLE: @@ -188,11 +188,14 @@ Container@REPLAYBROWSER_PANEL: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Container@MAP_PREVIEW_ROOT: X: PARENT_RIGHT - WIDTH - 20 Y: 50 diff --git a/mods/common/chrome/assetbrowser.yaml b/mods/common/chrome/assetbrowser.yaml index 57f38a4a70..73f9884396 100644 --- a/mods/common/chrome/assetbrowser.yaml +++ b/mods/common/chrome/assetbrowser.yaml @@ -43,11 +43,14 @@ Background@ASSETBROWSER_PANEL: X: 2 Y: 0 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@FILENAME_DESC: X: 20 Y: 370 @@ -203,3 +206,4 @@ Background@ASSETBROWSER_PANEL: Height: 25 Font: Bold Text: Close + TooltipContainer@TOOLTIP_CONTAINER: diff --git a/mods/common/chrome/gamesave-browser.yaml b/mods/common/chrome/gamesave-browser.yaml index 0e29ed3f75..87388255b2 100644 --- a/mods/common/chrome/gamesave-browser.yaml +++ b/mods/common/chrome/gamesave-browser.yaml @@ -43,11 +43,14 @@ Background@GAMESAVE_BROWSER_PANEL: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 200 - 10 Height: 25 + TooltipContainer: GAMESAVE_TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@DATE: X: PARENT_RIGHT - WIDTH - 10 Width: 200 @@ -113,4 +116,4 @@ Background@GAMESAVE_BROWSER_PANEL: Text: Save Font: Bold Visible: False - TooltipContainer@TOOLTIP_CONTAINER: + TooltipContainer@GAMESAVE_TOOLTIP_CONTAINER: diff --git a/mods/common/chrome/lobby-music.yaml b/mods/common/chrome/lobby-music.yaml index 4e4bc2a15e..831558f3c7 100644 --- a/mods/common/chrome/lobby-music.yaml +++ b/mods/common/chrome/lobby-music.yaml @@ -144,11 +144,14 @@ Container@LOBBY_MUSIC_BIN: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 50 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@LENGTH: X: PARENT_RIGHT - 60 Width: 50 diff --git a/mods/common/chrome/lobby-servers.yaml b/mods/common/chrome/lobby-servers.yaml index fb8f5b04bc..e694178d3f 100644 --- a/mods/common/chrome/lobby-servers.yaml +++ b/mods/common/chrome/lobby-servers.yaml @@ -82,10 +82,12 @@ Container@LOBBY_SERVERS_BIN: Height: 25 EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 5 Width: 245 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Image@PASSWORD_PROTECTED: X: 272 Y: 6 diff --git a/mods/common/chrome/missionbrowser.yaml b/mods/common/chrome/missionbrowser.yaml index bc9c2ae567..d6fa346925 100644 --- a/mods/common/chrome/missionbrowser.yaml +++ b/mods/common/chrome/missionbrowser.yaml @@ -34,11 +34,14 @@ Background@MISSIONBROWSER_PANEL: Width: PARENT_RIGHT - 27 Height: 25 X: 2 + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Container@MISSION_INFO: X: 300 Y: 50 @@ -149,6 +152,7 @@ Background@MISSIONBROWSER_PANEL: Y: 1 Width: 640 Height: 375 + TooltipContainer@TOOLTIP_CONTAINER: Background@FULLSCREEN_PLAYER: Width: WINDOW_RIGHT diff --git a/mods/common/chrome/multiplayer-browser.yaml b/mods/common/chrome/multiplayer-browser.yaml index 2480b343d8..2a10fba8cf 100644 --- a/mods/common/chrome/multiplayer-browser.yaml +++ b/mods/common/chrome/multiplayer-browser.yaml @@ -98,10 +98,12 @@ Background@MULTIPLAYER_PANEL: Height: 25 EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 5 Width: 245 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Image@PASSWORD_PROTECTED: X: 272 Y: 6 diff --git a/mods/common/chrome/musicplayer.yaml b/mods/common/chrome/musicplayer.yaml index 8dedd634a3..14313080d5 100644 --- a/mods/common/chrome/musicplayer.yaml +++ b/mods/common/chrome/musicplayer.yaml @@ -18,11 +18,14 @@ Background@MUSIC_PANEL: X: 2 Y: 0 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 50 Height: 25 + TooltipContainer: MUSIC_TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@LENGTH: Width: 50 X: PARENT_RIGHT - 60 @@ -180,3 +183,4 @@ Background@MUSIC_PANEL: Width: 300 Height: 20 Font: Small + TooltipContainer@MUSIC_TOOLTIP_CONTAINER: diff --git a/mods/common/chrome/replaybrowser.yaml b/mods/common/chrome/replaybrowser.yaml index fd0c521775..7c80f01bd8 100644 --- a/mods/common/chrome/replaybrowser.yaml +++ b/mods/common/chrome/replaybrowser.yaml @@ -155,7 +155,7 @@ Background@REPLAYBROWSER_PANEL: Container@REPLAY_LIST_CONTAINER: X: 310 Y: 20 - Width: 245 + Width: 250 Height: PARENT_BOTTOM - 20 - 55 Children: Label@REPLAYBROWSER_LABEL_TITLE: @@ -176,11 +176,14 @@ Background@REPLAYBROWSER_PANEL: Height: 25 X: 2 Visible: false + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Container@MAP_PREVIEW_ROOT: X: PARENT_RIGHT - WIDTH - 20 Y: 50 diff --git a/mods/d2k/chrome/missionbrowser.yaml b/mods/d2k/chrome/missionbrowser.yaml index 279ced23e5..afe1891cec 100644 --- a/mods/d2k/chrome/missionbrowser.yaml +++ b/mods/d2k/chrome/missionbrowser.yaml @@ -34,11 +34,14 @@ Background@MISSIONBROWSER_PANEL: Width: PARENT_RIGHT - 27 Height: 25 X: 2 + EnableChildMouseOver: True Children: - Label@TITLE: + LabelWithTooltip@TITLE: X: 10 Width: PARENT_RIGHT - 20 Height: 25 + TooltipContainer: TOOLTIP_CONTAINER + TooltipTemplate: SIMPLE_TOOLTIP Label@DIFFICULTY_DESC: X: 210 - WIDTH - 125 Y: 468 @@ -152,6 +155,7 @@ Background@MISSIONBROWSER_PANEL: Height: 480 AspectRatio: 1.2 DrawOverlay: False + TooltipContainer@TOOLTIP_CONTAINER: Background@FULLSCREEN_PLAYER: Width: WINDOW_RIGHT