EliteClubSessions 21 Posted May 19, 2018 Share Posted May 19, 2018 This is an object-oriented library, the main priority of which is the maximum possible performance. It works on the double buffering concept, it has a lot of widgets, animations and custom event handlers support. All programs from the screenshots above are implemented with its help. If you want to develop a fast and beautiful program in just a few lines of code without butthurt - then this library is made for you. Detailed illustrated documentation, installation methods and tons of practical examples are available at: https://github.com/IgorTimofeev/GUI HerrCrazi, MeltingBrain, selli69 and 1 other 1 3 Quote Link to post Share on other sites
Molinko 43 Posted May 20, 2018 Share Posted May 20, 2018 This is lovely! I've been waiting for you to release this standalone.. Even wrote my own port of it a while ago. Cool! Quote Link to post Share on other sites
BrisingrAerowing 12 Posted July 7, 2018 Share Posted July 7, 2018 This looks interesting. I'm going to check it out for use in my military-style bunker base. Quote Link to post Share on other sites
freacknate09 0 Posted July 9, 2018 Share Posted July 9, 2018 Where can I download the programs shown? I am gonna get the libraries, but I want those programs also Quote Link to post Share on other sites
EliteClubSessions 21 Posted September 14, 2018 Author Share Posted September 14, 2018 On 7/9/2018 at 4:23 AM, freacknate09 said: Where can I download the programs shown? I am gonna get the libraries, but I want those programs also It's an application market from MineOS (can be installed via pastebin run 0nm5b1ju) It's an IDE that comes with MineOS Settings application for changing wallpapers, screensavers, formatting disks, etc. Also comes with MineOS Draconic reactor control application, source code was lost on server a year ago Raycasting demo application, it's available to download in App Market Weather forecasting is also available to download in same place Something like Steam trade market, i'm too lazy to share it cause of binding to specific php scripts 3D rendering application. Also can be downloaded from App Market Quote Link to post Share on other sites
selli69 0 Posted May 28, 2019 Share Posted May 28, 2019 Hi Igor! Thanks for this great library and the documentation. Great Job! I built a GUI for a complex mobfarm, everything is working as expected. But I have some questions: 1. How do I integrate my program logic to the application? I mean the part of the programm, that typically resides in a "while true do ... end" loop? By the moment the application(start) is called I have no more control. Is there a callback of the application which is called cyclically? 2. How do I update texts/labels during runtime? 3. How do I realize multiline texts/labels? "\n" or"\r" control characters do not work. 4. I found an error in the documentation on GitHub: In the properties table of the GUI.text section, the properties width and height are mentioned, but they are not part of the initialisation. Maybe my LUA knowledge is too low and the answers are obvious. In this case: I am sorry! gl&hf! Quote Link to post Share on other sites
Molinko 43 Posted May 28, 2019 Share Posted May 28, 2019 Typically the GUI and your application are separated because of the reactive nature of the GUI library. Most of your code for reacting to GUI events will go into a GUIObjects event handler. -- # ... myButton.eventHandler = function(app, instance, event) if event == "touch" then -- # react to touch event. Alter state, etc... end end I don't have the time to test this my self but you could try using OpenOS threads to give control back to your main script. -- # ... more stuff up here local thread = require 'thread' -- # Gui logic n stuff... -- # This will now run whenever the main script yields i.e event.pulls, os.sleeps, etc.. local guiProc = thread.create(application.start, application) -- # Continue below with main program runtime logic. -- # Be aware that the GUI will only be able to process stuff when this main script yields as Lua is single threaded Multiline text is handled by GUI.textBox rather than GUI.text as far as I can tell. Hope this helps you over the initial hump. Happy to help more if you still need it selli69 1 Quote Link to post Share on other sites
selli69 0 Posted May 28, 2019 Share Posted May 28, 2019 Hey Molinko! Thanks for the fast reply. Your suggestion to use threads was the right hint over the bump! I understand your concerns about the reactiveness of the GUI, but my programm logic is very small. The level of a fluid tank is read every second and a rs-output is set/unset by it's value with a hysteresis. Also the fluid level is written to the GUI. Nothing special, most of the time my logic idles. Edit: Ah, one thing: When I update GUI objects in my programm logic, I have to call application:draw(true) to actualize the values visible. Thanks again! gl&hf! Quote Link to post Share on other sites