]> 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).
 - 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:
 
 
 wxGTK:
 
index 125fb57333e84fb2a4fb0b5823cdd3e8c444df7d..073247e548c4810dd2e88100fdd484afe4cedb97 100644 (file)
@@ -63,18 +63,21 @@ current platform.}
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
 
 \latexignore{\rtfignore{\wxheading{Members}}}
 
+
 \membersection{wxTaskBarIcon::wxTaskBarIcon}\label{wxtaskbariconctor}
 
 \func{}{wxTaskBarIcon}{\void}
 
 Default constructor.
 
 \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::\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}
 \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.
 
 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::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::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}}
 \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.
 
 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::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}}
 \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;
 
     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; }
 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"
 
 #ifndef WX_PRECOMP
     #include "wx/app.h"
+    #include "wx/list.h"
     #include "wx/menu.h"
 #endif
 
     #include "wx/menu.h"
 #endif
 
+extern WXDLLIMPEXP_DATA_CORE(wxList) wxPendingDelete;
+
 // DLL options compatibility check:
 WX_CHECK_BUILD_OPTIONS("wxAdvanced")
 
 // 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
 #endif // wxUSE_TASKBARICON