]> git.saurik.com Git - wxWidgets.git/commitdiff
added wxTaskBarIcon::Destroy()
authorVadim Zeitlin <vadim@wxwidgets.org>
Tue, 14 Aug 2007 22:43:39 +0000 (22:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Tue, 14 Aug 2007 22:43:39 +0000 (22:43 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48076 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

docs/changes.txt
docs/latex/wx/taskbar.tex
include/wx/taskbar.h
src/common/taskbarcmn.cpp

index 5760b9fd6c6e80893e6b0b93b38cc918aea4a5d8..b41e293e4f70aae089b3f626b04f4a930adc764e 100644 (file)
@@ -154,6 +154,7 @@ All (GUI):
 - Show standard options in wxCmdLineParser usage message (Francesco Montorsi).
 - Added wxRect::operator+ (union) and * (intersection) (bdonner).
 - Added support for two auxiliary mouse buttons to wxMouseEvent (Chris Weiland).
+- Added wxTaskBarIcon::Destroy()
 
 wxGTK:
 
index 125fb57333e84fb2a4fb0b5823cdd3e8c444df7d..073247e548c4810dd2e88100fdd484afe4cedb97 100644 (file)
@@ -63,18 +63,21 @@ current platform.}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxTaskBarIcon::wxTaskBarIcon}\label{wxtaskbariconctor}
 
 \func{}{wxTaskBarIcon}{\void}
 
 Default constructor.
 
+
 \membersection{wxTaskBarIcon::\destruct{wxTaskBarIcon}}\label{wxtaskbaricondtor}
 
 \func{}{\destruct{wxTaskBarIcon}}{\void}
 
 Destroys the wxTaskBarIcon object, removing the icon if not already removed.
 
+
 \membersection{wxTaskBarIcon::CreatePopupMenu}\label{wxtaskbariconcreatepopupmenu}
 
 \func{virtual wxMenu*}{CreatePopupMenu}{\void}
@@ -88,18 +91,31 @@ no menu is shown, otherwise the menu is
 displayed and then deleted by the library as soon as the user dismisses it.
 The events can be handled by a class derived from wxTaskBarIcon.
 
+
+\membersection{wxTaskBarIcon::Destroy}\label{wxtaskbaricondestroy}
+
+\func{void}{Destroy}{\void}
+
+This method is similar to \helpref{wxWindow::Destroy}{wxwindowdestroy} and can
+be used to schedule the task bar icon object for the delayed destruction: it
+will be deleted during the next event loop iteration, which allows the task bar
+icon to process any pending events for it before being destroyed.
+
+
 \membersection{wxTaskBarIcon::IsIconInstalled}\label{wxtaskbariconisiconinstalled}
 
 \func{bool}{IsIconInstalled}{\void}
 
 Returns true if \helpref{SetIcon}{wxtaskbariconseticon} was called with no subsequent \helpref{RemoveIcon}{wxtaskbariconremoveicon}.
 
+
 \membersection{wxTaskBarIcon::IsOk}\label{wxtaskbariconisok}
 
 \func{bool}{IsOk}{\void}
 
 Returns true if the object initialized successfully.
 
+
 \membersection{wxTaskBarIcon::PopupMenu}\label{wxtaskbariconpopupmenu}
 
 \func{bool}{PopupMenu}{\param{wxMenu*}{ menu}}
@@ -114,12 +130,14 @@ It is recommended to override
 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.
 
+
 \membersection{wxTaskBarIcon::RemoveIcon}\label{wxtaskbariconremoveicon}
 
 \func{bool}{RemoveIcon}{\void}
 
 Removes the icon previously set with \helpref{SetIcon}{wxtaskbariconseticon}.
 
+
 \membersection{wxTaskBarIcon::SetIcon}\label{wxtaskbariconseticon}
 
 \func{bool}{SetIcon}{\param{const wxIcon\&}{ icon}, \param{const wxString\& }{tooltip}}
index ab10e8b5fe393b7562a386ac478669d1041e3652..6925331730da0ea1e8123547b3bdd7dac0dc02fc 100644 (file)
@@ -35,6 +35,9 @@ public:
     virtual bool RemoveIcon() = 0;
     virtual bool PopupMenu(wxMenu *menu) = 0;
 
+    // delayed destruction (similarly to wxWindow::Destroy())
+    void Destroy();
+
 protected:
     // creates menu to be displayed when user clicks on the icon
     virtual wxMenu *CreatePopupMenu() { return NULL; }
index 29f39c23ee4357d95b20ec850ce782473a1beadb..540dddaad95ab9b9ed87e767cc2e946bdfdd02fe 100644 (file)
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
+    #include "wx/list.h"
     #include "wx/menu.h"
 #endif
 
+extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete;
+
 // DLL options compatibility check:
 WX_CHECK_BUILD_OPTIONS("wxAdvanced")
 
@@ -51,4 +54,9 @@ void wxTaskBarIconBase::OnRightButtonDown(wxTaskBarIconEvent& WXUNUSED(event))
     }
 }
 
+void wxTaskBarIconBase::Destroy()
+{
+    wxPendingDelete.Append(this);
+}
+
 #endif // wxUSE_TASKBARICON