pcsx2/plugins/GSdx/GSWnd.cpp

77 lines
1.7 KiB
C++

/*
* Copyright (C) 2007-2009 Gabest
* http://www.gabest.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Make; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#include "StdAfx.h"
#include "GSdx.h"
#include "GSWnd.h"
BEGIN_MESSAGE_MAP(GSWnd, CWnd)
ON_WM_CLOSE()
END_MESSAGE_MAP()
GSWnd::GSWnd()
{
}
GSWnd::~GSWnd()
{
DestroyWindow();
}
bool GSWnd::Create(const string& title)
{
CRect r;
GetDesktopWindow()->GetWindowRect(r);
CSize s(r.Width() / 3, r.Width() / 4);
if(!GetSystemMetrics(SM_REMOTESESSION))
{
s.cx *= 2;
s.cy *= 2;
}
r = CRect(r.CenterPoint() - CSize(s.cx / 2, s.cy / 2), s);
LPCTSTR wc = AfxRegisterWndClass(CS_VREDRAW|CS_HREDRAW|CS_DBLCLKS, theApp.LoadStandardCursor(IDC_ARROW), 0, 0);
return !!CreateEx(0, wc, title.c_str(), WS_OVERLAPPEDWINDOW, r, NULL, 0);
}
void GSWnd::Show()
{
SetWindowPos(&wndTop, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
SetForegroundWindow();
ShowWindow(SW_SHOWNORMAL);
}
void GSWnd::Hide()
{
ShowWindow(SW_HIDE);
}
void GSWnd::OnClose()
{
Hide();
PostMessage(WM_QUIT);
}