+// ============================================================================
+// implementation
+// ============================================================================
+
+// ----------------------------------------------------------------------------
+// wxTaskBarIconWindow: helper window
+// ----------------------------------------------------------------------------
+
+// NB: this class serves two purposes:
+// 1. win32 needs a HWND associated with taskbar icon, this provides it
+// 2. we need wxTopLevelWindow so that the app doesn't exit when
+// last frame is closed but there still is a taskbar icon
+class wxTaskBarIconWindow : public wxFrame
+{
+public:
+ wxTaskBarIconWindow(wxTaskBarIcon *icon)
+ : wxFrame(NULL, -1, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0),
+ m_icon(icon)
+ {
+ }
+
+ WXLRESULT MSWWindowProc(WXUINT msg,
+ WXWPARAM wParam, WXLPARAM lParam)
+ {
+ if (msg == gs_msgRestartTaskbar || msg == gs_msgTaskbar)
+ {
+ return m_icon->WindowProc(msg, wParam, lParam);
+ }
+ else
+ {
+ return wxFrame::MSWWindowProc(msg, wParam, lParam);
+ }
+ }
+
+private:
+ wxTaskBarIcon *m_icon;
+};