#include "wx/dcmemory.h"
#endif
+#include "wx/tooltip.h"
#include "wx/toolbar.h"
bool wxToolBar::m_bInitialized = FALSE;
EVT_PAINT(wxToolBar::OnPaint)
EVT_KILL_FOCUS(wxToolBar::OnKillFocus)
EVT_MOUSE_EVENTS(wxToolBar::OnMouseEvent)
+ EVT_TIMER(-1, wxToolBar::OnTimer)
END_EVENT_TABLE()
// ============================================================================
m_defaultWidth = 16;
m_defaultHeight = 15;
+
+ m_pToolTip = NULL;
} // end of wxToolBar::Init
wxToolBarToolBase* wxToolBar::DoAddTool(
wxToolBar::~wxToolBar()
{
+ if (m_pToolTip)
+ {
+ delete m_pToolTip;
+ m_pToolTip = NULL;
+ }
} // end of wxToolBar::~wxToolBar
bool wxToolBar::Realize()
wxMouseEvent& rEvent
)
{
+ POINTL vPoint;
+ HWND hWnd;
wxCoord vX;
wxCoord vY;
HPOINTER hPtr = ::WinQuerySysPointer(HWND_DESKTOP, SPTR_ARROW, FALSE);
::WinSetPointer(HWND_DESKTOP, hPtr);
+ ::WinQueryPointerPos(HWND_DESKTOP, &vPoint);
+ hWnd = ::WinWindowFromPoint(HWND_DESKTOP, &vPoint, TRUE);
+ if (hWnd != (HWND)GetHwnd())
+ {
+ m_vToolTimer.Stop();
+ return;
+ }
+
rEvent.GetPosition(&vX, &vY);
wxToolBarTool* pTool = (wxToolBarTool *)FindToolForPosition( vX
if (!pTool)
{
+ m_vToolTimer.Stop();
if (m_nCurrentTool > -1)
{
if (rEvent.LeftIsDown())
);
m_nCurrentTool = pTool->GetId();
OnMouseEnter(m_nCurrentTool);
+ if (!pTool->GetShortHelp().IsEmpty())
+ {
+ if (m_pToolTip)
+ delete m_pToolTip;
+ m_pToolTip = new wxToolTip(pTool->GetShortHelp());
+ m_vXMouse = (wxCoord)vPoint.x;
+ m_vYMouse = (wxCoord)vPoint.y;
+ m_vToolTimer.Start(3000L, TRUE);
+ }
if (!pTool->IsToggled())
RaiseTool(pTool);
}
}
} // end of wxToolBar::RaiseTool
+void wxToolBar::OnTimer (
+ wxTimerEvent& rEvent
+)
+{
+ if (rEvent.GetId() == m_vToolTimer.GetTimerId())
+ {
+ wxPoint vPos( m_vXMouse
+ ,m_vYMouse
+ );
+
+ m_pToolTip->DisplayToolTipWindow(vPos);
+ m_vToolTimer.Stop();
+ m_vToolExpTimer.Start(3000L, TRUE);
+ }
+ else if (rEvent.GetId() == m_vToolExpTimer.GetTimerId())
+ {
+ m_pToolTip->HideToolTipWindow();
+ GetParent()->Refresh();
+ m_vToolExpTimer.Stop();
+ }
+} // end of wxToolBar::OnTimer
+
#endif // ndef for wxUSE_TOOLBAR && wxUSE_TOOLBAR_NATIVE