Documentation

Layouts configuration and switching

Player layouts API

Name Params Description
getSemiResponsiveLayouts() --- Returns JavaScriptObject with the lesson layouts configuration.
changeLayout() Layout ID Changes a current lesson layout, returns flag if the layout was changed.

Player asynchronous loading configuration

Player loading is an asynchronous operation. Calling player.load("...") sends the request for a resource. It takes the player some time to parse the XML response with lesson and layout configuration.

The player sends onPageLoaded event after loading the page and parsing data. A user can respond to this event to retrieve layouts configuration. See examples below.

Getting configuration

It is possible to get the lesson layouts configuration

var player;
function icOnAppLoaded(){
    player = icCreatePlayer('_icplayer');
    player.load('content/default.ic.xml');
    player.onPageLoaded(function () {
        var configuration = player.getSemiResponsiveLayouts();
        ...
    });
}

Configuration description

Configuration is a JavaScript object, where keys are the layout's IDs required by changeLayout. Values are the objects described below.

Key Type Value Description
id string Random generated uuid Layout generated ID
deviceOrientation string vertical | horizontal Mobile device orientation destination for the layout.
isDefault boolean Layout configuration contains only one default layout.
name string Name for the layout.
styleID string Random generated uuid CSS stylesheet ID assigned to the layout.
threshold Number Integer value greater than 0 Device screen max width for the layout.
useDeviceOrientation boolean Flag which indicates if the layout is configured for mobile devices.

Switching layout

The current lesson layout can be switched. As the parameter, please provide a new layout ID.

var player;
function icOnAppLoaded(){
    player = icCreatePlayer('_icplayer');
    player.load('content/default.ic.xml');
    player.onPageLoaded(function () {
        var configuration = player.getSemiResponsiveLayouts();
        var hasChanged = player.changeLayout("newLayoutID");
        ...
    });
}

Changing layout returns boolean true value if the layout has been changed by the player.