mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-12-24 17:29:23 +01:00
added a simple way to change the action that is executed when a link is pressed inside a paragraph
This commit is contained in:
parent
d146e80cf6
commit
289e0e8597
1 changed files with 13 additions and 2 deletions
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Linq;
|
||||
using Microsoft.Xna.Framework;
|
||||
using Microsoft.Xna.Framework.Graphics;
|
||||
|
@ -78,6 +79,11 @@ namespace MLEM.Ui.Elements {
|
|||
/// Use this event for setting this paragraph's text if it changes frequently.
|
||||
/// </summary>
|
||||
public TextCallback GetTextCallback;
|
||||
/// <summary>
|
||||
/// The action that is executed if <see cref="Link"/> objects inside of this paragraph are pressed.
|
||||
/// By default, <see cref="MlemPlatform.OpenLinkOrFile"/> is executed.
|
||||
/// </summary>
|
||||
public Action<Link, LinkCode> LinkAction;
|
||||
|
||||
/// <summary>
|
||||
/// Creates a new paragraph with the given settings.
|
||||
|
@ -194,8 +200,13 @@ namespace MLEM.Ui.Elements {
|
|||
this.Token = token;
|
||||
this.textScale = textScale;
|
||||
this.OnPressed += e => {
|
||||
foreach (var code in token.AppliedCodes.OfType<LinkCode>())
|
||||
MlemPlatform.Current.OpenLinkOrFile(code.Match.Groups[1].Value);
|
||||
foreach (var code in token.AppliedCodes.OfType<LinkCode>()) {
|
||||
if (this.Parent is Paragraph p && p.LinkAction != null) {
|
||||
p.LinkAction.Invoke(this, code);
|
||||
} else {
|
||||
MlemPlatform.Current.OpenLinkOrFile(code.Match.Groups[1].Value);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue