diff --git a/modules/web/SCsub b/modules/web/SCsub index 6a9f2b8b6..4f1cfc314 100644 --- a/modules/web/SCsub +++ b/modules/web/SCsub @@ -29,6 +29,8 @@ sources = [ "html/html_parser.cpp", "html/bbcode_parser.cpp", "html/form_validator.cpp", + "html/html_template.cpp", + "html/html_template_data.cpp", "html/libs/hoedown/autolink.c", "html/libs/hoedown/buffer.c", diff --git a/modules/web/html/html_template.cpp b/modules/web/html/html_template.cpp new file mode 100644 index 000000000..2e89cfa39 --- /dev/null +++ b/modules/web/html/html_template.cpp @@ -0,0 +1,48 @@ +/*************************************************************************/ +/* html_template.cpp */ +/*************************************************************************/ +/* 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 "html_template.h" + +#include "core/math/math_funcs.h" + +HTMLTemplate::HTMLTemplate() { +} + +HTMLTemplate::~HTMLTemplate() { +} + +void HTMLTemplate::_bind_methods() { + //ClassDB::bind_method(D_METHOD("get_item_count"), &HTMLTemplate::get_item_count); + //ClassDB::bind_method(D_METHOD("set_item_count", "val"), &HTMLTemplate::set_item_count); + //ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count"); + + //BIND_VMETHOD(MethodInfo("_render_indexed", PropertyInfo(Variant::OBJECT, "target", PROPERTY_HINT_RESOURCE_TYPE, "HTMLTemplate"), PropertyInfo(Variant::INT, "page_index"))); +} diff --git a/modules/web/html/html_template.h b/modules/web/html/html_template.h new file mode 100644 index 000000000..6a3c94a21 --- /dev/null +++ b/modules/web/html/html_template.h @@ -0,0 +1,48 @@ +#ifndef HTML_TEMPLATE_H +#define HTML_TEMPLATE_H + +/*************************************************************************/ +/* html_template.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/resource.h" + +class HTMLTemplate : public Resource { + GDCLASS(HTMLTemplate, Resource); + +public: + HTMLTemplate(); + ~HTMLTemplate(); + +protected: + static void _bind_methods(); +}; + +#endif diff --git a/modules/web/html/html_template_data.cpp b/modules/web/html/html_template_data.cpp new file mode 100644 index 000000000..eb2762a1c --- /dev/null +++ b/modules/web/html/html_template_data.cpp @@ -0,0 +1,46 @@ +/*************************************************************************/ +/* html_template_data.cpp */ +/*************************************************************************/ +/* 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 "html_template_data.h" + +HTMLTemplateData::HTMLTemplateData() { +} + +HTMLTemplateData::~HTMLTemplateData() { +} + +void HTMLTemplateData::_bind_methods() { + //ClassDB::bind_method(D_METHOD("get_item_count"), &HTMLTemplateData::get_item_count); + //ClassDB::bind_method(D_METHOD("set_item_count", "val"), &HTMLTemplateData::set_item_count); + //ADD_PROPERTY(PropertyInfo(Variant::INT, "item_count"), "set_item_count", "get_item_count"); + + //BIND_VMETHOD(MethodInfo("_render_indexed", PropertyInfo(Variant::OBJECT, "target", PROPERTY_HINT_RESOURCE_TYPE, "HTMLTemplateData"), PropertyInfo(Variant::INT, "page_index"))); +} diff --git a/modules/web/html/html_template_data.h b/modules/web/html/html_template_data.h new file mode 100644 index 000000000..307dc15bf --- /dev/null +++ b/modules/web/html/html_template_data.h @@ -0,0 +1,48 @@ +#ifndef HTML_TEMPLATE_DATA_H +#define HTML_TEMPLATE_DATA_H + +/*************************************************************************/ +/* html_template_data.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/resource.h" + +class HTMLTemplateData : public Resource { + GDCLASS(HTMLTemplateData, Resource); + +public: + HTMLTemplateData(); + ~HTMLTemplateData(); + +protected: + static void _bind_methods(); +}; + +#endif diff --git a/modules/web/register_types.cpp b/modules/web/register_types.cpp index 5a2396feb..b011fc5a4 100644 --- a/modules/web/register_types.cpp +++ b/modules/web/register_types.cpp @@ -41,6 +41,8 @@ #include "html/html_parser.h" #include "html/markdown_renderer.h" #include "html/paginator.h" +#include "html/html_template.h" +#include "html/html_template_data.h" #include "http/csrf_token.h" #include "http/http_server_enums.h" @@ -85,6 +87,9 @@ void register_web_types(ModuleRegistrationLevel p_level) { if (p_level == MODULE_REGISTRATION_LEVEL_SCENE) { ClassDB::register_class<_HTMLBuilder>(); ClassDB::register_class<_HTMLTag>(); + + ClassDB::register_class(); + ClassDB::register_class(); ClassDB::register_class();