#ifndef DEFS_H
#define DEFS_H

#include <windows.h>
#include <commctrl.h>

/* common.c */
TCHAR *TszFromSz(const char *, int);

/* main.c */
void UpdateLayout();

/* listview.c */
HWND LvCreate(HMENU, DWORD);
int LvHeight(HWND, int);

/* episodelistview.c */
HWND ElvCreate();
LRESULT ElvHandleNotify(LPARAM);
void ElvRedraw(void);
void ElvSetTop(int);
void ElvSelectRecent(void);
void ElvUpdate(void);
void ElvUpdateName(LPLVITEM);

/* datalistview.c */
HWND DlvCreate();
void DlvShowEpisode(int);

inline int
Dpi(int i)
{
	extern int IDPI;
	return MulDiv(i, IDPI, 96);
}

#define P(m,p,a,t) if (!PL_call_predicate(NULL, PL_Q_NORMAL,	\
		PL_predicate(p,a,m), t))
#define Q(m,p,a,t) PL_open_query(NULL, PL_Q_NORMAL, PL_predicate(p,a,m), t)
#define Qn(q) PL_next_solution(q)
#define Qc(q) PL_cut_query(q)
#define T(a) PL_new_term_refs(a)
#define PI(t,x) if (!PL_put_integer(t,x))
#define GI(t,x) if (!PL_get_integer(t,x))
#define GAC(t,x) if (!PL_get_atom_chars(t,x))

#endif