[SVN] r10567
Allan Odgaard
mailinglist at textmate.org
Tue Sep 16 13:59:23 UTC 2008
• major changes
Using the window command follow this form:
1. Load the nib: "$DIALOG" window --load «path» # returns token
2. Wait for an ‘event’ (see below): "$DIALOG" window --wait «token»
3. Potentially update the model: "$DIALOG" window --update «token» --model «plist»
4. Close the window: "$DIALOG" window --close «token»
There is no longer support for the previous “show” action (which was sort of a --load, --wait, and --close) and no longer support for modal dialogs (see below).
# Event Info
When using --wait a property list is returned which has two keys, one is ‘eventInfo’ and the other is ‘model’. The latter returns the state of the model (previously called parameters, and presumably a mutated version of what got passed in via --model). The former describes the event that caused --wait to return. It is a dictionary with at least one key (‘type’), presently 3 event types are defined: buttonClick, closeWindow, and bindingAction. At least one more is planned (observing a key path for changes).
# No Modal Dialogs
I removed the support for this because it was initially added to make things easier for the (bundle) programmer related to how commands are executed under TextMate 1.x. Running a window in modal mode starts a local event loop. While TextMate runs commands, it is running its own event loop. These things are hairy, and modal dialogs should be chosen because they make sense from a UI perspective, not because of current implementation problems. They _might_ be back, but not until TM 2.0 (so until then, just stay with Dialog 1.x if you really need this).
# Other Options
Some other options are: --prototypes (previously this was called --new-values), --center, and --defaults (previously called --initial-settings or similar).
# Future Plans
Presently --wait returns a full property list, there will likely be a --filter «key path» option to return just that key path.
There will also be an --observe option as discussed on the mailing list (to observe a key path for changes, allowing actions to happen (--wait to break) e.g. when changing a pop-up menu or similar which does not trigger a real action (method call)).
Changed:
U branches/WIP/Tools/Dialog2/Commands/Utilities/TMDNibController.h
U branches/WIP/Tools/Dialog2/Commands/Utilities/TMDNibController.mm
U branches/WIP/Tools/Dialog2/Commands/window.mm
More information about the textmate-dev
mailing list