/
Working with Frame Settings

Information Classification: External Restricted.
See https://www.chili-publish.com/security

Working with Frame Settings

Once you have access to a frame, you can manipulate most of its settings through the properties you can find in the DOM documentation.

You can apply this based on your choice of logic:

  • Registering to SelectedFrameChanged, and working on "document.selectedFrame"
  • Looping through all frames based on a type (Editor Enumerations - FrameType)
  • Finding frames in the document based on a tag
  • ...

Frame Properties

All frames inherit the properties from the base frame object: Document Object Model - Frame

Individual frame types have their own classes (eg: Document Object Model - TextFrame)

Frame Constraints

Frame constraints can be configured on a variety of levels (document, page, layer, frame), and all are accessible through JavaScript.You can find the available constraint settings in ?Document Object Model - FrameConstraints

The following sample loops through all image frames in the document, and locks them for the end user:

function defaultLock()
{
    var totalFrames = 0; ;
    var numPages = editor.GetObject("document.pages").length;
    for (var i = 0; i < numPages; i++)
    {
        var numFrames = editor.GetObject("document.pages[" + i + "].frames").length;
        totalFrames = totalFrames + numFrames;
        for (var j = 0; j < numFrames; j++)
        {
            var type = editor.GetObject("document.pages[" + i + "].frames[" + j + "].type");
            if (type == "image")
            {
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockContent", "no");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockDelete", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockFrameSettings", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockMoveHorizontal", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockMoveVertical", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockResizeHorizontal", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockResizeVertical", "yes_users");
                editor.SetProperty("document.pages[" + i + "].frames[" + j + "].frameConstraints", "lockRotate", "yes_users");
            }
        }
    }
}

Assigning Shapes to a Frame

A shape has to exist within the workspace, in order to use JS to assign a shape to a frame.

// Get the shape object from the workspace
var shapePath = editor.GetObject('document.workSpace.defaultShapes[2]');
// Assign shape to the selected frame
editor.ExecuteFunction("document.selectedFrame", "SetPaths", shapePath.paths);

 
//unassign a shape to the frame
editor.ExecuteFunction("document.selectedFrame","SetPaths",null);

Frame Index Setting

You can change the frame's index by using the following JS, The high index 5000 indicates to put the frame on top, the low index 0 indicates to put the frame at the bottom

editor.SetProperty('document.allFrames[0]','index','5000');
editor.SetProperty('document.selectedFrame','index','0');

Related content

Getting started with your JavaScript integration
Getting started with your JavaScript integration
Read with this
Document Object Model - FrameConstraints
Document Object Model - FrameConstraints
More like this
Manipulating Text Frames
Manipulating Text Frames
Read with this
Accessing selected frames and other resources
Accessing selected frames and other resources
More like this
JavaScript Events
Read with this
Manipulating Image Frames
Manipulating Image Frames
More like this

All information on this page must be treated as External Restricted, or more strict. https://www.chili-publish.com/security