summaryrefslogtreecommitdiff
path: root/frontends/amiga/login.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-31 00:30:42 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2016-12-31 00:30:42 +0000
commitd9c8d1c70cac756d47586e2abf2dfbb9a1d96b59 (patch)
tree0482e6008675feb12a08169e5641d5639c4512da /frontends/amiga/login.c
parentd90e82d3f1c0ed0cdd665899c754b655f661976d (diff)
downloadnetsurf-d9c8d1c70cac756d47586e2abf2dfbb9a1d96b59.tar.gz
netsurf-d9c8d1c70cac756d47586e2abf2dfbb9a1d96b59.tar.bz2
Update 401 login window to use event callbacks
Diffstat (limited to 'frontends/amiga/login.c')
-rwxr-xr-xfrontends/amiga/login.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/frontends/amiga/login.c b/frontends/amiga/login.c
index 805e25ca9..85324b0f1 100755
--- a/frontends/amiga/login.c
+++ b/frontends/amiga/login.c
@@ -50,7 +50,7 @@
#include "amiga/login.h"
struct gui_login_window {
- struct nsObject *node;
+ struct ami_generic_window w;
struct Window *win;
Object *objects[GID_LAST];
nserror (*cb)(bool proceed, void *pw);
@@ -62,6 +62,14 @@ struct gui_login_window {
char pwd[256];
};
+static BOOL ami_401login_event(void *w);
+
+static const struct ami_win_event_table ami_login_table = {
+ ami_401login_event,
+ NULL, /* we don't explicitly close the login window at all.
+ @todo check if this prevents us from quitting NetSurf */
+};
+
void gui_401login_open(nsurl *url, const char *realm,
nserror (*cb)(bool proceed, void *pw), void *cbpw)
{
@@ -168,9 +176,7 @@ void gui_401login_open(nsurl *url, const char *realm,
EndWindow;
lw->win = (struct Window *)RA_OpenWindow(lw->objects[OID_MAIN]);
-
- lw->node = AddObject(window_list,AMINS_LOGINWINDOW);
- lw->node->objstruct = lw;
+ ami_gui_win_list_add(lw, AMINS_LOGINWINDOW, &ami_login_table);
}
static void ami_401login_close(struct gui_login_window *lw)
@@ -182,7 +188,7 @@ static void ami_401login_close(struct gui_login_window *lw)
DisposeObject(lw->objects[OID_MAIN]);
lwc_string_unref(lw->host);
nsurl_unref(lw->url);
- DelObject(lw->node);
+ ami_gui_win_list_remove(lw);
}
static void ami_401login_login(struct gui_login_window *lw)
@@ -206,9 +212,10 @@ static void ami_401login_login(struct gui_login_window *lw)
ami_401login_close(lw);
}
-BOOL ami_401login_event(struct gui_login_window *lw)
+static BOOL ami_401login_event(void *w)
{
/* return TRUE if window destroyed */
+ struct gui_login_window *lw = (struct gui_login_window *)w;
ULONG result;
uint16 code;