add wxSYS_DCLICK_TIME system metric constant; use it for the generic list control rename timer interval (patch 1782472)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48622 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -181,6 +181,7 @@ All (GUI):
|
||||
- Added wxTaskBarIcon::Destroy()
|
||||
- Added XRC handler for wxSearchCtrl (Sander Berents)
|
||||
- Read image resolution from TIFF, JPEG and BMP images (Maycon Aparecido Gasoto)
|
||||
- Added wxSYS_DCLICK_TIME system metric constant
|
||||
|
||||
wxGTK:
|
||||
|
||||
|
@@ -122,6 +122,8 @@ metric as possible (e.g a wxTopLevelWindow in case of the wxSYS\_CAPTION\_Y metr
|
||||
clicks must fall to generate a double-click.}
|
||||
\twocolitem{{\bf wxSYS\_DCLICK\_Y}}{Height in pixels of rectangle within which two successive mouse
|
||||
clicks must fall to generate a double-click.}
|
||||
\twocolitem{{\bf wxSYS\_DCLICK\_MSEC}}{Maximal time, in milliseconds, which may
|
||||
pass between subsequent clicks for a double click to be generated.}
|
||||
\twocolitem{{\bf wxSYS\_DRAG\_X}}{Width in pixels of a rectangle centered on a drag point
|
||||
to allow for limited movement of the mouse pointer before a drag operation begins.}
|
||||
\twocolitem{{\bf wxSYS\_DRAG\_Y}}{Height in pixels of a rectangle centered on a drag point
|
||||
|
@@ -125,7 +125,8 @@ enum wxSystemMetric
|
||||
wxSYS_NETWORK_PRESENT,
|
||||
wxSYS_PENWINDOWS_PRESENT,
|
||||
wxSYS_SHOW_SOUNDS,
|
||||
wxSYS_SWAP_BUTTONS
|
||||
wxSYS_SWAP_BUTTONS,
|
||||
wxSYS_DCLICK_MSEC
|
||||
};
|
||||
|
||||
// possible values for wxSystemSettings::HasFeature() parameter
|
||||
|
@@ -42,6 +42,7 @@
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/math.h"
|
||||
#include "wx/settings.h"
|
||||
#endif
|
||||
|
||||
#include "wx/imaglist.h"
|
||||
@@ -3154,15 +3155,12 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
|
||||
(hitResult == wxLIST_HITTEST_ONITEMLABEL) &&
|
||||
HasFlag(wxLC_EDIT_LABELS) )
|
||||
{
|
||||
if (InReportView())
|
||||
if ( !InReportView() ||
|
||||
GetLineLabelRect(current).Contains(x, y) )
|
||||
{
|
||||
wxRect label = GetLineLabelRect( current );
|
||||
if (label.Contains( x, y ))
|
||||
m_renameTimer->Start( 250, true );
|
||||
|
||||
int dclick = wxSystemSettings::GetMetric(wxSYS_DCLICK_MSEC);
|
||||
m_renameTimer->Start(dclick > 0 ? dclick : 250, true);
|
||||
}
|
||||
else
|
||||
m_renameTimer->Start( 250, true );
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -494,6 +494,12 @@ int wxSystemSettingsNative::GetMetric( wxSystemMetric index, wxWindow* win )
|
||||
|
||||
return dclick_distance * 2;
|
||||
|
||||
case wxSYS_DCLICK_MSEC:
|
||||
gint dclick;
|
||||
g_object_get(gtk_settings_get_default(),
|
||||
"gtk-double-click-time", &dclick, NULL);
|
||||
return dclick;
|
||||
|
||||
case wxSYS_DRAG_X:
|
||||
case wxSYS_DRAG_Y:
|
||||
gint drag_threshold;
|
||||
|
@@ -380,8 +380,9 @@ static const int gs_metricsMap[] =
|
||||
#ifdef SM_SWAPBUTTON
|
||||
SM_SWAPBUTTON,
|
||||
#else
|
||||
-1
|
||||
-1,
|
||||
#endif
|
||||
-1 // wxSYS_DCLICK_MSEC - not available as system metric
|
||||
};
|
||||
|
||||
// Get a system metric, e.g. scrollbar size
|
||||
@@ -394,6 +395,12 @@ int wxSystemSettingsNative::GetMetric(wxSystemMetric index, wxWindow* WXUNUSED(w
|
||||
wxCHECK_MSG( index > 0 && (size_t)index < WXSIZEOF(gs_metricsMap), 0,
|
||||
_T("invalid metric") );
|
||||
|
||||
if ( index == wxSYS_DCLICK_MSEC )
|
||||
{
|
||||
// This one is not a Win32 system metric
|
||||
return ::GetDoubleClickTime();
|
||||
}
|
||||
|
||||
int indexMSW = gs_metricsMap[index];
|
||||
if ( indexMSW == -1 )
|
||||
{
|
||||
|
Reference in New Issue
Block a user