Merge pull request #9925 from atlimit8/MultiLineMapEditorTooltips

Multi-line map editor tooltips
This commit is contained in:
Oliver Brakmann
2015-11-10 21:06:57 +01:00
8 changed files with 69 additions and 8 deletions

View File

@@ -70,7 +70,8 @@ namespace OpenRA.Mods.Common.Traits
}
var tooltip = Info.TraitInfoOrDefault<TooltipInfo>();
Tooltip = tooltip == null ? ID + ": " + Info.Name : ID + ": " + tooltip.Name + " (" + Info.Name + ")" + "\n" + owner.Name + " (" + owner.Faction + ")";
Tooltip = (tooltip == null ? " < " + Info.Name + " >" : tooltip.Name) + "\n" + owner.Name + " (" + owner.Faction + ")"
+ "\nID: " + ID + "\nType: " + Info.Name;
GeneratePreviews();

View File

@@ -137,7 +137,7 @@ namespace OpenRA.Mods.Common.Widgets.Logic
item.IsVisible = () => true;
var tooltip = actor.TraitInfoOrDefault<TooltipInfo>();
item.GetTooltipText = () => tooltip == null ? actor.Name : tooltip.Name + " (" + actor.Name + ")";
item.GetTooltipText = () => (tooltip == null ? "\nType: " : tooltip.Name + "\nType: ") + actor.Name;
panel.AddChild(item);
}

View File

@@ -22,17 +22,26 @@ namespace OpenRA.Mods.Common.Widgets.Logic
var font = Game.Renderer.Fonts[label.Font];
var cachedWidth = 0;
var cachedHeight = 0;
var horizontalPadding = label.Bounds.Width - widget.Bounds.Width;
if (horizontalPadding <= 0)
horizontalPadding = 2 * label.Bounds.X;
var vertcalPadding = widget.Bounds.Height - label.Bounds.Height;
if (vertcalPadding <= 0)
vertcalPadding = 2 * label.Bounds.Y;
var labelText = "";
tooltipContainer.BeforeRender = () =>
{
labelText = getText();
var textDim = font.Measure(labelText);
if (textDim.X != cachedWidth)
if (textDim.X != cachedWidth || textDim.Y != cachedHeight)
{
label.Bounds.Width = textDim.X;
widget.Bounds.Width = 2 * label.Bounds.X + textDim.X;
widget.Bounds.Width = horizontalPadding + textDim.X;
label.Bounds.Height = textDim.Y;
widget.Bounds.Height = 4 * label.Bounds.Y + textDim.Y;
widget.Bounds.Height = vertcalPadding + textDim.Y;
cachedWidth = textDim.X;
cachedHeight = textDim.Y;
}
};

View File

@@ -329,6 +329,7 @@ Container@EDITOR_WORLD_ROOT:
Visible: false
Width: PARENT_RIGHT - 35
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: TWO_LINE_TOOLTIP
IgnoreChildMouseOver: true
Children:
ActorPreview@ACTOR_PREVIEW:

View File

@@ -1,13 +1,28 @@
Background@SIMPLE_TOOLTIP:
Logic: SimpleTooltipLogic
Background: panel-black
Height: 25
Height: 27
Children:
Label@LABEL:
X: 5
Height: 23
Font: Bold
Background@TWO_LINE_TOOLTIP:
Logic: ButtonTooltipLogic
Background: panel-black
Height: 48
Children:
Label@LABEL:
X: 5
Height: 46
Font: Bold
Label@HOTKEY:
Visible: false
TextColor: FFFF00
Height: 23
Font: Bold
Background@BUTTON_TOOLTIP:
Logic: ButtonTooltipLogic
Background: panel-black

View File

@@ -1,7 +1,7 @@
Background@SIMPLE_TOOLTIP:
Logic: SimpleTooltipLogic
Background: dialog3
Height: 31
Height: 34
Children:
Label@LABEL:
X: 5
@@ -9,6 +9,23 @@ Background@SIMPLE_TOOLTIP:
Height: 23
Font: Bold
Background@TWO_LINE_TOOLTIP:
Logic: ButtonTooltipLogic
Background: dialog3
Height: 54
Children:
Label@LABEL:
X: 5
Y: 3
Height: 46
Font: Bold
Label@HOTKEY:
Visible: false
Y: 3
Height: 23
TextColor: FFFF00
Font: Bold
Background@BUTTON_TOOLTIP:
Logic: ButtonTooltipLogic
Background: dialog3

View File

@@ -307,6 +307,7 @@ Container@EDITOR_WORLD_ROOT:
Visible: false
Width: PARENT_RIGHT - 35
TooltipContainer: TOOLTIP_CONTAINER
TooltipTemplate: TWO_LINE_TOOLTIP
IgnoreChildMouseOver: true
Children:
ActorPreview@ACTOR_PREVIEW:

View File

@@ -1,7 +1,7 @@
Background@SIMPLE_TOOLTIP:
Logic: SimpleTooltipLogic
Background: dialog4
Height: 29
Height: 32
Children:
Label@LABEL:
X: 7
@@ -9,6 +9,23 @@ Background@SIMPLE_TOOLTIP:
Height: 23
Font: Bold
Background@TWO_LINE_TOOLTIP:
Logic: ButtonTooltipLogic
Background: dialog4
Height: 52
Children:
Label@LABEL:
X: 7
Y: 2
Height: 46
Font: Bold
Label@HOTKEY:
Visible: false
Y: 2
Height: 23
TextColor: FFFF00
Font: Bold
Background@BUTTON_TOOLTIP:
Logic: ButtonTooltipLogic
Background: dialog4