If you want to build advanced GUI for your next scripts with minimal effort, you definitely have to take a look at ReaImGui free REAPER extension.
One of the great feature of ReaScript is that we can draw GUI for it. Natively, we have access to a GUI framework called GFX. It is basically just a canvas window for which we have some basic functions like drawing rectangles, triangles, circles, text, pixels, lines and few extra things. It is enough to go a very long way. Some very advanced scripts and re-usable GUI libraries have been made using just these primitive shapes, including scripts with buttons, sliders, graphs and even waveforms!
Yet, it stay quite complicated when we need interactive GUI elements which hasn’t been made yet, has lot of things has to be considered.
So when two years ago Cfillion came up with a new free REAPER extension to bring fancy GUI framework for ReaScript, with a tons of widgets and customization possibilities accessible out of the box, we knew from the start it could be a new age of ReaScripting.
There are so many things in it that it is hard to list, but basically you have any kind of sliders, tooltips, modal, color palette, trees, table, title bar with menus etc… It literally brings hundreds of functions to the ReaScript API functions list. Yet, it stays quite straightforward on the dev side once you get the basic understanding of how it works.
Dear ImGui C++ library, on which ReaImGui is based, is in very active development, and we are lucky that Cfillion closely monitors this, to always bring us the last version, via Reapack, as it is part of ReaTeam Extension repository. If some Dear ImGui current limitations get passed at some point, like having more UTF-8 characters support, maybe more accessibility features, we can count on Cfillion to update ReaImGui on the way. 👍
Considering how far people can go with only have basic shapes for drawing GUI, you can imagine or far we can go with library which contains a tons of widgets built-in. A new world just opened to ReaScripters, and it only started to be explored! I don’t want to spoil you, but expect fancy ReaImGui scripts showcases on ReaLinks soon and regularly!
If you want to start exploring ReaImGui, the best places is to look at simple ReaImGui scripts code, to look at ReaImGui_Demo.lua script, and on the dedicated forum thread for code snippets and support! I also just released two templates X-Raym_Simple ReaImGui.lua, which has most expected functions of a basic script, and X-Raym_Basic ReaImGui.lua, which is even more straight forward. The ultra minimalist version would be Cfillion_Minimal ReaImGui.lua, but it does miss a lot of things to make a good script.
Happy coding fancy GUIs! 🎨