Added back button to tutorials.
(Also fixed overridable text on next button and provided same for back button)
[CL 2448653 by Matthew Griffin in Main branch]
Tutorial polish
- Tweaked bubble animation speed and bounce effect
- Increased padding between text and Next button (was too cramped)
- Tweaked timing of pulsing green rectangle highlights
[CL 2419343 by Ben Marsh in Main branch]
Introduces the concept of "Active Ticking" to allow Slate to go to sleep when there is no need to update the UI.
While asleep, Slate will skip the Tick & Paint pass for that frame entirely.
- There are TWO ways to "wake" Slate and cause a Tick/Paint pass:
1. Provide some sort of input (mouse movement, clicks, and key presses). Slate will always tick when the user is active.
- Therefore, if the logic in a given widget's Tick is only relevant in response to user action, there is no need to register an active tick.
2. Register an Active Tick. Currently this is an all-or-nothing situation, so if a single active tick needs to execute, all of Slate will be ticked.
- The purpose of an Active Tick is to allow a widget to "drive" Slate and guarantee a Tick/Paint pass in the absence of any user action.
- Examples include animation, async operations that update periodically, progress updates, loading bars, etc.
- An empty active tick is registered for viewports when they are real-time, so game project widgets are unaffected by this change and should continue to work as before.
- An Active Tick is registered by creating an FWidgetActiveTickDelegate and passing it to SWidget::RegisterActiveTick()
- There are THREE ways to unregister an active tick:
1. Return EActiveTickReturnType::StopTicking from the active tick function
2. Pass the FActiveTickHandle returned by RegisterActiveTick() to SWidget::UnregisterActiveTick()
3. Destroy the widget responsible for the active tick
- Sleeping is currently disabled, can be enabled with Slate.AllowSlateToSleep cvar
- There is currently a little buffer time during which Slate continues to tick following any input. Long-term, this is planned to be removed.
- The duration of the buffer can be adjusted using Slate.SleepBufferPostInput cvar (defaults to 1.0f)
- The FCurveSequence API has been updated to work with the active tick system
- Playing a curve sequence now requires that you pass the widget being animated by the sequence
- The active tick will automatically be registered on behalf of the widget and unregister when the sequence is complete
- GetLerpLooping() has been removed. Instead, pass true as the second param to Play() to indicate that the animation will loop. This causes the active tick to be registered indefinitely until paused or jumped to the start/end.
[CL 2391669 by Dan Hertzka in Main branch]
Where dynamic event names were being constructed from tutorial assets, now reworked events to add a dynamic parameter.
UE-4978 - Restructure Tutorial Analytic Events
[CL 2377327 by Thomas Sarkanen in Main branch]
Tweaked styles and layout to better suit a tab.
Also fixed browser not showing some tutorials if all assets are not yet loaded.
Progress is now updated periodically as the browser can be now open while a tutorial is in progress.
TTP# 347956 - TUTORIALS: Selecting More Tutorials can hide Tutorial Browser
[CL 2327011 by Thomas Sarkanen in Main branch]
Slate changes:
Allowed hyperlink decorator and hyperlink run to be more easily derived from by moving some functions/variables to protected.
Added new run & decorator for hyperlinks in tutorials that add an icon to the end of the run if required.
Only use icon-style run if in display mode (not in edit mode).
reviewed by Jamie.Dale
[CL 2322460 by Thomas Sarkanen in Main branch]
Rearranged layout/padding a little to compensate for larger apparent button size.
Kept larger button hitbox, which required some custom border handling for the button.
TTP# 348109 - EDITOR: TUTORIALS: Add green buttons to tutorials
[CL 2314257 by Thomas Sarkanen in Main branch]
As with the content browser, these buttons only function as back and forward when they are clicked within the bounds of the widget.
TTP# 347536 - TUTORIALS: Add Forward/Back web browser controls
[CL 2312859 by Thomas Sarkanen in Main branch]
If we have a search string we should search all categories starting at the current context, rather than just one level deep as before.
Also fixed search text highlighting to be consistently coloured and to show up for rich text content.
TTP# 347534 - CRITICAL: TUTORIALS: Search bar only shows results for currently displayed tutorials
[CL 2312725 by Thomas Sarkanen in Main branch]
Tutorials browser now always appears on the mainframe. This avoids the browser appearing on small torn-off windows if content is torn off while a tutorial is in progress.
Also fixed crash when opening a browser from a widget that used to be docked to anotehr tab (weak window pointer was invalid at this point).
TTP# 347014 - EDITOR: TUTORIAL: If a tab is undocked while being referenced in the "welcome to the unreal editor" tutorial, there will be two instances of the tutorial text
[CL 2305366 by Thomas Sarkanen in Main branch]
Previously it would just disappear, whihc was very confusing for users if they had not read the previous stage.
[CL 2302352 by Thomas Sarkanen in Main branch]
Tutorial contexts for IOS/Android/Whatever are now hooked up (console setup ones are still missing).
Analytics added for tutorial usage in various places.
Added ability to reset tutorial state with -ResetTutorials command-line flag.
Cleaned up some unused code (still a lot more to come here!).
[CL 2302314 by Thomas Sarkanen in Main branch]
Disabled floating navigation widget (but have not removed it yet).
Built navigation controls into the content widget.
[CL 2299461 by Thomas Sarkanen in Main branch]
Prevented empty tabs launching when tutorial button anchored-tutorials are run.
Prevented empty tutorials from blocking input.
[CL 2294961 by Thomas Sarkanen in Main branch]
Refactored handling of decorators into new utility class FTutorialText.
Added tooltip (and rich tooltip) support to hyperlink runs.
#codereview Jamie.Dale
[CL 2294907 by Thomas Sarkanen in Main branch]
Tweaked padding and button styles so the layout is more consistent.
Add ability to display textures as icons in the browser (for categories and tutorials).
[CL 2292442 by Thomas Sarkanen in Main branch]
Intro 'bounce' is driven by a float curve asset.
Because of rich text not working very well when zoomed at the moment, only the border is zoomed when animating. The content has the inverse zoom applied to it to counter this.
[CL 2290861 by Thomas Sarkanen in Main branch]
Added asset, code, tutorial and UDN hyperlinks. Tweaked UI to use combo box instead of the large amount of radio buttons it was using before.
Made sure importer & content use correct text styles.
Defaulted to rich text for content.
[CL 2284444 by Thomas Sarkanen in Main branch]
Removed ability to independently set font size & colour etc. and replaced with a set of font styles we can use (and style appropriately). Added legacy code to deal with old-style text as best it can.
[CL 2282800 by Thomas Sarkanen in Main branch]