/*
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;
}