Make the debug views use the actual rendered pixel size of the fonts.

Fixes debug view rendering on non-96dpi displays.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7659 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
pierre 2011-07-01 14:20:33 +00:00
parent 7b00c2a6f7
commit ac62849351
2 changed files with 27 additions and 11 deletions

View File

@ -361,6 +361,15 @@ void CCodeView::OnPaint(wxPaintEvent& event)
dc.SetFont(DebuggerFont); dc.SetFont(DebuggerFont);
wxCoord w,h;
dc.GetTextExtent(_T("0WJyq"),&w,&h);
if (h > rowHeight)
rowHeight = h;
dc.GetTextExtent(_T("W"),&w,&h);
int charWidth = w;
struct branch struct branch
{ {
int src, dst, srcAddr; int src, dst, srcAddr;
@ -480,7 +489,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
dc.SetTextForeground(_T("#000000")); dc.SetTextForeground(_T("#000000"));
} }
dc.DrawText(wxString::FromAscii(dis2), 140, rowY1); dc.DrawText(wxString::FromAscii(dis2), 18*charWidth, rowY1);
// ------------ // ------------
} }
@ -490,7 +499,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
else else
dc.SetTextForeground(_T("#8000FF")); // purple dc.SetTextForeground(_T("#8000FF")); // purple
dc.DrawText(wxString::FromAscii(dis), plain ? 25 : 80, rowY1); dc.DrawText(wxString::FromAscii(dis), plain ? 3*charWidth : 10*charWidth, rowY1);
if (desc[0] == 0) if (desc[0] == 0)
{ {
@ -504,7 +513,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
//UnDecorateSymbolName(desc,temp,255,UNDNAME_COMPLETE); //UnDecorateSymbolName(desc,temp,255,UNDNAME_COMPLETE);
if (strlen(desc)) if (strlen(desc))
{ {
dc.DrawText(wxString::FromAscii(desc), 270, rowY1); dc.DrawText(wxString::FromAscii(desc), 38 * charWidth, rowY1);
} }
} }
@ -525,7 +534,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
for (int i = 0; i < numBranches; i++) for (int i = 0; i < numBranches; i++)
{ {
int x = 370 + (branches[i].srcAddr % 9) * 8; int x = 46 * charWidth + (branches[i].srcAddr % 9) * 8;
_MoveTo(x-2, branches[i].src); _MoveTo(x-2, branches[i].src);
if (branches[i].dst < rc.height + 400 && branches[i].dst > -400) if (branches[i].dst < rc.height + 400 && branches[i].dst > -400)

View File

@ -205,17 +205,24 @@ void CMemoryView::OnPaint(wxPaintEvent& event)
wxPaintDC dc(this); wxPaintDC dc(this);
wxRect rc = GetClientRect(); wxRect rc = GetClientRect();
wxFont hFont(_T("Courier")); wxFont hFont(_T("Courier"));
hFont.SetFamily(wxFONTFAMILY_TELETYPE);
wxCoord w,h;
dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&hFont);
if (h > rowHeight)
rowHeight = h;
dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&DebuggerFont);
if (h > rowHeight)
rowHeight = h;
if (viewAsType==VIEWAS_HEX) if (viewAsType==VIEWAS_HEX)
{
hFont.SetFamily(wxFONTFAMILY_TELETYPE);
dc.SetFont(hFont); dc.SetFont(hFont);
}
else else
dc.SetFont(DebuggerFont); dc.SetFont(DebuggerFont);
int fontSize = viewAsType == VIEWAS_HEX ? hFont.GetPointSize() : DebuggerFont.GetPointSize(); dc.GetTextExtent(_T("W"),&w,&h);
int textPlacement = 77; int fontSize = w;
int textPlacement = 11 * fontSize;
struct branch struct branch
{ {
int src, dst, srcAddr; int src, dst, srcAddr;
@ -356,7 +363,7 @@ void CMemoryView::OnPaint(wxPaintEvent& event)
if (viewAsType != VIEWAS_HEX) if (viewAsType != VIEWAS_HEX)
dc.DrawText(wxString::FromAscii(dis), textPlacement + fontSize*(8 + 8), rowY1); dc.DrawText(wxString::FromAscii(dis), textPlacement + fontSize*(8 + 8), rowY1);
else else
dc.DrawText(wxString::FromAscii(dis), textPlacement + 8+16, rowY1); dc.DrawText(wxString::FromAscii(dis), textPlacement, rowY1);
if (desc[0] == 0) if (desc[0] == 0)
strcpy(desc, debugger->getDescription(address).c_str()); strcpy(desc, debugger->getDescription(address).c_str());