File Exchange

image thumbnail

setDesktopVisibilit​y

version 1.0.0.0 (1.79 KB) by Yair Altman
displays or hides the Matlab desktop window

1 Download

Updated 12 Sep 2007

No License

Syntax:
currentState = setDesktopVisibility(newState)

Description:
setDesktopVisibility(newState) sets the Matlab desktop window visibility state. Valid values for newState are true, false, 'on' & 'off' (case insensitive).

Note: when the desktop visibility is false/'off' (i.e. hidden), the command window is not accessible for user input. Therefore, this function is very useful for GUI-based applications but not for regular interactive (command-window) use.

state = setDesktopVisibility returns the current visibility state of the desktop window (prior to any modification). The returned state is either true/false (Matlab 7) or 'on'/'off' (Matlab 6).

A minor modification of this function will enable any interested user to enable/disable (rather than show/hide) the desktop.

Examples:
curState = setDesktopVisibility;
oldState = setDesktopVisibility('off'); % hide desktop window
oldState = setDesktopVisibility(result>0);
oldState = setDesktopVisibility(true); % restore visibility

Bugs and suggestions:
Please send to Yair Altman (altmany at gmail dot com)

Warning:
This code relies on undocumented and unsupported Matlab functionality. It works on Matlab 6+, but use at your own risk!

Cite As

Yair Altman (2020). setDesktopVisibility (https://www.mathworks.com/matlabcentral/fileexchange/16330-setdesktopvisibility), MATLAB Central File Exchange. Retrieved .

Comments and Ratings (5)

Jan

The number of code lines is really not the point, if they are working. We do not have to re-type the code, but can download it. Then down voting, because the code catches errors and handles different Matlab version is not smart.

Yair Altman

I think you're being overly harsh, ET: Your 2 lines are indeed the essence of my code, but they don't work on Matlab 6, nor return the current desktop state, nor allow 'on'/'off' inputs, nor handle errors like my code. Also, I have not seen any FEX submission nor newsgroup post on this issue so I believe there's both innovation and usefulness in this submission. Finally, considering the fact that the entire function is only 133 lines, half of them comments/explanations, saying there's "too much code" is a bit exaggerated, IMHO.

E T

h = com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame

E T

to much code...
can be implemented in 2 lines...

h = com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame.setVisible(0);pause(1);com.mathworks.mlservices.MatlabDesktopServices.getDesktop.getMainFrame

current status
>> h.isVisible

set new status
>> h.setVisible(0);pause(3);h.setVisible(1)
or
>> h.setEnable(0);pause(3);h.setEnable(1)

Marek Pijanowski

Great work.

MATLAB Release Compatibility
Created with R12
Compatible with any release
Platform Compatibility
Windows macOS Linux