Give me back my dialogs!
Window box is a script (and tutorial) to show you how you can use Dotnet and Win32 methods to get back dialogs you have lost from using multiple monitors.
UPDATE 2.4.2
Fixed an issue with monitor data, it now centers correctly on all screens. Sorry for the delay in finding that one.
Previous Updates :
UPDATE 2.4.2
Fixed issue with monitor data, now centers correctly on all screens.
UPDATE 2.4
Fixed a bug that errors with the SME interface pre max 2011
Update -V2.3
UPDATE 2.3
Oh Alright, I added Slate Material Editor Support. It's a bit sketchy, it doesnt seem possible to return a Window handle for SME so you have to set it via the MXS interface. The resize is not currently working with the Datagrid, but the Reset to [0,0] works fine, which is probably what most people need.
I have also fixed a bug - the Base64 function built the icons wrong, the close button should be on the far right. If you delete the icons from the Scripts/lonerobot/assets/icons folder then they will re-build correctly at runtime.
Slate Material Editor reset added
UPDATE - V2.2
Just to note - getpoupdialogs() does not seem to return all of the floating dialogs present in a session of max. This is a change in behaviour from when I originally wrote the script (as the original screenshot will testify, yet since I upgraded to Win7 x64, the same command does not return these windows) You can get a better result in the script by changing the line -
DialogList = for i in (UIAccessor.GetPopupDialogs()) where not i == 0 collect i
to -
DialogList = for i in (windows.getChildrenHWND 0 parent:#max)
where UIAccessor.IsWindow i[1] and (not i[5] == "AdApplicationButton") and (not i[5] == "") collect i[1]
This seems to give a better result on my Win7 x64 build. I didn't get this issue on vista 32bit so could be something to do with that. With this line it will now list the layer manager, material editor and render dialogs. It does return some toolbars which may or not be required, but better to be more complete than miss some. You can change the original script or download the updated code (version 2.2)
As you can see from the new screenshot, it's not missed any this time, well maybe the Slate Material Editor, but who uses that eh? :-)
UPDATE - V2.1
The script has now been updated to remove the dependencies on the ribbon control icons. These have now been integrated into a Base64 encoded string, and builds them automatically when the script is first run. This should remove any icon errors you are seeing (in Max 2012 for example) Window box is a script (and tutorial) to show you how you can use Dotnet and Win32 methods to get back dialogs you have lost from using multiple monitors.
LoneRobot
Attachment | Size |
---|---|
lonerobot-windowbox2.2.mcr | 18.03 KB |
lonerobot-windowbox2.3.mcr | 20.84 KB |
lonerobot-windowbox2.4.mcr | 20.93 KB |
lonerobot-windowbox2.4_1.mcr | 21.18 KB |
lonerobot-windowbox2.4_2.mcr | 21.6 KB |
Comments
Hi Martin, thanks for your
Hi Martin,
thanks for your comments! That's a good idea - This started as a piece of research and kind of grew, so so i wasnt sure what sort of extra functionality i wanted. I'll look into your suggestions as it would be nice to not have to keep focusing and resizing the extra dialogs. Cheers, Pete
Nice tool Pete, maybe an
Nice tool Pete,
maybe an option to make them visible/unvisible and when you click on one, it hide all the other so I can put all dialog full size on my second screen , sort of dialog switcher :-)
anyway, thank for sharing,
Martin