Crafter.CppDOM/interfaces/Crafter.CppDOM-BindingsImport.cppm

153 lines
11 KiB
Text
Raw Normal View History

2025-11-10 20:25:50 +01:00
/*
Crafter.CppDOM
Copyright (C) 2025 Catcrafts
Catcrafts.net
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 3.0 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
export module Crafter.CppDOM:BindingsImport;
import std;
import :EventTypes;
export namespace Crafter::CppDOMBindings {
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("freeJs"))) void FreeJs(std::int32_t ptr);
__attribute__((import_module("env"), import_name("getElementById"))) std::int32_t GetElementById(const char* id, std::int32_t idLenght);
std::int32_t GetElementById(const std::string_view id) {
2025-11-10 20:25:50 +01:00
return GetElementById(id.data(), id.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("setInnerHTML"))) void SetInnerHTML(std::int32_t ptr, const char* html, std::int32_t htmlLenght);
void SetInnerHTML(std::int32_t ptr, const std::string_view html) {
2025-11-12 17:50:58 +01:00
std::cout << "bind" << std::endl;
2025-11-10 20:25:50 +01:00
SetInnerHTML(ptr, html.data(), html.size());
}
// Event handling functions
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addClickListener"))) void AddClickListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeClickListener"))) void RemoveClickListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addMouseOverListener"))) void AddMouseOverListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeMouseOverListener"))) void RemoveMouseOverListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addMouseOutListener"))) void AddMouseOutListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeMouseOutListener"))) void RemoveMouseOutListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addMouseMoveListener"))) void AddMouseMoveListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeMouseMoveListener"))) void RemoveMouseMoveListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addMouseDownListener"))) void AddMouseDownListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeMouseDownListener"))) void RemoveMouseDownListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addMouseUpListener"))) void AddMouseUpListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeMouseUpListener"))) void RemoveMouseUpListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addFocusListener"))) void AddFocusListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeFocusListener"))) void RemoveFocusListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addBlurListener"))) void AddBlurListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeBlurListener"))) void RemoveBlurListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addKeyDownListener"))) void AddKeyDownListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeKeyDownListener"))) void RemoveKeyDownListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addKeyUpListener"))) void AddKeyUpListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeKeyUpListener"))) void RemoveKeyUpListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addKeyPressListener"))) void AddKeyPressListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeKeyPressListener"))) void RemoveKeyPressListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addChangeListener"))) void AddChangeListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeChangeListener"))) void RemoveChangeListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addSubmitListener"))) void AddSubmitListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeSubmitListener"))) void RemoveSubmitListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addInputListener"))) void AddInputListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeInputListener"))) void RemoveInputListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addResizeListener"))) void AddResizeListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeResizeListener"))) void RemoveResizeListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addScrollListener"))) void AddScrollListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeScrollListener"))) void RemoveScrollListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addContextMenuListener"))) void AddContextMenuListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeContextMenuListener"))) void RemoveContextMenuListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDragStartListener"))) void AddDragStartListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDragStartListener"))) void RemoveDragStartListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDragEndListener"))) void AddDragEndListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDragEndListener"))) void RemoveDragEndListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDropListener"))) void AddDropListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDropListener"))) void RemoveDropListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addWheelListener"))) void AddWheelListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeWheelListener"))) void RemoveWheelListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDragOverListener"))) void AddDragOverListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDragOverListener"))) void RemoveDragOverListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDragEnterListener"))) void AddDragEnterListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDragEnterListener"))) void RemoveDragEnterListener(std::int32_t ptr, std::int32_t id);
2025-11-10 20:25:50 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addDragLeaveListener"))) void AddDragLeaveListener(std::int32_t ptr, std::int32_t id);
__attribute__((import_module("env"), import_name("removeDragLeaveListener"))) void RemoveDragLeaveListener(std::int32_t ptr, std::int32_t id);
2025-11-10 22:06:27 +01:00
// Style functions
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("setStyle"))) void SetStyle(std::int32_t ptr, const char* style, std::int32_t styleLength);
void SetStyle(std::int32_t ptr, const std::string_view style) {
2025-11-10 22:06:27 +01:00
SetStyle(ptr, style.data(), style.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("setProperty"))) void SetProperty(std::int32_t ptr, const char* property, std::int32_t propertyLength, const char* value, std::int32_t valueLength);
void SetProperty(std::int32_t ptr, const std::string_view property, const std::string_view value) {
2025-11-10 22:06:27 +01:00
SetProperty(ptr, property.data(), property.size(), value.data(), value.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addClass"))) void AddClass(std::int32_t ptr, const char* className, std::int32_t classNameLength);
void AddClass(std::int32_t ptr, const std::string_view className) {
2025-11-10 22:06:27 +01:00
AddClass(ptr, className.data(), className.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("removeClass"))) void RemoveClass(std::int32_t ptr, const char* className, std::int32_t classNameLength);
void RemoveClass(std::int32_t ptr, const std::string_view className) {
2025-11-10 22:06:27 +01:00
RemoveClass(ptr, className.data(), className.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("toggleClass"))) void ToggleClass(std::int32_t ptr, const char* className, std::int32_t classNameLength);
void ToggleClass(std::int32_t ptr, const std::string_view className) {
2025-11-10 22:06:27 +01:00
ToggleClass(ptr, className.data(), className.size());
}
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("hasClass"))) bool HasClass(std::int32_t ptr, const char* className, std::int32_t classNameLength);
bool HasClass(std::int32_t ptr, const std::string_view className) {
2025-11-10 22:06:27 +01:00
return HasClass(ptr, className.data(), className.size());
}
2025-11-10 22:46:05 +01:00
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("deleteElement"))) void DeleteElement(std::int32_t ptr);
2025-11-12 16:25:12 +01:00
// Value property functions
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("getValue"))) const char* GetValue(std::int32_t ptr);
2025-11-12 20:45:35 +01:00
__attribute__((import_module("env"), import_name("getPathName"))) const char* GetPathName();
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("addPopStateListener"))) void AddPopStateListener(std::int32_t id);
__attribute__((import_module("env"), import_name("removePopStateListener"))) void RemovePopStateListener(std::int32_t id);
2025-11-12 20:45:35 +01:00
__attribute__((import_module("env"), import_name("pushState"))) void PushState(const char* data, std::int32_t dataLength, const char* title, std::int32_t titleLength, const char* url, std::int32_t urlLength);
2025-11-14 18:40:13 +01:00
__attribute__((import_module("env"), import_name("setValue"))) void SetValue(std::int32_t ptr, const char* value, std::int32_t valueLength);
void SetValue(std::int32_t ptr, const std::string_view value) {
2025-11-12 16:25:12 +01:00
SetValue(ptr, value.data(), value.size());
}
2025-11-10 20:25:50 +01:00
}