Commit Graph

37 Commits

Author SHA1 Message Date
Steve Robb
0756ef15b9 Delegate comparisons deprecated, lots of other associated code deprecated, and lots of warning fixups:
* Multicast delegate Add* calls now return FDelegateHandles, and Remove* calls are now all deprecated, except for a new Remove function which takes a FDelegateHandle.
* New FConsoleManager::RegisterConsoleVariableSink_Handle and UnregisterConsoleVariableSink_Handle functions which work in terms of FConsoleVariableSinkHandle.
* Timer calls which don't take FTimerHandles are deprecated.
* FTicker::AddTicker now returns an FDelegateHandle and is removed by an overloaded Remove function.
* DEFINE_ONLINE_DELEGATE* macros now define _Handle variants of the Add/Remove functions which return/take handles.
* Various other handle-based registration changes.
* Some unity build fixes.
* Some simplification of delegate code.
* Fixes for lots of existing code to use handle-based registration and unregistration.

#codereview robert.manuszewski

[CL 2400883 by Steve Robb in Main branch]
2015-01-08 09:29:27 -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
Ben Cosh
ffcddfac6a To fix the comment in comment selection issues this changelist adds a node sort to the node panel and adds some functionality to help comments manage their depth in relation to one another.
#UE-3724 - LIVE: BP: If a comment box is created inside of another larger comment box the smaller box is no longer editable
#Branch UE4
#Proj UnrealEd, GraphEditor

#info this issue came about after recent changes to slate resulted in OnHitTest no longer being called by design. This changelist seeks to eliminate the requirement for this by correctly sorting the comments in arrangedchildren.

codereview Nick.Atamas

[CL 2377331 by Ben Cosh in Main branch]
2014-12-05 05:33:22 -05:00
Ben Marsh
8aae675956 Remove some forward declarations which only work because of delayed template instantiation by the compiler (ie. they fail to compile if the forward-declarared class is not fully defined elsewhere before the end of the translation unit). Produces errors if you ever include them in isolation.
[CL 2373678 by Ben Marsh in Main branch]
2014-12-02 09:07:38 -05:00
Maciej Mroz
b50f31ac16 Graph Editor - a cleaner way to deal with Drag&Drop action for EventDispatcher.
#codereview Matthew.Griffin, Lina.Halper

[CL 2372703 by Maciej Mroz in Main branch]
2014-12-01 12:58:44 -05:00
Maciej Mroz
e02baf649d GraphSchema doesn't support EventDispatcher by default
#codereview Lina.Halper

[CL 2366225 by Maciej Mroz in Main branch]
2014-11-20 08:20:25 -05:00
Lina Halper
1101c3a6fe Fix crash on triggering event dispatcher
[CL 2365870 by Lina Halper in Main branch]
2014-11-19 20:45:22 -05:00
Michael Noland
5942816000 GraphEditor: Split connection drawing policies out into individual files
[CL 2360933 by Michael Noland in Main branch]
2014-11-14 18:23:41 -05:00
Ben Cosh
3650f14795 This change makes the comment bubbles interactive widgets which allow the user to double click the comment to edit and have extra optional pinning and visibility options.
#UE-2764 - ROCKET: TASK: K2: PUNTABLE: Allow double clicking on comment bubble to edit it.
#Branch UE4
#Proj Engine, UnrealEd, Slate, GraphEditor, BehaviourTreeEditor, EnvironmentQueryEditor, EditorStyle, ReferenceViewer, WorldBrowser

#codereview Nick.Atamas

[CL 2346951 by Ben Cosh in Main branch]
2014-11-03 10:40:57 -05:00
Chris Gagnon
0e6d657c3d Refactor to unify keyboard and controller input and focus.
Native controller navigation support.

[CL 2345039 by Chris Gagnon in Main branch]
2014-10-30 12:29:36 -04:00
Wes Hunt
31e2bb00ac Removed a bunch of stuff from Slate standard include, created SlateBasics.h
* Moved Slate.h into SlateBasics.h and began shifting less commonly used headers into SlateExtras.h.
* Slate.h now simply includes SlateBasics.h and SlateExtras.h.
* Slate.h includes a deprecated warning now to indicate that SlateBasics.h + specific includes should be used instead.
* Moved dozens of inlined functions using Slate widgets into .cpp files to avoid header dependencies.
* All code samples now include SlateBasics.h and SlateExtras.h so future shifts will not break most those projects, but not trigger the deprecation warning of including Slate.h.
#BUN

[CL 2329610 by Wes Hunt in Main branch]
2014-10-14 22:50:06 -04:00
Phillip Kavan
812df33807 [347817] BP perf - Removed a redundant node construction pass on graph panel updates.
- Cuts update timings roughly in half.
- Fixed issue that this change prevously had introduced: we just needed to ensure that all pin widgets are enabled/disabled when the owning node widget is enabled/disabled.

[CL 2329052 by Phillip Kavan in Main branch]
2014-10-14 15:43:17 -04:00
Phillip Kavan
f64227b20d Backout CL# 2324267 - seems to be causing some issues w/ connection dragging.
[CL 2324696 by Phillip Kavan in Main branch]
2014-10-09 18:07:48 -04:00
Phillip Kavan
f607bfbb54 [347817] BP perf - Removed a redundant node construction pass on graph panel updates.
- Double-checked all SGraphNode derivatives to make sure they were actually doing construction in their Construct() calls; fixed up a couple that weren't.
- Cuts update timings roughly in half (still needs work though).

[CL 2324267 by Phillip Kavan in Main branch]
2014-10-09 12:09:56 -04:00
Mike Beach
62e585cb03 Consolidating where we call UEdGraphNode::AddNode() for newly spawned nodes (to avoid duplicated code... centralized in UBlueprintNodeSpawner).
[CL 2314667 by Mike Beach in Main branch]
2014-09-30 14:13:40 -04:00
Michael Noland
fa7eb3328f GraphEditor: Make various padding values adjustable to iterate on more compact nodes (WIP / Experimental)
#codereview nick.whiting

[CL 2299009 by Michael Noland in Main branch]
2014-09-15 21:48:46 -04:00
Thomas Sarkanen
ff9594e679 Right-click menu operations on Behavior Tree sub-nodes now work
Added new GetNodeUnderMouse() call to SGraphNode. This gives each node type the option of returning child nodes, rather than always operating on the top-level node.

TTP# 346150 - AI: BEHAVIORTREE: Unable to delete decorator and service using right click menu

[CL 2293617 by Thomas Sarkanen in Main branch]
2014-09-11 07:02:40 -04:00
Wes Hunt
71db3f3bad Change 2122846 on 2014/07/01 00:51:24 by Wes.Hunt@WHUNT-UE4-MAIN
#BUN UnrealMath updates
	* added RotationAboutPointMatrix
	* Added static Make() methods for the various derived FMatrix types. Allows single expressions that return an FMatrix so we don't have to rely on implicit conversion (which will break some generic programming).
	* Simplified the implementation of FQuat::MakeFromEuler.

Change 2122848 on 2014/07/01 01:04:31 by Wes.Hunt@WHUNT-UE4-MAIN

	Added SlateLayoutTransform to store a 2D translation and uniform scale (for FGeometry).
	#BUN Added SlateTransformCalculus for handling arbitrary transform manipulation. See documentation in header.

Change 2123889 on 2014/07/01 17:12:40 by Wes.Hunt@WHUNT-UE4-MAIN

	Remove unncessary use of FGeometry.

Change 2221407 on 2014/07/16 17:58:20 by Wes.Hunt@WHUNT-UE4-MAIN

	TransformCalculus changes
	* Move 2D versions of functions into SlateLayoutTransform header to separate it from the base 3D stuff.
	* FSlateLayoutTransform is scale then translate now instead of translate then scale.
	* TransformPosition -> TransformPoint
	* Added a version of Concatenate taking 4 transforms.
	* Update docs.

Change 2221408 on 2014/07/16 17:58:39 by Wes.Hunt@WHUNT-UE4-MAIN

	Adjustments to Slate headers and PCH

Change 2221409 on 2014/07/16 17:59:07 by Wes.Hunt@WHUNT-UE4-MAIN

	Transform calculus support for SlateRects

Change 2221459 on 2014/07/16 18:41:13 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN SWindow changes
	* Added GetLocalToScreenTransform. (Screen space == Desktop space)
	** Basically contains the ApplicationScale and Window offset from the desktop.
	* Added GetLocalToWindowTransform (Window space == Desktop space without the window offset)
	* Added GetClientRectInScreen
	** Allows code to know exactly WHERE the client rect is in the window.
	* Refactored GetWindowGeometryInScreen and GetWindowGeometryInWindow to use the new methods above.
	* SPopupLayer::OnArrangChildren refactored to clarify transformational spaces and use transformation calculus to do the work.
	** This fixes PopupLayer to correctly account for the scale of the widget it is presenting a popup for.
	** MenuAnchors that that create new SWindows still do no correctly account for scale.

Change 2221464 on 2014/07/16 18:45:25 by Wes.Hunt@WHUNT-UE4-MAIN

	Render Transforms initial checkin. Lots of cleanup to do, but this is functionally working for all basic widgets and draw elements in slate. Main feature todos:
	* restore pixel snapping.
	* handle clipping in the presence of rotation.

Change 2226298 on 2014/07/21 21:22:46 by Wes.Hunt@WHUNT-UE4-MAIN

	Use a better method to get the window's rectangle.

Change 2227809 on 2014/07/22 20:41:57 by Wes.Hunt@WHUNT-UE4-MAIN

	Add 2D version of TransformVector to SlateTransform.

Change 2232085 on 2014/07/25 16:32:15 by Wes.Hunt@WHUNT-UE4-MAIN

	Implement CPU pixel snapping even under render transform. This is pretty CPU intensive, but a reasonable POC.

Change 2232090 on 2014/07/25 16:33:10 by Wes.Hunt@WHUNT-UE4-MAIN

	Font cache fixes for padding.
	* Add 1 pixel of padding around all fonts.
	* Fix font cache to properly handle padding
	* Fix font cache to handle texture elements of zero size with non-zero padding.

Change 2232350 on 2014/07/25 19:50:11 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Updated FSlateTextureAtlas padding logic.
	* Added ESlateTextureAtlasPaddingStyle which lets you choose from three atlasing padding styles:
	  * NoPadding - don't apply any padding (used to be Padding == 0).
	  * DilateBorder - copy border edges to apply 1-pixel padding (used to be Padding == 1).
	  * PadWithZero - expand 1-pixel border and fill it with zeros (new style).
	* removed notion of Padding > 1 pixel from atlasing. It wasn't useful as we don't support mips or aniso filtering.
	  * Also the existing code didn't actually handle Padding > 1.
	* FontCache now uses PadWithZero padding so upon zooming text, the edges get smoother.

Change 2237962 on 2014/07/31 02:17:28 by Wes.Hunt@WHUNT-UE4-MAIN

	TransformCalculus tweak.
	* Core Concatentate(T,T) no longer assumes the return type is T. Uses decltype(T.Concat(T)) instead.

Change 2237964 on 2014/07/31 02:21:31 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Added a full suite of transform types for 2D transformations that are transform calculus aware:
	* FSlateScale2D
	* FSlateShear2D
	* FSlateQuat2D
	* FSlateMatrix2x2

	Added appropriate overloads and ConcatenateRules for all combinations, making them compatible with FSlateTransform and FSlateLayoutTransform.

	FSlateTransform is now implemented in terms of a decomposed Matrix3x2.

Change 2237972 on 2014/07/31 02:30:45 by Wes.Hunt@WHUNT-UE4-MAIN

	Remove 4x4 matrix from FSlateTransform

Change 2238004 on 2014/07/31 03:11:42 by Wes.Hunt@WHUNT-UE4-MAIN

	FSlateTransform -> FSlateRenderTransform.

Change 2238714 on 2014/07/31 15:16:18 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Moved TransformCalculus into Core/Math.
	* Split into TransformCalculus, 2D, and 3D support.
	* FSlateRenderTransform is now just a typedef.
	* Renamed 2D transform types to remove "Slate" from their name.

Change 2240437 on 2014/08/01 19:08:59 by Wes.Hunt@WHUNT-UE4-MAIN

	Restore funky logic in deprecated FGeometry::MakeChild implementations.
	* legacy FGeometry::MakeChild functions took OffsetFromParent in the local space of the widget. This therefore CANNOT be the layout transform offset, because that needs to be in parent space for the transform of P * S + T to work correctly.
	* Therefore, the legacy functions now expect the ChildOffset to be in child space and re-apply the child scale to put them back into parent space.
	* This fixes the NodePanels to properly handle zooming around the mouse cursor point.

Change 2242769 on 2014/08/04 13:44:33 by Wes.Hunt@WHUNT-UE4-MAIN

	remove local layout transform storage from FGeometry.

Change 2242771 on 2014/08/04 13:45:59 by Wes.Hunt@WHUNT-UE4-MAIN

	Update Declarative syntax support to call it RenderTransform instead of Transform.

Change 2245872 on 2014/08/06 14:45:44 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Add GetBottomRight function to FSlateRect.

Change 2246129 on 2014/08/06 17:32:04 by Wes.Hunt@WHUNT-UE4-MAIN

	SThrobber now supports render transforms.
	Key is to not use deprecated members of FPaintGeometry, which should be treated as immutable (at least public members shouldn't be modified withotu modifying the new members as well).

Change 2247782 on 2014/08/07 19:12:57 by Wes.Hunt@WHUNT-UE4-MAIN

	Clipping widgets now works under render transforms, FPaintGeometry legacy fixes.
	* Expanded FSlateVertex by 2 bytes to pass in local position.
	* Change clipcoords to be passed in local space.
	* Remove WorldPosition interpolator. Replaced by LocalPosition interpolator.

	FPaintGeometry fixes
	* FPaintGeometry now takes Size in LocalSpace unless using a legacy ctor. Avoid transform-and-back that was occurring when creating from an FGeometry, which already had it in local space, and rendering, which now wants it in local space.
	* FPaintGeometry again supports mutability when using legacy members (like DrawPosition). This allows legacy code to mutate an FPaintGeometry, which is committed to a render transform right before rendering.Hacky, but allows legacy code that treated FPaintGeometry as a plain-old-struct to work.
	* Removed a legacy ctor of FPaintGeoemtry that was not being used.

	Misc:
	* Turned off pixel snapping code in ElementBatcher because the FSlateVertex is doing it during construction.
	  * Still texture filtering artifacts to figure out, so the last word has not been spoken on this yet!
	* Tweaked FGeometry::MakeRoot to use the non-render transform ctor since it doesn't need to use it.
	* Removed /*WindowSpace*/ Size member from SlateDrawElement.
	* SlateDrawElement::GetRotationPoint vastly simplified by using Local space.
	* Moved slate cycle counters back to the top of the function in ElementBatcher.
	* Uninlined FSlateVertex ctors so I can tweak their rounding rules without a full recompile.

Change 2247790 on 2014/08/07 19:20:01 by Wes.Hunt@WHUNT-UE4-MAIN

	SSlider no longer uses MakeRotatedBox, correctly handles render transforms.
	* Now uses a render transform to draw a vertical slider handle instead of MakeRotatedBox.
	* Since we don't support layout transforms, we also have to adjust the clip rect to account for the render-only transform, and make it act like a layout transform.

Change 2249106 on 2014/08/08 19:13:21 by Wes.Hunt@WHUNT-UE4-MAIN

	Slate clipping now done in window space again.
	* This addresses subpixel jittering that occured on otherwise stable clip rects because local space was moving underneath, and transforming the clip rect to local space created occasional rounding errors.
	* Implemented a vectorized point-in-parallelogram check in the pixel shaders to do this. Now pass clip rect in slightly differently, and moved to a float16 to allow better clip precision under rotation. But the vertex data remains the same size.
	* Moved some more common transform work into FSlateVertex constructor to save duplication.
	* Removed construction of local clip rect as it's no longer needed except for text rendering.
	* Hoisted construction of local clip rect out of the text drawing character loop (whoops).
	* Precompute InverseLayoutTransform in draw code as we use that a lot now.
	* Fixed OGL renderer to work.

Change 2249123 on 2014/08/08 19:45:19 by Wes.Hunt@WHUNT-UE4-MAIN

	SProgressBar no longer uses a temporary PaintGeometry to create the inner clipping rect for drawing, it directly inflates the clipping rect now. Also tried to adjust the coords to reduce jitter in the one-pixel padding.

Change 2251914 on 2014/08/11 16:26:12 by Wes.Hunt@WHUNT-UE4-MAIN

	Fixing HitTest 2.0 to work with latest code.
	* Added AppendTransform to FGeometry to preserve immutability of the struct.

Change 2253023 on 2014/08/12 10:30:23 by Wes.Hunt@WHUNT-UE4-MAIN

	Fixing Slate RHI Renderer to use new screenspace clipping with render transforms.

Change 2253090 on 2014/08/12 11:36:16 by Wes.Hunt@WHUNT-UE4-MAIN

	Fix SClippingHorizontalBox to use immutable FGeometry position. Also fix to properly support scale in when it needs to clip children.

Change 2253701 on 2014/08/12 17:48:06 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Round viewport rect instead of trunc to match how slate does it now (fixes 1:1 pixel error on SViewports). Need to abstract slate rounding internals so clients don't have to guess.

Change 2255403 on 2014/08/13 19:08:25 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Added LayoutGeometry class.

Change 2255404 on 2014/08/13 19:10:40 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Made FGeometry public members const to catch all mutating uses of them. Added some hacks in the implementation to make it backward compatible.

	Removed the AccumulatedLayoutTransform, since it was just a copy of AbsolutePosition and Scale. Now all code creates the layout transform on the fly from those members. Still functionally the same.

	Added support for MakeChild using FLayoutGeometry.

Change 2255405 on 2014/08/13 19:12:39 by Wes.Hunt@WHUNT-UE4-MAIN

	Changed SSplitter and Splitter2x2 to use FLayoutTransforms where possible. Now only calls ArrangeChildren() when rendering, avoiding accumulating the layout transforms and storing the render transforms altogether.

Change 2265162 on 2014/08/20 18:24:04 by Wes.Hunt@WHUNT-UE4-MAIN

	Implement MakeRotatedBox in terms of a render transform. Remove all shader code associated with rotating.

Change 2268034 on 2014/08/22 17:40:05 by Wes.Hunt@WHUNT-UE4-MAIN

	More 2D transform cleanup.
	* Removed a bunch of todo comments from the code, and converted them to more of a final form for main.
	* #BUN Removed FGeometry::CenteredPaintGeometryBelow as it was misleading, and users of the function were forced to mutate the resulting FPaintGeometry.
	* #BUN Removed FGeometry::GetRect() because it returned a rect in a weird space if the local scale != 1. Only one place in the code actually used it.

Change 2268096 on 2014/08/22 18:12:41 by Wes.Hunt@WHUNT-UE4-MAIN

	Clean up more stuff in FPaintGeometry.
	* #BUN Removed ToSlateRect and Identity().
	* Removed storage of accumulated layout transform, since DrawPosition and DrawScale implicitly stored it.
	* Removed a bunch of todo comments and converted them to a more final form.

Change 2270989 on 2014/08/25 15:48:46 by Wes.Hunt@WHUNT-UE4-MAIN

	Add support for Concatenate with 5 transforms.

Change 2271394 on 2014/08/25 19:12:53 by Wes.Hunt@WHUNT-UE4-MAIN

	#BUN Added an OffsetBy function to FSlateRect

Change 2271395 on 2014/08/25 19:13:56 by Wes.Hunt@WHUNT-UE4-MAIN

	Added a version of FSlateRotatedRect that uses regular floats, also added IsUnderLocation ToBoundingRect function for overlap testing.

Change 2271396 on 2014/08/25 19:14:38 by Wes.Hunt@WHUNT-UE4-MAIN

	HitTest 2.0 now works with render transforms.

#codereview:matt.kuhlenschmidt,nick.atamas

[CL 2276499 by Wes Hunt in Main branch]
2014-08-28 14:29:46 -04:00
Nick Atamas
057f48f25b Slate: Removed legacy operator() from FArrangedWidgets in favor of operator[]. Fixed uses cases.
[CL 2270701 by Nick Atamas in Main branch]
2014-08-25 12:51:49 -04:00
Nick Atamas
978a62ee0f Slate Hittesting 2.0 : Hittesting no longer bound to logical widget hierarchy.
Merged from usr/Nick.Atamas/UE4_SlateDev => /UE4

[CL 2228155 by Nick Atamas in Main branch]
2014-07-23 08:23:21 -04:00
Thomas Sarkanen
ff7d2bdb1b Added Behavior Tree execution order index widgets
Added new widget overlay system for graph panels, designed to allow more flexibilty than the current brush-only implementation. This requred a small refactor to avoid the assumption that all child widgets of an SNodePanel are SNodes (and because there is no usable RTTI present).

Added index widget overlay to BT graph nodes.

Added flag to parent nodes to allow us to change the appearance of child nodes when another child is hovered.

TTP# 339733 - Editor: Behaviour Tree: Add better execution order indicators

reviewed by Lukasz.Furman

[CL 2226658 by Thomas Sarkanen in Main branch]
2014-07-22 04:03:40 -04:00
Ben Cosh
34f4d6d5fd Modified the dragdrop operations in the blueprint graphs to respect read only attributes set on either graphs or nodes.
#TTP 334976 - BLUEPRINTS: Drag-dropping can still create nodes in read-only graphs (e.g., during PIE or when viewing an anim parent graph)
#Branch UE4
#Proj GraphEditor

#Add added SGraphPanel::IsGraphEditable so nodes and objects placed in the graph can easily determine if the graph is read only.
#Change Modified SGraphPanel::OnDragLeave to restore the tooltip if a FDecoratedDragDropOp has been modified to indicate that the graph is read only.
#Change Modified SGraphPanel::OnDragOver to change the icon on the tooltip to a lined circle if the graph is read only.
#Change Modified SGraphPanel::OnDrop to exit without changes if the graph is read only.
#Change Modified FGraphEditorDragDropAction to present feedback to the user if the drag drop target is invalid. this is activated by setting FGraphEditorDragDropAction::SetDropTargetValid, this just collpases the active icon and displays a lined circle with the same tooltip when set to false.
#Add added SGraphNode::IsNodeEditable to determine if the node is currently editable, based on an evaluation of the IsEditable attribute and the parent graphs IsGraphEditable.
#Change modified SGraphNode::OnDragOver to display a lined circle if the parent graph or the node is read only.
#Change modified SGraphNode::OnDrop to exit without changes if the parent graph or the node is read only.
#Change modified SGraphPin::OnDrop to exit without changes if the parent graph or the owner node is read only.

ReviewedBy Chris.Wood, Nick.Whiting

[CL 2109030 by Ben Cosh in Main branch]
2014-06-18 05:04:59 -04:00
Benn Gallagher
c46d281029 Allowed configuration of graph state decorations to disable PIE and read only decorations
#ttp 335218 - Remove read only/PIE borders and notifications from graph preview tooltips

[CL 2098973 by Benn Gallagher in Main branch]
2014-06-09 11:12:17 -04:00
Wes Hunt
c7ba265891 Slate API Updates
* Paint is now the non-virtual entry point to OnPaint to support required pre/post functionality. Widgets override OnPaint as usual, but calls to tell a widget to paint should be "Paint" not "OnPaint".
* ArrangeChildren -> OnArrangeChildren. ArrangeChildren is now the non-virtual entry point for the same reason as Paint/OnPain.
* OnPaint and OnArrageChildren are now private so they are not accidentally called.
* Added Stats for Paint time and ArrangeChildren time.
#BUN
#codereview:nick.atamas,max.preussner

[CL 2086158 by Wes Hunt in Main branch]
2014-05-29 17:18:37 -04:00