Using the Javascript ClientSettings Object

Javascript_ClientSettings

Previously, we presented you with an article about ClientSettings, an additional interface available in the Thinfinity VirtualUI Library. This interface allows developers to know and programmatically define, from their own software applications, some browser environment layout, and behavior settings. In this post, we are presenting the Javascript version of ClientSettings.
The ClientSettings interface, first available in all the Thinfinity VirtualUI supported programming languages (Visual Basic, C++, C#, Delphi, etc.), can now be added in Javascript to the app.html page to define and override environment and layout preferences as in the application side (from Visual Basic, Delphi, etc.), or to define the layout and behavior of some of the VirtualUI web interface additional elements.
In Javascript, ClientSettings is available as a Thinfinity.VirtualUI class attribute:

var vui = new Thinfinity.VirtualUI();
var clientSettings = vui.ClientSettings;

All ClientSettings attributes have a default value that determines the typical behavior in each case. Developers can change it by setting new values to these attributes before the connection starts.
The table below shows a detailed reference of the ClientSettings current properties:

CursorVisible Used to set the mouse pointer to ‘show’ or ‘hide’.
Type: Boolean
Default value: True
Available from VirtualUI Library (app code): True
MouseMoveGestureStyle Defines whether the mouse movement is read as relative or absolute in touch devices.
Type: Enum
Values:
MM_STYLE_RELATIVE = 0
MM_STYLE_ABSOLUTE = 1
Default value: MM_STYLE_RELATIVE
Available from VirtualUI Library (app code): True
MouseMoveGestureAction Indicates if dragging should be interpreted as scrolling or turning of the mouse wheel, affecting only the item on which the action is triggered.
Type: Enum
Values:
MM_ACTION_MOVE = 0,
MM_ACTION_WHEEL = 1
Default value: MM_ACTION_MOVE
Available from VirtualUI Library (app code): True
UseViewportSize Indicates which measure values will be used to define the application’s screen size.
Type: Boolean
Values:
True: use the viewport size
False: use a window screen based size.
Default value: False
Available from VirtualUI Library (app code): False
DockMenu Manages  the bottom menu’s visibility.
Type: JSON Structure
Available from VirtualUI Library (app code): False
Enabled Enables/disables the complete Dock Menu.
Type: Boolean
Default value: True
Pinned Indicates when the DockMenu is pinned (visible, fixed) or unpinned (with autohide)
Type: Boolean
Default value: False
Items Name/value pairs item collection.
WindowList Enables/disables the “Windows list” option.
Type: Boolean
Default value: True
ErrorReporting Enables/disables the “Error Reporting” option.
Type: Boolean
Default value: True
Keyboard Enables/disables the “Keyboard” option (mobile only).
Type: Boolean
Default value: True
FullScreen Enables/disables the “Full Screen” option (for mobile devices only, if supported).
Type: Boolean
Default value: True

How to Use the Javascript ClientSettings Object

This example shows how to hide the mouse pointer, force the DockMenu visibility and remove the “Error Reporting” icon from the DockMenu. Just write the following code in the app.js file ( Inside C:\ProgramFiles\Thinfinity\VirtualUI\web\ folder) after the Thinfinity.VirtualUI object creation:

var vui = new Thinfinity.VirtualUI();
var clientSettings = vui.ClientSettings;
clientSettings.CursorVisible = false;
//attributes only available in Javascript
clientSettings.DockMenu.Pinned = true;
clientSettings.DockMenu.ErrorReporting = false;
// end clientSettings
...

ClientSettings Applying Order

As some ClientSettings values can be applied both on the browser side and the application, we need to define an applying order:

  • A value set in the application overrides the default attribute value.
  • Any value set in the Javascript always overrides any other value.

So that Thinfinity VirtualUI can resolve the final ClientSettings values we decided to set their Javascript defaults to null. In this way, only when the attribute is not null will it override the corresponding value.
The following table explains this behavior for different ClientSettings value combinations:

Default Value App Value Javascript Value Final Value
1 none null 1
1 2 null 2
1 none 3 3
1 2 3 3

We hope that by adding ClientSettings to the Javascript library, we are making it easier for you to take advantage of these beautiful tools to modify the browser environment layout and behavior. Don’t forget to contact us and share your experience. We will continue to update this blog with the latest Cybele Software news.

Comments (2)

Why is UseViewportSize NOT available in VirtualUI Library (app code)? It should be.
Maybe DockWindow as well.

Leave a comment

Privacy Preferences
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.