Updated with the new 'ek' kernel API
diff --git a/contiki/apps/www.c b/contiki/apps/www.c
index 31a1308..3c71102 100644
--- a/contiki/apps/www.c
+++ b/contiki/apps/www.c
@@ -29,14 +29,14 @@
  *
  * This file is part of the Contiki desktop environment
  *
- * $Id: www.c,v 1.23 2004/06/06 06:03:03 adamdunkels Exp $
+ * $Id: www.c,v 1.24 2004/07/04 11:35:08 adamdunkels Exp $
  *
  */
 
 #include <string.h>
 
+#include "ek.h"
 #include "ctk.h"
-#include "dispatcher.h"
 #include "webclient.h"
 #include "htmlparser.h"
 #include "http-strings.h"
@@ -48,6 +48,8 @@
 
 #include "uiplib.h"
 
+#include "tcpip.h"
+
 #include "loader.h"
 
 #include "www-conf.h"
@@ -179,10 +181,16 @@
 };
 
 
-static DISPATCHER_SIGHANDLER(www_sighandler, s, data);
+EK_EVENTHANDLER(www_eventhandler, ev, data);
+EK_PROCESS(p, "Web browser", EK_PRIO_NORMAL,
+	   www_eventhandler, NULL, NULL);
+static ek_id_t id = EK_ID_NONE;
+
+/*static DISPATCHER_SIGHANDLER(www_sighandler, s, data);
 static struct dispatcher_proc p =
   {DISPATCHER_PROC("Web browser", NULL, www_sighandler, webclient_appcall)};
-static ek_id_t id;
+  static ek_id_t id;*/
+
 
 
 static void formsubmit(struct formattribs *attribs);
@@ -202,6 +210,7 @@
   CTK_WIDGET_ADD(&mainwindow, &urlentry);
   CTK_WIDGET_ADD(&mainwindow, &sep1);
   CTK_WIDGET_ADD(&mainwindow, &webpagelabel);
+  CTK_WIDGET_SET_FLAG(&webpagelabel, CTK_WIDGET_FLAG_MONOSPACE);
   CTK_WIDGET_ADD(&mainwindow, &sep2);
   CTK_WIDGET_ADD(&mainwindow, &statustext);
 
@@ -230,36 +239,10 @@
   arg_free(arg);
   
   if(id == EK_ID_NONE) {
-    id = dispatcher_start(&p);
+    /*    id = dispatcher_start(&p);*/
+    id = ek_start(&p);
     
-    /* Create the main window. */
-    memset(webpage, 0, sizeof(webpage));
-    ctk_window_new(&mainwindow, WWW_CONF_WEBPAGE_WIDTH, 
-                   WWW_CONF_WEBPAGE_HEIGHT+5, "Web browser");
-    make_window();
-#ifdef WWW_CONF_HOMEPAGE
-    strncpy(editurl, WWW_CONF_HOMEPAGE, sizeof(editurl));
-#endif /* WWW_CONF_HOMEPAGE */    
-    CTK_WIDGET_FOCUS(&mainwindow, &urlentry);
-
-    /* Create download dialog.*/
-    ctk_dialog_new(&wgetdialog, 38, 7);
-    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel1);
-    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel2);
-    CTK_WIDGET_ADD(&wgetdialog, &wgetnobutton);
-    CTK_WIDGET_ADD(&wgetdialog, &wgetyesbutton);
-    
-    /* Attach as a listener to a number of signals ("Button activate",
-       "Hyperlink activate" and "Hyperlink hover", and the resolver's
-       signal. */
-    dispatcher_listen(ctk_signal_window_close);
-    dispatcher_listen(ctk_signal_widget_activate);
-    dispatcher_listen(ctk_signal_hyperlink_activate);
-    dispatcher_listen(ctk_signal_hyperlink_hover);
-    dispatcher_listen(resolv_signal_found);
-
   }
-  ctk_window_open(&mainwindow);
 }
 /*-----------------------------------------------------------------------------------*/
 static void
@@ -445,7 +428,7 @@
 quit(void)
 {
   ctk_window_close(&mainwindow);
-  dispatcher_exit(&p);
+  ek_exit();
   id = EK_ID_NONE;
   LOADER_UNLOAD();
 }
