Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

dat.gui how to hide menu with code

I made a menu using dat.gui for my applcation with Three.js. It works fine, I have also discovered that pressing h key I can hide the menu created with dat.gui. My question is how can I make the menu appear/disappear directly from the code?

 var gui = new dat.GUI();
 gui.add(text, 'message');
 gui.add(text, 'speed', -5, 5);

 gui.???

I tried to use the property of the DOMElement hide and it works but I would like a unique way to handle this function. There is a function to call? I have noticed that JavaScript events related to the keystrokes are related to the scope via a bind in the library. But what is the correct way to do this?

like image 568
Giancarlo Avatar asked Feb 05 '13 15:02

Giancarlo


4 Answers

You can try

var gui = new dat.GUI();
 //... your logic here
gui.__proto__.constructor.toggleHide()
like image 71
user1713952 Avatar answered Nov 07 '22 16:11

user1713952


I hade the same issue and solved it by:

var gui = new dat.GUI();
dat.GUI.toggleHide();
like image 28
Qiau Avatar answered Nov 07 '22 17:11

Qiau


As of latest version:

gui.close();

like image 2
biojazzard Avatar answered Nov 07 '22 16:11

biojazzard


What you and I were looking for is

var gui = new dat.GUI();
// to toggle it closed
gui.closed = true;
// to toggle it open again
gui.closed = false;

I got this from the source at line 2104 where the internal functions open and close are doing exactly this.

The gui reacts to the value change on the fly (you can reassign gui.closed from the console to see it in action).

like image 1
mexitalian Avatar answered Nov 07 '22 16:11

mexitalian