3.50 release
--------------
3.49e RC
--------------
-Improved installation routine of standalone XGF runtime
-Preview image for Objects now changes with the current selected state when in appearance/states tab
-Fixed bug involving the Object List dialog
-Improved Sidebar-Gadget packaging process
3.49b beta 2
--------------
-Added ability to set an object's rotation from its summary
-Fixed compatbility with ObjectBar
-Various small dialog changes
3.49 beta 1
--------------
-Added ability to create sidebar gadgets
-Added Windows Vista compatibility
3.19b beta
--------------
- Added result = Desktopx.MsgBox(msg, flags, title, ownerName). This msgbox function let you
get control of z-order, by passing the name of the owner object. Also, the msgbox thread will
reply synchronously.
- Fixed a couple crash bugs.
3.19a beta
--------------
Yes, I'm aware it says 3.1 in various dialogs and images. That'll be fixed.
- Simple deployed EXEs don't use a new random temp deploy dir anymore.
They will base on a static unique GUID. This should fix compatibility issues with
antivirus programs that let users register a full executable path once.
- Implemented dynamic scripting. Scripts can be changed at runtime by using the
Object.SetScript(path) command. This has a couple of rules:
- Path can be either relative to local path (CurrentTheme) or full path.
Files pointed to relative paths are automatically saved into .dxpack/.desktop/.exe packages.
- ActiveX dynamic scripting is not yet supported.
- An object must be first configured as scripted.
- The default script, edited from DesktopX GUI will not be used, if overridden by an
external script, unless the external script is "unlinked" by calling Object.SetScript("").
- Fixed dissapearing scripts after crash or quit.
- Added more SD ActiveX controls properties and events.
- Changed SD ActiveX controls and DX scripting autoinstall for gadgets.
Everything is Limited User compatible.
- Vista compatible.
- Added Object.Cursor.
- Added DesktopX.Exit.
Documenatation to follow on these bits.
- Added simple read and write APIs (anti-script/antivirus friendly).
- Added http file download API.
- Added http GET and POST APIs.
- Added asynchronous support for http APIS.
3.19 beta
------------
- Widgets/gadgets deploying in the "simple" EXE packagaing do not use
a random temporary directory anymore. They're now based on a static
GUID value, which should help fix compatibility issues with antivirus programs.
- Implemented dynamic scripting. Scripts can be changed at runtime by using the
Object.SetScript(path) command. This has a couple of rules:
- Path can be either relative to local path (CurrentTheme) or full path.
Files pointed to _relative paths_ are automatically saved into
.dxpack/.desktop/.exe packages.
- ActiveX dynamic scripting is not yet supported.
- An object must be first configured as scripted.
- The default script, edited from DesktopX GUI will not be used, if overridden by an
external script, unless the external script is "unlinked" by calling Object.SetScript("").
-Fixes for dissapearing scripts after crash or quit.
-Other tweaks. Docs will be updated shortly to reflect the new Object.SetScript bits.
12/11/05 20:48 509,440 DXWidget.exe
12/11/05 20:53 444,928 DesktopX.exe
12/11/05 21:52 368,640 DirectGUI.dll
12/11/05 21:53 174,080 IconX.dll
12/11/05 21:53 580,096 DesktopX Builder.exe
DesktopX 3.1
------------
- Added Object and States.SetMargins.
- Added Object and States.SetShadow.
- Drag selection don't select invisible objects anymore.
- Added System.DesktopColor.
- Better Widget preferences auto-layouting.
- Added preference type "File".
- Added preference type "Folder".
- Added Object.Command property.
- Added Object.CommandParams property.
- The Script editor can now Save & Apply and stay opened. Great for testing and debugging.
- Added Object.Group property.
- Widget preferences are available for design purpose in Builder mode now.
- Added Forms. Forms are input boxes whose elements work like Preferences items.
Example:
Set frm = DesktopX.CreateForm
frm.AddPreference "Text1"
frm.Preference("Text1").Type = "Text"
frm.Preference("Text1").DefaultValue = "Sample text pref"
frm.Preference("Text1").Caption = "Default text"
frm.Preference("Text1").Description = "This is a sample description, bla bla bla"
frm.Prompt
msgbox frm.Preference("Text1").value
- Higher decoupling between DesktopX and IconX.
- Added preference type "Hotkey".
- Hotkey registration support.
Usage:
Object.RegisterHotkey hotkeyID, frm.Preference("hotkey").Value
...
Object_OnHotkey(id)
...
Object.UnregisterHotkey hotkeyID
- Fixed crash problem with Widget Controller scripts.
- Pro EXEs can maintain their status (position etc) across reloads.
- Safer SD ActiveX controls registration across DesktopX and gadgets deployment.
- Added OnKeyDown and OnKeyUp to all SD ActiveX controls. This should make tabbing navigation and
other things possible,
- Added Client to Builder and viceversa tray menu shortcut.
- Added Widget.StandardPreferencesOptions to disable the standard preference options. Sets to a combination of:
Const STDPREF_NOOPACITY = &H00000001
Const STDPREF_NOSHADOW = &H00000002
Const STDPREF_NOZORDER = &H00000004
Const STDPREF_NOHUE = &H00000008
Const STDPREF_NOACCESSIBILITY = &H00000010
Const STDPREF_NOAUTORUN = &H00000020
- Vector text objects can now have a limited size.
- Widget.OnTop to put the whole widget on top of the system zorder.
- Added Object and States().SetFont fontname, fontsize, bold, italic, underline, strikeout, charset
- Added Object.Comments.
- Added "Color" preference type.
- Added readonly Object and States().FontName, .FontSize, .FontBold, .FontItalic, .FontUnderline and .FontStrikeout. For setting them use States.SetFont.
- Fixed a screen repositioning problem.
- Fixed auto security enable after shutdown on Secured desktops.
- Added "font" preference type.
- Added DesktopX.GarbageCollection.
- Added Preference("name").ResetList to clear all values added with .AddValue
- Fixed crashing on non english languages.
- Fixed some widget bugs.
- Improved IconX/DX interoperability.
- Minor changes in systray menu.
- Update DesktopX Helper.
- Added DesktopX Builder Palette.
DesktopX 3.01
- Fixed Object navigator list not refreshing.
- Changed the supported screen res panel.
- Fixed a few language definitions.
- Added Object.ParentName
- Completed desktop security features in Client and Enterprise.
- Fixed DX Pro to export all kinds of ActiveX controls.
- Added Object.SetMargins(left, top, right, bottom, bStretchX, bStretchY)
- Added Object.States("name").SetMargins(left, top, right, bottom, bStretchX, bStretchY)
- Fixed looping wavs.
[03/18/05] Refreshed language files to include the updated strings for
translation.
DesktopX 3.0
-----------------
This is not an exhaustive list of all the changes and improvements for 3.0. There's
been a lot of UI changes and improvements as well.
- Fixed autorun/restoring behaviour when leaving DX running and closing Windows.
- Fixed crash bug (WB incompatibility) in DX config dialog.
- Fixed Widget preferences breaking drawing plugins.
- Fixed Set Target for URLs in User mode.
- Added "DesktopX Welcome.." to Widget manager menu.
- Fixed Shadow Widget preference.
- Rewritten the widget and gadget reposition code to ensure content is inside screen.
- Fixed Gadgets ZOrder and Access preferences.
- Fixed Tasbkar object transparent labels.
- Object.SetFocus on ActiveX objects now correctly passes keyboard
focus to the control.
- IconX should catch up those blank icons now.
- Fixed ActiveX dragging. They are flicker-free now!
- Implemented ActiveX transparency. Just use uniform transparency in
properties or use Object.opacity.
- Fixed dxperf4.dll wrong linkage to atl71.dll.
- Fixed the proliferation of .dxscript files while editing objects.
- Namespaces members are not global anymore. It means:
WorkareaRight doesn't work now. System.WorkareaRight works.
This is to avoid local variables/members conflicts like:
name = obj.name where obj is a variable pointing to another
object.
- Changed *Ex methods implementation. The first parameter now points to
an Object instance rather than a simple Name string. If you still
need the name, just use the Object.Name property. Example:
sub Object_OnLButtonDownEx(obj,x,y)
name = obj.name
select case name
... etc
- Scriptable animations.
Option to enable in Animation tab.
New Object.CurrentFrame property (read/write)
- Added "Open desktop data folder" button to DXBuilder UI.
- Fixed systray and taskbar icons get invisible.
- Simplified systray configuration.
- Changed bitmap margin settings to be relative to the bitmap border.
- Moved Vector and Mask options to Advanced.
- Widget cache versioning.
- Widget preferences.
- Scriptable plugins support!
- New Scriptable Mail Notify plugin.
- Added Ex methods.
- Added System.CpuActivity.
- WidgetManager.
- Script .Text properties are UNICODE.
- Added System.Clipboard.
- Fixed Object.delete potentially dangerous in some circumstances.
- Limited bound text. It comes handy for multiline displays.
- Added System.Mute, System.Volume.
DesktopX 2.4
- Fixed widgets not remembering their position.
- Fixed objects slipping down on restart.
- Fixed Norton Antivirus compatibility.
- Fixed a crash bug with themes.
- Fixed Widget.Autorun.
- Added Object.SetPicture and Object.States("name").SetPicture, see the docs
for more information.
- Added scriptable popup menus. Examples:
Dim m
Set m = DesktopX.CreatePopupMenu
m.AppendMenu 0, 1, "Item1"
m.AppendMenu 0, 2, "Item2"
Dim result
res = m.TrackPopupMenu(0, System.CursorX, System.CursorY)
To add sub menus:
Dim m
Set m = DesktopX.CreatePopupMenu
m.AppendMenu &H00000001 Or &H00000008, 1, "Item in submenu"
Dim m0
Set m0 = DesktopX.CreatePopupMenu
m0.AppendMenu &H00000010, m.MenuID, "Sub menu"
m0.AppendMenu 0, 2, "Item in main menu"
res = m0.TrackPopupMenu(0, System.CursorX, System.CursorY)
First parameter of AppendMenu are flags like the AppendMenu API, same for
the first parameter of TrackPopupMenu. See MSDN for more details, or check
the DX scripting manual when it is updated.
- Added controller scripts. You can register an object+script to act as a
controller. Only the controller receives some messages like system tray
messages (i.e. Rightclick message on the widget right click menu).
To register an object as a controller:
Sub Object_OnScriptEnter
desktopx.RegisterController Object.Name
End Sub
The object will be called from the OnControl notification:
Function OnControl(ltype, lcode)
End function
Returning true to received messages will cause DesktopX not processing
them. For instance you can replace the right click or systray widget menu.
The following messages are defined:
ltype = 1 lcode = 1 The systray menu is requested
ltype = 1 lcode = 2 The widget menu is requested from object right-click.
ltype = 2 lcode = x Mouse messages on systray. These are defined like
standard WM_LBUTTONUP etc values. See MSDN for values, or check
the DX manual when it is fully updated.
- Fixed .dxtheme, .dxpack and .exes running from UNICODE paths. Still Pro
cannot generate EXEs from users with UNICODE name and from UNICODE path,
however the generated EXEs can run from everywhere.
- Fixed Object.Volume.
- Improved dxaxhost threading. Now scripts run by default in the DesktopX
thread. This offers much faster and smoother execution, especially with regards
to callbacks.
There is a new option to still specify scripts to run in a separated thread
in the script editor.
- Much smaller dxaxhost.dll.
- Fixed security features not working in limited user accounts.
- Much improved the timer code. Now there is a single resource allocation
instead of creating a timer window for each object. This fixes other strange
issues with message boxes and locking threads.
- Added vector text option: it provides plain text without any preprocessing.
It has some advantages and disadvantages over bitmapped text:
+ It usually provides crisper and clearer text, especially with
small fonts.
+ It uses ClearType or standard antialiasing if enabled.
+ It doesn't use extra memory for allocating bitmaps.
- It cannot be shadowed or made transparent.
- Its background must be opaque. If it is not, it'll turned solid
automatically.
Unless you need some special effect, or transparency, this new option is
the way to go memory and performance wise.
- [PRO-beta] Exported applications can hide desktop icons. This is useful in
a few cases where you want to make an application that completely takes over
the desktop.
- Added object collections: DesktopX.Objects and Object.Children.
You can use them like this:
msgbox "Total objects:" & DesktopX.Objects.count
msgbox "First object name:" & DesktopX.Objects.item(1).name ' or .left or
.ontop etc
msgbox "Test1 object name:" & DesktopX.Objects.item("Test1").name
For Each elem In DesktopX.Objects
msgbox "First object name:" & elem.name
elem.left = 50
'etc
Next
- Huge improvements in script threading and callbacks. It actually *works* now.
- Object.StatePreempt called inside Object_OnStateChange will switch the
state being changed to another state. For instance you can hijack
"Mouse over" messages to "MyMover1" and "MyMover2" depending on some state
information.
- Updated docs.
- Fixed random crash bug [thanks Byron].
- Fixed Systray object configuration.
- ObjectBar integration feature.
- Widgets fade in/out when loading/unloading.
- Added "Widget preferences" panel in widget mode. Here you can tweak:
- ZOrder
- Opacity
- Shadow
- Color
- Autorun
- Accessibility (taskbar/systray/none).
- Realtime Widget properties changes.
- Added Widgets cache mechansim to load faster and store widget settings.
- Object.LocalStorage and Object.PersistStorage and plugins configurations
are preserved across different executions of the same widget.
- UNICODE support.
- Added support for UI translations. Translated files need to go into
\Lang\. Follow instructions in \Lang\HowToTranslate.txt to make additional
translations.
- Done a lot of polish work code- and UI-wise.
- Limited User support. It caused IconX not saving preferences,
icon positions and other problems.
- State, size, text etc changes in scripts are synchronized now. It means
calls such as Object.width after a state or position change will return the
correct value.
- Added "DisableCorruptThemeWarning" DWORD registry setting to suppress the
incorrupt theme warning when restoring DesktopX after a crash or brute quit.
- Fixed a bug with enviroment variables substitution in Shortcuts.
- Added IconX grid offset options.
- Tweaked icon relative distance reposition.
- Fixed dxaxhost editor crash.
- Fixed on-request script activation and deactivation.
- DXScript optimization, should load/save files faster.
- Fixed new IconX icons piling with small grid values.
- Object IDs can have now virtually unlimited length.
- Optimizations in load and save code.
- Tweaked widgets right click and systray menus.
- Changed Run widget command to open the DX browser instead of the Explorer
window.
- Changed Main settings UI.
- Sound changed by script is immediately played if it is current state.
- Renamed "Overlay" DX settings tab to "Widgets".
- Added View and Clear Widget cache controls in the "Widgets" tab.
- Fixed Replace from DXScript main menu.
- Fixed bug with activation and static animations.
- Fixed bug with generating shadows with maximum blur (100).
- Updated SDAnalogClock3 plugin to support Seconds arm.
- Updated DesktopX icon.
- Added Object.Volume [0-100]
- Added Object.Sound and States().Sound for changing sound file name.
- Fixed Browse button in Sound panel.
- Added Charset support in DesktopX text states.