From ccdaabfa38ba7ef958cd9021ecd0f472a339ec50 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Thu, 12 Sep 2013 12:15:00 +0100 Subject: Pass generic userdata --- amiga/hotlist.c | 14 +++++++------- amiga/hotlist.h | 4 ++-- amiga/menu.c | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/amiga/hotlist.c b/amiga/hotlist.c index e9841d3f2..70f014349 100755 --- a/amiga/hotlist.c +++ b/amiga/hotlist.c @@ -22,12 +22,12 @@ #include "desktop/hotlist.h" struct ami_hotlist_ctx { - struct gui_window_2 *gw; + void *userdata; int level; int item; const char *folder; /* folder we're interested in */ bool in_menu; /* set if we are in that folder */ - bool (*cb)(struct gui_window_2 *gw, int level, int item, const char *title, nsurl *url, bool folder); + bool (*cb)(void *userdata, int level, int item, const char *title, nsurl *url, bool folder); }; @@ -51,7 +51,7 @@ static nserror ami_hotlist_folder_enter_cb(void *ctx, const char *title) struct ami_hotlist_ctx *menu_ctx = (struct ami_hotlist_ctx *)ctx; if(menu_ctx->in_menu == true) { - if(menu_ctx->cb(menu_ctx->gw, menu_ctx->level, menu_ctx->item, title, NULL, true) == true) + if(menu_ctx->cb(menu_ctx->userdata, menu_ctx->level, menu_ctx->item, title, NULL, true) == true) menu_ctx->item++; } else { if((menu_ctx->level == 0) && (strcmp(title, menu_ctx->folder) == 0)) @@ -66,7 +66,7 @@ static nserror ami_hotlist_address_cb(void *ctx, nsurl *url, const char *title) struct ami_hotlist_ctx *menu_ctx = (struct ami_hotlist_ctx *)ctx; if(menu_ctx->in_menu == true) { - if(menu_ctx->cb(menu_ctx->gw, menu_ctx->level, menu_ctx->item, title, url, false) == true) + if(menu_ctx->cb(menu_ctx->userdata, menu_ctx->level, menu_ctx->item, title, url, false) == true) menu_ctx->item++; } @@ -85,8 +85,8 @@ static nserror ami_hotlist_folder_leave_cb(void *ctx) return NSERROR_OK; } -nserror ami_hotlist_scan(struct gui_window_2 *gwin, int first_item, const char *folder, - bool (*cb_add_item)(struct gui_window_2 *gw, int level, int item, const char *title, nsurl *url, bool folder)) +nserror ami_hotlist_scan(void *userdata, int first_item, const char *folder, + bool (*cb_add_item)(void *userdata, int level, int item, const char *title, nsurl *url, bool folder)) { struct ami_hotlist_ctx ctx; @@ -94,7 +94,7 @@ nserror ami_hotlist_scan(struct gui_window_2 *gwin, int first_item, const char * ctx.item = first_item; ctx.folder = folder; ctx.in_menu = false; - ctx.gw = gwin; + ctx.userdata = userdata; ctx.cb = cb_add_item; return hotlist_iterate(&ctx, diff --git a/amiga/hotlist.h b/amiga/hotlist.h index be38163e0..54f8a6350 100755 --- a/amiga/hotlist.h +++ b/amiga/hotlist.h @@ -23,8 +23,8 @@ void ami_hotlist_initialise(const char *hotlist_file); void ami_hotlist_free(const char *hotlist_file); -nserror ami_hotlist_scan(struct gui_window_2 *gwin, int first_item, const char *folder, - bool (*cb_add_item)(struct gui_window_2 *gw, int level, int item, const char *title, nsurl *url, bool folder)); +nserror ami_hotlist_scan(void *userdata, int first_item, const char *folder, + bool (*cb_add_item)(void *userdata, int level, int item, const char *title, nsurl *url, bool folder)); struct treeview_window *hotlist_window; #endif diff --git a/amiga/menu.c b/amiga/menu.c index 6c67b0424..e75e03791 100644 --- a/amiga/menu.c +++ b/amiga/menu.c @@ -535,10 +535,11 @@ void ami_menu_arexx_scan(struct gui_window_2 *gwin) gwin->menu[item].nm_Label = NULL; } -static bool ami_menu_hotlist_add(struct gui_window_2 *gw, int level, int item, const char *title, nsurl *url, bool is_folder) +static bool ami_menu_hotlist_add(void *userdata, int level, int item, const char *title, nsurl *url, bool is_folder) { UBYTE type; char *icon; + struct gui_window_2 *gw = (struct gui_window_2 *)userdata; if(item >= AMI_MENU_HOTLIST_MAX) return false; @@ -571,7 +572,7 @@ static bool ami_menu_hotlist_add(struct gui_window_2 *gw, int level, int item, c static nserror ami_menu_scan(struct tree *tree, struct gui_window_2 *gwin) { - return ami_hotlist_scan(gwin, AMI_MENU_HOTLIST, messages_get("HotlistMenu"), ami_menu_hotlist_add); + return ami_hotlist_scan((void *)gwin, AMI_MENU_HOTLIST, messages_get("HotlistMenu"), ami_menu_hotlist_add); } void ami_menu_update_checked(struct gui_window_2 *gwin) -- cgit v1.2.3