Old 06-04-2016, 02:02 PM   #1
Lokasenna
Human being with feelings
 
Lokasenna's Avatar
 
Join Date: Sep 2008
Location: Calgary, AB, Canada
Posts: 6,138
Default Lokasenna's GUI library for Lua

I'm currently working on version 3.0, and would love to not be the only one doing it. If you're interested in contributing, have a look at this post for more details and let me know what you might be able to help with.

GUIs. We all need them, and they're a bit of a pain to make in ReaScript. Why not let someone else do the hard work so you can get back to actually making your script do something cool?



Installation:

ReaPack
- Install the Lokasenna's GUI library v2 for Lua package
- In Reaper's action list, run Set Lokasenna_GUI v2 library path.lua

Any scripts requiring this library should now be able to find it.

Manual
- Download the files here (including any subfolders), making sure to keep the same folder structure wherever you put them on your hard drive
- Find and run the install script, Set Lokasenna_GUI v2 library path.lua

Developers
A second package, Lokasenna's GUI library v2 for Lua (developer tools), provides example scripts, templates, and documentation.


Development:
All of my work is done at Lokasenna_GUI on Github. Everything there is to be considered unstable, and probably not suitable for release, but any new feature updates or class additions will show up there. Contributions, bug reports, etc are all welcome.

Enjoy!


Reasons why you should use this sexy beast include:

- It comes with a GUI builder! (Experimental, see the Developer Tools package)


- Very little coding required on your part. A simple GUI might need only a dozen lines of code compared to the hundreds (or thousands, for some of my scripts) you'd have to write if you did it yourself.

- Global font and color settings, so you can change the overall look to suit your fancy.

- Layer visibility management, so you can have multiple sets of controls or dialog boxes come and go as needed.

- Graphics use blitting whenever possible, keeping the CPU usage low without any worry on your part.

- Hooks to run your own functions as part of the GUI's updating loop. You could relabel the options around a knob if you wanted, or have a slider and knob match the selected track's volume/pan... etc.

- Built-in crash reporting, providing more detailed error messages than Reaper does by itself.

- Can be told to exit from your own code, and to run a function when it does. For instance, "save all the current settings, run this action, and quit".

- Numerous helper functions in addition to the GUI code, simplifying a number of things that might be annoying to code on your own every time.

- Modular design, allowing you to use as much, or as little, of my own code as you want. You can also write your own classes if you'd prefer.


Changelog:

July 8/18: The "Lokasenna GUI v2.x.x" watermark now reads its version from ReaPack so I don't have to remember to update it.

June 27/18: First stable release, available on ReaPack. It will only be updated directly with bug fixes - any feature updates and new classes will live on the project repository until I feel like they're safe to move over.

June 6/18: Added support for creating elements with keyed tables rather than a series of function arguments, and an example script demonstrating it.

June 2/18: New class - Window. A number of under-the-hood improvements and new Core functions. Better crash reporting, and handling of Reaper's "restricted permissions" mode.

May 10/18: Fixed some weirdness with how Knob and Slider return their values. This update changes the parameters for both classes and will break any scripts that use them. My apologies.

April 29/18: Added Menubar class.

April 25/18: Added a basic crash reporter, moved the project to my own repository on Github.

April 22/18: Went through all of the classes/scripts and did some major tidying, as well as breaking most of the longer functions into smaller chunks.

April 8/18: Added Listbox and TextEditor classes. There were also a number of bug fixes and efficiency improvements back in... February? I forget.

September 26/17: Bug fix - the Knob class was ignoring min/max values when drawing values around the knob.

August 19/17: Bug fixes related to macOS using decimal values for the mousewheel, and scrolling the mousewheel on a Menubox with no options in it.

July 31/17: A few bug fixes.

June 9/17: First proper release. Classes are modular, tons of new features, code is much more efficient.

June 13/16: Rewrote the library to be copy/paste-able rather than distributing the file separately.

Last edited by Lokasenna; 05-25-2019 at 04:53 PM.
Lokasenna is offline   Reply With Quote
Old 06-04-2016, 06:13 PM   #2
X-Raym
Human being with feelings
 
X-Raym's Avatar
 
Join Date: Apr 2013
Location: France
Posts: 5,965
Default

Thanks for your hard work on this, I'm sure it could be useful to a lot of scripters !!

Cheers !
X-Raym is offline   Reply With Quote
Old 06-04-2016, 10:19 PM   #3
michaeltonight
Human being with feelings
 
Join Date: Jun 2010
Location: Texas
Posts: 263
Default

This is amazing, Lokasenna.
michaeltonight is offline   Reply With Quote
Old 06-08-2016, 08:30 AM   #4
Ozman
Human being with feelings
 
Join Date: Feb 2015
Posts: 552
Default

This looks awesome!
Ozman is offline   Reply With Quote
Old 06-08-2016, 12:56 PM   #5
sfzgeek
Human being with feelings
 
sfzgeek's Avatar
 
Join Date: Feb 2009
Location: Dunedin, New Zealand
Posts: 205
Default

Bravo! Amazing work and excellent reference scripts!
__________________
My rawk band: The Hidden Venture.
sfzgeek is offline   Reply With Quote
Old 06-10-2016, 04:40 AM   #6
Brado231
Human being with feelings
 
Join Date: Sep 2012
Location: Oz
Posts: 195
Default

Great stuff! Thanks!!
Brado231 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 04:37 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, vBulletin Solutions Inc.