/* HTML widget usable only in GUI mode */ #include "internal.h" #include "dialog.h" #include PUBLIC FIELD_HTML::FIELD_HTML ( const char *prompt, int _cols, int _rows, const char *content, const char *path) : FIELD (prompt) { rows = _rows; cols = _cols; if (content != NULL) str_cnv2lines (content,lines); file = path; } PUBLIC FIELD_HTML::FIELD_HTML ( const char *prompt, int _cols, int _rows, const SSTRINGS &_lines) : FIELD (prompt) { rows = _rows; cols = _cols; lines = _lines; } PRIVATE void FIELD_HTML::drawtxt(WINDOW*, int, int, int){} PRIVATE MENU_STATUS FIELD_HTML::dokey(WINDOW*, int, FIELD_MSG&, bool&) { return MENU_NULL; } PRIVATE void FIELD_HTML::save(){} PRIVATE void FIELD_HTML::restore(){} PRIVATE void FIELD_HTML::reload(const char*, int){} PRIVATE void FIELD_HTML::html_draw(int){} PRIVATE void FIELD_HTML::xul_draw(int, SSTRINGS&){} PRIVATE MENU_STATUS FIELD_HTML::gui_get(int, const char*, const char*) { return MENU_NULL; } PRIVATE char FIELD_HTML::getidprefix(){return 'h';} PRIVATE int FIELD_HTML::html_validate(int){return 0;} PRIVATE const char* FIELD_HTML::get_registry_value(){ return "";} PRIVATE void FIELD_HTML::set_registry_value(const char*){} PRIVATE void FIELD_HTML::gui_draw(int no, SSTRINGS&) { guisendprompt(); diagui_sendcmd (P_Html,"h%d %d %d\n",no,cols,rows); if (lines.size() > 0){ for (int i=0; iget(); char tmp[1000]; diagui_sendcmd (P_Str,"%s\n",diagui_quote(s,tmp)); } }else if (file.is_filled()){ FILE *fin = fopen (file.get(),"r"); if (fin == NULL){ diagui_sendcmd (P_Str,"\n"); diagui_sendcmd (P_Str,"\"Error 404
\"\n",file.get()); diagui_sendcmd (P_Str,"\"Can't open HTML file %s\"\n",file.get()); diagui_sendcmd (P_Str,"\n"); }else{ char buf[900]; while (fgets_strip(buf,sizeof(buf)-1,fin,NULL)!=NULL){ char tmp[1000]; diagui_sendcmd (P_Str,"%s\n",diagui_quote(buf,tmp)); } fclose (fin); } } diagui_sendcmd (P_End,"\n"); } PUBLIC FIELD_HTML *DIALOG::newf_html ( const char *prompt, const char *content, int cols, int rows) { FIELD_HTML *s = new FIELD_HTML(prompt,cols,rows,content,NULL); add (s); return s; } PUBLIC FIELD_HTML *DIALOG::newf_html ( const char *prompt, int cols, int rows, const SSTRINGS &lines) { FIELD_HTML *s = new FIELD_HTML(prompt,cols,rows,lines); add (s); return s; } PUBLIC FIELD_HTML *DIALOG::newf_file_html ( const char *prompt, int cols, int rows, const char *path) { FIELD_HTML *s = new FIELD_HTML(prompt,cols,rows,NULL,path); add (s); return s; }