Introduced WWW_CONF_WITH_WGET to make the "URL forwarding" to wget.prg optional (and minor formatting changes).

This commit is contained in:
oliverschmidt 2007-11-30 16:09:40 +00:00
parent 88136ca271
commit e4a568c1fc

View file

@ -29,7 +29,7 @@
* *
* This file is part of the Contiki desktop environment * This file is part of the Contiki desktop environment
* *
* $Id: www.c,v 1.5 2007/11/18 01:24:39 oliverschmidt Exp $ * $Id: www.c,v 1.6 2007/11/30 16:09:40 oliverschmidt Exp $
* *
*/ */
@ -37,15 +37,15 @@
#include "ctk/ctk.h" #include "ctk/ctk.h"
#include "contiki-net.h" #include "contiki-net.h"
#include "lib/petsciiconv.h"
#include "sys/arg.h"
#include "program-handler.h"
#include "webclient.h" #include "webclient.h"
#include "htmlparser.h" #include "htmlparser.h"
#include "http-strings.h" #include "http-strings.h"
#include "sys/arg.h" #include "www.h"
#include "lib/petsciiconv.h"
#include "program-handler.h"
#if 1 #if 1
#define PRINTF(x) #define PRINTF(x)
@ -95,6 +95,7 @@ static struct ctk_separator sep2 =
{CTK_SEPARATOR(0, WWW_CONF_WEBPAGE_HEIGHT + 3, {CTK_SEPARATOR(0, WWW_CONF_WEBPAGE_HEIGHT + 3,
WWW_CONF_WEBPAGE_WIDTH)}; WWW_CONF_WEBPAGE_WIDTH)};
#if WWW_CONF_WITH_WGET
static struct ctk_window wgetdialog; static struct ctk_window wgetdialog;
static struct ctk_label wgetlabel1 = static struct ctk_label wgetlabel1 =
{CTK_LABEL(1, 1, 34, 1, "This web page cannot be displayed.")}; {CTK_LABEL(1, 1, 34, 1, "This web page cannot be displayed.")};
@ -104,6 +105,7 @@ static struct ctk_button wgetnobutton =
{CTK_BUTTON(1, 5, 6, "Cancel")}; {CTK_BUTTON(1, 5, 6, "Cancel")};
static struct ctk_button wgetyesbutton = static struct ctk_button wgetyesbutton =
{CTK_BUTTON(11, 5, 24, "Close browser & download")}; {CTK_BUTTON(11, 5, 24, "Close browser & download")};
#endif /* WWW_CONF_WITH_WGET */
/* The char arrays that hold the history of visited URLs. */ /* The char arrays that hold the history of visited URLs. */
static char history[WWW_CONF_HISTORY_SIZE][WWW_CONF_MAX_URLLEN]; static char history[WWW_CONF_HISTORY_SIZE][WWW_CONF_MAX_URLLEN];
@ -161,6 +163,7 @@ static char receivingmsgs[4][23] = {
PROCESS(www_process, "Web browser"); PROCESS(www_process, "Web browser");
static void formsubmit(struct formattribs *attribs); static void formsubmit(struct formattribs *attribs);
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
/* make_window() /* make_window()
* *
@ -211,6 +214,7 @@ show_url(void)
petsciiconv_topetscii(editurl + 7, WWW_CONF_MAX_URLLEN - 7); petsciiconv_topetscii(editurl + 7, WWW_CONF_MAX_URLLEN - 7);
CTK_WIDGET_REDRAW(&urlentry); CTK_WIDGET_REDRAW(&urlentry);
} }
/*-----------------------------------------------------------------------------------*/
static void static void
start_loading(void) start_loading(void)
{ {
@ -359,7 +363,6 @@ open_link(char *link)
show_url(); show_url();
open_url(); open_url();
start_loading(); start_loading();
} }
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
@ -388,17 +391,18 @@ quit(void)
LOADER_UNLOAD(); LOADER_UNLOAD();
} }
/*-----------------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------------*/
/* www_dispatcher(): /* www_process():
* *
* The program's signal dispatcher function. Is called by the ek * The program's signal dispatcher function. Is called whenever a signal arrives.
* dispatcher whenever a signal arrives.
*/ */
PROCESS_THREAD(www_process, ev, data) PROCESS_THREAD(www_process, ev, data)
{ {
static struct ctk_widget *w; static struct ctk_widget *w;
static unsigned char i; static unsigned char i;
#if WWW_CONF_WITH_WGET
static char *argptr; static char *argptr;
#endif /* WWW_CONF_WITH_WGET */
w = (struct ctk_widget *)data; w = (struct ctk_widget *)data;
PROCESS_BEGIN(); PROCESS_BEGIN();
@ -413,13 +417,15 @@ PROCESS_THREAD(www_process, ev, data)
#endif /* WWW_CONF_HOMEPAGE */ #endif /* WWW_CONF_HOMEPAGE */
CTK_WIDGET_FOCUS(&mainwindow, &urlentry); CTK_WIDGET_FOCUS(&mainwindow, &urlentry);
#if WWW_CONF_WITH_WGET
/* Create download dialog.*/ /* Create download dialog.*/
ctk_dialog_new(&wgetdialog, 38, 7); ctk_dialog_new(&wgetdialog, 38, 7);
CTK_WIDGET_ADD(&wgetdialog, &wgetlabel1); CTK_WIDGET_ADD(&wgetdialog, &wgetlabel1);
CTK_WIDGET_ADD(&wgetdialog, &wgetlabel2); CTK_WIDGET_ADD(&wgetdialog, &wgetlabel2);
CTK_WIDGET_ADD(&wgetdialog, &wgetnobutton); CTK_WIDGET_ADD(&wgetdialog, &wgetnobutton);
CTK_WIDGET_ADD(&wgetdialog, &wgetyesbutton); CTK_WIDGET_ADD(&wgetdialog, &wgetyesbutton);
#endif /* WWW_CONF_WITH_WGET */
ctk_window_open(&mainwindow); ctk_window_open(&mainwindow);
while(1) { while(1) {
@ -458,6 +464,7 @@ PROCESS_THREAD(www_process, ev, data)
} else if(w == (struct ctk_widget *)&stopbutton) { } else if(w == (struct ctk_widget *)&stopbutton) {
loading = 0; loading = 0;
webclient_close(); webclient_close();
#if WWW_CONF_WITH_WGET
} else if(w == (struct ctk_widget *)&wgetnobutton) { } else if(w == (struct ctk_widget *)&wgetnobutton) {
ctk_dialog_close(); ctk_dialog_close();
} else if(w == (struct ctk_widget *)&wgetyesbutton) { } else if(w == (struct ctk_widget *)&wgetyesbutton) {
@ -468,7 +475,7 @@ PROCESS_THREAD(www_process, ev, data)
strncpy(argptr, url, WWW_CONF_MAX_URLLEN); strncpy(argptr, url, WWW_CONF_MAX_URLLEN);
} }
program_handler_load("wget.prg", argptr); program_handler_load("wget.prg", argptr);
#endif /* WWW_CONF_WITH_WGET */
#if WWW_CONF_FORMS #if WWW_CONF_FORMS
} else { } else {
/* Check form buttons */ /* Check form buttons */
@ -616,7 +623,9 @@ webclient_datahandler(char *data, u16_t len)
redraw_window(); redraw_window();
} else { } else {
uip_abort(); uip_abort();
#if WWW_CONF_WITH_WGET
ctk_dialog_open(&wgetdialog); ctk_dialog_open(&wgetdialog);
#endif /* WWW_CONF_WITH_WGET */
} }
} else { } else {
/* Clear remaining parts of page. */ /* Clear remaining parts of page. */
@ -893,7 +902,6 @@ formsubmit(struct formattribs *attribs)
*urlptr = ISO_questionmark; *urlptr = ISO_questionmark;
++urlptr; ++urlptr;
/* Construct an URL by finding all input field forms with the same /* Construct an URL by finding all input field forms with the same
formname as the current submit button, and add the submit button formname as the current submit button, and add the submit button
URL stuff as well. */ URL stuff as well. */