#pragma once

#include "listbox.qh"
#include "tab.qh"
CLASS(XonoticScrollPanel, XonoticListBox)
	/** container for single child panel */
	ATTRIB(XonoticScrollPanel, currentPanel, entity, NEW(XonoticTab));
	ATTRIB(XonoticScrollPanel, nItems, int, 1);
	ATTRIB(XonoticScrollPanel, selectionDoesntMatter, bool, true);
	ATTRIB(XonoticScrollPanel, itemHeight, float, 1);
	/** number of rows to show at once */
	ATTRIB(XonoticScrollPanel, viewportHeight, float, 12);
	ATTRIB(XonoticScrollPanel, alphaBG, float, 0);

	METHOD(XonoticScrollPanel, getItemAtPos, float(XonoticScrollPanel this, float pos)) { return 0; }
	METHOD(XonoticScrollPanel, getItemHeight, float(XonoticScrollPanel this, int i)) { return this.itemHeight; }
	METHOD(XonoticScrollPanel, getItemStart, float(XonoticScrollPanel this, int i)) { return 0; }
	METHOD(XonoticScrollPanel, getTotalHeight, float(XonoticScrollPanel this)) { return this.itemHeight; }
	METHOD(XonoticScrollPanel, setFocus, void(XonoticScrollPanel this, entity other)) { Container_setFocus(this, other); }
	METHOD(XonoticScrollPanel, setSelected, void(XonoticScrollPanel this, int i)) { }

	METHOD(XonoticScrollPanel, drawListBoxItem, void(XonoticScrollPanel this, int i, vector absSize, bool isSelected, bool isFocused));
	METHOD(XonoticScrollPanel, resizeNotify, void(XonoticScrollPanel this, vector relOrigin, vector relSize, vector absOrigin, vector absSize));
ENDCLASS(XonoticScrollPanel)
