/*
 * DWN - Desktop Window Manager
 * retoor <retoor@molodetz.nl>
 * Demo mode - automated feature showcase
 */

#ifndef DWN_DEMO_H
#define DWN_DEMO_H

#include <stdbool.h>

typedef enum {
    DEMO_IDLE,
    DEMO_INTRO,
    DEMO_WINDOW_MGMT,
    DEMO_WORKSPACES,
    DEMO_LAYOUTS,
    DEMO_SNAPPING,
    DEMO_PANELS,
    DEMO_AI,
    DEMO_NEWS,
    DEMO_SHORTCUTS,
    DEMO_COMPLETE
} DemoPhase;

typedef enum {
    DEMO_WAIT_NONE,
    DEMO_WAIT_TIME,
    DEMO_WAIT_WINDOW_SPAWN,
    DEMO_WAIT_AI_RESPONSE,
    DEMO_WAIT_EXA_RESPONSE
} DemoWaitCondition;

void demo_init(void);
void demo_cleanup(void);
void demo_start(void);
void demo_stop(void);
void demo_update(void);
bool demo_is_active(void);
DemoPhase demo_get_phase(void);
int demo_get_step(void);
const char *demo_get_phase_name(DemoPhase phase);

#endif
