From 340de209c7b1f9e120a1b6a41b79f2dec17b3383 Mon Sep 17 00:00:00 2001 From: oliverschmidt Date: Sat, 13 Feb 2010 10:39:57 +0000 Subject: [PATCH] Allow to build the webbrowser without history support - by setting WWW_CONF_HISTORY_SIZE to 0. --- apps/webbrowser/www.c | 48 ++++++++++++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/apps/webbrowser/www.c b/apps/webbrowser/www.c index 5847ff46b..dba8f4610 100644 --- a/apps/webbrowser/www.c +++ b/apps/webbrowser/www.c @@ -29,7 +29,7 @@ * * This file is part of the Contiki desktop environment * - * $Id: www.c,v 1.11 2010/02/01 19:44:30 oliverschmidt Exp $ + * $Id: www.c,v 1.12 2010/02/13 10:39:57 oliverschmidt Exp $ * */ @@ -70,10 +70,15 @@ static char webpage[WWW_CONF_WEBPAGE_WIDTH * /* The CTK widgets for the main window. */ static struct ctk_window mainwindow; +#if WWW_CONF_HISTORY_SIZE > 0 static struct ctk_button backbutton = {CTK_BUTTON(0, 0, 4, "Back")}; static struct ctk_button downbutton = {CTK_BUTTON(10, 0, 4, "Down")}; +#else /* WWW_CONF_HISTORY_SIZE > 0 */ +static struct ctk_button downbutton = + {CTK_BUTTON(0, 0, 4, "Down")}; +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ static struct ctk_button stopbutton = {CTK_BUTTON(WWW_CONF_WEBPAGE_WIDTH - 16, 0, 4, "Stop")}; static struct ctk_button gobutton = @@ -110,10 +115,11 @@ static struct ctk_button wgetyesbutton = {CTK_BUTTON(11, 5, 24, "Close browser & download")}; #endif /* WWW_CONF_WITH_WGET */ +#if WWW_CONF_HISTORY_SIZE > 0 /* The char arrays that hold the history of visited URLs. */ static char history[WWW_CONF_HISTORY_SIZE][WWW_CONF_MAX_URLLEN]; static char history_last; - +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ /* The CTK widget definitions for the hyperlinks and the char arrays that hold the link URLs. */ @@ -177,7 +183,9 @@ static void formsubmit(struct formattribs *attribs); static void make_window(void) { +#if WWW_CONF_HISTORY_SIZE > 0 CTK_WIDGET_ADD(&mainwindow, &backbutton); +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ CTK_WIDGET_ADD(&mainwindow, &downbutton); CTK_WIDGET_ADD(&mainwindow, &stopbutton); CTK_WIDGET_ADD(&mainwindow, &gobutton); @@ -374,6 +382,7 @@ open_link(char *link) start_loading(); } /*-----------------------------------------------------------------------------------*/ +#if WWW_CONF_HISTORY_SIZE > 0 /* log_back(): * * Copies the current URL from the url variable and into the log for @@ -390,6 +399,7 @@ log_back(void) } } } +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ /*-----------------------------------------------------------------------------------*/ static void quit(void) @@ -443,10 +453,21 @@ PROCESS_THREAD(www_process, ev, data) if(ev == tcpip_event) { webclient_appcall(data); } else if(ev == ctk_signal_widget_activate) { - if(w == (struct ctk_widget *)&backbutton) { + if(w == (struct ctk_widget *)&gobutton || + w == (struct ctk_widget *)&urlentry) { + start_loading(); + firsty = 0; +#if WWW_CONF_HISTORY_SIZE > 0 + log_back(); +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ + memcpy(url, editurl, WWW_CONF_MAX_URLLEN); + petsciiconv_toascii(url, WWW_CONF_MAX_URLLEN); + open_url(); + CTK_WIDGET_FOCUS(&mainwindow, &gobutton); +#if WWW_CONF_HISTORY_SIZE > 0 + } else if(w == (struct ctk_widget *)&backbutton) { firsty = 0; start_loading(); - --history_last; if(history_last > WWW_CONF_HISTORY_SIZE) { history_last = WWW_CONF_HISTORY_SIZE - 1; @@ -454,21 +475,12 @@ PROCESS_THREAD(www_process, ev, data) memcpy(url, history[(int)history_last], WWW_CONF_MAX_URLLEN); open_url(); CTK_WIDGET_FOCUS(&mainwindow, &backbutton); +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ } else if(w == (struct ctk_widget *)&downbutton) { firsty = pagey + WWW_CONF_WEBPAGE_HEIGHT - 4; start_loading(); open_url(); CTK_WIDGET_FOCUS(&mainwindow, &downbutton); - } else if(w == (struct ctk_widget *)&gobutton || - w == (struct ctk_widget *)&urlentry) { - start_loading(); - firsty = 0; - - log_back(); - memcpy(url, editurl, WWW_CONF_MAX_URLLEN); - petsciiconv_toascii(url, WWW_CONF_MAX_URLLEN); - open_url(); - CTK_WIDGET_FOCUS(&mainwindow, &gobutton); } else if(w == (struct ctk_widget *)&stopbutton) { loading = 0; webclient_close(); @@ -502,7 +514,9 @@ PROCESS_THREAD(www_process, ev, data) } } else if(ev == ctk_signal_hyperlink_activate) { firsty = 0; +#if WWW_CONF_HISTORY_SIZE > 0 log_back(); +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ open_link(w->widget.hyperlink.url); CTK_WIDGET_FOCUS(&mainwindow, &stopbutton); /* ctk_window_open(&mainwindow);*/ @@ -865,8 +879,8 @@ htmlparser_renderstate(unsigned char s) } #endif /* WWW_CONF_RENDERSTATE */ -#if WWW_CONF_FORMS /*-----------------------------------------------------------------------------------*/ +#if WWW_CONF_FORMS void htmlparser_submitbutton(char *text, char *name, char *formname, char *formaction) @@ -960,8 +974,10 @@ formsubmit(struct formattribs *attribs) } --urlptr; *urlptr = 0; +#if WWW_CONF_HISTORY_SIZE > 0 log_back(); +#endif /* WWW_CONF_HISTORY_SIZE > 0 */ open_link(tmpurl); } -/*-----------------------------------------------------------------------------------*/ #endif /* WWW_CONF_FORMS */ +/*-----------------------------------------------------------------------------------*/