]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/taskbar.cpp
indicate whether this is a selection or a deselection in wxCommandEvent generated...
[wxWidgets.git] / src / msw / taskbar.cpp
index fa2ae4311161dffc0a69850c6ffbbb29816178a6..6be5dd0428a38ef9471ed34f0c02134099222a23 100644 (file)
     #include <shellapi.h>
 #endif
 
     #include <shellapi.h>
 #endif
 
+#include "wx/listimpl.cpp"
+WX_DEFINE_LIST(wxTaskBarIconList);
+
 LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
                                      UINT wParam, LONG lParam );
 
 LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
                                      UINT wParam, LONG lParam );
 
-wxChar *wxTaskBarWindowClass = wxT("wxTaskBarWindowClass");
+wxChar *wxTaskBarWindowClass = (wxChar*) wxT("wxTaskBarWindowClass");
 
 
-wxList wxTaskBarIcon::sm_taskBarIcons;
+wxTaskBarIconList wxTaskBarIcon::sm_taskBarIcons;
 bool   wxTaskBarIcon::sm_registeredClass = FALSE;
 UINT   wxTaskBarIcon::sm_taskbarMsg = 0;
 
 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 )
 
 BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler)
     EVT_TASKBAR_MOVE         (wxTaskBarIcon::_OnMouseMove)
 
 BEGIN_EVENT_TABLE(wxTaskBarIcon, wxEvtHandler)
     EVT_TASKBAR_MOVE         (wxTaskBarIcon::_OnMouseMove)
@@ -76,7 +86,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxTaskBarIcon, wxEvtHandler)
 wxTaskBarIcon::wxTaskBarIcon(void)
 {
     m_hWnd = 0;
 wxTaskBarIcon::wxTaskBarIcon(void)
 {
     m_hWnd = 0;
-    m_iconAdded = FALSE;
+    m_iconAdded = false;
 
     AddObject(this);
 
 
     AddObject(this);
 
@@ -104,7 +114,7 @@ wxTaskBarIcon::~wxTaskBarIcon(void)
 bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
 {
     if (!IsOK())
 bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
 {
     if (!IsOK())
-        return FALSE;
+        return false;
 
     NOTIFYICONDATA notifyData;
 
 
     NOTIFYICONDATA notifyData;
 
@@ -139,7 +149,7 @@ bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip)
 bool wxTaskBarIcon::RemoveIcon(void)
 {
     if (!m_iconAdded)
 bool wxTaskBarIcon::RemoveIcon(void)
 {
     if (!m_iconAdded)
-        return FALSE;
+        return false;
 
     NOTIFYICONDATA notifyData;
 
 
     NOTIFYICONDATA notifyData;
 
@@ -150,7 +160,7 @@ bool wxTaskBarIcon::RemoveIcon(void)
         notifyData.uFlags = NIF_MESSAGE;
         notifyData.hIcon = 0 ; // hIcon;
     notifyData.uID = 99;
         notifyData.uFlags = NIF_MESSAGE;
         notifyData.hIcon = 0 ; // hIcon;
     notifyData.uID = 99;
-    m_iconAdded = FALSE;
+    m_iconAdded = false;
 
     return (Shell_NotifyIcon(NIM_DELETE, & notifyData) != 0);
 }
 
     return (Shell_NotifyIcon(NIM_DELETE, & notifyData) != 0);
 }
@@ -160,20 +170,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.
 
     // 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)
 
     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???
     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
     win->PushEventHandler(this);
 
     // Remove from record of top-level windows, or will confuse wxWindows
@@ -190,11 +200,11 @@ bool wxTaskBarIcon::PopupMenu(wxMenu *menu) //, int x, int y);
     // Work around a WIN32 bug
     ::PostMessage ((HWND) win->GetHWND(),WM_NULL,0,0L);
 
     // Work around a WIN32 bug
     ::PostMessage ((HWND) win->GetHWND(),WM_NULL,0,0L);
 
-    win->PopEventHandler(FALSE);
+    win->PopEventHandler(false);
     win->Destroy();
     delete win;
 
     win->Destroy();
     delete win;
 
-    s_inPopup = FALSE;
+    s_inPopup = false;
 
     return rval;
 }
 
     return rval;
 }
@@ -240,13 +250,13 @@ void wxTaskBarIcon::_OnRButtonDClick(wxEvent& e)  { OnRButtonDClick(e); }
 
 wxTaskBarIcon* wxTaskBarIcon::FindObjectForHWND(WXHWND hWnd)
 {
 
 wxTaskBarIcon* wxTaskBarIcon::FindObjectForHWND(WXHWND hWnd)
 {
-    wxNode*node = sm_taskBarIcons.First();
+    wxTaskBarIconList::Node *node = sm_taskBarIcons.GetFirst();
     while (node)
     {
     while (node)
     {
-        wxTaskBarIcon* obj = (wxTaskBarIcon*) node->Data();
+        wxTaskBarIcon *obj = node->GetData();
         if (obj->GetHWND() == hWnd)
             return obj;
         if (obj->GetHWND() == hWnd)
             return obj;
-        node = node->Next();
+        node = node->GetNext();
     }
     return NULL;
 }
     }
     return NULL;
 }
@@ -264,7 +274,7 @@ void wxTaskBarIcon::RemoveObject(wxTaskBarIcon* obj)
 bool wxTaskBarIcon::RegisterWindowClass()
 {
     if (sm_registeredClass)
 bool wxTaskBarIcon::RegisterWindowClass()
 {
     if (sm_registeredClass)
-        return TRUE;
+        return true;
 
     // Also register the taskbar message here
     sm_taskbarMsg = ::RegisterWindowMessage(wxT("wxTaskBarIconMessage"));
 
     // Also register the taskbar message here
     sm_taskbarMsg = ::RegisterWindowMessage(wxT("wxTaskBarIconMessage"));
@@ -365,7 +375,7 @@ long wxTaskBarIcon::WindowProc( WXHWND hWnd, unsigned int msg, unsigned int wPar
 LRESULT APIENTRY _EXPORT wxTaskBarIconWindowProc( HWND hWnd, unsigned msg,
                                      UINT wParam, LONG lParam )
 {
 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
     if (obj)
         return obj->WindowProc((WXHWND) hWnd, msg, wParam, lParam);
     else