Custom UI register/unregister dialog bar

Hi everybody, new to this forum, I'm coding a script to help myself with some stuffs I like to use and for that I'd like to make a floating toolbar, dockable to the Max UI just by clicking/unclicking one button.

I don't know why, but at first this worked (By clicking the button and uncheking it back)

But for some unknown reasons I now got an error without changing anything in the code :

" -- Runtime error: Requires a Rollout or RolloutFloater, got: undefined"

Here is the code :

macroScript Toolbox_Utility_Script
category:"Toolbox Utility"
toolTip:"Toolbox Utility"
(
local isOpen = false
 
 
on execute do
  (
    if isOpen then
    (
		cui.UnRegisterDialogBar Toolbox_Utility
		closerolloutfloater Toolbox_Utility
		isOpen = false
    )
    else
    (
		Toolbox_Utility = newRolloutFloater "Toolbox" 160 1024
		cui.RegisterDialogBar Toolbox_Utility style:#(#cui_dock_all, #cui_floatable, #cui_handles)
		cui.DockDialogBar Toolbox_Utility #cui_dock_left
		isOpen = true
    )
  )
 
  on isChecked return isOpen
)

Thanks for lighting me on this! :)

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
MarkD's picture

 It seems like you're trying

 It seems like you're trying to close a floater that doesn't exist and the script dies? Maybe try using a "Try/catch" instead of just trying to close the rollout floater that may or may not be there?

So instead of:

closerolloutfloater Toolbox_Utility

use:

try (closerolloutfloater Toolbox_Utility) catch ()

That way if it doesn't find a rollout floater it will carry on with the rest of the script.

 

You will also want to try to unregister the DialogBar when you try to close the rollout:

try (cui.UnregisterDialogBar Toolbox_Utility) catch()

Otherwise it just keep adding new rollouts. You might also need to use "DestroyDialog" instread of CloseRolloutFloater?

try (DestroyDialog Toolbox_Utility) catch()

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.