Create wxWindow in heap rather than stack
Center DX9 window Bring Wiimote reconnect confirm dialog to topmost, now only works with OpenGL. (It seems DX9 in full screen doesn't like other windows overlapped upon it.) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4895 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
05b1bfd733
commit
1c09cba69a
|
@ -166,11 +166,20 @@ CPanel::CPanel(
|
|||
else
|
||||
{
|
||||
// The Wiimote has been disconnect, we offer reconnect here
|
||||
if(AskYesNo("Wiimote %i has been disconnected by system.\n"
|
||||
"Maybe this game doesn't support multi-wiimote,\n"
|
||||
"or maybe it is due to idle time out or other reason.\n\n"
|
||||
"Do you want to reconnect immediately?", lParam + 1, "Confirm", wxYES_NO))
|
||||
wxMessageDialog *dlg = new wxMessageDialog(
|
||||
this,
|
||||
wxString::Format(wxT("Wiimote %i has been disconnected by system.\n")
|
||||
wxT("Maybe this game doesn't support multi-wiimote,\n")
|
||||
wxT("or maybe it is due to idle time out or other reason.\n\n")
|
||||
wxT("Do you want to reconnect immediately?"), lParam + 1),
|
||||
wxT("Reconnect Wiimote Confirm"),
|
||||
wxYES_NO | wxSTAY_ON_TOP | wxICON_INFORMATION, //wxICON_QUESTION,
|
||||
wxDefaultPosition);
|
||||
|
||||
if (dlg->ShowModal() == wxID_YES)
|
||||
GetUsbPointer()->AccessWiiMote(lParam | 0x100)->Activate(true);
|
||||
|
||||
delete dlg;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -698,14 +698,16 @@ void CFrame::DoStop()
|
|||
// Ask for confirmation in case the user accidentally clicked Stop / Escape
|
||||
if (SConfig::GetInstance().m_LocalCoreStartupParameter.bConfirmStop)
|
||||
{
|
||||
wxMessageDialog dlg(
|
||||
wxMessageDialog *dlg = new wxMessageDialog(
|
||||
this,
|
||||
wxString::FromAscii("Do want to stop the current emulation?"),
|
||||
wxString::FromAscii("Please confirm..."),
|
||||
wxYES_NO | wxSTAY_ON_TOP | wxCENTRE,
|
||||
wxT("Do you want to stop the current emulation?"),
|
||||
wxT("Please confirm..."),
|
||||
wxYES_NO | wxSTAY_ON_TOP | wxICON_EXCLAMATION,
|
||||
wxDefaultPosition);
|
||||
|
||||
if (dlg.ShowModal() == wxID_NO)
|
||||
int Ret = dlg->ShowModal();
|
||||
delete dlg;
|
||||
if (Ret == wxID_NO)
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -234,9 +234,45 @@ void Show()
|
|||
|
||||
HWND Create(HWND hParent, HINSTANCE hInstance, const TCHAR *title)
|
||||
{
|
||||
// TODO:
|
||||
// 1. Remove redundant window manipulation,
|
||||
// 2. Make DX9 in fullscreen can be overlapped by other dialogs
|
||||
HWND Ret;
|
||||
int width=640, height=480;
|
||||
sscanf( g_Config.bFullscreen ? g_Config.cFSResolution : g_Config.cInternalRes, "%dx%d", &width, &height );
|
||||
return OpenWindow(hParent, hInstance, width, height, title);
|
||||
// SetSize(width, height);
|
||||
Ret = OpenWindow(hParent, hInstance, width, height, title);
|
||||
|
||||
if (Ret)
|
||||
{
|
||||
DWORD dwStyle = 0; // Window Style
|
||||
DWORD dwExStyle = 0; // Window Extended Style
|
||||
RECT rc = {0, 0, width, height};
|
||||
RECT rcdesktop;
|
||||
GetWindowRect(GetDesktopWindow(), &rcdesktop);
|
||||
int X = (rcdesktop.right-rcdesktop.left)/2 - (rc.right-rc.left)/2;
|
||||
int Y = (rcdesktop.bottom-rcdesktop.top)/2 - (rc.bottom-rc.top)/2;
|
||||
|
||||
if (g_Config.bFullscreen && !g_Config.RenderToMainframe)
|
||||
{
|
||||
// Hide the cursor
|
||||
ShowCursor(FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
dwExStyle = WS_EX_APPWINDOW | WS_EX_WINDOWEDGE;
|
||||
dwStyle = WS_OVERLAPPEDWINDOW;
|
||||
}
|
||||
|
||||
// AdjustWindowRectEx(&rc, dwStyle, FALSE, dwExStyle);
|
||||
|
||||
if (g_Config.bFullscreen)
|
||||
// We put the window at the upper left corner of the screen, so x = y = 0
|
||||
SetWindowPos(EmuWindow::GetWnd(), NULL, 0, 0, rc.right-rc.left, rc.bottom-rc.top, SWP_NOREPOSITION | SWP_NOZORDER);
|
||||
else if (!g_Config.RenderToMainframe)
|
||||
SetWindowPos(EmuWindow::GetWnd(), NULL, X, Y, rc.right-rc.left, rc.bottom-rc.top, SWP_NOREPOSITION | SWP_NOZORDER);
|
||||
}
|
||||
return Ret;
|
||||
}
|
||||
|
||||
void Close()
|
||||
|
@ -261,7 +297,7 @@ void SetSize(int width, int height)
|
|||
rc.right = rc.left + w;
|
||||
rc.top = (1024 - h)/2;
|
||||
rc.bottom = rc.top + h;
|
||||
::MoveWindow(m_hWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
|
||||
MoveWindow(m_hWnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
|
||||
}
|
||||
|
||||
void ToggleFullscreen(HWND hParent)
|
||||
|
|
Loading…
Reference in New Issue