XTaskDialog

An emulated version of Vista's Task Dialog APIs
Download

XTaskDialog Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Publisher Name:
  • Naughter Software
  • Operating Systems:
  • Windows All
  • File Size:
  • 465 KB

XTaskDialog Tags


XTaskDialog Description

XTaskDialog was developed to be an emulation of the Vista Task Dialog APIs for down level operating systems. Task Dialogs are designed as the replacement for the venerable MessageBox API call. You can do quite a few things with the message box API. Main features: Supports most of the Vista native Task Dialog functionality. This includes: Main instruction text, content text standard command buttons, custom command buttons, radio buttons, Verification check box, expanded text (and associated dialog animations), customizing the expando button caption, standard task dialog message box sounds, footer text, main icon and footer icon customization including the Vista UAC shield icon, support for hyperlinks in text, a complete emulation of command link buttons (These are the 3 options in the centre of the screen capture above which include a larger caption and then a smaller more detailed description on them), a progress control, callback timer support and support for a minimized task dialog. Having described the main features of task dialogs and what XTaskDialog supports, here is a list of the current limitations of the XTaskDialog emulation of TaskDialogIndirect: TDM_SET_PROGRESS_BAR_STATE is only supported on Windows Vista, so in reality you will not be able to use "paused" or "error" progress bars on downlevel OS'es. TDM_SET_MARQUEE_PROGRESS_BAR / TDF_SHOW_MARQUEE_PROGRESS_BAR is only supported for apps which are linked with a Common Control v6 manifest and running on Windows XP or later. TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE is only supported for command link buttons and not for the standard buttons on the task dialog. TDF_ENABLE_HYPERLINKS is only supported for apps which are linked with a Common Control v6 manifest and are running on Windows XP or later. If you try to create a task dialog if either of these conditions are not true, then the task dialog will fail to show because it could not create the required "SysLink" child windows. You have been warned! The metrics which XTaskDialog uses for calculating the dialog window width is definitely different that the native Vista implementation. The mechanism which XTaskDialog uses to calculate the width is quite complicated and for those interested (or for those who spot problems with it), this logic is implemented in CXTaskDialog::Layout. The expando button and its associated text is currently drawn using a standard button rather than the bitmap button the native Vista version seems to uses. This is something which I may work on improving in a future release. The emulated command link buttons do not emulate all the nice UI / animation features which the native Vista version implements. For example the emulation does not do as nice a job as Vista to show a "selected" command link button. That said the emulation is pretty good and unless you are a hard core UI developer who is used to examining every pixel, you will most likely not notice much difference. The native Vista implementation supports stacking of the standard buttons when horizontal space is limited. Currently XTaskDialog does not support this. The native Vista implementation aligns the check box and expando buttons vertically with the standard buttons. Currently XTaskDialog displays both of these controls below the button row. TDF_RTL_LAYOUT is currently not properly supported by XTaskDialog. If you think support for this would be useful, then I may implement this in a future release. TDM_NAVIGATE_PAGE is currently not supported by XTaskDialog. As a consequence, the TDN_NAVIGATED notification message will also never be sent. If you think support for page navigation would be useful, then I may implement this in a future release. Quite a few of the various colors and metrics used by XTaskDialog are hard coded. Examples include the colors used for the dialog backgrounds and divider colors, the various colors used by the emulated command link buttons and the color used for the main instruction text. I believe these will have to remain hard-coded because downlevel OS'es simply would not support the required system metrics to get these values even if I knew you could get these system metrics on Vista!. The icons shown on the emulated command link buttons are vertically centred. The native Vista implementation seems to use a fixed offset from the top. Because the code uses the _TrackMouseEvent function (used to implement the hot look for the emulated command links) and the MultiMon function "MonitorFromWindow", the code requires at least Windows 98 to operate correctly, that is it will not work for Windows 95. Finally with all the limitations mentioned above, you can consider all the other features of TaskDialogIndirect as fully emulated by XTaskDialog. For example, all the animation effects which the native TaskDialogIndirect API uses for handling the expando text are pretty faithfully emulated. If you think I have missed something compared to the native Vista implementation, then please drop me an email and I will see about including it in a future release.


XTaskDialog Related Software