hyprlock/src/helpers
Maximilian Seidler e3bd47e177
widgets: add onclick feature (#736)
* widget: add click handling and point containment methods to IWidget interface

* core: add onClick method to handle mouse click events

- renderer: move getOrCreateWidgetsFor method declaration to public section

* core: update mouse event handling to track mouse location and button clicks

* widget: add onclick command handling and point containment to CLabel

- config: add onclick special config value to label

* assets: add label configuration for keyboard layout switching

* config: add onclick configuration for label widgets

 - add CLICKABLE macro for onclick configuration
 - replace direct onclick assignment with CLICKABLE macro

* core: fix cursor shape initialization and pointer handling

 - ensure pointer is available before setting cursor shape
 - initialize cursor shape device if not already done

* core: add hover handling and cursor shape updates

 - implement onHover method to manage widget hover states
 - update cursor shape based on hover status
 - ensure all outputs are redrawn after state changes

* widgets: add hover state management and bounding box calculations

 - add setHover and isHovered methods to manage hover state
 - implement containsPoint method for hit testing
 - override getBoundingBox in CLabel for accurate positioning
 - add onHover method in CLabel to change cursor shape

* core: add hover handling in pointer motion

 - invoke onHover method with current mouse location

* widgets: add hover handling and bounding box for password input field

 - add getBoundingBox method to calculate the widget's bounding box
 - implement onHover method to update cursor shape on hover

* widgets: update hover behavior for label widget

 - modify cursor shape setting to only apply when onclickCommand is not empty

* core: optimize hover handling and rendering for lock surfaces

 - Improve hover state tracking for widgets
 - reduce unnecessary redraw calls by tracking hover changes
 - remove redundant renderAllOutputs() call

* widgets: add onclick and hover to shape and image

* core: trigger hover and onclick only for the currently focused surface

* core: handle fractionalScale in onclick and hover

* core: don't trigger onclick or hover when hide_cursor is set

* misc: remove braces

* core: run onclick commands asnychronously

---------

Co-authored-by: Memoraike <memoraike@gmail.com>
2025-05-05 15:11:24 +00:00
..
AnimatedVariable.hpp core: introduce animation manager and animation config (#631) 2025-01-06 12:34:21 +00:00
Color.cpp core: clang-tidy and comp fixes (#679) 2025-02-06 11:36:08 +00:00
Color.hpp core: introduce animation manager and animation config (#631) 2025-01-06 12:34:21 +00:00
Log.hpp misc: move to std::print (#592) 2024-12-22 15:09:20 +00:00
Math.cpp misc: use Vector2D, Box and Mat3x3 from hyprutils (#515) 2024-10-13 13:04:32 +01:00
Math.hpp misc: use Vector2D, Box and Mat3x3 from hyprutils (#515) 2024-10-13 13:04:32 +01:00
MiscFunctions.cpp widgets: add onclick feature (#736) 2025-05-05 15:11:24 +00:00
MiscFunctions.hpp widgets: add onclick feature (#736) 2025-05-05 15:11:24 +00:00