]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/taskbar.cpp
Add tests for XShape extension API in configure,
[wxWidgets.git] / src / msw / taskbar.cpp
index f17654653b489ab34025c4b1198685702aa31f7b..da4ab58764ea18e4179e26338b6674c6c4582295 100644 (file)
@@ -36,7 +36,7 @@
 #include "wx/msw/winundef.h"
 
 #include <string.h>
-#include "wx/msw/taskbar.h"
+#include "wx/taskbar.h"
 #include "wx/msw/private.h"
 
 #ifndef __TWIN32__
     #include <shellapi.h>
 #endif
 
+#include "wx/listimpl.cpp"
+WX_DEFINE_LIST(wxTaskBarIconList);
+
 LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
                                      UINT wParam, LONG lParam );
 
 wxChar *wxTaskBarWindowClass = (wxChar*) wxT("wxTaskBarWindowClass");
 
-wxList wxTaskBarIcon::sm_taskBarIcons;
+wxTaskBarIconList wxTaskBarIcon::sm_taskBarIcons;
 bool   wxTaskBarIcon::sm_registeredClass = FALSE;
 UINT   wxTaskBarIcon::sm_taskbarMsg = 0;
 
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_MOVE )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DOWN )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_UP )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DOWN )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_UP )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_LEFT_DCLICK )
-DEFINE_EVENT_TYPE( wxEVT_TASKBAR_RIGHT_DCLICK )
-
+#if WXWIN_COMPATIBILITY_2_4
 BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler)
     EVT_TASKBAR_MOVE         (wxTaskBarIcon::_OnMouseMove)
     EVT_TASKBAR_LEFT_DOWN    (wxTaskBarIcon::_OnLButtonDown)
@@ -75,6 +71,7 @@ BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler)
     EVT_TASKBAR_LEFT_DCLICK  (wxTaskBarIcon::_OnLButtonDClick)
     EVT_TASKBAR_RIGHT_DCLICK (wxTaskBarIcon::_OnRButtonDClick)
 END_EVENT_TABLE()
+#endif
 
 
 IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler)
@@ -83,7 +80,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler)
 wxTaskBarIcon::wxTaskBarIcon(void)
 {
     m_hWnd = 0;
-    m_iconAdded = FALSE;
+    m_iconAdded = false;
 
     AddObject(this);
 
@@ -110,8 +107,8 @@ wxTaskBarIcon::~wxTaskBarIcon(void)
 // Operations
 bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
 {
-    if (!IsOK())
-        return FALSE;
+    if (!IsOk())
+        return false;
 
     NOTIFYICONDATA notifyData;
 
@@ -146,7 +143,7 @@ bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
 bool wxTaskBarIcon::RemoveIcon(void)
 {
     if (!m_iconAdded)
-        return FALSE;
+        return false;
 
     NOTIFYICONDATA notifyData;
 
@@ -157,7 +154,7 @@ bool wxTaskBarIcon::RemoveIcon(void)
         notifyData.uFlags = NIF_MESSAGE;
         notifyData.hIcon = 0 ; // hIcon;
     notifyData.uID = 99;
-    m_iconAdded = FALSE;
+    m_iconAdded = false;
 
     return (Shell_NotifyIcon(NIM_DELETE, & notifyData) != 0);
 }
@@ -167,20 +164,20 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y);
     // OK, so I know this isn't thread-friendly, but
     // what to do? We need this check.
 
-    static bool s_inPopup = FALSE;
+    static bool s_inPopup = false;
 
     if (s_inPopup)
-        return FALSE;
+        return false;
 
-    s_inPopup = TRUE;
+    s_inPopup = true;
 
-    bool        rval = FALSE;
+    bool        rval = false;
     wxWindow*   win;
     int         x, y;
     wxGetMousePosition(&x, &y);
 
     // is wxFrame the best window type to use???
-    win = new wxFrame(NULL, -1, "", wxPoint(x,y), wxSize(-1,-1), 0);
+    win = new wxFrame(NULL, -1, wxEmptyString, wxPoint(x,y), wxSize(-1,-1), 0);
     win->PushEventHandler(this);
 
     // Remove from record of top-level windows, or will confuse wxWindows
@@ -197,44 +194,24 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y);
     // Work around a WIN32 bug
     ::PostMessage ((HWND) win->GetHWND(),WM_NULL,0,0L);
 
