The goal of this change is to let plugins register their own self-tests.
We do this through the `ISelfTestRegistry` interface. For a plugin it
would look like this:
```csharp
[PluginService]
public ISelfTestRegistry SelfTestRegistry
// Somewhere that gets called by your plugin
SelfTestRegistry.RegisterTestSteps([
new MySelfTestStep(),
new MyOtherSelfTestStep()
])
```
Where `MySelfTest` and `MyOtherSelfTest` are instances of
the existing `ISelfTestStep` interface.
The biggest changes are to `SelfTestWindow` and the introduction of
`SelfTestWithResults`. I wanted to make sure test state wasn't lost when
changing the dropdown state and I was finding it a bit annoying to work
with the Dictionary now that we can't just rely on the index of the
item.
To fix this I moved all the "test run" state into `SelfTestWithResults`,
most of the changes to `SelfTestWindow` are derived from that, other
then the addition of the combo box.
The documentation for this service is a bit sparse, but I wanted to put
it up for review first before I invest a bunch of time making nice
documentation.
I'm keen to hear if we think this is useful or if any changes are
needed.
* Load new localization before firing change event
* Update texts in SettingsWindow when locale changes
* Localize settings search
* Update settings search input
- Disable when Credits are scrolling,
so Search Results aren't shown instead
- Select all on single click, as usual for a search bar
* Remove unused IsVisible property
* Fix General tab being unselected on language change
* Fix search results throwing, oops
* Missed using LocRef in EnumSettingsEntry
* Set CultureInfo before loading locs
* Change it to LazyLoc instead
So CheapLoc can export localizations...
* Add events for certain style changes from within Dalamud.
* Capture reset changes in events too.
* Add non-static versions of events to IUiBuilder, add remarks about timing to events.
* Move statics to InterfaceManager members and make plugin events local.
---------
Co-authored-by: KazWolfe <KazWolfe@users.noreply.github.com>
* wip2
* Implement AutoUtf8Buffer
* reformat
* Work on manual bindings
* restructure
* Name scripts properly
* Update utility functions to use ImU8String
* add overloads
* Add more overloads
* Use ImGuiWindow from gen, support AddCallback
* Use LibraryImport for custom ImGuiNative functinos
* Make manual overloads for string-returning functinos
* Make all overloads with self as its first parameter extension methods
* Fix overload resolution by removing unnecessary
* in => scoped in
* Fix compilation errors