1. Almost Redy
- Posted by ryanj Nov 20, 2014
- 4018 views
Introducing...
Very soon, probably by the end of this year, I will release an exciting new graphical development platform for Euphoria, called Redy. The official website is http://redy-project.org/
I chose this name based on the definition of "ready" I found at http://www.thefreedictionary.com/ready.
- Middle English spelling: redy
- "redy" is not a commonly used word, so it doesn't conflict with names of other things
- The logo is based on the "READY." prompt of old computers, reminiscing the simplicity and efficiency that computers once had
- I believe the definition of this word represents the goals I am aiming for in creating a GUI in the Euphoria language: prepared or available for service, action, or progress; prompt in apprehending or reacting; available for immediate use; in a state of completion or preparedness; prompt or rapid; poised for use or action; completely prepared or in fit condition for action or use; quick in action, performance, manifestation, etc.
It is designed to be easy enough for beginners to learn GUI programming, yet powerful enough for experienced programmers to make really good quality applications. After testing and using this platform for about six months at work, I believe it is stable and efficient enough to be taken seriously as an alternative to the other euphoria GUI libraries.
My intention is not to compete with or put down the other libraries (win32lib, euGTK, wxEuphoria, etc.), which I know people have put a lot of hard work into, and I am glad that the Euphoria community has several options to choose from. What I am offering is another option: a truly native Euphoria graphical application environment. Because Redy is written in 100% Euphoria source code, it was possible to design it from the ground up to take full advantage of Euphoria's unique features.
Redy provides:
- A standard set of cross-platform libraries (redylib) that is a layer above the Euphoria standard library, the most important one being a complete GUI library
- An Integrated Development Environment application (RedyCode)
- Documentation including a RedyLib Reference Manual and tutorials to help beginners get starting with GUI programming in Euphoria and Redy
- A collection of demo applications to give clear examples of how to use Redy
- A clearly-defined set of standards for developing graphical user interface applications
- An organized folder structure to make it easy to install and manage multiple versions of the redylib and applications
Currently, the unreleased version I have been using has the following abilities:
- Graphics, window event processing, clipboard functions, and common file open/save as dialog wrappers are very reliable and perform flawlessly.
- Most widget classes are almost complete. Although a few features are missing, the widget system works very well.
- Automatic widget arranging is not perfect, but works very well if you use it correctly. Automatic dialog window sizing and centering on the screen works well.
- A "canvas" widget class is able to make interactive graphics.
- Enhancements such as: custom mouse cursors (I-beam over text boxes, arrows, "not-allowed symbol", busy, etc.) window and widget focus highlights, blinking cursor in textboxes, etc. all work well.
- Menus, dropdown lists, and context menus are completely custom-drawn, and work well.
- Scrollbars work very well, and can be controlled by the mouse scroll wheel. Scrollbars automatically appear and disappear as needed, and correctly adjust the size of the scrollers to correspond with the ratio of visible to not-visible content. They also have a unique and subtle feature: they let you very quickly jump in page increments to a location on the scroller.
- Message boxes are custom-drawn. They intelligently size and center the message box window, display an icon and word-wrapped text, and can display whatever buttons are needed. They are very easy to use in your application.
- A standard About dialog is provided, which shows the Redy logo, info about the application, and info about what version of Redy and Euphoria is currently being used, as well as some Euphoria environment info.
- A debugging console is provided to help you troubleshoot widget or event processing bugs or watch variable values.
- The GUI has no problem being controlled by multiple tasks at the same time. It is easy to do things like update a progress bar while copying files while allowing the rest of the application to run.
Before I release Redy, I need to finish up a few things:
- Finish writing the first version of RedyCode, which will just be a very basic text editor to start with.
- Write an an advanced text editor library that has line numbers, word wrapping, and basic syntax highlighting (to use in the RedyCode IDE)
- Get wordwrap working in text boxes
- Make some improvements in the Canvas widget class
- Enable tabbing focus between widgets
- Enable Function keys and Alt and Ctrl keyboard combinations for shortcuts to clipboard functions and menu items
- Fix bugs in the formatted hypertext library
- Make a few small changes to some of the widget classes
- Write a few more demo programs
- Write documentation
- Update the website
There are some screenshots at http://redy-project.org/images/screenshots/ if you are interested in taking a look. I am curious, what are your thoughts on this? Who is interested in GUI programming in Euphoria? Any questions about Redy?
2. Re: Almost Redy
- Posted by _tom (admin) Nov 20, 2014
- 3936 views
Can we assume that Redy is for Windows only?
I could help with documentation. Maybe some editing, formatting to Creole style (so the main docs and your docs look the same), or at least encouragement.
_tom
3. Re: Almost Redy
- Posted by ryanj Nov 20, 2014
- 3920 views
Can we assume that Redy is for Windows only?
I could help with documentation. Maybe some editing, formatting to Creole style (so the main docs and your docs look the same), or at least encouragement.
_tom
Right now, it only runs on Windows, because I wanted to focus on completing everything before porting it to multiple platforms. Only a small subset of win32api is needed. I wrote a wrapper library from scratch to only access functions that create and manipulate windows, receive windows events (including keyboard/mouse input), draw graphics to windows or bitmaps (using device contexts and GDI functions), and a few other things like clipboard functions, interfacing with the common open/save as dialog, and opening (executing) files through the windows shell. Absolutely no windows controls are used! In the future, I plan to add some other things like multi-monitor support, access to the system tray, etc.
After the first release, I hope some Linux experts would help with a Linux port. I am not sure what the best solution is. Directly acessing the x-windows api, or a subset of gtk, or some other library perhaps? It basically just needs to create windows and draw graphics on directly on them. No widget tool kits will be needed.
It would be helpful to get creole documentation integrated into the source. I was having a hard time getting eudoc working the last time I tried it.
4. Re: Almost Redy
- Posted by ryanj Nov 20, 2014
- 3946 views
I should also mention, all graphics are drawn by passing a sequence of drawing commands to a draw procedure. In other words, there is a layer above the low-level GDI stuff. Drawing in Redy is easy because you don't have to think about device contexts or pointers or C structures. All widget classes libraries draw widgets using this method, and your application can draw to a Canvas widget using this method, as well. In the future, I plan to also write a printer library that uses it. Theoretically, this should make it much easier to port to other platforms.
5. Re: Almost Redy
- Posted by Icy_Viking Nov 20, 2014
- 3908 views
This looks like a very interesting project. I think this could greatly help expand Euphoria and make it more powerful, as well as hopefully getting some new or bringing more interest into Euphoria.
6. Re: Almost Redy
- Posted by _tom (admin) Nov 20, 2014
- 3894 views
You can contact me at openeuphony@gmail.com or here at the forum.
If I can get a copy of your source I will try create a eudoc/creole version of your documentation.
_tom
7. Re: Almost Redy
- Posted by ryanj Nov 20, 2014
- 3892 views
You can contact me at openeuphony@gmail.com or here at the forum.
If I can get a copy of your source I will try create a eudoc/creole version of your documentation.
_tom
Thanks. I am starting to work on documentation right now. As far as the source code, I think I will as soon as I get a rough draft manual written. By the final release, I would like to integrated the documentation into the source just like the stdlib.
8. Re: Almost Redy
- Posted by ryanj Nov 20, 2014
- 3941 views
I forgot to mention: I have an IRC channel for discussing the Redy project: #redy on irc.freenode.net
9. Re: Almost Redy
- Posted by GreenEuphorian Nov 21, 2014
- 3821 views
Ryan, your GUI project is very interesting indeed, especially because it is natively written in Euphoria.
Would you mind writing short comparisons between Redy and the other GUIs available to Euphoria programmers? A few lines explaining how each GUI compares to Redy would really be really useful for those who have to decide which GUI to use. Make sure to point out how Redy is better, in whatever respect, than those GUIs.
Thanks
10. Re: Almost Redy
- Posted by GreenEuphorian Nov 21, 2014
- 3823 views
Ryan, your GUI project is very interesting indeed, especially because it is natively written in Euphoria.
Would you mind writing short comparisons between Redy and the other GUIs available to Euphoria programmers? A few lines explaining how each GUI compares to Redy would really be useful for those who have to decide which GUI to use. Make sure to point out how Redy is better, in whatever respect, than those GUIs.
Thanks
11. Re: Almost Redy
- Posted by ryanj Nov 23, 2014
- 3767 views
Ryan, your GUI project is very interesting indeed, especially because it is natively written in Euphoria.
Would you mind writing short comparisons between Redy and the other GUIs available to Euphoria programmers? A few lines explaining how each GUI compares to Redy would really be useful for those who have to decide which GUI to use. Make sure to point out how Redy is better, in whatever respect, than those GUIs.
Thanks
Thanks. I will include lots of demos and examples in the documentation. For now, I created a RedyTutorial wiki page. I would be happy to discuss any points made in the tutorial.
12. Re: Almost Redy
- Posted by GreenEuphorian Nov 23, 2014
- 3721 views
Thanks for the tutorial, Ryan.
A quick question: does Redy support right-to-left languages and Bi-directionality?
Thanks
13. Re: Almost Redy
- Posted by ryanj Nov 23, 2014
- 3739 views
Thanks for the tutorial, Ryan.
A quick question: does Redy support right-to-left languages and Bi-directionality?
Thanks
No. It doesn't support Unicode, either. But, that could be added in a future version.
14. Re: Almost Redy
- Posted by elias_maluko Nov 25, 2014
- 3627 views
Ryan two things you should consider:
- add a opengl canvas widget.
- work with a designer to define a nice gui look and feel (we, programmers, sometimes overlook this. Dont repeat the tcl/tk mistake).
15. "Redy" for the Future
- Posted by han45 Nov 25, 2014
- 3568 views
Hello ryanj ,
Two days ago i have downloaded the FluidAE3.
Normally to start learning and GUI programming.
The Fluid Tutorial isnt online anymore.
OK. No Problem. I will be patient for your wonderful Redy Tool.
Thanks for that good work.
For me as beginner ; the Gui Code from your tool is very clear structurized.
Greetings from german city
Hans
16. Re: Almost Redy
- Posted by ryanj Nov 25, 2014
- 3616 views
Ryan two things you should consider:
- add a opengl canvas widget.
- work with a designer to define a nice gui look and feel (we, programmers, sometimes overlook this. Dont repeat the tcl/tk mistake).
Good ideas. I have considered an opengl canvas - that would be very cool, but it will have to wait for a future release.
I also plan to have themes in a future release, so people can experiment with different looks. For now, I am putting alot of effort into making a very clean and useful hard-coded theme that matches the color scheme of Windows. By the way, my design is influenced by the old GeoWorks environment that ran on DOS. I used it in high school on a 386 laptop, and it was so much better than Windows 3.1! I loved that software! I better stop there before i start going into a rant about how superior software lost to Microsoft's schemes.
17. Re: "Redy" for the Future
- Posted by ryanj Nov 25, 2014
- 3606 views
Hello ryanj ,
Two days ago i have downloaded the FluidAE3.
Normally to start learning and GUI programming.
The Fluid Tutorial isnt online anymore.
Oops, sorry, han45. I redirected the main page to the new website. You should still be able to access the manual at http://fluidae.com/manual.php. Keep in mind, there will many changes from what the old manual says.
18. Re: Almost Redy
- Posted by ryanj Nov 25, 2014
- 3550 views
I just confirmed that Redy runs reasonably well on a slow Mini-ITX computer: VIA 1 GHz CPU, 512MB RAM, Windows XP Home. It takes 4-6 seconds to start up a program with euiw. CPU stays idle most of the time and pretty low when moving the mouse or typing. The widgets respond smoothly and redraw very quickly when hovering over them. Resizing windows is pretty slow when there are lots of widgets, but not horrible.
I am curious if anyone knows how long it takes other GUI libraries to start up on a similar computer.
19. Re: Almost Redy
- Posted by Spock Nov 25, 2014
- 3538 views
I just confirmed that Redy runs reasonably well on a slow Mini-ITX computer: VIA 1 GHz CPU, 512MB RAM, Windows XP Home. It takes 4-6 seconds to start up a program with euiw. CPU stays idle most of the time and pretty low when moving the mouse or typing. The widgets respond smoothly and redraw very quickly when hovering over them. Resizing windows is pretty slow when there are lots of widgets, but not horrible.
I am curious if anyone knows how long it takes other GUI libraries to start up on a similar computer.
Which version of euiw are you using? They're not all the same for a comparison like this. And how large is the typical program you might use for the test? I think a good baseline program to test the GUI startup time would be a plain window.
Also, IIRC you're using find() to convert "id" to id. For large numbers of controls this might (or might not) be a source of sluggishness.
Spock
20. Re: Almost Redy
- Posted by ssallen Nov 26, 2014
- 3458 views
I LOVED GeoWorks Ensemble! It came preinstalled on the the first computer my family bought sometime in the early 90s. Geoworks was awesome! I actually tracked down a version from some abandonware site a few years back and installed it on a spare computer to play with.
Also, I second the OpenGL canvas. OpenGL is the only programming I really do anymore outside of work.
21. Re: Almost Redy
- Posted by ryanj Nov 26, 2014
- 3440 views
I LOVED GeoWorks Ensemble! It came preinstalled on the the first computer my family bought sometime in the early 90s. Geoworks was awesome! I actually tracked down a version from some abandonware site a few years back and installed it on a spare computer to play with.
REALLY!? I'm so glad to hear someone else has used it! I am so mad at myself that I lost my original disks, because I wanted to install it on a computer again. (I had the New Deal Office '97 version, which was after GeoWorks 2.0 Ensemble, I believe) After that, it had another release (New Deal Office 3.x I think) and then got bought by another company and was renamed "Breadbox Ensemble" for hand-held computers or something, and then just sort of fizzled out...
Also, I second the OpenGL canvas. OpenGL is the only programming I really do anymore outside of work.
Do you use OpenGL in Euphoria? It has been several years since I played with OpenGL. After I finish Redy 1.0, one of the things I would like to do is try OpenGL again and figure out how to get it working in Redy.
22. Re: Almost Redy
- Posted by GreenEuphorian Nov 26, 2014
- 3408 views
Thanks for the tutorial, Ryan.
A quick question: does Redy support right-to-left languages and Bi-directionality?
Thanks
No. It doesn't support Unicode, either. But, that could be added in a future version.
If you need a beta tester for RTL support, count me in.
23. Re: Almost Redy
- Posted by ryanj Nov 28, 2014
- 3331 views
Thanks for the tutorial, Ryan.
A quick question: does Redy support right-to-left languages and Bi-directionality?
Thanks
No. It doesn't support Unicode, either. But, that could be added in a future version.
If you need a beta tester for RTL support, count me in.
Thanks.
By the way: I updated the homepage: http://redy-project.org/.
24. Re: Almost Redy
- Posted by ryanj Nov 30, 2014
- 3230 views
I expect to release Redy 1.0.a1 (development release) by Christmas. I uploaded a rough draft (very rough draft) of the Redy Manual if anyone wants to see it. It is at http://redy-project.org/manual.php.
25. Re: Almost Redy
- Posted by ssallen Dec 03, 2014
- 3124 views
Yep, I wrote a small game engine with it a while back, its in the EU archives. Then I learned Android programming and now I am pretty much Java all day long. I miss Euphoria a lot and plan on picking up work on my game engine when I get some time (after I finish my android games). I wrote a EU SDL based prog the other day to pack my texture atlas's and wept a bit on the inside when I realized how nice EU is. It is soooo much more fun to program in. If only there were a Euphoria port for Android... (I beg the Eu Gods!)
26. Re: Almost Redy
- Posted by evanmars Dec 04, 2014
- 3102 views
For more OpenGL examples, you could check out nehe.gamedev.net under "Legacy Tutorials" on the right hand side. I made a Euphoria port for most of the Lessons years ago. Probably not the best coding style...
27. Re: Almost Redy
- Posted by petelomax Dec 04, 2014
- 3064 views
If only there were a Euphoria port for Android... (I beg the Eu Gods!)
That's on my radar too. There is an eu2java knocking about somewhere, that I have not even tried. Another option, way off in the future, is elf-arm binaries. I have started a program to pull a sample elf-arm that I found somewhere apart, and produce a disassembly listing, but have not really got too far yet. Of course after pulling one apart the next step would be to construct one. As I understand it, KitKat introduced elf-arm as an option and Lollipop and later will automatically convert all java bytecode to elf-arm before running it. Apparently it is possible, to avoid having to root the device, to write a Java stub to launch an elf-arm, to get round the Android APK restrictions. Does the latter make any sense, is it something you could perhaps do?
Pete
28. Re: Almost Redy
- Posted by jimcbrown (admin) Dec 04, 2014
- 3001 views
If only there were a Euphoria port for Android... (I beg the Eu Gods!)
It works if rooted. I've successfully done this before. We even have eubins for that: http://openeuphoria.org/eubins/linux/4.1.0/arm-32-bit/
Apparently it is possible, to avoid having to root the device, to write a Java stub to launch an elf-arm, to get round the Android APK restrictions.
Neat! I'd love to see something like this... if we had this and a little terminal glue, then the existing eubins could be used directly on Android without the need to root anything!
29. Re: Almost Redy
- Posted by ssallen Dec 04, 2014
- 3024 views
For more OpenGL examples, you could check out nehe.gamedev.net under "Legacy Tutorials" on the right hand side. I made a Euphoria port for most of the Lessons years ago. Probably not the best coding style...
I second this. I used Evan's Euphoria tutorial conversions when I was learning OpenGL. Very handy!