4 #include "include/textures.h"
5 #include "include/texcache.h"
6 #include "include/menusys.h"
8 #define THM_MAX_FILES 64
9 #define THM_MAX_FONTS 16
12 // optional, only for overlays
22 // basic texture information
28 // Attributes for: AttributeImage
33 // Attributes for: AttributeImage & GameImage
37 // Attributes for: AttributeImage & GameImage & StaticImage
38 image_texture_t
* defaultTexture
;
39 int defaultTextureLinked
;
41 image_texture_t
* overlayTexture
;
42 int overlayTextureLinked
;
46 // Attributes for: AttributeText & StaticText
50 // Attributes for: AttributeText
62 mutable_image_t
* decoratorImage
;
65 typedef struct theme_element
{
78 void (*drawElem
)(struct menu_list
* menu
, struct submenu_list
* item
, config_set_t
* config
, struct theme_element
* elem
);
79 void (*endElem
)(struct theme_element
* elem
);
81 struct theme_element
* next
;
85 theme_element_t
* first
;
86 theme_element_t
* last
;
94 typedef struct theme
{
98 unsigned char bgColor
[3];
103 theme_elems_t mainElems
;
104 theme_elems_t infoElems
;
108 theme_element_t
* itemsList
;
109 theme_element_t
* loadingIcon
;
110 int loadingIconCount
;
112 GSTEXTURE textures
[TEXTURES_COUNT
];
113 int fonts
[THM_MAX_FONTS
]; //!< Storage of font handles for removal once not needed
119 void thmReinit(char* path
);
120 void thmReloadScreenExtents();
121 void thmAddElements(char* path
, char* separator
, int mode
);
123 GSTEXTURE
* thmGetTexture(unsigned int id
);
126 // Indices are shifted in GUI, as we add the internal default theme at 0
127 int thmSetGuiValue(int themeGuiId
, int reload
);
128 int thmGetGuiValue();
129 int thmFindGuiID(char* theme
);
130 char **thmGetGuiList();