View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

5.0 | 6 ratings Rate this file 24 Downloads (last 30 days) File Size: 31.1 KB File ID: #16650 Version: 1.4
image thumbnail



Yair Altman (view profile)


29 Sep 2007 (Updated )

Sets a figure's docking group container

| Watch this File

File Information

setFigDockGroup sets a figure's (or list of figures') docking group container, enabling to dock figures to containers other than the default 'Figures' container (for example, to the 'Editor' group as shown in the screenshot, or to any new user-defined group, or even to another figure's button).
   hGroup = setFigDockGroup(hFig, group)
   hButton = setFigDockGroup(hFig, hButton)
   hFig is an optional handle or list of handles. These are normally figure handles, but not necessarily: the handles' containing figures are automatically inferred and used. If hFig is not supplied, then the current figure handle (gcf) is assumed.
   group is either a group name (e.g., 'Editor', 'Figures', 'my group') or a group handle returned from a previous setFigDockGroup function call.
   hButton is the handle of a uicontrol pushbutton on another figure. This button would typically be labeled "undock" or have an undocking icon. Note that the docked figure will be minimized to the target hButton - you will NOT be able to see the docked figure's contents in the target figure, only to undock it via the button. Docking into a figure panel will perhaps be added in some future version.
   The returned hGroupContainer object allows access to many useful properties and callbacks. Type "get(hGroupContainer)" to see the full list. Note that hGroupContainer may return empty ([]) if the group container is not visible.
See extended help within.
   This code heavily relies on undocumented and unsupported Matlab functionality. It works on Matlab 7.4+, but use at your own risk!
Bugs and suggestions:
   Please send to Yair Altman (altmany at gmail dot com)


This file inspired Dock And Undock Figures Into Groups.

MATLAB release MATLAB 7.4 (R2007a)
MATLAB Search Path
Other requirements Java
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (13)
10 Feb 2017 Jim Hokanson

Jim Hokanson (view profile)

Hi Yair,

A few things. On 2016b, I needed to comment out setting the userdata for the container, similar to Ian's message. I am also a bit confused by the usage, since it seems like the function just associates the docking group and doesn't actually dock the figure. Commenting out setting the oldStyle fixes this (line 182?). This is fine and could be fixed with an optional input, but it seems to contradict the documentation.


07 Dec 2016 Ian Phillips

Hi Yair,
If I use: set(0,'DefaultFigureWindowStyle','docked')

hFig1 = figure('Name','One');
hGroupContainer = setFigDockGroup(hFig1, 'myFigGroup');

I get the following error:
setFigDockGroup: Error using set
The name 'userdata' is not an accessible property for an instance of class

Error in setFigDockGroup (line 196)

Error in test_setFigDockGroup (line 14)
hGroupContainer = setFigDockGroup(hFig1, 'myFigGroup');

If I use:

hFig1 = figure('Name','One');
hGroupContainer = setFigDockGroup(hFig1, 'myFigGroup');

Everything works ok. Is this a know issue?
I am using Matlab 2016a.

thanks for your help.

Comment only
22 May 2016 Yair Altman

Yair Altman (view profile)

@Jochen - the hGroupContainer returns empty ([]) if the group container is not visible.

Comment only
06 May 2016 Clemens Nyffeler

21 Dec 2015 Jochen

Jochen (view profile)

Dear Yair,
thanks for all your effort. I am successfully using multiple of your other submissions, but can't get this one to work on (R2015b).

hFig = figure('Name','One');
hGroupContainer = setFigDockGroup(hFig,'My App')

Returns an empty hGroupContainer, i.e. [].

Your generous help is greatly appreciated.

Comment only
14 May 2014 Thomas

Thomas (view profile)

Error in version R2014a.

line192: set(hContainer,'userdata',group);

throws error:

The name 'userdata' is not an accessible property for an instance of class 'com.mathworks.widgets.desk.DTDocumentContainer'.

Comment only
28 Feb 2014 Clemens Nyffeler

This function is awesome!

Apparently the dock group window remembers its last layout (i.e. how many tiles it has and where they are located).
Is it possible to control which tile a given figure goes into?

Comment only
07 Jul 2013 Yair Altman

Yair Altman (view profile)

Jonathan - yes, this utility can indeed be used in deployed apps. If you need consulting help regarding docking, or Matlab in general, please contact me offline (altmany at gmail).

Comment only
07 Jul 2013 Jonathan Lister

Can this be used in deployed applications?

Comment only
25 Jun 2012 Brian B

This is exactly what I was searching for!

Feature requests:

1) add functionality to close these docked group windows groups! ('close all' doesn't do the trick, as the group container remains)

2) keep the grouped windows from populating Matlab's Desktop menu list (The drop down alongside File | Edit | Debug |... ). It seems to include every single grouped window I create :(

24 Jan 2010 almog shalom

Very nice!
Another useful function by Yair Altman.
On R2009a, JavaFrame still works, and I guess that when it won't work, there will be a replacement (I'm sure that Y. Altman will find it even it will be undocumented ;) )

14 Sep 2008 jun ziyang

Very Usefull!
But the figure JavaFrame property will be obsoleted after R2008a. Hope there is a way around.

06 Oct 2007 Dan Haeg

Great function.

23 May 2010 1.1

Enabled docking to a figure button (minimized), and undocking back from that figure button.

13 Oct 2011 1.2

Fix for R2011a

19 Nov 2012 1.3

Fixes for Macs

22 May 2016 1.4

Removed annoying warnings about possible future features removal (yes, we know...)

Contact us