usbloadergx/source/libwiigui/gui_customoptionbrowser.h

103 lines
2.8 KiB
C
Raw Normal View History

#include "gui.h"
class customOptionList
{
public:
2010-09-24 02:48:03 +02:00
customOptionList(int Size);
~customOptionList();
2010-09-24 02:48:03 +02:00
void SetLength(int Length);
void SetName(int i, const char *format, ...) __attribute__( ( format ( printf, 3, 4 ) ) );
const char *GetName(int i)
{
2010-09-24 02:48:03 +02:00
if (i >= 0 && i < length && name[i])
return name[i];
2010-09-24 02:48:03 +02:00
else return "";
}
2010-09-24 02:48:03 +02:00
void SetValue(int i, const char *format, ...) __attribute__( ( format ( printf, 3, 4 ) ) );
const char *GetValue(int i)
{
2010-09-24 02:48:03 +02:00
if (i >= 0 && i < length && value[i])
return value[i];
2010-09-24 02:48:03 +02:00
else return "";
}
void Clear(bool OnlyValue = false);
int GetLength()
{
return length;
}
bool IsChanged()
{
bool ret = changed;
changed = false;
return ret;
}
private:
2010-09-24 02:48:03 +02:00
void SetSize(int Size);
int size;
char ** name;
char ** value;
int length;
bool changed;
};
//!Display a list of menu options
2010-09-24 02:48:03 +02:00
class GuiCustomOptionBrowser: public GuiElement
{
public:
2010-09-24 02:48:03 +02:00
GuiCustomOptionBrowser(int w, int h, customOptionList * l, const char * themePath, const char *custombg,
const u8 *imagebg, int scrollbar, int col2);
~GuiCustomOptionBrowser();
2010-09-24 02:48:03 +02:00
int FindMenuItem(int c, int d);
int GetClickedOption();
int GetSelectedOption();
2010-09-24 02:48:03 +02:00
void SetClickable(bool enable);
void SetScrollbar(int enable);
void SetOffset(int optionnumber);
void ResetState();
2010-09-24 02:48:03 +02:00
void SetFocus(int f);
void Draw();
2010-09-24 02:48:03 +02:00
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;
};