all Widget Systems need a total re-write

Reporter: time-killer-games  |  Status: open  |  Last Modified: February 12, 2019, 03:53:07 PM

I'm leaving this issue as a reminder to myself that all the current widget systems need a total re-write. This will later act as a checklist as I very gradually complete each long-term goal listed in the bullet points below.

  • Windows Widgets needs UTF-8 support and needs 100% consistent compatibility with the other Widget Systems and GameMaker (right now it current has several GML and EDL functions left out that the other system do have). We need this to be GM compatible and cross-platform with the other systems, with full Unicode support. Right now, none of this is the case. We even have that redundant get_number function in there when really that function should be renamed and replace get_integer because in GM get_integer takes and returns a double, it does not take or return an int. Some dialogs will run out of space and strings displayed will be truncated because the dialogs do not automatically resize to fit their contents, which is pretty sloppy and lazy, imo.

  • DlgMod needs to be compiled as a static library, instead of a dynamic one. This way, games will compile as one executable with no dependency on an external DLL. This means I need to add support for MinGW and VisualStudio built for both 32-bit and 64-bit static libraries each, and update the Makefile to recognize these things when building. Not necessarily a re-write, but definitely a new build target, (i.e. static instead of dynamic).

  • OsaScript needs to be re-written from being C popen calls launching AppleScript via the osascript terminal command to being written in C++ linked to native Objective-C or Swift. Swift is probably better, but I already know Objective-C and AppleScript and can't be arsed to learn yet another fucked up language invented and/or preferred by Apple. Needs support for a dropdown box to let the user select from multiple File Filters defined from the developer for the file dialogs.

  • Zenity needs to be taken out and replaced with a 100% compatible re-write of the currently broken GTK+ widget system. If you ask me, once the new GTK+ system I will write is done and merged, the current GTK+ and Zenity systems can go in the trash completely as neither will be even remotely necessary anymore. Not only is the current GTK+ system 100% useless and broken, it needs a re-write anyway because even if its current code were to be "fixed" i.e. written to work how the original developer intended, it would still not be GM compatible or include the same GML and EDL function set I would like to see used as our personal cross-platform-ensured widget system standard - which is pretty much consisting of all the functions our current systems support except the Windows Widgets and GTK+ systems.

  • KDialog needs to be re-written and replaced with native KDE code. I'll let that speak for itself. Remain backwards compatible with KDialog but improve the system to fix the things KDialog couldn't do right because of KDialog's various limitations such as not being able to set the default text of a password box.

  • an alternative to KDialog that would be skinnable and written in pure Qt would be interesting, but I'd like to make the other ones a top priority and this one might never happen as a result.

  • <
@RobertBColton with the OsaScript -> Objective-C re-write underway, I'd like you to link to this ticket on discord and ask various users like hugar, fervi, etc. what my next priority out of these bullet points should be.
Please sign in to post comments, or you can view this issue on GitHub.