hggroup of text() objects and contextmenu

2 次查看(过去 30 天)
-------------------------------------
THE SITUATION
-------------------------------------
I am creating text labels
h = text([.5 1],[.5 .5],{'hi','hello'});
plotedit on
which individually have a contextmenu that allow to change their text properties, e.g. try to right-click and change Font...
However, I'd like to keep the same contextmenu for a hggroup() of text() objects.
hg = hggroup;
set(h,'Parent',hg)
The text properties are not reachable from the context menu associated to hggroup().
-------------------------------------
THE QUESTION
-------------------------------------
Is there a way to have a contextmenu for the hggroup object with the menus for the text properties without recreating it manually with all the callbacks? For instance, scatter() creates such a contextmenu
figure
load seamount
scatter(x,y,5)
plotedit on
you can right click and change some properties of all children of the hggroup.
I have the feeling the solution already exists but it's undocumented and well hidden.
I've been looking into $MATLABROOT\toolbox\matlab\specgraph, graph2d, graphics to no avail.
I suspect that the various schemas might play a role, i.e. what if I define a schema for text()?
PS. Let me know if I didn't express myself clearly.
  6 个评论
Oleg Komarov
Oleg Komarov 2012-9-10
I quickly tested it and I like so far the behavior. I will play with it a bit longer to see if the solution satisfies my objectives (which are still not completely determined).
Oleg Komarov
Oleg Komarov 2012-10-5
At the end I did not find a way around, and recreating the whole contextmenu takes quite some time (which is what I wanted to avoid).

请先登录,再进行评论。

回答(1 个)

Yair Altman
Yair Altman 2013-1-7
Oleg, you can simply reuse the localGetNonScribeScribeContextMenu() subfunction in %matlabroot/toolbox/matlab/graph2d/private/plotSelectMode.m. It is called by localWindowButtonDownFcn() in that same file whenever you right-click an object in plot-selection mode.
Whenever you right click an object in this mode, the standard scribe context-menu (which include all the text items that you need) is recreated and added to the bottom of the object's existing context-menu (if available).
So you can simply cut all the red tape and reuse the localGetNonScribeScribeContextMenu() code directly when you create the initial context-menu.
  1 个评论
Jan
Jan 2013-1-7
Due to the name "localGetNonScribeScribeContextMenu" I would not use the term "simply" here ;-)

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by