Leviathan  0.8.0.0
Leviathan game engine
Leviathan::GUI Namespace Reference

Classes

class  CefApplication
 Handler for new render processes. More...
 
class  CefFileResourceHandler
 Custom file reader for serving local files. More...
 
class  CefLocalResourceRequestHandlerFactory
 Provides support for loading local resources from "leviathan-local" with the http protocol. More...
 
struct  CustomExtension
 
class  GuiManager
 GUI controller for a Window. More...
 
class  JSAsyncCustom
 Provides client applications and modules (not done) support for defining custom request responses. More...
 
class  JSAudioSourceInterceptor
 Provides access for JavaScript to AudioSource. More...
 
class  JSLambdaFunction
 Helps with binding c++ functions to JavaScript by allowing lambdas to be easily registered. More...
 
class  JSNamedVarsInterceptor
 Provides access for JS to NamedVars. More...
 
class  JSNativeCoreAPI
 Handles javascript functions that have native extensions. More...
 
class  JSProxyable
 Base class for all objects that support having a JavaScript proxy of them created in the render process. More...
 
class  Layer
 Base class for WidgetLayer and View (browser containers / CEF) to add to a GuiManager. More...
 
class  LeviathanJavaScriptAsync
 Handles asynchronous javascript requests. More...
 
class  MainProcessSideHandler
 Handles messages sent to the main process from the render process that are directed towards an extension. More...
 
class  VideoPlayer
 VideoPlayer that uses ffmpeg to play videos on Ogre. More...
 
class  VideoPlayerWidget
 Hosts a Leviathan::VideoPlayer in a Widget for diplay in the GUI. More...
 
class  View
 A class that represents a single GUI layer that has it's own chromium browser. More...
 
class  Widget
 Base class for all Leviathan GUI widgets. More...
 
class  WidgetLayer
 All Leviathan Widget objects need to be contained in a container for rendering. More...
 

Typedefs

using HandlerFactory = CefRefPtr< CefV8Handler >(*)(GUI::CefApplication *app)
 

Enumerations

enum  INPUT_MODE { INPUT_MODE::Menu, INPUT_MODE::Gameplay, INPUT_MODE::None }
 
enum  INPUT_EVENT_TYPE : int { INPUT_EVENT_TYPE::Keypress, INPUT_EVENT_TYPE::Scroll, INPUT_EVENT_TYPE::Other }
 
enum  VIEW_SECURITYLEVEL { VIEW_SECURITYLEVEL_BLOCKED = 0, VIEW_SECURITYLEVEL_MINIMAL, VIEW_SECURITYLEVEL_NORMAL, VIEW_SECURITYLEVEL_ACCESS_ALL }
 Controls what functions can be called from the page. More...
 

Variables

constexpr auto GUI_WORKSPACE_BEGIN_ORDER = 1000
 
constexpr auto CEF_MOUSE_SCROLL_MULTIPLIER = 25.f
 The default CEF scroll speed is ridiculously slow so we multiply it with this. More...
 

Typedef Documentation

◆ HandlerFactory

using Leviathan::GUI::HandlerFactory = typedef CefRefPtr<CefV8Handler> (*)(GUI::CefApplication* app)

Definition at line 23 of file GuiCEFApplication.h.

Enumeration Type Documentation

◆ INPUT_EVENT_TYPE

◆ INPUT_MODE

This is the mode a View is in

Note
When mouse capture is enabled the View doesn't get any events until capture mode is disabled
Enumerator
Menu 

In this mode the View takes all key press events.

Gameplay 

In this mode the View will only take key presses when it has an active input box (this detection is done by a javascript callback that calls LeviathanJavaScriptAsync::OnQuery to notify the C++ side of the status)

None 

In this mode the View doesn't take any input under any circumstances.

Definition at line 12 of file GuiInputSettings.h.

12  {
14  Menu,
18  Gameplay,
20  None
21 };
In this mode the View doesn&#39;t take any input under any circumstances.
In this mode the View takes all key press events.

◆ VIEW_SECURITYLEVEL

Controls what functions can be called from the page.

Enumerator
VIEW_SECURITYLEVEL_BLOCKED 

The page is not allowed to access anything Except the notification about input element being focused

VIEW_SECURITYLEVEL_MINIMAL 

The page can view minimal information only and access some objects

Note
This is recommended for external "unsafe" pages, like a web page displayed during connecting to a server
VIEW_SECURITYLEVEL_NORMAL 

The page can view most settings and set some "safe" settings.

VIEW_SECURITYLEVEL_ACCESS_ALL 

The page can access all internal functions

Note
This is the recommended level for games' internal GUI page

Definition at line 25 of file GuiView.h.

Variable Documentation

◆ CEF_MOUSE_SCROLL_MULTIPLIER

constexpr auto Leviathan::GUI::CEF_MOUSE_SCROLL_MULTIPLIER = 25.f

The default CEF scroll speed is ridiculously slow so we multiply it with this.

Definition at line 22 of file GuiView.h.

◆ GUI_WORKSPACE_BEGIN_ORDER

constexpr auto Leviathan::GUI::GUI_WORKSPACE_BEGIN_ORDER = 1000

Definition at line 24 of file GuiLayer.h.