/** PSP helper library ***************************************/
/**                                                         **/
/**                           ui.h                          **/
/**                                                         **/
/** This file contains declarations for a simple GUI        **/
/** rendering library                                       **/
/**                                                         **/
/** Copyright (C) Akop Karapetyan 2007                      **/
/**     You are not allowed to distribute this software     **/
/**     commercially. Please, notify me, if you make any    **/
/**     changes to this file.                               **/
/*************************************************************/
#ifndef _PSP_UI_H
#define _PSP_UI_H

#include "video.h"
#include "menu.h"

#ifdef __cplusplus
extern "C" {
#endif

struct PspUiMetric
{
  const PspFont *Font;
};

typedef struct PspUiMetric PspUiMetric;

PspUiMetric UiMetric;

unsigned int pspUiFileBrowser(PspImage *backdrop,
  const char *path, const char **filter, char **buffer,
  unsigned int ok_btn_mask, unsigned int cncl_btn_mask,
  void(*CustomDraw)());
unsigned int pspUiMenu(PspImage *backdrop,
  PspMenu *menu, PspMenuItem **sel,
  unsigned int ok_btn_mask, unsigned int cncl_btn_mask,
  char*(*ShortcutHandler)(PspMenuItem*, unsigned int, unsigned int),
  void(*CustomDraw)(),
  int (*ItemChangedCallback)(const PspMenuItem*, const PspMenuOption*));
unsigned int pspUiGallery(PspImage *backdrop,
  PspMenu *menu, PspMenuItem **sel,
  unsigned int ok_btn_mask, unsigned int cncl_btn_mask,
  char*(*ShortcutHandler)(PspMenuItem*, unsigned int, unsigned int),
  void(*CustomDraw)());
int  pspUiConfirm(const char *message);
void pspUiAlert(const char *message);
void pspUiFlashMessage(const char *message);

#ifdef __cplusplus
}
#endif

#endif  // _PSP_UI_H
