#include "gui.h" class customOptionList { public: customOptionList(int Size); ~customOptionList(); void SetLength(int Length); void SetName(int i, const char *format, ...) __attribute__((format (printf, 3, 4))); const char *GetName(int i) { if(i >= 0 && i < length && name[i]) return name[i]; else return ""; } void SetValue(int i, const char *format, ...) __attribute__((format (printf, 3, 4))); const char *GetValue(int i) { if(i >= 0 && i < length && value[i]) return value[i]; else return ""; } void Clear(bool OnlyValue=false); int GetLength() { return length; } bool IsChanged() { bool ret = changed; changed = false; return ret;} private: void SetSize(int Size); int size; char ** name; char ** value; int length; bool changed; }; //!Display a list of menu options class GuiCustomOptionBrowser : public GuiElement { public: GuiCustomOptionBrowser(int w, int h, customOptionList * l, const char * themePath, const char *custombg, const u8 *imagebg, int scrollbar, int col2); ~GuiCustomOptionBrowser(); int FindMenuItem(int c, int d); int GetClickedOption(); int GetSelectedOption(); void SetClickable(bool enable); void SetScrollbar(int enable); void SetOffset(int optionnumber); void ResetState(); void SetFocus(int f); void Draw(); void Update(GuiTrigger * t); protected: void UpdateListEntries(); int selectedItem; int listOffset; int size; int coL2; int scrollbaron; customOptionList * options; int * optionIndex; GuiButton ** optionBtn; GuiText ** optionTxt; GuiText ** optionVal; GuiText ** optionValOver; GuiImage ** optionBg; GuiButton * arrowUpBtn; GuiButton * arrowDownBtn; GuiButton * scrollbarBoxBtn; GuiImage * bgOptionsImg; GuiImage * scrollbarImg; GuiImage * arrowDownImg; GuiImage * arrowDownOverImg; GuiImage * arrowUpImg; GuiImage * arrowUpOverImg; GuiImage * scrollbarBoxImg; GuiImage * scrollbarBoxOverImg; GuiImageData * bgOptions; GuiImageData * bgOptionsEntry; GuiImageData * scrollbar; GuiImageData * arrowDown; GuiImageData * arrowDownOver; GuiImageData * arrowUp; GuiImageData * arrowUpOver; GuiImageData * scrollbarBox; GuiImageData * scrollbarBoxOver; GuiSound * btnSoundClick; GuiTrigger * trigA; GuiTrigger * trigHeldA; };