summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2013-09-12 12:15:00 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2013-09-12 12:15:00 +0100
commitccdaabfa38ba7ef958cd9021ecd0f472a339ec50 (patch)
tree851d6a577596af31c37abe4cc7c6226362cf7754
parentfda365fb2d64333b4d60649cb7e778b51c179fc5 (diff)
downloadnetsurf-ccdaabfa38ba7ef958cd9021ecd0f472a339ec50.tar.gz
netsurf-ccdaabfa38ba7ef958cd9021ecd0f472a339ec50.tar.bz2
Pass generic userdata
-rwxr-xr-xamiga/hotlist.c14
-rwxr-xr-xamiga/hotlist.h4
-rw-r--r--amiga/menu.c5
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)