-    win->PopEventHandler(FALSE);
+    win->PopEventHandler(false);
     win->Destroy();
     delete win;
 
-    s_inPopup = FALSE;
+    s_inPopup = false;
 
     return rval;
 }
 
-
+#if WXWIN_COMPATIBILITY_2_4
 // Overridables
-void wxTaskBarIcon::OnMouseMove(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnLButtonDown(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnLButtonUp(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnRButtonDown(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnRButtonUp(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnLButtonDClick(wxEvent&)
-{
-}
-
-void wxTaskBarIcon::OnRButtonDClick(wxEvent&)
-{
-}
+void wxTaskBarIcon::OnMouseMove(wxEvent&)         {}
+void wxTaskBarIcon::OnLButtonDown(wxEvent&)       {}
+void wxTaskBarIcon::OnLButtonUp(wxEvent&)         {}
+void wxTaskBarIcon::OnRButtonDown(wxEvent&)       {}
+void wxTaskBarIcon::OnRButtonUp(wxEvent&)         {}
+void wxTaskBarIcon::OnLButtonDClick(wxEvent&)     {}
+void wxTaskBarIcon::OnRButtonDClick(wxEvent&)     {}
 
 void wxTaskBarIcon::_OnMouseMove(wxEvent& e)      { OnMouseMove(e);     }
 void wxTaskBarIcon::_OnLButtonDown(wxEvent& e)    { OnLButtonDown(e);   }
@@ -243,17 +220,17 @@ void wxTaskBarIcon::_OnRButtonDown(wxEvent& e)    { OnRButtonDown(e);   }
 void wxTaskBarIcon::_OnRButtonUp(wxEvent& e)      { OnRButtonUp(e);     }
 void wxTaskBarIcon::_OnLButtonDClick(wxEvent& e)  { OnLButtonDClick(e); }
 void wxTaskBarIcon::_OnRButtonDClick(wxEvent& e)  { OnRButtonDClick(e); }
-
+#endif
 
 wxTaskBarIcon* wxTaskBarIcon::FindObjectForHWND(WXHWND hWnd)
 {
-    wxNode*node = sm_taskBarIcons.First();
+    wxTaskBarIconList::Node *node = sm_taskBarIcons.GetFirst();
     while (node)
     {
-        wxTaskBarIcon* obj = (wxTaskBarIcon*) node->Data();
+        wxTaskBarIcon *obj = node->GetData();
         if (obj->GetHWND() == hWnd)
             return obj;
-        node = node->Next();
+        node = node->GetNext();
     }
     return NULL;
 }
@@ -271,7 +248,7 @@ void wxTaskBarIcon::RemoveObject(wxTaskBarIcon* obj)
 bool wxTaskBarIcon::RegisterWindowClass()
 {
     if (sm_registeredClass)
-        return TRUE;
+        return true;
 
     // Also register the taskbar message here
     sm_taskbarMsg = ::RegisterWindowMessage(wxT("wxTaskBarIconMessage"));
@@ -372,7 +349,7 @@ long wxTaskBarIcon::WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wPar
 LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
                                      UINT wParam, LONG lParam )
 {
-    wxTaskBarIconobj = wxTaskBarIcon::FindObjectForHWND((WXHWND) hWnd);
+    wxTaskBarIcon *obj = wxTaskBarIcon::FindObjectForHWND((WXHWND) hWnd);
     if (obj)
         return obj->WindowProc((WXHWND) hWnd, msg, wParam, lParam);
     else