Skip to content

workspace sdk pinnable content builders

Andre Lafleur edited this page Oct 8, 2026 · 9 revisions

About pinnable content builders

Pinnable content builders create visual content for pinnable popups in Security Desk. Pinnable popups are floating panels that appear in monitor windows. Operators can reposition these panels and pin them in place alongside the main monitoring view.

Use pinnable content builders when you need to display persistent, supplementary information that operators can keep visible while working. Examples include:

  • A live status dashboard showing device health across the system
  • A notification tray that displays recent events or alerts from a third-party integration
  • A quick-access control panel for custom hardware such as lighting or HVAC systems

How pinnable content builders work

  1. The module registers a PinnableContentBuilder with the workspace during Load.
  2. When Security Desk restores a saved workspace layout that includes the builder's UniqueId as pinned content, it calls CreateContent() and places the returned FrameworkElement in a floating popup in the monitor window.
  3. The operator can pin the popup to dock it as a side panel in the monitor window.
  4. Unpinning or closing the popup removes it from the display.
  5. When the operator logs off, the popup hides automatically.

PinnableContentBuilder

Inherit from PinnableContentBuilder and implement the abstract members:

public class MyPinnableContentBuilder : PinnableContentBuilder
{
    public override string Name => "My Pinnable Content";

    public override Guid UniqueId => new Guid("A1B2C3D4-E5F6-7890-ABCD-EF1234567890");

    public override FrameworkElement CreateContent()
    {
        return new MyPinnableControl();
    }
}

PinnableContentBuilder members

Member Type Description
Name Property (abstract) Display name shown for the builder.
UniqueId Property (abstract) Unique identifier for this builder component.
CreateContent() Method (abstract) Create and return the visual content for the pinnable popup.

Registering a pinnable content builder

Important

This component requires a valid SDK certificate.

Register the builder in your module's Load method. Pinnable content builders are only available in Security Desk.

public class SampleModule : Module
{
    private MyPinnableContentBuilder m_pinnableBuilder;

    public override void Load()
    {
        if (Workspace.ApplicationType == ApplicationType.SecurityDesk)
        {
            m_pinnableBuilder = new MyPinnableContentBuilder();
            m_pinnableBuilder.Initialize(Workspace);
            Workspace.Components.Register(m_pinnableBuilder);
        }
    }

    public override void Unload()
    {
        if (m_pinnableBuilder != null)
        {
            Workspace.Components.Unregister(m_pinnableBuilder);
        }
    }
}

See also

Platform SDK

Plugin SDK

Workspace SDK

Media SDK

Macro SDK

Web SDK

Synergis RIO

Media Gateway

Genetec Web Player

Clone this wiki locally