@@ -455,18 +438,43 @@
  * The program's signal dispatcher function. Is called by the ek
  * dispatcher whenever a signal arrives.
  */
-static
-DISPATCHER_SIGHANDLER(www_sighandler, s, data)
+/*static
+  DISPATCHER_SIGHANDLER(www_sighandler, s, data)*/
+EK_EVENTHANDLER(www_eventhandler, ev, data)
 {
   static struct ctk_widget *w;
   static unsigned char i;
   static char *argptr;
   
-  DISPATCHER_SIGHANDLER_ARGS(s, data);
+  /*  DISPATCHER_SIGHANDLER_ARGS(s, data);*/
+  EK_EVENTHANDLER_ARGS(ev, data);
 
   
   w = (struct ctk_widget *)data;
-  if(s == ctk_signal_widget_activate) {
+
+  if(ev == tcpip_event) {
+    webclient_appcall(data);
+  } else if(ev == EK_EVENT_INIT) {
+    /* Create the main window. */
+    memset(webpage, 0, sizeof(webpage));
+    ctk_window_new(&mainwindow, WWW_CONF_WEBPAGE_WIDTH, 
+                   WWW_CONF_WEBPAGE_HEIGHT+5, "Web browser");
+    make_window();
+#ifdef WWW_CONF_HOMEPAGE
+    strncpy(editurl, WWW_CONF_HOMEPAGE, sizeof(editurl));
+#endif /* WWW_CONF_HOMEPAGE */    
+    CTK_WIDGET_FOCUS(&mainwindow, &urlentry);
+
+    /* Create download dialog.*/
+    ctk_dialog_new(&wgetdialog, 38, 7);
+    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel1);
+    CTK_WIDGET_ADD(&wgetdialog, &wgetlabel2);
+    CTK_WIDGET_ADD(&wgetdialog, &wgetnobutton);
+    CTK_WIDGET_ADD(&wgetdialog, &wgetyesbutton);
+
+    ctk_window_open(&mainwindow);
+    
+  } else if(ev == ctk_signal_widget_activate) {
     if(w == (struct ctk_widget *)&backbutton) {
       scrolly = 0;
       run = 1;
@@ -525,13 +533,13 @@
       }
 #endif /* WWW_CONF_FORMS */
     }
-  } else if(s == ctk_signal_hyperlink_activate) {
+  } else if(ev == ctk_signal_hyperlink_activate) {
     log_back();
     open_link(w->widget.hyperlink.url);
     CTK_WIDGET_FOCUS(&mainwindow, &stopbutton);
     /*    ctk_window_open(&mainwindow);*/
     run = 1;
-  } else if(s == ctk_signal_hyperlink_hover) {
+  } else if(ev == ctk_signal_hyperlink_hover) {
     if(CTK_WIDGET_TYPE((struct ctk_widget *)data) ==
        CTK_WIDGET_HYPERLINK) {
       strncpy(statustexturl, w->widget.hyperlink.url,
@@ -539,7 +547,7 @@
       petsciiconv_topetscii(statustexturl, sizeof(statustexturl));
       show_statustext(statustexturl);
     }
-  } else if(s == resolv_signal_found) {
+  } else if(ev == resolv_event_found) {
     /* Either found a hostname, or not. */
     if((char *)data != NULL &&
        resolv_lookup((char *)data) != NULL) {
@@ -547,8 +555,8 @@
     } else {
       show_statustext("Host not found.");
     }
-  } else if(s == ctk_signal_window_close ||
-	    s == dispatcher_signal_quit) {
+  } else if(ev == ctk_signal_window_close ||
+	    ev == EK_EVENT_REQUEST_EXIT) {
     quit();
   }
 }
@@ -939,6 +947,7 @@
 	((struct formattribs *)dataptr)->inputvalue = webpageptr;
 	break;	
       }
+      CTK_WIDGET_SET_FLAG(lptr, CTK_WIDGET_FLAG_MONOSPACE);
       CTK_WIDGET_ADD(&mainwindow, lptr);
 
       ++pagewidgetptr;