Code:
typedef void (*init_func_t)(void *vdata, struct smode_t *smode,
struct font_t *font, struct theme_t *theme, struct gui_t *gui,
struct resource_t *settings);
typedef void (*start_func_t)(void *vdata, struct theme_t *theme,
struct gui_t *gui);
typedef int (*event_func_t)(enum panel_type_t *mode, SDL_Event *event,
void *vdata, struct smode_t *smode, struct font_t *font,
struct theme_t *theme, struct gui_t *gui);
typedef int (*set_widget_sel_func_t)(enum panel_type_t mode, int xp, int yp,
int click, void *vdata, struct smode_t *smode, struct theme_t *theme,
struct gui_t *gui);
typedef int (*perform_click_func_t)(int id, enum panel_type_t *mode,
void *vdata, struct smode_t *smode, struct gui_t *gui);
typedef void (*paint_func_t)(void *vdata, enum panel_type_t mode,
struct smode_t *smode, struct font_t *font, struct theme_t *theme,
struct gui_t *gui);
typedef void (*free_func_t)(void *vdata, struct gui_t *gui);
void add_view(struct loop_data_t *data, void *vdata, int frameupdate,
init_func_t init_func, start_func_t start_func, event_func_t event_func,
set_widget_sel_func_t set_widget_sel_func,
perform_click_func_t perform_click_func, paint_func_t paint_func,
free_func_t free_func);
That's a really badly designed function and I'm hoping to get rid of it soon, but just imagine what that function would look like without those typedefs . . . .