Pashua Version History

Back to application description

0.11 (05/27/2018)

  • Pashua is now Open Source, licensed under the 3-clause BSD license. You can find the source code on GitHub.
  • Option -e has been deprecated for some time as is now removed. If this option is used, a warning will be written to stderr, but apart from that, the option does not have any effect. Note: in some cases (notably: passing a non-UTF8 dialog configuration via stdin) this can cause an error.
  • The “image” element got new attributes to set an exact size: width and height (while up to now, it was only possible to set maximum width and height). While by default the image will not be upscaled if it is smaller than the defined size, this can be achieved by setting upscale = 1
  • Modernized icon
  • Changed: When using an “openbrowser” element which currently holds the path to a folder and the button for choosing an item is used, in previous versions the subsequent dialog displayed the parent folder of the selected folder, without pre-selecting the folder. This behavior was intro­duced intentionally years ago with regard to choosing bundles, but no longer seems useful to me. The new behavior is: if the selected value is a directory, the dialog shows the content of the directory, so if you hit the “OK” button without choosing anything else, the openbrowser’s value will remain unchanged.
  • Fixed display glitch regarding focus ring around buttons
  • Combo boxes: using the new “rows” property, you can control the number of visible items
  • The minimum supported OS X version is now 10.9 (previously: 10.6)

0.10.3 (12/23/2015)

  • Savebrowser: when default value is specified, the filename in the dialog is set accordingly
  • Fix combobox height issue introduced with v0.10.2

0.10.2 (11/29/2015)

  • Tooltips can now be multi-line by using \n for linebreaks.
  • Bugfix: when a dialog should be closed but stays on screen due to mandatory elements being empty, checkboxes do no longer lose their status.

0.10.1 (07/15/2015)

  • Fixed a problem that could result in an inaccurate button return value under certain circumstances

0.10 (11/08/2014)

  • When displaying images, the pixel size is used for calculating sizes, and the image resolution is ignored
  • Slightly reduced the vertical distance between UI items and their labels
  • New application icon
  • The command-line switch -e for setting the encoding is no longer supported and is ignored if used. (Which has been marked as deprecated since January 2014.) Pashua now expects input as UTF-8 and will output resulting values as UTF-8, but will usually be able to auto-detect, if another encoding (MacRoman, Latin1 etc.) is used. If input is in another encoding, Pashua will use the same encoding for the output.
  • Mandatory UI elements can be defined by the new mandatory attribute, and a dialog cannot be closed as long as mandatory fields are empty.
  • Added ability to set placeholder values (attribute placeholder) for element types combobox, openbrowser, savebrowser, textfield
  • Fixed attribute tooltip attribute for types cancelbutton and defaultbutton
  • Removed the number of examples that are included with Pashua. Remaining examples can now be found in GitHub repositories. (06/20/2014)

  • Slightly improved the documentation
  • There is no longer a maximum allowed “rely” value
  • Fixed errors in doc comments inside “”

0.9.5 (01/19/2014)

  • Removed legacy code and deprecated API usages, which is why Pashua requires Mac OS X 10.6 or later
  • The “image” element respects the Exif orientation tag when displaying photos
  • The drag cursor (for “openbrowser” and “savebrowser” elements) is no longer the “copy” cursor, but the “link”, which is more appropriate
  • Retina icons in the UI. (Actually this only applies to the “clear” button in “openbrowser” and “savebrowser” elements.)
  • The “clear” button in “openbrowser” and “savebrowser” elements is re-displayed when an item is dragged onto the element after the element was cleared
  • The window position can be restored upon next launch (on a per-application basis). See “autosavekey” in documentation.
  • The example code for all languages uses UTF-8 as encoding. Using an encoding other than UTF-8 is deprecated, and support for setting the encoding will be removed in a future version.
  • Fixed the Tcl example
  • Updated and modernized documentation (11/29/2011)

  • Fixes a timezone-related issue in element “date”.
  • Fixed: When an element “date” was displayed in textual mode, the stepper for the value was slightly cut off at the top. (09/18/2011)

  • Elements “openbrowser” and “closebrowser”: when the field contains a string, a clear button will be visible that can be used to erase the field’s content.
  • Element “combobox” has a new attribute “completion” which can be set to 0 (no completion), 1 (completes the first item in the completion list which matches the entered string, case-sensitive -- this is the default behaviour) or 2 (ditto, but case-insensitive)
  • Elements of type “date” now return a correct and usable date string. If date and time can be selected in the GUI, it’s in “yyyy-mm-dd hh:mm” format, if it’s a date without time the format is “yyyy-mm-dd” or, in case of a time without a date, “hh:mm”. In any case, the timezone is no longer returned, as there was no way to define it, anyway. (04/27/2011)

  • Element types “openbrowser” and “savebrowser”: Improved behaviour regarding pre-selected folders in the file dialog
  • English localization: corrected menu item “Hide Others” (was “Hide Pashua”)
  • Fixed some errors in the documentation
  • Added a Groovy example
  • AppleScript example: Fixed an error that could occur when the AppleScript was launched from inside another application
  • Rexx example: Image path is set correctly, and hence the image will now be displayed in the dialog
  • PHP example: Code modernizations (not compatible with PHP4)
  • Python example: Removed output of dialog’s return values
  • Tcl example: fixed (did not work, due to a syntax error)

