
CircleDock wrote:From my perspective, as Circle Dock's principal developer, I am quite happy to have any interaction between Circle Dock and Dexpot in the form of Windows messages.
Let's take a simple example, switching Dexpot's active desktop. The Sarge envisages a Dock Item whose target would be the Dexpot executable with the command line parameter "-w 1" (in the case of switching to the first desktop). This actually gives Circle Dock - and Windows - quite some processing to do as Circle Dock has to create and fill a new process structure and then tell Windows to start the process.
Circle Dock would check for a Registry entry (that Dexpot sets when it is loaded and running)
When our user clicks on a Dock Item, to switch Dexpot's active Desktop, Circle Dock simply does a SendMessage(DexpotMainHandle, DEXPOT_SWITCHDESKTOP, 1)
By the same token, Circle Dock will need to be informed of certain Dexpot changes and these include: when Dexpot's active desktop changes (preferably with the new Desktop number) and also when Dexpot is about to close and has started. I suggest that in such cases, Dexpot broadcasts messages
The last of these messages (DEXPOT_ACTIVE) would be very useful in cases where Dexpot is loaded after Circle Dock.
If this schema is accepted and codified, I can then add an additional field to the Dock Items' records whereby the user can specify whether individual Dock Items should be visible for all Dexpot desktops or only certain desktops (by number). This would permit the user to categorize his desktops by task-type and only see those Dock Items that relate directly to the task-type: eg Internet, Office tasks, development, etc., etc.
Patrick wrote:are you sure you didn't just let the Sarge talk you into it?No

Patrick wrote:Hi Mark,CircleDock wrote:From my perspective, as Circle Dock's principal developer, I am quite happy to have any interaction between Circle Dock and Dexpot in the form of Windows messages.
are you sure you didn't just let the Sarge talk you into it?![]()
No, we would of course appreciate a collaboration between our two project, and we'd be happy to provide all the assistance needed to make this work.
While I think that in the case of switching desktops, creating a new process is an acceptable overhead
We do not currently broadcast messages, but you can pass in a window handle and Dexpot will send event notifications to this window: SendMessage(DexpotMainHandle, DEX_REGISTERPLUGIN, 0, YourWindowHandle)
Have your WindowProc return DEX_DONTSWITCH in order to cancel the switch. But please only do this when it's really necessary and obvious to the user.
The last of these messages (DEXPOT_ACTIVE) would be very useful in cases where Dexpot is loaded after Circle Dock.
This one is currently missing. But I agree, it would be really useful to have this as a broadcast. We'll definitely implement it.
Let me know if the stuff detailed above works for you, and if you need access to any other information/features from Dexpot.
CircleDock wrote:We are in the process of having a new web site designed and I will ensure that Dexpot is featured strongly.
That's great, but you may wish to partner that with an UNREGISTERPLUGIN should the user decide to close Circle Dock.
I'd be happy to include menu options to display your various dialogs if these can also be summoned by Windows Messages.
There is one area of overlap, I notice, and that's the setting of the Desktop Wallpaper. Circle Dock provides the ability to set the Wallpaper to a user-defined image whilst it is loaded - and to revert to whatever Windows was using beforehand, when Circle Dock is closed. This will interfere with your settings, which are on a per virtual desktop basis, so I think it's best if I disable this facility (in Circle Dock) if Dexpot is loaded before Circle Dock - and not to change the image back to the original should Dexpot still be active when Circle Dock is dismissed.
Please let me know the new Message value(s).
Patrick wrote:Why not just let the users figure out not to use that particular feature of Circle Dock in combination with Dexpot's wallpaper customization?

Patrick wrote:CircleDock wrote:We are in the process of having a new web site designed and I will ensure that Dexpot is featured strongly.
Thanks, we'll put up a link to Circle Dock in return.
That's great, but you may wish to partner that with an UNREGISTERPLUGIN should the user decide to close Circle Dock.
There actually is a DEX_UNREGISTERPLUGIN, but it won't work here. Dexpot notices when a registered window is destroyed and will stop sending messages automatically, so you don't have to worry about this when Circle Dock is closed. However, you can still do a SendNotifyMessage(DexpotWindowHandle, DEX_UNREGISTERPLUGIN, 0, YourWindowHandle). The current version of Dexpot will ignore it, future version will perform the unregistering.
There is one area of overlap, I notice, and that's the setting of the Desktop Wallpaper. Circle Dock provides the ability to set the Wallpaper to a user-defined image whilst it is loaded - and to revert to whatever Windows was using beforehand, when Circle Dock is closed. This will interfere with your settings, which are on a per virtual desktop basis, so I think it's best if I disable this facility (in Circle Dock) if Dexpot is loaded before Circle Dock - and not to change the image back to the original should Dexpot still be active when Circle Dock is dismissed.
Why not just let the users figure out not to use that particular feature of Circle Dock in combination with Dexpot's wallpaper customization?
[/quote]Please let me know the new Message value(s).
The message broadcast after the start of Dexpot will be the return value of RegisterWindowMessage("DexpotStarted"). Everything else can be found in constants.h.
CircleDock wrote:Well thank you for wishing to save me the bother of adding extra code. I see the Sarge agrees with your suggestion - so I'll remind him of that fact when our support forum is inundated with confused users.
Is there any way that Circle Dock can discover which desktop number is currently the active desktop?
Patrick wrote:CircleDock wrote:Well thank you for wishing to save me the bother of adding extra code. I see the Sarge agrees with your suggestion - so I'll remind him of that fact when our support forum is inundated with confused users.
It's just that there are tons of other tools that also change the desktop wallpaper. You can't add a workaround for every single one, so why start now.
Is there any way that Circle Dock can discover which desktop number is currently the active desktop?
NumberOfCurrentlyActiveDesktop = SendMessage(DexpotWindowHandle, DEX_GETCURRENTDESKTOP, 0, 0)
Patrick wrote:The message broadcast after the start of Dexpot will be the return value of RegisterWindowMessage("DexpotStarted").

CircleDock wrote:Apart from desktop switching and the ability to summon Dexpot dialogs and extra windows, Circle Dock will not act as a controller, though this may change in response to user requests.

Patrick wrote:Awesome. Do you know when the new version will be released? I'd love to try it. We can also push a new Dexpot 1.5.x release with the plugin system modifications then.
CircleDock wrote:Apart from desktop switching and the ability to summon Dexpot dialogs and extra windows, Circle Dock will not act as a controller, though this may change in response to user requests.
Controller?

CircleDock wrote:If you're going to be releasing a new version about the same time, then it might be a rather good idea for me to have access to your betas in case I (or you!) need to make some "adjustments".
What I mean by "controller" is that Circle Dock will not attempt to make any changes to Dexpot's various options and settings. However, given that Circle Dock is translated into some 55+ languages, it is possible we will be asked to assist in that regard by, for example, our Urdu-speaking users.
But nothing in that regard will be done without prior discussion with and approval from yourselves.
Patrick wrote:Hi,CircleDock wrote:If you're going to be releasing a new version about the same time, then it might be a rather good idea for me to have access to your betas in case I (or you!) need to make some "adjustments".
sure thing. Here are some instructions on how to get the latest Dexpot beta.
But nothing in that regard will be done without prior discussion with and approval from yourselves.
Well, it's not really feasible at the moment anyway, apart from closing Dexpot, manipulating its data in the registry, and restarting Dexpot.
Users browsing this forum: Google [Bot] and 3 guests