Code covered by the BSD License  

Highlights from
enable/disable figure

4.66667

4.7 | 7 ratings Rate this file 19 Downloads (last 30 days) File Size: 3.33 KB File ID: #15895

enable/disable figure

by Yair Altman

 

10 Aug 2007 (Updated 13 Oct 2011)

enable/disable an entire figure window

| Watch this File

File Information
Description

Syntax:
  currentState = enableDisableFig(hFig, newState)
 

Description:
enableDisableFig sets the figure hFig's enable/disable state, which is otherwise supported by Matlab only for specific components but not figures. Using this function, the entire figure window, including all internal menus, toolbars and components, is enabled/disabled in a single call. Valid values for newState are true, false, 'on' & 'off' (case insensitive). hFig may be a list of figure handles.
 
Note 1: when the state is enabled, internal figure components may remain disabled if their personal 'enabled' property is 'off'.
 
Note 2: in disabled state, a figure cannot be moved, resized, closed or accessed. None of its menues, toolbars, buttons etc. are clickable.
 
enableDisableFig(newState) sets the state of the current figure (gcf).
 
state = enableDisableFig(hFig) returns the current enabled/disabled state of figure hFig, or of the current figure (gcf) if hFig is not supplied. The returned state is either 'on' or 'off'.

 
Examples:
  state = enableDisableFig;
  state = enableDisableFig(hFig);
  oldState = enableDisableFig(hFig, 'on');
  oldState = enableDisableFig(hFig, result>0);
  oldState = enableDisableFig(true); % on current figure
 

Technical description:
    http://UndocumentedMatlab.com/blog/disable-entire-figure-window

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

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

Acknowledgements

The author wishes to acknowledge the following in the creation of this submission:
FindJObj - find java handles of Matlab graphic objects, GetJFrame - Retrieves a figure's underlying Java frame
This submission has inspired the following:
blurFigure - blurs and prevents interaction on a figure window

MATLAB release MATLAB 7.4 (R2007a)
Other requirements Java
Tags for This File  
Everyone's Tags
Tags I've Applied
Add New Tags Please login to tag files.
Comments and Ratings (10)
21 Jul 2008 norm thing

Thank you for this code! Works wonderfull on 2008a!

30 Sep 2008 Cat H

Does exactly what it says on the tin! I'm using it to prevent the user being able to create phantom waitbars by pressing the close button.

Many thanks!

24 Aug 2009 Cem

Yair,
     Thank you. It worked like a charm.

28 Feb 2011 Malcolm Lidierth

Excellent as always Yair.
Some users might like to complement this with altering figure opacity for a disabled figure. My own MUtilities support that
e.g.
>>MUtilities.setFigureOpacity(hFig,.5);
http://www.mathworks.com/matlabcentral/fileexchange/28326-mutilities

24 Jul 2011 Igor

Thanks! Exactly what i was looking for!

26 Sep 2011 Igor

Uh-Oh...
It fails on R2011b
======================================
Error using enableDisableFig>getJFrame (line 173)
Cannot retrieve figure's java frame

Error in enableDisableFig>getJFrame (line 173)
      error('Cannot retrieve figure''s java frame');

Error in enableDisableFig (line 77)
          jff = getJFrame(hFig(figIdx));
======================================
any chance to get it working again?

13 Oct 2011 Yair Altman

@Igor - I uploaded a fix for R2011b. It should be available here shortly (maybe tomorrow)

17 Oct 2011 Igor

@Yair Altman
Thanks, it works!

02 Jan 2012 Claudio  
02 Jan 2012 Claudio

It fails on my machine: Mac OSX Lion 10.7.2 with R2011b. The error is:

----
Error using enableDisableFig>getJFrame (line 181)
Cannot retrieve figure's java frame

Error in enableDisableFig>getJFrame (line 181)
      error('Cannot retrieve figure''s java frame');

Error in enableDisableFig (line 81)
          jff = getJFrame(hFig(figIdx));
---

Please login to add a comment or rating.
Updates
18 Feb 2011

Removed warning messages that appeared in modern Matlab releases

13 Oct 2011

Fix for R2011b; fixed description

Tag Activity for this File
Tag Applied By Date/Time
gui tools Yair Altman 22 Oct 2008 09:22:46
example Yair Altman 22 Oct 2008 09:22:46
enable disable figure java Yair Altman 22 Oct 2008 09:22:46

Contact us at files@mathworks.com