- Time extended in which the tooltip remains visible. (Windows PTFs)

- Better fix/location (wxWidgets source) for the MenuPopup fix. (Windows PTFs)

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7475 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
gnick79 2011-04-20 15:25:21 +00:00
parent f7423ea916
commit 156c914185
9 changed files with 24 additions and 23 deletions

View File

@ -37,6 +37,8 @@ public:
static void Enable(bool flag); static void Enable(bool flag);
// set the delay after which the tooltip appears // set the delay after which the tooltip appears
static void SetDelay(long milliseconds); static void SetDelay(long milliseconds);
// set the delay after which the tooltip disappears
static void SetAutoPop(long milliseconds);
// implementation only from now on // implementation only from now on
// ------------------------------- // -------------------------------

View File

@ -88,6 +88,16 @@ public:
m_bOwnerDrawn = true; m_bOwnerDrawn = true;
} }
// Same as wxOwnerDrawn::SetMarginWidth() but does not affect
// ms_nLastMarginWidth. Exists solely to work around bug #4068,
// and will not exist in wxWidgets 2.9.0 and later.
void SetOwnMarginWidth(int nWidth)
{
m_nMarginWidth = (size_t) nWidth;
if ( ((size_t) nWidth) != ms_nDefaultMarginWidth )
m_bOwnerDrawn = true;
}
int GetMarginWidth() const { return (int) m_nMarginWidth; } int GetMarginWidth() const { return (int) m_nMarginWidth; }
static int GetDefaultMarginWidth() { return (int) ms_nDefaultMarginWidth; } static int GetDefaultMarginWidth() { return (int) ms_nDefaultMarginWidth; }

View File

@ -160,7 +160,7 @@ wxCheckListBoxItem::wxCheckListBoxItem(wxCheckListBox *pParent, size_t nIndex)
// fix appearance for check list boxes: they don't look quite the same as // fix appearance for check list boxes: they don't look quite the same as
// menu icons // menu icons
SetMarginWidth(::GetSystemMetrics(SM_CXMENUCHECK) - SetOwnMarginWidth(::GetSystemMetrics(SM_CXMENUCHECK) -
2*wxSystemSettings::GetMetric(wxSYS_EDGE_X) + 1); 2*wxSystemSettings::GetMetric(wxSYS_EDGE_X) + 1);
SetBackgroundColour(pParent->GetBackgroundColour()); SetBackgroundColour(pParent->GetBackgroundColour());
} }

View File

@ -204,6 +204,13 @@ void wxToolTip::SetDelay(long milliseconds)
TTDT_INITIAL, milliseconds); TTDT_INITIAL, milliseconds);
} }
void wxToolTip::SetAutoPop(long milliseconds)
{
SendTooltipMessageToAll(ms_hwndTT, TTM_SETDELAYTIME,
TTDT_AUTOPOP, milliseconds);
}
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// implementation helpers // implementation helpers
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View File

@ -429,6 +429,8 @@ CFrame::CFrame(wxFrame* parent,
// Create cursors // Create cursors
#ifdef _WIN32 #ifdef _WIN32
CreateCursor(); CreateCursor();
SetToolTip(_(""));
GetToolTip()->SetAutoPop(25000);
#endif #endif
#if defined(HAVE_XRANDR) && HAVE_XRANDR #if defined(HAVE_XRANDR) && HAVE_XRANDR

View File

@ -25,6 +25,7 @@
#include <wx/listctrl.h> #include <wx/listctrl.h>
#include <wx/artprov.h> #include <wx/artprov.h>
#include <wx/aui/aui.h> #include <wx/aui/aui.h>
#include <wx/tooltip.h>
#include <string> #include <string>
#include <vector> #include <vector>

View File

@ -136,12 +136,6 @@ BEGIN_EVENT_TABLE(CGameListCtrl, wxListCtrl)
EVT_MENU(IDM_INSTALLWAD, CGameListCtrl::OnInstallWAD) EVT_MENU(IDM_INSTALLWAD, CGameListCtrl::OnInstallWAD)
END_EVENT_TABLE() END_EVENT_TABLE()
#ifdef _WIN32
int CGameListCtrl::MarginWidth(wxOwnerDrawn().GetMarginWidth());
#else
int CGameListCtrl::MarginWidth(0);
#endif
CGameListCtrl::CGameListCtrl(wxWindow* parent, const wxWindowID id, const CGameListCtrl::CGameListCtrl(wxWindow* parent, const wxWindowID id, const
wxPoint& pos, const wxSize& size, long style) wxPoint& pos, const wxSize& size, long style)
: wxListCtrl(parent, id, pos, size, style), toolTip(0) : wxListCtrl(parent, id, pos, size, style), toolTip(0)
@ -966,15 +960,7 @@ void CGameListCtrl::OnLeftClick(wxMouseEvent& event)
} }
void CGameListCtrl::OnRightClick(wxMouseEvent& event) void CGameListCtrl::OnRightClick(wxMouseEvent& event)
{ {
#ifdef _WIN32
// [HACK]
// Restore initial ms_nLastMarginWidth's value.
// This should be done whenever a popup menu is created at run-time
wxOwnerDrawn().SetMarginWidth(MarginWidth);
#endif
// Focus the clicked item. // Focus the clicked item.
int flags; int flags;
long item = HitTest(event.GetPosition(), flags); long item = HitTest(event.GetPosition(), flags);

View File

@ -96,11 +96,6 @@ private:
void SetBackgroundColor(); void SetBackgroundColor();
void ScanForISOs(); void ScanForISOs();
// stores inital ms_nLastMarginWidth's value. This is a static/shared wxWidgets member
// affected by an 'illegal' access from the wxCheckListBox controls.
// NOTE: workaround valid and necessary only with v.2.8.x, since newer versions have fixed this issue.
static int MarginWidth;
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
// events // events

View File

@ -237,8 +237,6 @@ static wxString FormatString(const GameListItem *item)
return title; return title;
} }
// TODO: implement some hack to increase the tooltip display duration, because some of these are way too long for anyone to read in 5 seconds.
wxString profile_tooltip = wxTRANSLATE("Selects which game should be affected by the configuration changes done in this dialog.\nThe (Default) profile affects the standard settings used for every game."); wxString profile_tooltip = wxTRANSLATE("Selects which game should be affected by the configuration changes done in this dialog.\nThe (Default) profile affects the standard settings used for every game.");
wxString adapter_tooltip = wxTRANSLATE("Select a hardware adapter to use.\nWhen in doubt, use the first one"); wxString adapter_tooltip = wxTRANSLATE("Select a hardware adapter to use.\nWhen in doubt, use the first one");
wxString ar_tooltip = wxTRANSLATE("Select what aspect ratio to use when rendering:\nAuto: Use the native aspect ratio (4:3)\nForce 16:9: Stretch the picture to an aspect ratio of 16:9.\nForce 4:3: Stretch the picture to an aspect ratio of 4:3.\nStretch to window: Stretch the picture to the window size."); wxString ar_tooltip = wxTRANSLATE("Select what aspect ratio to use when rendering:\nAuto: Use the native aspect ratio (4:3)\nForce 16:9: Stretch the picture to an aspect ratio of 16:9.\nForce 4:3: Stretch the picture to an aspect ratio of 4:3.\nStretch to window: Stretch the picture to the window size.");