0.9.4 (05/30/2007)

  • New GUI element date for choosing date and/or time
  • New attribute disabled for any elements with the exception of image and text
  • Example shell script: Fixed missing quoting of paths with spaces
  • Example Tcl script: Corrected variable names (02/28/2006)

  • Changed return values to conform to Pashua's behaviour before 0.9.3: buttons and checkboxes return 1 when clicked / checked and 0 if not clicked / checked, read-only elements (line, text) do not return anything any longer.

0.9.3 (01/16/2006)

  • Important: Syntax change in the configuration string: Window attributes now have to be specified using an asterisk (*) as a dummy element name. Moreover, the attribute name for the window title was changed from windowtitle to title.
  • New window attribute "floating": When using "*.floating = 1", the window will float above other windows.
  • New window attributes "x" and "y": Using "*.x = [number]" and "*.y = [number]", the window will open at the specified x / y position
  • Absolute positioning of any elements using new attributes "x" and "y". The window will resized as required.
  • Relative positioning of any elements (except buttons) using new attributes relx and rely.
  • Due to the new positioning features, text (element type text) no longer fits the window width automatically.
  • More syntactical checks and better error messages
  • Better shortening of filenames in openbrowser and savebrowser elements
  • openbrowser and savebrowser elements now use sheets instead of panels
  • Radiobutton labels are now considered when calculating the window width
  • The height of elements of type textbox is now regarded as pixels, not as lines
  • Completely rewritten documentation using DocBook
  • Pashua is a “Universal Binary” (should run on Intel Macs)
  • Supports Unsanity's Smart Crash Reports

0.9.2 (09/16/2005)

  • Syntax change in the configuration string: Element names and their attributes should be no longer separated by an underscore, but by a dot. For instance, instead of "name_label = Enter your name" you now have to use "name.label = Enter your name"
  • The way encodings are defined has changed (and encodings should work more reliably now). Instead of specifying the encoding in the configuration string, the encoding is passed as a command-line argument to Pashua. See documentation for more info.
  • Pashua will read the configuration from stdin instead of a file, if "-" is passed as filename to Pashua. However, the examples still use temporary files; if you want to make use of this feature, you have to change the code accordingly.
  • For elements of type text you can use attribute default instead of text, if you prefer. These attribute names are treated as synonyms to achieve more consistency with other element types, which use default for any pre-set values.
  • The text of elements of type text is selectable and can be copied.
  • French localization, contributed by Daniel Robillard
  • Fixed small bugs in two of the example scripts

0.9.1 (11/06/2004)

  • Windows with attribute appearance=metal can be moved by clicking in their background, which is the regular behaviour of texturized (metal) windows.
  • Example code for using Pashua from Ruby (Code contributed by Mike Hall)
  • Two fixes in the example shell script
  • Fix in the example Perl script
  • Using the new instruction encoding, users are able to define an encoding for text sent to and returned by Pashua. Among the supported encodings are Unicode (UTF-8) and Latin-1. To learn more about encodings, please take a look at the documentation.
  • Using textbox's new attribute fonttype=fixed it's possible to get a textbox with a fixed (monospaced) font.
  • Improved and extended documentation
  • Improved behaviour of openbrowser and savebrowser text fields (reg. Drag&Drop and displaying paths which are too long to fit in the textfield)
  • New attribute autoclosetime, which can be used to close the dialog automatically after a certain amount of time.

0.9 (06/25/2004)

  • By default, openbrowser and savebrowser navigate to the directory which contains the currently selected item, provided that you did select something before.
  • Improvements in AppleScript code, contributed by Hans Haesler
  • Tempfile cleanup in the Perl module did not work as expected, therefore now uses the module File::Temp. (This module is only part of OS X in v10.3 and later, thus I simply have included it in
  • Small fix in Tcl code
  • New GUI element textbox, for displaying multi-line, scrollable input fields
  • New GUI element image for displaying images
  • Fixes a bug in button positioning code: when no cancel button should be visible, no space is allocated for it
  • Tiny fix in the Tcl code for Mac OS X 10.2 compatibility
  • Fixes in the PHP code

0.8.5 (04/22/2004)

  • Example code for using Pashua from Tcl (Code contributed by Bruce M. Axtens)
  • Minor bugfix in the Python script (contributed by Ed Heil)
  • Corrected error in English localization
  • Added keyboard shortcut Cmd-Option-H for “Hide others”
  • In addition to the default and the cancel button, it's now possible to define additional buttons.
  • Cancel buttons do have a return value now, to make it easier to detect whether the dialog was canceled or not.
  • Whitespace at the beginning and the end of configuration string options is ignored.
  • A new configurations command appearance=metal enables switching from Aqua to “Brushed metal” look. (Although I hate this look, but people asked for it and it was easy to implement…)
  • Files can be dragged and dropped onto openbrowser or savebrowser textfields to set these fields to the file's path.
  • The first openbrowser element in a window can now be triggered by menu item “File” –> “Open…” (or Cmd-O) and the first savebrowser can be triggered by menu item “File” –> “Save as…” (or Cmd-Shift-S).
  • Separator lines were broken in 10.3, but do work now
  • Changed the PHP script's Shebang line to match the PHP command-line binary shipped with 10.3

0.8 (12/15/2003)

  • Example code for using Pashua from Rexx (Code contributed by Bruce Woller)
  • Several improvements in the Python and shell scripts (contributed by Canis Lupus and Tor Sigurdsson)
  • Changes in Perl, Python, shell and PHP scripts regarding path issues: All example scripts for these languages can now be used inside application bundles (for creating doubleclickable apps) without any changes.
  • New attribute tooltip to define tooltips for GUI elements.
  • The well-known keyboard shortcuts Cmd-C, Cmd-V, Cmd-X und Cmd-A do work in textfields.
  • When no value is selected in a popup menu, an empty string is returned instead of “(null)”.
  • If the window contains a cancel button, it can be triggered using the escape key.
  • New attributes for types openbrowser and savebrowser: By setting filetype, you can specify which filetypes are available in open panels, whether users can choose directories etc.
  • Improved and extended documentation.

0.7 (11/05/2003)

  • Change in the configuration syntax: Any default values must be set using the attribute default now (see examples). This improves consistency between the various element types and thus eases using Pashua.
  • New GUI element: Save dialog box (element type: savebrowser)
  • Change in the configuration syntax: Due to the new element type savebrowser (see above), type fsbrowser has been renamed to openbrowser (see examples).
  • Fixed a bug that could result in an empty dialog when using AppleScript
  • Two configuration errors which caused Pashua to crash are simply ignored now
  • Improved error notification when an element's type is not defined or when the type is unknown


  • Added support for Python (Code contributed by James Reese)
  • Fixed bug: Closing the about window no longer closes the dialog window


  • New GUI element: Plain text
  • New GUI element: Cancel button
  • Minor improvement in AppleScript code
  • The default button will be labeled “OK” automatically, unless a label is specified.


  • Added support for AppleScript
  • New GUI element: Filesystem browser


  • You don't have to define an empty default text any longer.
  • Pashua accepts textfields without label.
  • New GUI element: Password field
  • New GUI element: Combo box
  • New GUI element: Horizontal separator line


  • New GUI element: Popup menus
  • New GUI element: Radiobuttons


  • Initial release