X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/95fd7c35e06b07df649e8ae3e9a89eb0b2dff424..cc59d9396317abec50b184cdfc8fd0bab0058d82:/src/unix/taskbarx11.cpp diff --git a/src/unix/taskbarx11.cpp b/src/unix/taskbarx11.cpp index b95729d16c..10373179fb 100644 --- a/src/unix/taskbarx11.cpp +++ b/src/unix/taskbarx11.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// File: taskbar.cpp +// File: src/unix/taskbarx11.cpp // Purpose: wxTaskBarIcon class for common Unix desktops // Author: Vaclav Slavik // Modified by: @@ -9,10 +9,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "taskbarx11.h" -#endif - // NB: This implementation does *not* work with every X11 window manager. // Currently only GNOME 1.2 and KDE 1,2,3 methods are implemented here. // Freedesktop.org's System Tray specification is implemented in @@ -88,7 +84,7 @@ #error "You must define X11 accessors for this port!" #endif - + // ---------------------------------------------------------------------------- // wxTaskBarIconArea is the real window that shows the icon: // ---------------------------------------------------------------------------- @@ -99,10 +95,10 @@ public: wxTaskBarIconArea(wxTaskBarIcon *icon, const wxBitmap &bmp); void SetTrayIcon(const wxBitmap& bmp); bool IsOk() { return true; } - + protected: void SetLegacyWMProperties(); - + void OnSizeChange(wxSizeEvent& event); void OnPaint(wxPaintEvent& evt); void OnMouseEvent(wxMouseEvent& event); @@ -111,7 +107,7 @@ protected: wxTaskBarIcon *m_icon; wxPoint m_pos; wxBitmap m_bmp; - + DECLARE_EVENT_TABLE() }; @@ -121,7 +117,7 @@ BEGIN_EVENT_TABLE(wxTaskBarIconArea, wxTaskBarIconAreaBase) EVT_MENU(-1, wxTaskBarIconArea::OnMenuEvent) EVT_PAINT(wxTaskBarIconArea::OnPaint) END_EVENT_TABLE() - + wxTaskBarIconArea::wxTaskBarIconArea(wxTaskBarIcon *icon, const wxBitmap &bmp) : wxTaskBarIconAreaBase(), m_icon(icon), m_pos(0,0) { @@ -135,18 +131,18 @@ wxTaskBarIconArea::wxTaskBarIconArea(wxTaskBarIcon *icon, const wxBitmap &bmp) #if defined(__WXGTK20__) && defined(TASKBAR_ICON_AREA_BASE_INCLUDED) m_invokingWindow = icon; #endif - + // Set initial size to bitmap size (tray manager may and often will // change it): SetSize(wxSize(bmp.GetWidth(), bmp.GetHeight())); - + SetTrayIcon(bmp); } void wxTaskBarIconArea::SetTrayIcon(const wxBitmap& bmp) { m_bmp = bmp; - + // determine suitable bitmap size: wxSize winsize(GetSize()); wxSize bmpsize(m_bmp.GetWidth(), m_bmp.GetHeight()); @@ -177,13 +173,13 @@ void wxTaskBarIconArea::SetTrayIcon(const wxBitmap& bmp) } void wxTaskBarIconArea::SetLegacyWMProperties() -{ +{ #ifdef __WXGTK__ gtk_widget_realize(m_widget); #endif - + long data[1]; - + // KDE 2 & KDE 3: Atom _KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR = XInternAtom(GetDisplay(), "_KDE_NET_WM_SYSTEM_TRAY_WINDOW_FOR", False); @@ -202,8 +198,8 @@ void wxTaskBarIconArea::SetLegacyWMProperties() KWM_DOCKWINDOW, 32, PropModeReplace, (unsigned char*)data, 1); } - -void wxTaskBarIconArea::OnSizeChange(wxSizeEvent& event) + +void wxTaskBarIconArea::OnSizeChange(wxSizeEvent& WXUNUSED(event)) { wxLogTrace(_T("systray"), _T("icon size changed to %i x %i"), GetSize().x, GetSize().y); @@ -217,7 +213,7 @@ void wxTaskBarIconArea::OnPaint(wxPaintEvent& WXUNUSED(event)) wxPaintDC dc(this); dc.DrawBitmap(m_bmp, m_pos.x, m_pos.y, true); } - + void wxTaskBarIconArea::OnMouseEvent(wxMouseEvent& event) { wxEventType type = 0; @@ -245,7 +241,7 @@ void wxTaskBarIconArea::OnMouseEvent(wxMouseEvent& event) } void wxTaskBarIconArea::OnMenuEvent(wxCommandEvent& event) -{ +{ m_icon->ProcessEvent(event); } @@ -297,13 +293,15 @@ bool wxTaskBarIcon::SetIcon(const wxIcon& icon, const wxString& tooltip) else { m_iconWnd->SetTrayIcon(bmp); - } - + } + #if wxUSE_TOOLTIPS if (!tooltip.empty()) m_iconWnd->SetToolTip(tooltip); else m_iconWnd->SetToolTip(NULL); +#else + wxUnusedVar(tooltip); #endif return true; }