1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00

Updated LUA Events (markdown)

Robert Beekman 2016-11-03 13:46:18 +01:00
parent b8e9fbbcf8
commit 285350c83a

@ -1,10 +1,37 @@
Within the LUA environment you can use events to react to certain things, such as the profile being updated or key being pressed.
Within the LUA environment you can use events to react to certain things, such as the profile being updated or a key being pressed.
To use events you need to subscribe to them. You can subscribe to the same event more than once if you want.
The examples below show how subscribing works.
---
### ProfileUpdating
Triggers whenever the profile is being updated. Use this event to process your own changes **before** every frame.
If you want to change the way a layer is drawn, this is a good place to do so.
#### Parameters
```lua
profile profile, profileUpdatingEventArgs eventArgs
```
#### Event Arguments
- **DataModel:** An object containing the current DataModel. *(TODO: DataModel explaination)*
- **Preview:** A boolean indicating whether the draw was done as a preview (for the editor).
#### Example
```lua
-- This function will be called after every profile update, before every profile draw.
function updateHandler(profile, eventArgs)
-- Put your code here
-- The Event Arguments are inside the eventArgs parameter, in a Windows Profile, you could do this:
local currentSong = eventArgs.DataModel.Spotify.SongName;
end
-- Subscribe to the event AFTER defining the function which must be subscribed.
Events.ProfileDrawing.add(updateHandler);
```
---
### ProfileDrawing
Triggers whenever the profile is being drawn
Triggers whenever the profile is being drawn. Use this event to draw your own shapes **after** every frame.
For more info on drawing, see the [Drawing](https://github.com/SpoinkyNL/Artemis/wiki/Drawing) page.
#### Parameters
```lua
profile profile, profileDrawingEventArgs eventArgs
@ -25,4 +52,28 @@ end
-- Subscribe to the event AFTER defining the function which must be subscribed.
Events.ProfileDrawing.add(drawHandler);
```
---
### KeyboardKeyPressed
Triggers whenever the user presses a key.
#### Parameters
```lua
profile profile, keyboard keyboard, keyPressEventArgs eventArgs
```
#### Event Arguments
- **Key:** The key that was pressed, for a list of possible keys, see [MSDN](https://msdn.microsoft.com/en-us/library/system.windows.forms.keys(v=vs.110).aspx).
- **X:** The X-position of the key on the current keyboard
- **Y:** The Y-position of the key on the current keyboard
#### Example
```lua
-- This function will be called after every key press.
function keyHandler(profile, eventArgs)
-- Put your code here
print("You pressed: " .. eventArgs.Key .. " - X: " .. eventArgs.X .. ", Y: " .. eventArgs.Y);
end
-- Subscribe to the event AFTER defining the function which must be subscribed.
Events.KeyboardKeyPressed.add(keyHandler);
```