#pragma once

#include "listbox.qh"
CLASS(XonoticScreenshotList, XonoticListBox)
	METHOD(XonoticScreenshotList, configureXonoticScreenshotList, void(entity));
	ATTRIB(XonoticScreenshotList, rowsPerItem, float, 1);
	METHOD(XonoticScreenshotList, resizeNotify, void(entity, vector, vector, vector, vector));
	METHOD(XonoticScreenshotList, setSelected, void(entity, float));
	METHOD(XonoticScreenshotList, draw, void(entity));
	METHOD(XonoticScreenshotList, drawListBoxItem, void(entity, int, vector, bool, bool));
	METHOD(XonoticScreenshotList, getScreenshots, void(entity));
	METHOD(XonoticScreenshotList, previewScreenshot, void(entity));
	METHOD(XonoticScreenshotList, startScreenshot, void(entity));
	METHOD(XonoticScreenshotList, screenshotName, string(entity, float));
	METHOD(XonoticScreenshotList, doubleClickListBoxItem, void(entity, float, vector));
	METHOD(XonoticScreenshotList, keyDown, float(entity, float, float, float));
	METHOD(XonoticScreenshotList, destroy, void(entity));
	METHOD(XonoticScreenshotList, showNotify, void(entity));
	ATTRIB(XonoticScreenshotList, listScreenshot, float, -1);
	ATTRIB(XonoticScreenshotList, realFontSize, vector, '0 0 0');
	ATTRIB(XonoticScreenshotList, columnNameOrigin, float, 0);
	ATTRIB(XonoticScreenshotList, columnNameSize, float, 0);
	ATTRIB(XonoticScreenshotList, realUpperMargin, float, 0);
	ATTRIB(XonoticScreenshotList, origin, vector, '0 0 0');
	ATTRIB(XonoticScreenshotList, itemAbsSize, vector, '0 0 0');
	ATTRIB(XonoticScreenshotList, filterString, string);
	ATTRIB(XonoticScreenshotList, filterBox, entity);
	ATTRIB(XonoticScreenshotList, filterTime, float, 0);

	ATTRIB(XonoticScreenshotList, newScreenshotTime, float, 0);
	ATTRIB(XonoticScreenshotList, newSlideShowScreenshotTime, float, 0);

	ATTRIB(XonoticScreenshotList, screenshotBrowserDialog, entity);
	ATTRIB(XonoticScreenshotList, screenshotPreview, entity);
	ATTRIB(XonoticScreenshotList, screenshotViewerDialog, entity);
	METHOD(XonoticScreenshotList, goScreenshot, void(entity, float));
	METHOD(XonoticScreenshotList, startSlideShow, void(entity));
	METHOD(XonoticScreenshotList, stopSlideShow, void(entity));
ENDCLASS(XonoticScreenshotList)

entity makeXonoticScreenshotList();
void StartScreenshot_Click(entity btn, entity me);
void ScreenshotList_Refresh_Click(entity btn, entity me);
void ScreenshotList_Filter_Would_Change(entity box, entity me);
void ScreenshotList_Filter_Change(entity box, entity me);
