Ok, I promised Dygear to continue working on this, so this thread should be the central discussion topic for the ButtonManager/Button classes.
Let's start by specifying
The user (i.e. plugin writer) should be able to create new buttons with callbacks like in any other insim application. As prism is a multiuser/plugin system the user does not know which ClickIDs and areas of the screen are not already occupied by other plugins.
-> The main task of the Button system is to coordinate the assignment of ClickIDs to used buttons, so that no two plugins use the same ClickIDs.
Planned/partially implemented features:
- Upon sending a button has to have an unique ClickID
- After deletion the ClickID may be reassigned to another button
- Sending a button to all users should find a single ClickID which is not used for all users or one button for each user must be sent with user specific ClickIDs
-> The ClickIDs have to be on a host/user basis.
--
The current git version in the official repository is not ready to use. i.e. will probably crash after adding 240 buttons etc.
Please provide feedback on the proposed feature list and perhaps you even have more features to propose.
Let's start by specifying
The user (i.e. plugin writer) should be able to create new buttons with callbacks like in any other insim application. As prism is a multiuser/plugin system the user does not know which ClickIDs and areas of the screen are not already occupied by other plugins.
-> The main task of the Button system is to coordinate the assignment of ClickIDs to used buttons, so that no two plugins use the same ClickIDs.
Planned/partially implemented features:
- Assignment of unique ClickIDs to buttons on a user/host basis
- Restricting the ClickIDs in the hosts configuration
- Named buttons. e.g. Deleting buttons by key
- Grouping of buttons. e.g. Defining 5 buttons with the same group key and deleting them all with a single line of code
- Callback functions to buttons for clicks and text input
- Reservation of an area on the screen to place buttons
- Automatic update of an button on "Content" change
- Throttling mechanism like Krammeh's for the above feature
- TTL - automatic deletion after x seconds
- Automatic deletion of buttons on certain events like race restarts
- Upon sending a button has to have an unique ClickID
- After deletion the ClickID may be reassigned to another button
- Sending a button to all users should find a single ClickID which is not used for all users or one button for each user must be sent with user specific ClickIDs
-> The ClickIDs have to be on a host/user basis.
--
The current git version in the official repository is not ready to use. i.e. will probably crash after adding 240 buttons etc.
Please provide feedback on the proposed feature list and perhaps you even have more features to propose.