Improved wxTreeCtrl tooltip processing performance (causing
major delays in processing button clicks) Added wxFULL_REPAINT_ON_RESIZE as default for wxStatusBar on wxGTK since otherwise there are display problems. Similarly for wxGrid. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26132 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -89,7 +89,7 @@ public:
|
|||||||
#if wxUSE_STATUSBAR
|
#if wxUSE_STATUSBAR
|
||||||
// create the main status bar by calling OnCreateStatusBar()
|
// create the main status bar by calling OnCreateStatusBar()
|
||||||
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
||||||
long style = wxST_SIZEGRIP,
|
long style = wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE,
|
||||||
wxWindowID winid = 0,
|
wxWindowID winid = 0,
|
||||||
const wxString& name =
|
const wxString& name =
|
||||||
wxStatusLineNameStr);
|
wxStatusLineNameStr);
|
||||||
|
@@ -31,7 +31,7 @@ public:
|
|||||||
wxWindowID winid,
|
wxWindowID winid,
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
const wxPoint& pos = wxDefaultPosition,
|
||||||
const wxSize& size = wxDefaultSize,
|
const wxSize& size = wxDefaultSize,
|
||||||
long style = 0,
|
long style = wxFULL_REPAINT_ON_RESIZE,
|
||||||
const wxString& name = wxPanelNameStr)
|
const wxString& name = wxPanelNameStr)
|
||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
@@ -53,7 +53,7 @@ public:
|
|||||||
bool Create(wxWindow *parent, wxWindowID winid,
|
bool Create(wxWindow *parent, wxWindowID winid,
|
||||||
const wxPoint& WXUNUSED(pos) = wxDefaultPosition,
|
const wxPoint& WXUNUSED(pos) = wxDefaultPosition,
|
||||||
const wxSize& WXUNUSED(size) = wxDefaultSize,
|
const wxSize& WXUNUSED(size) = wxDefaultSize,
|
||||||
long style = 0,
|
long style = wxFULL_REPAINT_ON_RESIZE,
|
||||||
const wxString& name = wxPanelNameStr)
|
const wxString& name = wxPanelNameStr)
|
||||||
{
|
{
|
||||||
return Create(parent, winid, style, name);
|
return Create(parent, winid, style, name);
|
||||||
|
@@ -384,6 +384,7 @@ public:
|
|||||||
void OnKillFocus( wxFocusEvent &event );
|
void OnKillFocus( wxFocusEvent &event );
|
||||||
void OnChar( wxKeyEvent &event );
|
void OnChar( wxKeyEvent &event );
|
||||||
void OnMouse( wxMouseEvent &event );
|
void OnMouse( wxMouseEvent &event );
|
||||||
|
void OnGetToolTip( wxTreeEvent &event );
|
||||||
void OnInternalIdle( );
|
void OnInternalIdle( );
|
||||||
|
|
||||||
// implementation helpers
|
// implementation helpers
|
||||||
|
@@ -62,7 +62,7 @@ public:
|
|||||||
virtual void PositionStatusBar();
|
virtual void PositionStatusBar();
|
||||||
|
|
||||||
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
||||||
long style = wxST_SIZEGRIP,
|
long style = wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE,
|
||||||
wxWindowID id = 0,
|
wxWindowID id = 0,
|
||||||
const wxString& name = wxStatusLineNameStr);
|
const wxString& name = wxStatusLineNameStr);
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
@@ -62,7 +62,7 @@ public:
|
|||||||
virtual void PositionStatusBar();
|
virtual void PositionStatusBar();
|
||||||
|
|
||||||
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
virtual wxStatusBar* CreateStatusBar(int number = 1,
|
||||||
long style = wxST_SIZEGRIP,
|
long style = wxST_SIZEGRIP|wxFULL_REPAINT_ON_RESIZE,
|
||||||
wxWindowID id = 0,
|
wxWindowID id = 0,
|
||||||
const wxString& name = wxStatusLineNameStr);
|
const wxString& name = wxStatusLineNameStr);
|
||||||
#endif // wxUSE_STATUSBAR
|
#endif // wxUSE_STATUSBAR
|
||||||
|
@@ -3479,7 +3479,7 @@ END_EVENT_TABLE()
|
|||||||
wxGridRowLabelWindow::wxGridRowLabelWindow( wxGrid *parent,
|
wxGridRowLabelWindow::wxGridRowLabelWindow( wxGrid *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxPoint &pos, const wxSize &size )
|
const wxPoint &pos, const wxSize &size )
|
||||||
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE )
|
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE|wxFULL_REPAINT_ON_RESIZE )
|
||||||
{
|
{
|
||||||
m_owner = parent;
|
m_owner = parent;
|
||||||
}
|
}
|
||||||
@@ -3545,7 +3545,7 @@ END_EVENT_TABLE()
|
|||||||
wxGridColLabelWindow::wxGridColLabelWindow( wxGrid *parent,
|
wxGridColLabelWindow::wxGridColLabelWindow( wxGrid *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxPoint &pos, const wxSize &size )
|
const wxPoint &pos, const wxSize &size )
|
||||||
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE )
|
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE|wxFULL_REPAINT_ON_RESIZE )
|
||||||
{
|
{
|
||||||
m_owner = parent;
|
m_owner = parent;
|
||||||
}
|
}
|
||||||
@@ -3610,7 +3610,7 @@ END_EVENT_TABLE()
|
|||||||
wxGridCornerLabelWindow::wxGridCornerLabelWindow( wxGrid *parent,
|
wxGridCornerLabelWindow::wxGridCornerLabelWindow( wxGrid *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxPoint &pos, const wxSize &size )
|
const wxPoint &pos, const wxSize &size )
|
||||||
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE )
|
: wxWindow( parent, id, pos, size, wxWANTS_CHARS|wxBORDER_NONE|wxFULL_REPAINT_ON_RESIZE )
|
||||||
{
|
{
|
||||||
m_owner = parent;
|
m_owner = parent;
|
||||||
}
|
}
|
||||||
@@ -3682,7 +3682,7 @@ wxGridWindow::wxGridWindow( wxGrid *parent,
|
|||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxPoint &pos,
|
const wxPoint &pos,
|
||||||
const wxSize &size )
|
const wxSize &size )
|
||||||
: wxWindow( parent, id, pos, size, wxWANTS_CHARS | wxBORDER_NONE | wxCLIP_CHILDREN,
|
: wxWindow( parent, id, pos, size, wxWANTS_CHARS | wxBORDER_NONE | wxCLIP_CHILDREN|wxFULL_REPAINT_ON_RESIZE,
|
||||||
wxT("grid window") )
|
wxT("grid window") )
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@@ -674,6 +674,7 @@ BEGIN_EVENT_TABLE(wxGenericTreeCtrl,wxScrolledWindow)
|
|||||||
EVT_CHAR (wxGenericTreeCtrl::OnChar)
|
EVT_CHAR (wxGenericTreeCtrl::OnChar)
|
||||||
EVT_SET_FOCUS (wxGenericTreeCtrl::OnSetFocus)
|
EVT_SET_FOCUS (wxGenericTreeCtrl::OnSetFocus)
|
||||||
EVT_KILL_FOCUS (wxGenericTreeCtrl::OnKillFocus)
|
EVT_KILL_FOCUS (wxGenericTreeCtrl::OnKillFocus)
|
||||||
|
EVT_TREE_ITEM_GETTOOLTIP(-1, wxGenericTreeCtrl::OnGetToolTip)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
|
#if !defined(__WXMSW__) || defined(__WIN16__) || defined(__WXUNIVERSAL__)
|
||||||
@@ -2882,7 +2883,10 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
|
|||||||
|
|
||||||
// Is the mouse over a tree item button?
|
// Is the mouse over a tree item button?
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
wxGenericTreeItem *underMouse = m_anchor->HitTest(pt, this, flags, 0);
|
wxGenericTreeItem *thisItem = m_anchor->HitTest(pt, this, flags, 0);
|
||||||
|
wxGenericTreeItem *underMouse = thisItem;
|
||||||
|
bool underMouseChanged = (underMouse != m_underMouse) ;
|
||||||
|
|
||||||
if ((underMouse) &&
|
if ((underMouse) &&
|
||||||
(flags & wxTREE_HITTEST_ONITEMBUTTON) &&
|
(flags & wxTREE_HITTEST_ONITEMBUTTON) &&
|
||||||
(!event.LeftIsDown()) &&
|
(!event.LeftIsDown()) &&
|
||||||
@@ -2912,10 +2916,10 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
|
|||||||
|
|
||||||
#if wxUSE_TOOLTIPS
|
#if wxUSE_TOOLTIPS
|
||||||
// Determines what item we are hovering over and need a tooltip for
|
// Determines what item we are hovering over and need a tooltip for
|
||||||
wxTreeItemId hoverItem = HitTest(ScreenToClient(wxGetMousePosition()));
|
wxTreeItemId hoverItem = thisItem;
|
||||||
|
|
||||||
// We do not want a tooltip if we are dragging, or if the rename timer is running
|
// We do not want a tooltip if we are dragging, or if the rename timer is running
|
||||||
if (hoverItem.IsOk() && !m_isDragging && (!m_renameTimer || !m_renameTimer->IsRunning()))
|
if (underMouseChanged && hoverItem.IsOk() && !m_isDragging && (!m_renameTimer || !m_renameTimer->IsRunning()))
|
||||||
{
|
{
|
||||||
// Ask the tree control what tooltip (if any) should be shown
|
// Ask the tree control what tooltip (if any) should be shown
|
||||||
wxTreeEvent hevent(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, GetId());
|
wxTreeEvent hevent(wxEVT_COMMAND_TREE_ITEM_GETTOOLTIP, GetId());
|
||||||
@@ -3365,4 +3369,11 @@ bool wxGenericTreeCtrl::SetForegroundColour(const wxColour& colour)
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Process the tooltip event, to speed up event processing.
|
||||||
|
// Doesn't actually get a tooltip.
|
||||||
|
void wxGenericTreeCtrl::OnGetToolTip( wxTreeEvent &event )
|
||||||
|
{
|
||||||
|
event.Veto();
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_TREECTRL
|
#endif // wxUSE_TREECTRL
|
||||||
|
Reference in New Issue
Block a user