#ifndef HTML_BUILDER_BIND_H
#define HTML_BUILDER_BIND_H
/*************************************************************************/
/* html_builder_bind.h */
/*************************************************************************/
/* This file is part of: */
/* PANDEMONIUM ENGINE */
/* https://github.com/Relintai/pandemonium_engine */
/*************************************************************************/
/* Copyright (c) 2022-present Péter Magyar. */
/* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */
/* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */
/* */
/* Permission is hereby granted, free of charge, to any person obtaining */
/* a copy of this software and associated documentation files (the */
/* "Software"), to deal in the Software without restriction, including */
/* without limitation the rights to use, copy, modify, merge, publish, */
/* distribute, sublicense, and/or sell copies of the Software, and to */
/* permit persons to whom the Software is furnished to do so, subject to */
/* the following conditions: */
/* */
/* The above copyright notice and this permission notice shall be */
/* included in all copies or substantial portions of the Software. */
/* */
/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
/*************************************************************************/
#include "core/object/object.h"
#include "core/string/ustring.h"
#include "core/object/reference.h"
class _HTMLBuilder;
class WebServerRequest;
class _HTMLTag : public Reference {
GDCLASS(_HTMLTag, Reference)
public:
bool get_simple() const;
void set_simple(const bool val);
String get_result();
void set_result(const String &str);
Ref<_HTMLTag> str(const String &str);
Ref<_HTMLTag> style(const String &val);
Ref<_HTMLTag> href(const String &val);
Ref<_HTMLTag> cls(const String &val);
Ref<_HTMLTag> clsse(const String &val); //se -> skip empty
Ref<_HTMLTag> id(const String &val);
Ref<_HTMLTag> name(const String &val);
Ref<_HTMLTag> content(const String &val);
Ref<_HTMLTag> value(const String &val);
Ref<_HTMLTag> accept(const String &val);
Ref<_HTMLTag> src(const String &val);
Ref<_HTMLTag> alt(const String &val);
Ref<_HTMLTag> inputmode(const String &val);
Ref<_HTMLTag> list(const String &val);
Ref<_HTMLTag> rows(const String &val);
Ref<_HTMLTag> cols(const String &val);
Ref<_HTMLTag> enctype(const String &val);
Ref<_HTMLTag> enctype_multipart_form_data();
Ref<_HTMLTag> autocomplete(const String &val);
Ref<_HTMLTag> autocomplete_off();
Ref<_HTMLTag> autocomplete_on();
Ref<_HTMLTag> autocomplete_name();
Ref<_HTMLTag> autocomplete_name_honorific_prefix();
Ref<_HTMLTag> autocomplete_name_given_name();
Ref<_HTMLTag> autocomplete_name_additional_name();
Ref<_HTMLTag> autocomplete_name_family_name();
Ref<_HTMLTag> autocomplete_name_honorific_suffix();
Ref<_HTMLTag> autocomplete_name_nickname();
Ref<_HTMLTag> autocomplete_email();
Ref<_HTMLTag> autocomplete_username();
Ref<_HTMLTag> autocomplete_new_password();
Ref<_HTMLTag> autocomplete_current_password();
Ref<_HTMLTag> autocomplete_one_time_code();
Ref<_HTMLTag> autocomplete_organization_title();
Ref<_HTMLTag> autocomplete_organization();
Ref<_HTMLTag> autocomplete_street_address();
Ref<_HTMLTag> autocomplete_address_line1();
Ref<_HTMLTag> autocomplete_address_line2();
Ref<_HTMLTag> autocomplete_address_line3();
Ref<_HTMLTag> autocomplete_address_level_1();
Ref<_HTMLTag> autocomplete_address_level_2();
Ref<_HTMLTag> autocomplete_address_level_3();
Ref<_HTMLTag> autocomplete_address_level_4();
Ref<_HTMLTag> autocomplete_country();
Ref<_HTMLTag> autocomplete_country_name();
Ref<_HTMLTag> autocomplete_postal_code();
Ref<_HTMLTag> autocomplete_cc_name();
Ref<_HTMLTag> autocomplete_cc_given_name();
Ref<_HTMLTag> autocomplete_cc_additional_name();
Ref<_HTMLTag> autocomplete_cc_family_name();
Ref<_HTMLTag> autocomplete_cc_number();
Ref<_HTMLTag> autocomplete_cc_exp();
Ref<_HTMLTag> autocomplete_cc_exp_month();
Ref<_HTMLTag> autocomplete_cc_exp_year();
Ref<_HTMLTag> autocomplete_cc_csc();
Ref<_HTMLTag> autocomplete_cc_type();
Ref<_HTMLTag> autocomplete_transaction_currency();
Ref<_HTMLTag> autocomplete_transaction_amount();
Ref<_HTMLTag> autocomplete_language();
Ref<_HTMLTag> autocomplete_bday();
Ref<_HTMLTag> autocomplete_bday_day();
Ref<_HTMLTag> autocomplete_bday_month();
Ref<_HTMLTag> autocomplete_bday_year();
Ref<_HTMLTag> autocomplete_sex();
Ref<_HTMLTag> autocomplete_tel();
Ref<_HTMLTag> autocomplete_tel_country_code();
Ref<_HTMLTag> autocomplete_tel_national();
Ref<_HTMLTag> autocomplete_tel_area_code();
Ref<_HTMLTag> autocomplete_tel_local();
Ref<_HTMLTag> autocomplete_tel_extension();
Ref<_HTMLTag> autocomplete_impp();
Ref<_HTMLTag> autocomplete_url();
Ref<_HTMLTag> autocomplete_photo();
Ref<_HTMLTag> onclick(const String &val);
Ref<_HTMLTag> checked(const bool val = true);
Ref<_HTMLTag> selected(const bool val = true);
Ref<_HTMLTag> autofocus(const bool val = true);
Ref<_HTMLTag> disabled(const bool val = true);
Ref<_HTMLTag> multiple(const bool val = true);
Ref<_HTMLTag> required(const bool val = true);
Ref<_HTMLTag> spellcheck(const bool val);
Ref<_HTMLTag> max(const String &val);
Ref<_HTMLTag> min(const String &val);
Ref<_HTMLTag> step(const String &val);
Ref<_HTMLTag> step_any();
Ref<_HTMLTag> minlength(const int val);
Ref<_HTMLTag> minlengths(const String &val);
Ref<_HTMLTag> maxlength(const int val);
Ref<_HTMLTag> maxlengths(const String &val);
Ref<_HTMLTag> size(const int val);
Ref<_HTMLTag> sizes(const String &val);
Ref<_HTMLTag> width(const int val);
Ref<_HTMLTag> widths(const String &val);
Ref<_HTMLTag> height(const int val);
Ref<_HTMLTag> heights(const String &val);
Ref<_HTMLTag> pattern(const String &val);
Ref<_HTMLTag> method(const String &val);
Ref<_HTMLTag> method_get();
Ref<_HTMLTag> method_post();
Ref<_HTMLTag> action(const String &val);
Ref<_HTMLTag> type(const String &val);
Ref<_HTMLTag> placeholder(const String &val);
Ref<_HTMLTag> fora(const String &val); // for attrib -> for is reserved keyword
Ref<_HTMLTag> rel(const String &val);
Ref<_HTMLTag> rel_stylesheet();
Ref<_HTMLTag> rel_alternate();
Ref<_HTMLTag> rel_author();
Ref<_HTMLTag> rel_bookmark();
Ref<_HTMLTag> rel_external();
Ref<_HTMLTag> rel_help();
Ref<_HTMLTag> rel_license();
Ref<_HTMLTag> rel_next();
Ref<_HTMLTag> rel_nofollow();
Ref<_HTMLTag> rel_noopener();
Ref<_HTMLTag> rel_noreferrer();
Ref<_HTMLTag> rel_prev();
Ref<_HTMLTag> rel_search();
Ref<_HTMLTag> rel_tag();
Ref<_HTMLTag> charset(const String &val);
Ref<_HTMLTag> charset_utf_8();
Ref<_HTMLTag> itbutton();
Ref<_HTMLTag> itcheckbox();
Ref<_HTMLTag> itcolor();
Ref<_HTMLTag> itdate();
Ref<_HTMLTag> itdatetime_local();
Ref<_HTMLTag> itemail();
Ref<_HTMLTag> itfile();
Ref<_HTMLTag> ithidden();
Ref<_HTMLTag> itimage();
Ref<_HTMLTag> itmonth();
Ref<_HTMLTag> itnumber();
Ref<_HTMLTag> itpassword();
Ref<_HTMLTag> itradio();
Ref<_HTMLTag> itrange();
Ref<_HTMLTag> itreset();
Ref<_HTMLTag> itsearch();
Ref<_HTMLTag> itsubmit();
Ref<_HTMLTag> ittel();
Ref<_HTMLTag> ittext();
Ref<_HTMLTag> ittime();
Ref<_HTMLTag> iturl();
Ref<_HTMLTag> itweek();
Ref<_HTMLTag> inputmode_none();
Ref<_HTMLTag> inputmode_text();
Ref<_HTMLTag> inputmode_decimal();
Ref<_HTMLTag> inputmode_numeric();
Ref<_HTMLTag> inputmode_tel();
Ref<_HTMLTag> inputmode_search();
Ref<_HTMLTag> inputmode_email();
Ref<_HTMLTag> inputmode_url();
Ref<_HTMLTag> attrib(const String &attr, const String &val);
Ref<_HTMLTag> start(const String &p_new_tag, const bool p_simple = false);
Ref<_HTMLTag> reset();
Ref<_HTMLTag> close();
Ref<_HTMLBuilder> f();
bool has_data();
_HTMLTag();
_HTMLBuilder *owner;
bool simple;
String result;
protected:
static void _bind_methods();
};
class _HTMLBuilder : public Reference {
GDCLASS(_HTMLBuilder, Reference)
public:
String get_result();
void set_result(const String &str);
Ref<_HTMLBuilder> comment(const String &val);
Ref<_HTMLTag> doctype(const String &val = "");
Ref<_HTMLTag> a(const String &href = "", const String &cls = "", const String &id = "");
Ref<_HTMLBuilder> fa(const String &href, const String &body, const String &cls = "", const String &id = "");
Ref<_HTMLTag> abbr();
Ref<_HTMLTag> acronym(); // Not supported in HTML5.
Ref<_HTMLTag> address();
Ref<_HTMLTag> applet(); // Not supported in HTML5.
Ref<_HTMLTag> area();
Ref<_HTMLTag> article();
Ref<_HTMLTag> aside();
Ref<_HTMLTag> audio();
Ref<_HTMLTag> b();
Ref<_HTMLTag> basefont(); // Not supported in HTML5.
Ref<_HTMLTag> bdi();
Ref<_HTMLTag> bdo();
Ref<_HTMLTag> big(); // Not supported in HTML5.
Ref<_HTMLTag> blockquote();
Ref<_HTMLTag> body();
Ref<_HTMLTag> br();
Ref<_HTMLTag> button();
Ref<_HTMLTag> canvas();
Ref<_HTMLTag> caption();
Ref<_HTMLTag> center(); // Not supported in HTML5.
Ref<_HTMLTag> cite();
Ref<_HTMLTag> code();
Ref<_HTMLTag> col();
Ref<_HTMLTag> colgroup();
Ref<_HTMLTag> data();
Ref<_HTMLTag> datalist();
Ref<_HTMLTag> dd();
Ref<_HTMLTag> del();
Ref<_HTMLTag> details();
Ref<_HTMLTag> dfn();
Ref<_HTMLTag> dialog();
Ref<_HTMLTag> dir(); // Not supported in HTML5.
Ref<_HTMLTag> div(const String &cls = "", const String &id = "");
Ref<_HTMLBuilder> fdiv(const String &body, const String &cls = "", const String &id = "");
Ref<_HTMLTag> dl();
Ref<_HTMLTag> dt();
Ref<_HTMLTag> em();
Ref<_HTMLTag> embed();
Ref<_HTMLTag> fieldset();
Ref<_HTMLTag> figcaption();
Ref<_HTMLTag> figure();
Ref<_HTMLTag> font(); // Not supported in HTML5.
Ref<_HTMLTag> footer();
Ref<_HTMLTag> form();
Ref<_HTMLTag> frame(); // Not supported in HTML5.
Ref<_HTMLTag> frameset(); // Not supported in HTML5.
Ref<_HTMLTag> h1();
Ref<_HTMLTag> h2();
Ref<_HTMLTag> h3();
Ref<_HTMLTag> h4();
Ref<_HTMLTag> h5();
Ref<_HTMLTag> h6();
Ref<_HTMLTag> head();
Ref<_HTMLTag> header();
Ref<_HTMLTag> hr();
Ref<_HTMLTag> html();
Ref<_HTMLTag> i();
Ref<_HTMLTag> iframe();
Ref<_HTMLTag> img();
Ref<_HTMLTag> input();
Ref<_HTMLTag> ins();
Ref<_HTMLTag> kbd();
Ref<_HTMLTag> label();
Ref<_HTMLTag> legend();
Ref<_HTMLTag> li();
Ref<_HTMLTag> link();
Ref<_HTMLTag> main();
Ref<_HTMLTag> map();
Ref<_HTMLTag> mark();
Ref<_HTMLTag> meta();
Ref<_HTMLTag> meter();
Ref<_HTMLTag> nav();
Ref<_HTMLTag> noframes(); // Not supported in HTML5.
Ref<_HTMLTag> noscript();
Ref<_HTMLTag> objectt(); //