nJoy: Show the original GC controller analog stick area in the advanced settings
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@3720 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
af83bfffa1
commit
19ad53ea58
|
@ -301,10 +301,12 @@ void PADConfigDialognJoy::CreateAdvancedControls(int i)
|
||||||
//wxPoint(4, 20), wxDefaultSize);
|
//wxPoint(4, 20), wxDefaultSize);
|
||||||
wxDefaultPosition, wxDefaultSize);
|
wxDefaultPosition, wxDefaultSize);
|
||||||
|
|
||||||
|
m_bmpAreaOut[i] = new wxStaticBitmap(m_pOutStatus[i], wxID_ANY, CreateBitmapArea(),
|
||||||
|
wxPoint(1, 1), wxDefaultSize);
|
||||||
|
|
||||||
m_bmpDotOut[i] = new wxStaticBitmap(m_pOutStatus[i], ID_STATUSDOTBMP1 + i, CreateBitmapDot(),
|
m_bmpDotOut[i] = new wxStaticBitmap(m_pOutStatus[i], ID_STATUSDOTBMP1 + i, CreateBitmapDot(),
|
||||||
wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
|
wxPoint(BoxW / 2, BoxH / 2), wxDefaultSize);
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Rerecording
|
// Rerecording
|
||||||
// ¯¯¯¯¯¯¯¯¯
|
// ¯¯¯¯¯¯¯¯¯
|
||||||
|
@ -367,7 +369,8 @@ wxBitmap PADConfigDialognJoy::CreateBitmap() // Create box
|
||||||
return bitmap;
|
return bitmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxBitmap PADConfigDialognJoy::CreateBitmapDot() // Create dot
|
// Create dot
|
||||||
|
wxBitmap PADConfigDialognJoy::CreateBitmapDot()
|
||||||
{
|
{
|
||||||
int w = 2, h = 2;
|
int w = 2, h = 2;
|
||||||
wxBitmap bitmap(w, h);
|
wxBitmap bitmap(w, h);
|
||||||
|
@ -386,3 +389,41 @@ wxBitmap PADConfigDialognJoy::CreateBitmapDot() // Create dot
|
||||||
dc.SelectObject(wxNullBitmap);
|
dc.SelectObject(wxNullBitmap);
|
||||||
return bitmap;
|
return bitmap;
|
||||||
}
|
}
|
||||||
|
wxBitmap PADConfigDialognJoy::CreateBitmapArea()
|
||||||
|
{
|
||||||
|
wxBitmap bitmap(BoxW - 2, BoxH - 2);
|
||||||
|
wxMemoryDC dc;
|
||||||
|
dc.SelectObject(bitmap);
|
||||||
|
|
||||||
|
// Set outline and fill colors
|
||||||
|
// wxMEDIUM_GREY_PEN, wxLIGHT_GREY_BRUSH
|
||||||
|
wxBrush LightGrayBrush(_T("#dddddd"));
|
||||||
|
wxPen LightGrayPen(_T("#bfbfbf"));
|
||||||
|
dc.SetBrush(LightGrayBrush);
|
||||||
|
dc.SetPen(LightGrayPen);
|
||||||
|
|
||||||
|
// Clear bitmap
|
||||||
|
dc.Clear();
|
||||||
|
|
||||||
|
// Create offset for polygon
|
||||||
|
float Adj = (float)BoxW / 256.0;
|
||||||
|
float iAdj = 127.0 * Adj;
|
||||||
|
// The polygon corners
|
||||||
|
// Yes the diagonals for the original GC controller are this narrow (i.e. around 80% of the full radius),
|
||||||
|
// it's not a perfect octagon. Some third party GC controllers has a diagonal at 90% however,
|
||||||
|
// i.e. at around 63,63 rather than 55,55.
|
||||||
|
float Max = 100.0, Diagonal = 55.0;
|
||||||
|
wxPoint Points[8];
|
||||||
|
Points[0].x = (int)(0.0 * Adj + iAdj); Points[0].y = (int)(Max * Adj + iAdj);
|
||||||
|
Points[1].x = (int)(Diagonal * Adj + iAdj); Points[1].y = (int)(Diagonal * Adj + iAdj);
|
||||||
|
Points[2].x = (int)(Max * Adj + iAdj); Points[2].y = (int)(0.0 * Adj + iAdj);
|
||||||
|
Points[3].x = (int)(Diagonal * Adj + iAdj); Points[3].y = (int)(-Diagonal * Adj + iAdj);
|
||||||
|
Points[4].x = (int)(0.0 * Adj + iAdj); Points[4].y = (int)(-Max * Adj + iAdj);
|
||||||
|
Points[5].x = (int)(-Diagonal * Adj + iAdj); Points[5].y = (int)(-Diagonal * Adj + iAdj);
|
||||||
|
Points[6].x = (int)(-Max * Adj + iAdj); Points[6].y = (int)(0.0 * Adj + iAdj);
|
||||||
|
Points[7].x = (int)(-Diagonal * Adj + iAdj); Points[7].y = (int)(Diagonal * Adj + iAdj);
|
||||||
|
// Draw polygon
|
||||||
|
dc.DrawPolygon(8, Points);
|
||||||
|
|
||||||
|
return bitmap;
|
||||||
|
}
|
|
@ -193,7 +193,7 @@ class PADConfigDialognJoy : public wxDialog
|
||||||
|
|
||||||
wxTextCtrl *m_PlaceholderBMP[4];
|
wxTextCtrl *m_PlaceholderBMP[4];
|
||||||
wxStaticBitmap *m_controllerimage[4],
|
wxStaticBitmap *m_controllerimage[4],
|
||||||
*m_bmpSquare[4], *m_bmpDot[4], *m_bmpSquareOut[4], *m_bmpDotOut[4];
|
*m_bmpSquare[4], *m_bmpDot[4], *m_bmpSquareOut[4], *m_bmpDotOut[4], *m_bmpAreaOut[4];
|
||||||
|
|
||||||
int notebookpage; bool ControlsCreated;
|
int notebookpage; bool ControlsCreated;
|
||||||
#ifdef RERECORDING
|
#ifdef RERECORDING
|
||||||
|
@ -339,6 +339,7 @@ class PADConfigDialognJoy : public wxDialog
|
||||||
void SizeWindow();
|
void SizeWindow();
|
||||||
wxBitmap CreateBitmap();
|
wxBitmap CreateBitmap();
|
||||||
wxBitmap CreateBitmapDot();
|
wxBitmap CreateBitmapDot();
|
||||||
|
wxBitmap CreateBitmapArea();
|
||||||
void PadGetStatus();
|
void PadGetStatus();
|
||||||
void Update();
|
void Update();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue