What GUI framework or libs are used in Unreal Engine 4 Feature Demo? - user-interface

Unreal Engine 4 GUI like this:
https://pcper.com/2012/06/e3-12-unreal-engine-4-what-you-and-we-missed-at-gdc/
Unreal Engine 3 use wxwidgets,but in UE4 it looks like .NET Framework WPF. The GUI in UE4 is fantastic.
P.S. Microsoft Expression Studio 4 has the same style.

it is not wxwidgets and wpf.
it is a new gui framework which is developed by unreal engine 4 team and it named "Slate UI Framework".
this framework used for editor and game twice, so it is a cross platform framework and use hardware accerlation, like unity3D editor.
if you use some software for example Fraps, it will tell you the full screen is one frame buffer.

The Unreal Engine 3, at least later builds of it are slowly replacing wxWidgets with WPF which you can tell by looking at some of the .NET .dll files and also by the look of the Content Browser, color picker etcetera.
It would make sense for the Unreal Engine 4 to continue that trend.

The UE4 Editor utilizes the Slate UI Framework for its widgets.
They can be inspected via the Widget Reflector tool, which allows selecting a widget currently present on the editor screen and then finding and inspecting, among other aspects, its source code, like so:
In UE4, go to Window > Developer Tools > Widget Reflector
In the Widget Reflector window, click Pick Hit-Testable Widgets or Pick Painted Widget
Move the mouse over any widget on the editor window and press ESC to stop
Notice that the widget and its corresponding CPP file will be highlighted in the Widget Reflector
On a default installation of UE4, the base folder containing Slate UI widgets should be:
C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Slate\
For instance, the implementation of the SBox widget can be found at:
C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Slate\Private\Widgets\Layout\SBox.cpp
Aside from being utilized to build the UE4 Editor itself, the Slate UI Framework can also be utilized in games/content created with it.
This document provides an overview of the framework by its creator.

Related

Can such a UI be created with unmanaged Visual C++ and MFC?

I need to create a shoebox-style native Windows app in C++. A good example of such a UI would be CleanMyPC:
I've tried the various options of the MFC App wizard in Visual Studio 2019 to see what that would give, but it's either document-based (SDI), or too limited (dialog-style). The closest was an empty Win32 app, which just displays a menu bar and a blank window beneath it. At least it matches the Windows style. But that would mean using bare Win32 API, which doesn't seem like a good idea.
Can a UI like in the screenshot be created with MFC? If so, would that be a reasonable approach? Can MFC be effectively used in a non-document-style, non-dialog-style UI like this?
I understand that there's heavy customization of the controls going on in the screenshot; the question is can it be done with MFC?
It looks like the left sidebar and the right details areas could be made of customized list controls. I'll be looking into how a dialog-based sample app arranges the window, so that no document stuff is involved, but without immediate termination on a button click.

Expression Blend: Why do I not have options for Transitions and Easing?

I am using Expression Blend 4 with .Net 3.5
In the image below, there are options for Transition Effects and the ability to choose Easing effects for your transitions:
My Blend interface does not have these on my WPF application:
However, if I create a new application (such as a WPF Sketchflow app) these options appear just as they do in the first photo.
What determines whether or not these options appear, and how can I get them into my WPF application?
I think you need the WPF toolkit to even get this far with .NET 3.5. (WPF 3.5 lacks the VisualStateManager; the toolkit adds this missing piece.) As to why it doesn't show up, it's because it's not supported in WPF 3.5:
In V3, we added four primary enhancements in this area. The first was
EasingFunctions, which are critical to making property animations have
the right feel. We’ve got all the classics—quadratics, cubics, bounce,
elastic, etc. Plus, you can write your own EasingFunction in C# or VB
and apply it to any animation you wish. This is all supported in
Silverlight 3 and WPF 4.
When you create a new WPF Sketchflow app, it's almost certainly targeting .NET 4.0.

Creating a Custom Silverlight Designer in WPF

I need to create a designer for Silverlight in WPF and I’m thinking of a few options
Use a WebBrowser control,
display the content there and
communicate Silverlight using the
JavaScript Bridge. Not sure if this
will be enough for the scenarios I
need to support (see below). This is what KaXaml is doing. SilverlightSpy uses a a more sophisticated WebBrowser control, but I'm not sure how they communicate with Silverlight.
Communicate using Sockets
between the Host and Silverlight.
Host the Silverlight runtime (not in
a browser), but directly using
AgCore.dll. Similar to what sllauncher does for OOB. I imagine
this is what Blend/VS are doing.
Do whatever Blend or VS are doing
which.
I obviously don’t want to go as far as VS and Blend, but I need to support drag and drop of some controls as well as grouping, changing the layout, moving controls in the design surface and obviously updating the Xaml as a result of this actions.
Any ideas, recommendations or pointers on the best way to create a Silverlight Designer in WPF?
SharpDevelop 4 has a WPF based editor for WPF and Silverlight -> http://www.icsharpcode.net/opensource/sd/

GUI for creating fullscreen web applications

Desktop GUI builder tools such as Qt Designer and Glade let me easily design a resizable interface with menus, shortcuts, tab order, status bar, etc
Is there an equivalent tool for the web?
I am not after building a typical web interface where you scroll down to view all the content, but a fullscreen interface with menus at the top and status bar at bottom.
Here is an (awesome) example fullscreen web app: http://desktop.sonspring.com/
The Flash Platform would probably give you a more familiar environment to develop for. The Flex framework provides a complete framework for developing sophisticated applications and Flex Builder (built on top of Eclipse) gives a UI 'designer' to build large parts of your app using the drag & drop philosophy.
For the kind of interfaces you're describing, ExtJS is quite a nice library. While there is not a GUI interface designer yet, there is reportedly one in the pipeline.
While the widget library is available under GPL3 (which caused some controversy), it's also available via commercial licenses. The interface builder will cost some kind of money.
Check out the demos, there is a desktop sample very similar to the one you referenced in your question.

XNA and GUI controls (eg. xaml and xna)

Is there a way to get textboxes, labels and other wpf controls in xna that supports margins, etc that flexes for window size?
You might give CeGui a shot.
If your game needs advanced GUI capabilities, CeGui# might just hit the nail on the head for you. Marketese aside, this is a seriously good GUI library with Buttons, ListBoxes, Scrollbars, ProgressBars, Sliders, ComboBoxes and more.
To access the Xna version you'll need to check out the latest copy from the project's SVN and load up CeGui-XNA.sln.
There are other options listed in this thread, but I have no idea how well any of the others work (and it probably isn't a comprehensive list anymore).
The official GUI systems FAQ thread in the XNA Forum:
What GUI systems are there for the XNA framework?
CEGUI# is powerful, but it doesn't support the Xbox 360 (eg. its design doesn't include responding to game pad input) - a major overhaul would be required to refit it to be usable with something else than mouse and keyboard.
Not exactly what you're looking for, but here is an example of getting winforms GUI elements mixed in with XNA 3d content:
http://creators.xna.com/en-US/sample/winforms_series1
Check out SQUID: http://www.ionstar.org/
It's a really clean, fast, and engine independent UI system. I've worked with it extensively and really enjoy using it. The download includes sample code for XNA 3.1, Truevision3D, and SlimDX.
It is possible to embed an XNA game in a WPF form (google: XNA in WPF) if you target only Windows system. You will then have access to all the controls available in XPF for your 2D GUI.
If you also target Xbox 360 or Zune; you must make your own GUI library :(

Resources