About Dialogs

Dialog waypoints appear on the Dialogs track of the timeline.

Dialog waypoints should include any dialog or palette that the user explicitly opens or closes. Use the appropriate API function depending on whether it is a modal or modeless dialog.

Most Dialog waypoints include:
Some Dialog waypoints also include:
When a dialog item changes value, the following are included:
Note: Your API call should provide the optional screenshot image. The image can be static or generated by your application dynamically.
Example of reporting a modal dialog session using a Chronicle::Metadata::DialogsCategory waypoint:
#include <Chronicle/Chronicle.h>

// Create the waypoint when the modal dialog is opened

const wchar_t *dialogTitle = L"Insert";
Chronicle::Rectangle dialogRect(64, 128, 320, 240); // In screen coordinates
Chronicle::Waypoint *waypoint = Chronicle::Facade::Waypoints::modalDialogOpened(dialogTitle, dialogRect);

// ... modal dialog session happens ...

// When the modal dialog is about to close, record the changed dialog items/controls

const wchar_t *itemName = L"Explode";
bool itemNewValue = true;
bool itemOldValue = false;
Chronicle::Rectangle itemRect(16, 200, 80, 20); // In dialog coordinates
Chronicle::Facade::Waypoints::modalDialogItemChanged(waypoint, itemName, itemNewValue, itemOldValue, itemRect);

// ... record the other changed items/controls ...

// When the modal dialog closes, record the closure and then finally report the waypoint

Chronicle::Facade::Waypoints::modalDialogClosed(waypoint);
Chronicle::Error err = Chronicle::Facade::waypointReached(waypoint);
Example of reporting modeless dialog interactions:
#include <Chronicle/Chronicle.h>

const wchar_t *dialogTitle = L"Layers";
Chronicle::Rectangle dialogRect(800, 100, 160, 480); // In screen coordinates
Chronicle::Waypoint *waypoint;
Chronicle::Error err;

// Whenever the modeless dialog is opened
waypoint = Chronicle::Facade::Waypoints::modelessDialogOpened(dialogTitle, dialogRect);
err = Chronicle::Facade::waypointReached(waypoint);

// Whenever an item/control in the modeless dialog changes value
const wchar_t *itemName = L"Transparency";
float itemNewValue = 1.0f;
float itemOldValue = 0.25f;
Chronicle::Rectangle itemRect(8, 460, 64, 20); // In dialog coordinates
waypoint = Chronicle::Facade::Waypoints::modelessDialogItemChanged(dialogTitle, itemName, itemNewValue,
		itemOldValue, dialogRect, itemRect);

// Whenever the modeless dialog is closed
waypoint = Chronicle::Facade::Waypoints::modelessDialogClosed(dialogTitle);
err = Chronicle::Facade::waypointReached(waypoint);