Merge branch 'taskbar-icon-get-menu'
Add wxTaskBarIcon::GetPopupMenu() allowing to avoid recreating the menu every time. See https://github.com/wxWidgets/wxWidgets/pull/2020
This commit is contained in:
@@ -62,8 +62,9 @@ public:
|
||||
|
||||
@beginEventEmissionTable{wxTaskBarIconEvent}
|
||||
Note that not all ports are required to send these events and so it's better
|
||||
to override wxTaskBarIcon::CreatePopupMenu() if all that the application does
|
||||
is that it shows a popup menu in reaction to mouse click.
|
||||
to override wxTaskBarIcon::CreatePopupMenu() or wxTaskBarIcon::GetPopupMenu()
|
||||
if all that the application does is that it shows a popup menu in reaction to
|
||||
mouse click.
|
||||
@event{EVT_TASKBAR_MOVE(func)}
|
||||
Process a @c wxEVT_TASKBAR_MOVE event.
|
||||
@event{EVT_TASKBAR_LEFT_DOWN(func)}
|
||||
@@ -123,9 +124,10 @@ public:
|
||||
The events can be handled by a class derived from wxTaskBarIcon.
|
||||
|
||||
@note
|
||||
It is recommended to override CreatePopupMenu() callback instead of
|
||||
calling this method from event handler, because some ports (e.g. wxCocoa)
|
||||
may not implement PopupMenu() and mouse click events at all.
|
||||
It is recommended to override the CreatePopupMenu() or GetPopupMenu()
|
||||
callback instead of calling this method from event handler, because some
|
||||
ports (e.g. wxCocoa) may not implement PopupMenu() and mouse click events
|
||||
at all.
|
||||
*/
|
||||
virtual bool PopupMenu(wxMenu* menu);
|
||||
|
||||
@@ -166,17 +168,37 @@ public:
|
||||
protected:
|
||||
|
||||
/**
|
||||
This method is called by the library when the user requests popup menu
|
||||
(on Windows and Unix platforms, this is when the user right-clicks the icon).
|
||||
Called by the library when the user requests popup menu if
|
||||
GetPopupMenu() is not overridden.
|
||||
|
||||
Override this function in order to provide popup menu associated with the icon.
|
||||
If CreatePopupMenu() returns @NULL (this happens by default), no menu is shown,
|
||||
otherwise the menu is displayed and then deleted by the library as soon as the
|
||||
user dismisses it.
|
||||
Override this function in order to provide popup menu associated with
|
||||
the icon if you don't want to override GetPopupMenu(), i.e. if you
|
||||
prefer creating a new menu every time instead of reusing the same menu.
|
||||
|
||||
The events can be handled by a class derived from wxTaskBarIcon.
|
||||
If CreatePopupMenu() returns @NULL (this happens by default), no menu
|
||||
is shown, otherwise the menu is displayed and then deleted by the
|
||||
library as soon as the user dismisses it. If you don't want the menu to
|
||||
be destroyed when it is dismissed, override GetPopupMenu() instead.
|
||||
*/
|
||||
virtual wxMenu* CreatePopupMenu();
|
||||
|
||||
/**
|
||||
Called by the library when the user requests popup menu.
|
||||
|
||||
On Windows and Unix platforms this happens when the user right-clicks
|
||||
the icon, so overriding this method is the simplest way to implement
|
||||
the standard behaviour of showing a menu when the taskbar icon is
|
||||
clicked.
|
||||
|
||||
If GetPopupMenu() returns @NULL (this happens by default),
|
||||
CreatePopupMenu() is called next and its menu is used (if non-@NULL).
|
||||
Otherwise the menu returned by GetPopupMenu() is shown and, contrary to
|
||||
CreatePopupMenu(), not destroyed when the user dismisses it, allowing
|
||||
to reuse the same menu pointer multiple times.
|
||||
|
||||
@since 3.1.5
|
||||
*/
|
||||
virtual wxMenu* GetPopupMenu();
|
||||
};
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user