+ if ( event.GetEventObject() == m_winCapture )
+ {
+ long hit = m_winCapture->HitTest(event.GetPosition());
+
+ if ( hit != m_winHitTest )
+ {
+ if ( hit != m_winPressed )
+ consumer->PerformAction(wxACTION_TOPLEVEL_BUTTON_RELEASE, m_winPressed);
+ else
+ consumer->PerformAction(wxACTION_TOPLEVEL_BUTTON_PRESS, m_winPressed);
+
+ m_winHitTest = hit;
+ return TRUE;
+ }
+ }
+ else if ( consumer->GetInputWindow()->GetWindowStyle() & wxRESIZE_BORDER )
+ {
+ wxTopLevelWindow *win = wxStaticCast(consumer->GetInputWindow(),
+ wxTopLevelWindow);
+ long hit = win->HitTest(event.GetPosition());
+
+ if ( hit != m_winHitTest )
+ {
+ m_winHitTest = hit;
+
+ if ( m_borderCursorOn )
+ {
+ m_borderCursorOn = FALSE;
+ win->SetCursor(m_origCursor);
+ }
+
+ if ( hit & wxHT_TOPLEVEL_ANY_BORDER )
+ {
+ m_borderCursorOn = TRUE;
+ wxCursor cur;
+
+ switch (hit)
+ {
+ case wxHT_TOPLEVEL_BORDER_N:
+ case wxHT_TOPLEVEL_BORDER_S:
+ cur = wxCursor(wxCURSOR_SIZENS);
+ break;
+ case wxHT_TOPLEVEL_BORDER_W:
+ case wxHT_TOPLEVEL_BORDER_E:
+ cur = wxCursor(wxCURSOR_SIZEWE);
+ break;
+ case wxHT_TOPLEVEL_BORDER_NE:
+ case wxHT_TOPLEVEL_BORDER_SW:
+ cur = wxCursor(wxCURSOR_SIZENESW);
+ break;
+ case wxHT_TOPLEVEL_BORDER_NW:
+ case wxHT_TOPLEVEL_BORDER_SE:
+ cur = wxCursor(wxCURSOR_SIZENWSE);
+ break;
+ default:
+ m_borderCursorOn = FALSE;
+ break;
+ }
+ if ( m_borderCursorOn )
+ {
+ m_origCursor = win->GetCursor();
+ win->SetCursor(cur);
+ }
+ }
+ }
+ }
+