Global Position of Docked Figures window

17 visualizaciones (últimos 30 días)
Thomas
Thomas el 12 de Nov. de 2014
Comentada: Thomas el 17 de Nov. de 2014
I am having difficulty accessing the global position of the docked "Figures" window. I have the units of the figures inside of the window set to pixels and when accessing the 'Position' property of one of those windows I get [1 1 L W], which means that it is somehow parented I guess (it is not at the bottom left of my monitors). However, there is no handle that I can find to the docked "Figures" window to access the global position. I am not sure if it makes a difference, but I have UI elements in each of the figures. Here's a really simple sample:
fig=figure
set(fig,'WindowStyle','docked')
get(fig,'Position')
The output no matter where the figures window is globally located is:
ans =
1 1 some_length some_width
Any help on this would be appreciated.

Respuesta aceptada

Orion
Orion el 13 de Nov. de 2014
Hi,
When you dock some figures, they go in the Figure Editor, which is not a classic matlab figure. This is a java component.
You can access it but it becomes messy (and dangerous) really fast.
you need to use code looking like :
% create a dock figure
fig = figure;
set(fig,'WindowStyle','docked')
get(fig,'Position')
% get the Figure editor
desktop = com.mathworks.mde.desk.MLDesktop.getInstance;
container = desktop.getGroupContainer('Figures').getTopLevelAncestor;
% get the dimensions
width = get(container.getSize,'width');
height = get(container.getSize,'height');
% get the origin
Location = get(container.getAccessibleContext,'Location');
Xorigin = get(Location,'X');
Yorigin = get(Location,'Y');
% display
disp([Xorigin Yorigin width height])
if you really need to manipulate this kind of element, take a look at undocumentedmatlab.com of Yair Altman.
  1 comentario
Thomas
Thomas el 17 de Nov. de 2014
Thank you. This works up until the Xorigin line, however, in the Location variable it has the 4 element array I'm looking for. Much appreciated.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Printing and Saving en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by