File Exchange

image thumbnail

setDesktopVisibilit​y

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

2 Downloads

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!

Comments and Ratings (5)

Jan

Jan (view profile)

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

Discover Live Editor

Create scripts with code, output, and formatted text in a single executable document.


Learn About Live Editor