Events in CactusGUI are triggered for events that Pygame recieves in your game loop. CatusGUI's event listener sends the event to a CactusGUI element based on coordinates and focus. An element's events can be bound to a function with one parameter (which stores the name of the element - helpful if you want a function that can be called by more than one element).
gui['elementNameHere'].style( use_click=True )
def myNewFunction( element_name ):
# some code here
pass
def myOtherNewFunction( element_name ):
# some code here
pass
gui['elementNameHere'].events( onClick=myNewFunction, onRightClick=myOtherNewFunction )
Event | Requires | Comments |
---|---|---|
onHover | use_hover | |
onUnhover | use_hover | |
onMousedown | use_click | |
onRightMousedown | use_click | |
onAnyMousedown | use_click | |
onMouseup | use_click | |
onRightMouseup | use_click | |
onAnyMouseup | use_click | |
onClick | use_click | |
onRightClick | use_click | |
onAnyClick | use_click | |
onCenterMouseup | use_scroll | |
onCenterMousedown | use_scroll | |
onScrollUp | use_scroll | |
onScrollDown | use_scroll | |
onEnter | Used by states | |
onExit | Used by states | |
onActivate | use_click & use_active | |
onDeactivate | use_click | |
onFocus | use_click & use_focus | |
onBlur | use_click | |
onKeydown | None |
Works with any focused element or the current state Does not currectly work on Textboxes or Keybinds (right now they use the event to make themselves work) |
Element | Default Listeners | Comments |
---|---|---|
Blank Element | None | |
State | None | |
Background | None | |
Rectangle | None | |
Image | None | |
Label | None | |
Textbox | use_click, use_focus |
Problem: Avoid using onKeydown (Element currently uses it itself) |
Button | use_click, use_active, use_hover | |
Keybind | use_click, use_focus |
Problem: Avoid using onKeydown (Element currently uses it itself) |
Point | None |