update README
This commit is contained in:
parent
4cb8cccfcc
commit
528e434c16
1 changed files with 1 additions and 161 deletions
160
README.md
160
README.md
|
|
@ -57,163 +57,3 @@ 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.
|
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)
|
||||||
|
|
||||||
## Enhanced Event Handling Capabilities
|
|
||||||
|
|
||||||
The library now supports comprehensive event handling with rich event data 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
|
|
||||||
- `AddMouseDownListener()` - Handles mouse down events
|
|
||||||
- `AddMouseUpListener()` - Handles mouse up events
|
|
||||||
|
|
||||||
### Focus Events
|
|
||||||
- `AddFocusListener()` - Handles focus events
|
|
||||||
- `AddBlurListener()` - Handles blur events
|
|
||||||
|
|
||||||
### Keyboard Events
|
|
||||||
- `AddKeyDownListener()` - Handles key down events with event data
|
|
||||||
- `AddKeyUpListener()` - Handles key up events with event data
|
|
||||||
- `AddKeyPressListener()` - Handles key press events with event data
|
|
||||||
|
|
||||||
### Form Events
|
|
||||||
- `AddChangeListener()` - Handles change events with event data
|
|
||||||
- `AddSubmitListener()` - Handles form submit events
|
|
||||||
- `AddInputListener()` - Handles input events with event data
|
|
||||||
|
|
||||||
### Window Events
|
|
||||||
- `AddLoadListener()` - Handles page load events
|
|
||||||
- `AddErrorListener()` - Handles error events with event data
|
|
||||||
- `AddResizeListener()` - Handles window resize events with event data
|
|
||||||
- `AddScrollListener()` - Handles scroll events with event data
|
|
||||||
|
|
||||||
### Context Menu Events
|
|
||||||
- `AddContextMenuListener()` - Handles context menu events with event data
|
|
||||||
|
|
||||||
### Drag and Drop Events
|
|
||||||
- `AddDragStartListener()` - Handles drag start events with event data
|
|
||||||
- `AddDragEndListener()` - Handles drag end events with event data
|
|
||||||
- `AddDropListener()` - Handles drop events with event data
|
|
||||||
- `AddDragOverListener()` - Handles drag over events with event data
|
|
||||||
- `AddDragEnterListener()` - Handles drag enter events with event data
|
|
||||||
- `AddDragLeaveListener()` - Handles drag leave events with event data
|
|
||||||
|
|
||||||
### Wheel Events
|
|
||||||
- `AddWheelListener()` - Handles wheel events with event data
|
|
||||||
|
|
||||||
### Example Usage with Event Data
|
|
||||||
|
|
||||||
```cpp
|
|
||||||
import Crafter.CppDOM;
|
|
||||||
using namespace Crafter;
|
|
||||||
|
|
||||||
int main(){
|
|
||||||
HtmlElement button("myButton");
|
|
||||||
HtmlElement input("textInput");
|
|
||||||
|
|
||||||
// Handle click event with position data
|
|
||||||
button.AddClickListener([]() {
|
|
||||||
// Simple click handler without event data
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle keyboard events with rich event data
|
|
||||||
input.AddKeyDownListener([](Crafter::CppDOM::EventTypes::KeyboardEvent event) {
|
|
||||||
// Access key information
|
|
||||||
if (event.key == "Enter") {
|
|
||||||
// Handle Enter key specifically
|
|
||||||
}
|
|
||||||
// Check modifier keys
|
|
||||||
if (event.ctrlKey) {
|
|
||||||
// Handle Ctrl+key combinations
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle input changes with event data
|
|
||||||
input.AddInputListener([](Crafter::CppDOM::EventTypes::InputEvent event) {
|
|
||||||
// Access input data
|
|
||||||
std::string data = event.data;
|
|
||||||
bool isComposing = event.isComposing;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle mouse movements with coordinates
|
|
||||||
button.AddMouseMoveListener([](Crafter::CppDOM::EventTypes::MouseEvent event) {
|
|
||||||
// Access mouse position
|
|
||||||
double x = event.clientX;
|
|
||||||
double y = event.clientY;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle form changes with value
|
|
||||||
input.AddChangeListener([](Crafter::CppDOM::EventTypes::ChangeEvent event) {
|
|
||||||
// Access the new value
|
|
||||||
std::string value = event.value;
|
|
||||||
});
|
|
||||||
|
|
||||||
// Handle window resize with dimensions
|
|
||||||
button.AddResizeListener([](Crafter::CppDOM::EventTypes::ResizeEvent event) {
|
|
||||||
// Access window dimensions
|
|
||||||
unsigned int width = event.width;
|
|
||||||
unsigned int height = event.height;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Event Data Structures
|
|
||||||
|
|
||||||
The library provides specific event data structures for different event types:
|
|
||||||
|
|
||||||
#### KeyboardEvent
|
|
||||||
- `std::string key` - The key value
|
|
||||||
- `std::string code` - The physical key code
|
|
||||||
- `int keyCode` - Legacy key code
|
|
||||||
- `bool altKey` - Whether Alt key was pressed
|
|
||||||
- `bool ctrlKey` - Whether Ctrl key was pressed
|
|
||||||
- `bool shiftKey` - Whether Shift key was pressed
|
|
||||||
- `bool metaKey` - Whether Meta key was pressed
|
|
||||||
|
|
||||||
#### MouseEvent
|
|
||||||
- `double clientX` - X coordinate relative to viewport
|
|
||||||
- `double clientY` - Y coordinate relative to viewport
|
|
||||||
- `double screenX` - X coordinate relative to screen
|
|
||||||
- `double screenY` - Y coordinate relative to screen
|
|
||||||
- `int button` - Which mouse button was pressed
|
|
||||||
- `int buttons` - Which mouse buttons were pressed
|
|
||||||
- `bool altKey` - Whether Alt key was pressed
|
|
||||||
- `bool ctrlKey` - Whether Ctrl key was pressed
|
|
||||||
- `bool shiftKey` - Whether Shift key was pressed
|
|
||||||
- `bool metaKey` - Whether Meta key was pressed
|
|
||||||
|
|
||||||
#### InputEvent
|
|
||||||
- `std::string data` - The input data
|
|
||||||
- `bool isComposing` - Whether input is in composition mode
|
|
||||||
|
|
||||||
#### ChangeEvent
|
|
||||||
- `std::string value` - The new value
|
|
||||||
|
|
||||||
#### ResizeEvent
|
|
||||||
- `unsigned int width` - Window width
|
|
||||||
- `unsigned int height` - Window height
|
|
||||||
|
|
||||||
#### ScrollEvent
|
|
||||||
- `double scrollX` - Horizontal scroll position
|
|
||||||
- `double scrollY` - Vertical scroll position
|
|
||||||
|
|
||||||
#### ErrorEvent
|
|
||||||
- `std::string message` - Error message
|
|
||||||
- `std::string filename` - File where error occurred
|
|
||||||
- `unsigned int lineno` - Line number
|
|
||||||
- `unsigned int colno` - Column number
|
|
||||||
|
|
||||||
#### DragEvent
|
|
||||||
- All MouseEvent properties plus:
|
|
||||||
- `double offsetX` - X offset from drag start
|
|
||||||
- `double offsetY` - Y offset from drag start
|
|
||||||
|
|
||||||
#### WheelEvent
|
|
||||||
- All MouseEvent properties plus:
|
|
||||||
- `double deltaX` - Horizontal scroll amount
|
|
||||||
- `double deltaY` - Vertical scroll amount
|
|
||||||
- `double deltaZ` - Depth scroll amount
|
|
||||||
- `int deltaMode` - Scroll mode
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue