#include "wx/wx.h"
 #endif
 
+// the application icon (under Windows and OS/2 it is in resources)
+#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__)
+    #include "mondrian.xpm"
+#endif
+
 #include "wx/taskbar.h"
 #include "tbtest.h"
 
 
 bool MyApp::OnInit(void)
 {
-    wxIcon icon(wxT("mondrian_icon"));
-
-    if (!m_taskBarIcon.SetIcon(icon, wxT("wxTaskBarIcon Sample")))
+    if (!m_taskBarIcon.SetIcon(wxICON(mondrian), wxT("wxTaskBarIcon Sample")))
         wxMessageBox(wxT("Could not set icon."));
 
     // Create the main frame window
     EVT_MENU(PU_RESTORE, MyTaskBarIcon::OnMenuRestore)
     EVT_MENU(PU_EXIT,    MyTaskBarIcon::OnMenuExit)
     EVT_MENU(PU_NEW_ICON,MyTaskBarIcon::OnMenuSetNewIcon)
+    EVT_TASKBAR_RIGHT_UP     (MyTaskBarIcon::OnRButtonUp)
+    EVT_TASKBAR_LEFT_DCLICK  (MyTaskBarIcon::OnLButtonDClick)
 END_EVENT_TABLE()
 
 void MyTaskBarIcon::OnMenuRestore(wxCommandEvent& )
 }
 
 // Overridables
-void MyTaskBarIcon::OnMouseMove(wxEvent&)
-{
-}
-
-void MyTaskBarIcon::OnLButtonDown(wxEvent&)
-{
-}
-
-void MyTaskBarIcon::OnLButtonUp(wxEvent&)
-{
-}
-
-void MyTaskBarIcon::OnRButtonDown(wxEvent&)
-{
-}
-
 void MyTaskBarIcon::OnRButtonUp(wxEvent&)
 {
     wxMenu      menu;
     dialog->Show(TRUE);
 }
 
-void MyTaskBarIcon::OnRButtonDClick(wxEvent&)
-{
-}
-
 
 
 
 
 public:
     MyTaskBarIcon() {};
 
-    virtual void OnMouseMove(wxEvent&);
-    virtual void OnLButtonDown(wxEvent&);
-    virtual void OnLButtonUp(wxEvent&);
-    virtual void OnRButtonDown(wxEvent&);
-    virtual void OnRButtonUp(wxEvent&);
-    virtual void OnLButtonDClick(wxEvent&);
-    virtual void OnRButtonDClick(wxEvent&);
-
+    void OnRButtonUp(wxEvent&);
+    void OnLButtonDClick(wxEvent&);
     void OnMenuRestore(wxCommandEvent&);
     void OnMenuExit(wxCommandEvent&);
     void OnMenuSetNewIcon(wxCommandEvent&);