Re: Is there a good Windows or cross-platform Euphoria IDE?
- Posted by ryanj Oct 22, 2015
- 8740 views
The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)
this is not far from what Ryan is doing with Redy, there are well defined files to provide the GUI primitives from any wrapper.
I think Ryan is drawing the components by itself, not relying on wrapped external controls.
The web itself provides the biggest write once run anywhere. We use buttons, labels, write texts in forms, watch video, and nobody complain that the gui dont looks like native. The problem here is the bad looking (and half implemented) controls provided by non native guis. Look at old TCL/TK guis, Swing Gui with Metal look and feel, FLTK and Fox Toolkit. All provide that ugly dated look and very fell customization options. Thats why i said once to Ryan that he should team with a designer to provide the look and feel for Redy. Maybe we, the programmers dont see, but programmer's art (in general) is ugly ;)
I agree there are a lot of "ugly" GUIs out there. Most of the ones you're citing aren't intrinsically ugly though. Most of them were developed in the Win95 era, and took on the look and feel of the time. Many simply haven't been updated since then, because the developers are more focused on other matters.
But people do complain that a GUI doesn't look native. The Metal design was quite stylish. It failed because people wanted a native look and feel, which is the approach that Swing takes today.
I agree that REDY could use a makeover - the scrollbars look like they came from the Motif toolkit. But skinning widgets isn't particularly difficult. The real issue is supporting all the various functionality (mouse, keyboard shortcuts) that can differ from platform to platform.
And a GUI API needs to provide more than just a canvas that renders with pretty widgets. It also needs to provide menus, dialogs, printing, audio, and so on. On Gnome and OS X, window-based menus are going to look out of place. Applications should use the default font of the theme, and present at the correct resolution (point size and DPI).
A pure-Euphoria GUI is certainly possible, but why would you want one? It would never be as feature-complete as the ones your users currently are using (although they might not initially notice). What benefit is there in settling for less?
I felt that it was necessary to create widgets from scratch for several reasons, which is perhaps a discussion for another time. Because i wanted to focus on finishing all the API and functionality, i had to use very basic drawing code for now. It is really easy to draw filled rectangles with lines for highlights and shadows. Besides, i like the simple boxy 3D look. Much of my gui design has been influenced by Geoworks Ensemble from the '90s, which in my opinion was an amazing design (both visual style and behavior).
I do like some of the themes i have seen on linux, with round corners, soft edges, and gradients. I plan to add a theme engine to try different styles, but i need a much better graphics library first.
I do find it quite annoying when programs used half-baked gui libraries that don't behave as expected, like when you hit tab and it doesn't go to the next textbox. My intention is for Redy to follow basic standards, while allowing room to innovate new ideas. I fully intend for Redy to have features that a professional gui is expected to have:
- Obey regional settings and user preferences (font and dpi settings, date/time format, color schemes, unicode, ltr or rtl languages, etc.)
- Look and feel that is close enough to native to not annoy people
- Full keyboard navigation and control (tab focus, alt/ctrl key combos, function keys, etc.)
- Layout that works well on any resolution
- User-customize-able layout for toolbars and panels
- Complete set of tool button icons
- Full multi-monitor support
- Drag-and-drop, clipboard support, and undo