Commit Graph

12 Commits

Author SHA1 Message Date
Richard Hinckley
1ec5bc94fb [UE-10992] Dismiss-all added to right-click menu on tutorial button. Stops green pulse animation on all tutorial buttons and saves to config file.
Known minor bug: If multiple windows are open with pulses animating, only the one that is given the "dismiss all" command will stop animating. The others will continue until their windows are closed and reopened, or they are dismissed individually.

[CL 2486244 by Richard Hinckley in Main branch]
2015-03-20 11:54:33 -04:00
Richard Hinckley
af4e486a74 UE-7990 - Fixed with a decent Slate widget.
[CL 2420847 by Richard Hinckley in Main branch]
2015-01-27 14:54:15 -05:00
Richard Hinckley
a076fd9bb9 UE-7990 fixed the technical issues. Still should have a visual element, like a throbber, to give users some feedback as to why the tutorial window isn't popping up immediately.
[CL 2417904 by Richard Hinckley in Main branch]
2015-01-24 15:00:16 -05:00
Dan Hertzka
1ce19a5ffa Full rename of the Slate "active tick" system to "active timer"
[CL 2394301 by Dan Hertzka in Main branch]
2014-12-19 17:44:49 -05:00
Dan Hertzka
c042ddcb94 ---- Merging with SlateDev 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]
2014-12-17 16:07:57 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Thomas Sarkanen
66a8835b2a Internal builds default to not showing tutorial alert pulse
This can be enbled internally by using the -TestTutorialAlerts command line switch.

[CL 2305359 by Thomas Sarkanen in Main branch]
2014-09-22 09:42:41 -04:00
Thomas Sarkanen
8e1f08352e Fixed tutorial alert dismissal not always working
Tutorial alert also hides when the tutorial is taken.

[CL 2302491 by Thomas Sarkanen in Main branch]
2014-09-18 10:28:16 -04:00
Thomas Sarkanen
b9940a88f4 Tutorial button now provides more context menu options
You can access all context-sensitive options via the right-click menu.

Also exposed the ability to refresh available tutorials (as they may have bene reloaded since).

[CL 2302373 by Thomas Sarkanen in Main branch]
2014-09-18 08:32:42 -04:00
Thomas Sarkanen
304d700746 Added/edited extra tutorial contexts & added analytics
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]
2014-09-18 08:10:29 -04:00
Thomas Sarkanen
ce37be1d4d Always display the tutorial button. Button action is context sensitive.
Tutorial button launches the tutorial browser if no tutorial exists (or the tutorial has already been taken & completed).

[CL 2292329 by Thomas Sarkanen in Main branch]
2014-09-10 08:09:10 -04:00
Thomas Sarkanen
8dc16308f3 Added tutorials button in top bar of editor & sub-editors
Icon is only visible if content is available for the editor in question.
Split editor settings into two groups - one is persistent settings and one is progress/state.
Tutorials record their dismissed state, so users can permenantly disable the 'nag' for a particular tutorial.
Tutorial content now solidifies when the mouse is hovered over it, so it can be made easier to read.
Fixed crash on startup if an intro tutorial was displaying rich text.
Also fixed crash for TTP# 345094, where a zero-length tutorial was being accessed.

[CL 2275934 by Thomas Sarkanen in Main branch]
2014-08-28 06:22:40 -04:00