all events

This commit is contained in:
Jorijn van der Graaf 2025-11-09 22:56:29 +01:00
commit a9667d38fd
7 changed files with 1061 additions and 5 deletions

View file

@ -56,4 +56,68 @@ int main(){
Save and close, then run ``crafter-build build executable && caddy file-server --listen :8080 --root bin/executable``. if you have caddy installed, if not use your favorite static file server instead. Now you can open the browser at ``http://localhost:8080`` and ``Hello World!`` will appear in the browser.
This sample can also be viewed in the [HelloElement example](https://forgejo.catcrafts.net/Catcrafts/Crafter.CppDOM/src/branch/master/examples)
This sample can also be viewed in the [HelloElement example](https://forgejo.catcrafts.net/Catcrafts/Crafter.CppDOM/src/branch/master/examples)
## New Event Handling Capabilities
The library now supports comprehensive event handling for modern web applications:
### Mouse Events
- `AddClickListener()` - Handles click events
- `AddMouseOverListener()` - Handles mouse over events
- `AddMouseOutListener()` - Handles mouse out events
- `AddMouseMoveListener()` - Handles mouse move events
### Focus Events
- `AddFocusListener()` - Handles focus events
- `AddBlurListener()` - Handles blur events
### Keyboard Events
- `AddKeyDownListener()` - Handles key down events
- `AddKeyUpListener()` - Handles key up events
- `AddKeyPressListener()` - Handles key press events
### Form Events
- `AddChangeListener()` - Handles change events
- `AddSubmitListener()` - Handles form submit events
- `AddInputListener()` - Handles input events
### Window Events
- `AddLoadListener()` - Handles page load events
- `AddErrorListener()` - Handles error events
- `AddResizeListener()` - Handles window resize events
- `AddScrollListener()` - Handles scroll events
### Context Menu Events
- `AddContextMenuListener()` - Handles context menu events
### Drag and Drop Events
- `AddDragStartListener()` - Handles drag start events
- `AddDragEndListener()` - Handles drag end events
- `AddDropListener()` - Handles drop events
Example usage:
```cpp
import Crafter.CppDOM;
using namespace Crafter::CppDOM;
int main(){
HtmlElement button("myButton");
HtmlElement input("textInput");
// Handle click event
button.AddClickListener([]() {
// Handle button click
});
// Handle keyboard events
input.AddKeyDownListener([]() {
// Handle key press
});
// Handle input changes
input.AddInputListener([]() {
// Handle input changes
});
}
```