Files
tbd-station-14/Content.Client/Examine/ExamineButton.cs
Leon Friedrich 22d72f56b5 Guidebook Revival (#13320)
* Fix some bugs in stations and do a little cleanup.

* Begin backporting the guidebook.

* wow that's a lot of work.

* More work, gives the monkey some more interactions.

* disco monkye.

* monky

* jobs entry.

* more writing.

* disco

* im being harassed

* fix spacing.

* i hate writing.

* Update Resources/Prototypes/Entities/Mobs/NPCs/animals.yml

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* builds again

* a

* pilfer changes from AL

* fix and remove unused code

* pilfer actual guide changes from AL

* localization

* more error logs & safety checks

* replace controls button with command

* add test

* todos

* pidgin parsing

* remove old parser

* Move files and change tree sorting

* add localization and public methods.

* Add help component/verb

* rename ITag to IDocumentTag

* Fix yml and tweak tooltips

* autoclose tooltip

* Split container

* Fancier-tree

* Hover color

* txt to xml

* oops

* Curse you hidden merge conflicts

* Rename parsing manager

* Stricter arg parsing

tag args must now be of the form key="value"

* Change default args

* Moar tests

* nullable enable

* Even fancier tree

* extremely fancy trees

* better indent icons

* stricter xml and subheadings

* tweak embed margin

* Fix parsing bugs

* quick fixes.

* spain.

* ogh

* hn bmvdsyc

Co-authored-by: moonheart08 <moonheart08@users.noreply.github.com>
2023-01-16 02:42:22 -06:00

63 lines
1.6 KiB
C#

using Content.Client.ContextMenu.UI;
using Content.Client.Stylesheets;
using Content.Shared.Verbs;
using Robust.Client.AutoGenerated;
using Robust.Client.Graphics;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Client.Utility;
using Robust.Shared.Utility;
namespace Content.Client.Examine;
/// <summary>
/// Buttons that show up in the examine tooltip to specify more detailed
/// ways to examine an item.
/// </summary>
public sealed class ExamineButton : ContainerButton
{
public const string StyleClassExamineButton = "examine-button";
public const int ElementHeight = 32;
public const int ElementWidth = 32;
private const int Thickness = 4;
public TextureRect Icon;
public ExamineVerb Verb;
public ExamineButton(ExamineVerb verb)
{
Margin = new Thickness(Thickness, Thickness, Thickness, Thickness);
SetOnlyStyleClass(StyleClassExamineButton);
Verb = verb;
if (verb.Disabled)
{
Disabled = true;
}
ToolTip = verb.Message ?? verb.Text;
TooltipDelay = 0.3f; // if you're hovering over these icons, you probably want to know what they do.
Icon = new TextureRect
{
SetWidth = ElementWidth,
SetHeight = ElementHeight
};
if (verb.IconTexture != null)
{
var icon = new SpriteSpecifier.Texture(new ResourcePath(verb.IconTexture));
Icon.Texture = icon.Frame0();
Icon.Stretch = TextureRect.StretchMode.KeepAspectCentered;
AddChild(Icon);
}
}
}