953.3.1 XTEXT
Several fixes/enhancements:
• | TXF_EOT flag was sometimes causing the modified flag to be set even if you didn't enter any text. |
• | Reedit and save modes (opcodes 2 and 5) were not working properly in ATE. |
• | New flag TXF_NODLGCREEP (&h40000000) causes the popup coordinates (i.e., when TXF_POPUP also set) to work relative to the main window rather than relative to the parent window. (Same concept as MBF_DLGNOCREEP with other dialogs.) |
• | Fix a display refresh problem causing background windows to bleed through the XTEXT control when txc'tflag2 was not zero. |
• | Reinstate/adjust meaning of txc'flagmask. The default value is now 0, which means that any bits set in any of the txc'flags# fields are added to the current (or default) settings. This is the most likely and most convenient way to adjust settings, since the defaults are both sensible and difficult to understand. If you set the low word bits, then the corresponding txc'flags# value replaces all of the existing flags. (Thus, if you set txc'flags1 to &h0020 and txc'flagmask to &h0001, then all of the internal default flags corresponding to txc'flags1 will be cleared except for the &h0020 bit. This could have unexpected side effects because some of the default flags that got turned off may have been useful.) The bits in the upper word of txc'flagmask, if set, cause the bits in the corresponding txc'flags# fields to clear the associated flags. This would only be useful if you wanted to disable one of the default flags (which would require that you first figured out what they were!) |
953.3.2 ATE
Fix a conflict between SWAPKEY=~ and ATE responses.
953.3.3 Ashlog
Remove spurious "firing too rapidly" and "key not held" warning messages in the ashlog (unless the GUI or ATE trace flags set).
953.2.1 XTEXT
Several more minor fixes/enhancements. txc'flagmask no longer used. txc'flag# fields now operational (all flags turned off unless corresponding bit set). txc'flag1 &h02000000 now makes page breaks visible when read-only mode on. txc'parentid can now be set to 0 to make XTEXT be a direct child of the main window rather than a dialog. SROW,SCOL,EROW and ECOL can now be set to negative to specify coordinates in pixels (mainly of interest with TXF_POPUP mode). TXF_CTRLC flag changed to TXC_NOCLICKOUT (ignores click strings generating exitcodes below -49. Toolbar help icon now equivalent to F1; open icon equivalent to F2; search icon equivalent to F5 (all may be trapped using txc'fmapapp). Protecting all text no longer sets modified flag.
ASHINC:ASHELL.DEF updated to change TXF_CTRLC to TXF_NOCLICKOUT. XTX1 sample program updated to set the &h02000000 txf'flag2; to demonstrate using absolute pixel coordinates when TXF_POPUP mode selected, and to save/restore all the XTEXT parameter settings to that you don't have to re-modify them each time you run the program.
953.2.2 UMASK
The UMASK command in MIAME.INI now supports an optional second parameter to set umask for directory creation:
UMASK=filemask{,dirmask}
For example:
UMASK=011,002
Remember that the bits in the UMASK cause the corresponding bits in the file or directory permissions to be cleared, so 002 corresponds to drwxrwxr-x.
953.1.1 XTEXT
Minor fixes/enhancements:
• | Clicking on the Save icon now acts like F3, so can be trapped as exitcode -3 by setting the &h0004 bit in TXC'FMAPAPP. |
• | Protecting all rows (-1) wasn't protecting the last row if it wasn't terminated with a CRLF. |
• | (The XTX1 sample program was also failing to allow a negative value for TXC'PROTROWS field.) |
• | Fix "bungy" scroll bar. |
Implement a right-click menu for Cut/Copy/Paste commands. Note that the text for these commands comes from the following items in the SYSMSG.xxx file:
004,001,Cut
004,002,Copy
004,003,Paste
(If those messages are not defined, the English defaults are used.)
Hitting ESC or clicking on the "X" (in popup mode) now prompts the user whether they want to save the changes (if there were any changes). If not, EXITCODE is set to 1 (and indicates that the changes were discarded). If so, EXITCODE is set to 0. If you don't want to be bothered by this confirmation message, you should probably convince your users to use another exit key (such as TAB or ENTER or an F# key). The sample program XTX1 has been updated to indicate that EXITCODE 1 and 10 corresponds to no update at all.
The text of the message box that prompts the user to confirm whether they want to save or not is taken from the 023,001 entry in SBRMSG.xxx. The title of the message box is taken from the 000,001 entry in APPMSG.xxx (which is meant to be the application name).
953.1.2 ATE
The Settings | Misc Settings dialog option to Force edit box height to match combo box was also forcing XTEXT controls to be the same height (i.e. 1 row high, very difficult to use.)
953.1.3 Printing
A new printer initialization command makes it possible to automatically respond to a predictable dialog displayed by some pseudo printer drivers like PDF writers. Typically these will default to the same name as the source file, but with a PDF extension, and wait for the user to hit the SAVE button (or possibly to change the directory or filename first.) If you would rather just accept the default and not have to respond to such dialogs, you can add the following to your printer init file:
AUTODLGOK={class,}<dialog title>
{class} is an optional Window class for the dialog (which you may be able to get from a Spy utility). If omitted, then the dialog will be recognized solely by its title.
<dialog-title> is the string appearing in the title bar of the dialog.
For example, for the popular PDF995 driver, you could use:
AUTODLGOK=Pdf995 Save As
In this case, after A-Shell sends the file to the printer, it waits a few seconds to see if a dialog pops up with the specified title. If so, it sends an ENTER keystroke to it to just accept the default and proceed.
Note that in most cases, the default directory will be set to match the directory used for the previous Save As operation by that driver. So before creating a thousand PDF files this way, you may want to first use the regular interactive method to establish the default directory.
953.1.4 ATE
A problem with the newly introduced feature allowing binary files to be transferred via an aux print operation preceded by TAB(-10,54) (or ATEAPX.SBX) was resolved. Also, one cause of a several second delay when terminating an ATE session before the client recognized the termination was fixed.
953.1.5 Windows Install Program
Fix a newly introduced problem in the installation program in which it would get an error trying to write the miame.ini before the directory had been created.
953.0.1 ATE
A new TAB(-10,x) command allows the host to enhance the functionality of a subsequent auxiliary port print operation:
PRINT TAB(-10,54);File$,Ptr$,Fsize;chr(127);
Where File$ is an optional filename to use for the print operation on the client side. This is handled automatically by the AUXLOC: driver so is only of use when you are going to use TAB(-1,82) directly to output text to the aux port (rather than indirectly via spooling to the AUXLOC: driver).
Ptr$ is an optional printer name, which temporarily overrides the printer choice in the ATE connection properties. This allows the application to have some control over the way ATE prints, which is sometimes useful since otherwise the ATE user must manually change the printer choice in synchronicity with the needs of the application.
One example of this would be if the app wanted to export a report to PDF, and it "knew" that all ATE clients had a PDF printer whose name started with "PDF":
PRINT TAB(-10,54)",PDF";chr(127);
XCALL SPOOL,FILE$,"AUXLOC"
Assuming that there is a printer init file on the server called "AUXLOC" that contained DEVICE=AUXLOC:, this would transfer the file to the PC, and send it to the "PDF" printer regardless of (and without changing) the current printer setting for the ATE connection. We don't need to specify the filename above in the TAB(-10,54) statement because the AUXLOC: driver handles that automatically (but we do need the comma so that PDF is properly recognized as the Ptr$ parameter).
Another example would be to use the DISK: pseudo-printer to simulate an FTP transfer:
PRINT TAB(-10,54);",DISK:%ATECACHEDIR%";chr(127);
XCALL SPOOL,FILE$,"AUXLOC"
This would transfer FILE$ from the server to the ATE client %ATECACHEDIR% directory, which might be handy if FTP was not available on the server.
NOTE that the technique would only be appropriate for ASCII files. To accomplish the same thing with files containing binary data, specify the file size in the fsize parameter. (This activates binary mode.) Better yet, use the new ATEAPX.SBX (located in [907,33]) which encapsulates the necessary logic for binary or ASCII file transfers from the server to the host without using FTP.
953.0.2
Fix a recently introduced problem in which the MIAMEFILE and MIAME environment variables could become corrupted after use of XCALL MIAMEX,MX_GETENV. At the same time, allow for completely independent MIAME and MIAMEFILE definitions. (Previously it was always assumed that MIAME was the directory component of MIAMEFILE. Although that is usually the case, it is possible that MIAME could be predefined to point to one directory, and then A-Shell is launched with a -i specification from another directory.)
953.0.3 XTEXT
XTEXT improvements:
• | TXF_POPUP mode now displays the "X" button in the upper right corner of the title bar. Clicking it acts exactly like hitting ESCAPE (i.e. finishes the editing session, but not necessarily closes the control, depending on the TXF_MODELESS flag). |
• | Toolbar icons can now be turned back on again after having been hidden. Previously, you could hide an icon that was visible, but you would have had to close and reopen the session to make visible an icon that was hidden in the first instance of the control. |
• | Clicking on the Printer icon on the toolbar now acts just like F4, meaning that if TXC'FMAPAPP contains &h0008 (the bit for F4), and the TXF_FKEYS flag is set, the control will exit with EXITCODE -4 instead of bringing up the internal printer dialog. (This is sort of preliminary and may be extended to other toolbar icons once it becomes more clear how to handle those that aren't normally equivalent to an F key.) |
• | Under ATE when the source is a file, the first line of the file is examined to see whether the terminator is LF or CRLF, so that the appropriate file transfer mode is used (ASCII or BINARY). On the way back (if the destination is a file), it bases the decision on whether the CRNL flag is set. (If so, it uses binary so that the CRLF terminators are preserved; otherwise it uses ASCII so that they are converted to LF terminators.) |
• | Control +/- keys now increase/decrease the font size by 10%. (This is quicker than using the toolbar zoom dropdown.) |
953.0.4 ISAM
In ISAM 1.0, when XCALL ASFLAG,32 is used to turn off all locking of the IDX file, if an error other than key-not-found (erf 33) occurs, A-Shell now retries the operation after doing a normal index lock. The theory here is that it may make it safer to use the no-lock mode in certain read-only situations (mainly in a peer-to-peer LAN environment) where normal locking has a high overhead and speed is the main consideration.XCALL/ASFLAG/No IDX
953.0.5 MSGBOX.SBR
Text version of MSGBOX.SBR now gets button text from LDF.
953.0.6 ZTXFER.LIT
Release now includes ZTXFER.LIT 1.0(102) (a reasonable simulation of the eponymous ZTERM/AMOS utility). This works with both ZTERM and ATE. Type ZTXFER with no arguments for syntax message.