-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Define a dialog library #81
Labels
API request
New API within MGTK or DeskTop itself
Comments
inexorabletash
added
the
feature request
User-facing feature additions/enhancements
label
May 3, 2018
This could follow the Control Manager and linked control list style from the IIgs toolbox. |
inexorabletash
added
API request
New API within MGTK or DeskTop itself
and removed
feature request
User-facing feature additions/enhancements
labels
Mar 9, 2019
Started this very incrementally in 7f4be7f |
inexorabletash
added a commit
that referenced
this issue
Jul 12, 2022
This reworks the line edit (text field) control logic from requiring one instance of the code per control to a re-usable toolkit with an MLI-style calling interface that operates on LineEditRecord instances. The code gets somewhat more complicated, but this means that DAs don't need their own copy of the library, and all instances inside DeskTop -- rename (etc) dialog plus two in the file dialog -- can all share the code. The API itself could use some improvement (e.g. Activate should set the blink_ip_flag) but this was intended to be a drop-in replacement at first. Related to #81. No (intentional) behavior changes.
inexorabletash
added a commit
that referenced
this issue
Jul 21, 2022
This replaces lib/buttons.s with a new MLI-style interface, handling tracking the mouse when a click is started and flashing the button when the shortcut key is pressed. It adds a draw command to make drawing a button a single call, and rolls in disable/enable as well (currently used only in the file picker). Like LETK, this means desk accessories don't need their own copy of the library - they can call into DeskTop's copy of the TK. The LETK files are moved from //letk/ into //toolkits/ to keep the top level directory cleaner. MGTK is left alone (for now) since it's pretty important. No (intentional) behavior changes. In the future this could enable: * Contextually disabled buttons in other dialogs. * Drawing the shortcut label right aligned. * A dialog manager to handle click and shortcut key dispatching. * Radio and checkbox buttons could be supported as well. Related to #81.
inexorabletash
added a commit
that referenced
this issue
Nov 10, 2022
Replace bespoke rendering/measuring of radio buttons with support in BTK. Conceptually part of #81
inexorabletash
added a commit
that referenced
this issue
Nov 10, 2022
Replace bespoke rendering/measuring of checkboxes with support in BTK. Also, make radio/checkbox support optional for modules like Disk Copy and Selector that don't need them, to keep binary size down. Conceptually part of #81
Just an update here:
To provide a full dialog library we'd need something like:
Doable, but not urgent as doing it by hand isn't that bad. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
There are hints of this in the common dialogs in DeskTop (used for file copy/delete and selector entry add/edit), but it could be formalized.
Introduce a declarative format like the following:
A handful of calls would be needed:
... and a custom event loop that provides for clicks on buttons (reporting ids) and keys (Enter, Escape, Apple-x).
The text was updated successfully, but these errors were encountered: