#pragma once

#include "listbox.qh"
CLASS(XonoticPlayList, XonoticListBox)
	METHOD(XonoticPlayList, configureXonoticPlayList, void(entity));
	ATTRIB(XonoticPlayList, rowsPerItem, float, 1);
	METHOD(XonoticPlayList, resizeNotify, void(entity, vector, vector, vector, vector));
	METHOD(XonoticPlayList, draw, void(entity));
	METHOD(XonoticPlayList, drawListBoxItem, void(entity, int, vector, bool, bool));
	METHOD(XonoticPlayList, stopSound, void(entity));
	METHOD(XonoticPlayList, startSound, void(entity, float));
	METHOD(XonoticPlayList, resumeSound, void(entity));
	METHOD(XonoticPlayList, pauseSound, void(entity));
	METHOD(XonoticPlayList, doubleClickListBoxItem, void(entity, float, vector));
	METHOD(XonoticPlayList, keyDown, float(entity, float, float, float));
	METHOD(XonoticPlayList, mouseDrag, float(entity, vector));

	METHOD(XonoticPlayList, addToPlayList, void(entity, string));
	METHOD(XonoticPlayList, removeSelectedFromPlayList, void(entity));
	ATTRIB(XonoticPlayList, playingTrack, float, -1);

	ATTRIB(XonoticPlayList, realFontSize, vector, '0 0 0');
	ATTRIB(XonoticPlayList, columnNameOrigin, float, 0);
	ATTRIB(XonoticPlayList, columnNameSize, float, 0);
	ATTRIB(XonoticPlayList, columnNumberOrigin, float, 0);
	ATTRIB(XonoticPlayList, columnNumberSize, float, 0);
	ATTRIB(XonoticPlayList, realUpperMargin, float, 0);
	ATTRIB(XonoticPlayList, origin, vector, '0 0 0');
	ATTRIB(XonoticPlayList, itemAbsSize, vector, '0 0 0');
ENDCLASS(XonoticPlayList)

entity makeXonoticPlayList();
void PlayList_Remove(entity btn, entity me);
void PlayList_Remove_All(entity btn, entity me);
void StopSound_Click(entity btn, entity me);
void StartSound_Click(entity btn, entity me);
void PauseSound_Click(entity btn, entity me);
void PrevSound_Click(entity btn, entity me);
void NextSound_Click(entity btn, entity me);
