Getting started

The Columns UI SDK provides interfaces you can use to:

  • create windows controlled by a host and embedded in the host’s window

  • provide information about commands to be used as a toolbar button

Installation

You’ll need:

To install, download the SDK and extract the archive alongside the foobar2000 subdirectory of your foobar2000 SDK.

Usage

Insert the columns_ui-sdk project into your solution, and add it as a dependency for your project. Then #include "columns_ui-sdk/ui_extension.h" in your project as needed.

Examples

Two examples are published on GitHub:

Panel APIs

APIs

Components wishing to provide a panel or toolbar should implement uie::window. Specific subclasses exist for:

Components wishing to host panels and toolbars should implement uie::window_host.

Helpers

uie::container_uie_window_v3 aims to simplify the implementation of a panel or toolbar, creating a window for you and partially implementing uie::window. It may not be suitable if you want to support multiple UI components, or you wish to also allow your panel to be opened as a pop-up window.

Button APIs

APIs

The base class for buttons is uie::button.

If you wish to provide default bitmaps and additional information for your menu items, derive from uie::menu_button. If you wish to implement a custom button not based upon a menu item, derive from uie::custom_button.

Standard windows

The GUIDs for the standard panels may be found in the cui::panels namespace. The GUIDs for the standard toolbars may be found in the cui::toolbars namespace.

You may use these GUIDs to create the standard windows in your own component; do not use them as GUIDs for your own windows.