Remove all tab/space mismatches from the DolphinWX project (at least 99%. I promise!)

Also fix up the dangling else's. Shit just looks incredibly ugly in terms of actual structure in the code.

I took the liberty of adding comments in FifoPlayerDlg.cpp, LogConfigWindow.cpp, LogWindow.cpp, and FrameAui.cpp to better explain some things.

If any comments are wrong, don't hesitate to complain.
This commit is contained in:
Lioncash 2013-04-08 01:16:50 -04:00
parent 5b2d9a7d9f
commit 1db10b139c
36 changed files with 584 additions and 295 deletions

View File

@ -170,8 +170,12 @@ void CARCodeAddEdit::UpdateTextCtrl(ActionReplay::ARCode arCode)
EditCheatCode->Clear(); EditCheatCode->Clear();
if (arCode.name != "") if (arCode.name != "")
{
for (u32 i = 0; i < arCode.ops.size(); i++) for (u32 i = 0; i < arCode.ops.size(); i++)
EditCheatCode->AppendText(wxString::Format(wxT("%08X %08X\n"), arCode.ops.at(i).cmd_addr, arCode.ops.at(i).value)); EditCheatCode->AppendText(wxString::Format(wxT("%08X %08X\n"), arCode.ops.at(i).cmd_addr, arCode.ops.at(i).value));
}
else else
{
EditCheatCode->SetValue(_("Insert Encrypted or Decrypted code here...")); EditCheatCode->SetValue(_("Insert Encrypted or Decrypted code here..."));
}
} }

View File

@ -298,10 +298,11 @@ void wxCheatsWindow::OnEvent_CheatsList_ItemSelected(wxCommandEvent& WXUNUSED (e
sprintf(numcodes, "Number of Codes: %lu", (unsigned long)code.ops.size()); sprintf(numcodes, "Number of Codes: %lu", (unsigned long)code.ops.size());
m_Label_NumCodes->SetLabel(StrToWxStr(numcodes)); m_Label_NumCodes->SetLabel(StrToWxStr(numcodes));
m_ListBox_CodesList->Clear(); m_ListBox_CodesList->Clear();
for (size_t j = 0; j < code.ops.size(); j++) for (size_t j = 0; j < code.ops.size(); j++)
{ {
char text2[CHAR_MAX]; char text2[CHAR_MAX];
char* ops = text2; char* ops = text2;
sprintf(ops, "%08x %08x", code.ops[j].cmd_addr, code.ops[j].value); sprintf(ops, "%08x %08x", code.ops[j].cmd_addr, code.ops[j].value);
m_ListBox_CodesList->Append(StrToWxStr(ops)); m_ListBox_CodesList->Append(StrToWxStr(ops));
} }
@ -332,7 +333,7 @@ void wxCheatsWindow::OnEvent_ApplyChanges_Press(wxCommandEvent& ev)
// Apply Gecko Code changes // Apply Gecko Code changes
Gecko::SetActiveCodes(m_geckocode_panel->GetCodes()); Gecko::SetActiveCodes(m_geckocode_panel->GetCodes());
// save gameini, with changed gecko codes // Save gameini, with changed gecko codes
if (m_gameini_path.size()) if (m_gameini_path.size())
{ {
Gecko::SaveCodes(m_gameini, m_geckocode_panel->GetCodes()); Gecko::SaveCodes(m_gameini, m_geckocode_panel->GetCodes());
@ -409,7 +410,7 @@ void CheatSearchTab::FilterCheatSearchResults(wxCommandEvent&)
filtered_results.reserve(search_results.size()); filtered_results.reserve(search_results.size());
// determine the selected filter // Determine the selected filter
// 1 : equal // 1 : equal
// 2 : greater-than // 2 : greater-than
// 4 : less-than // 4 : less-than

View File

@ -1235,7 +1235,9 @@ void CConfigMain::AddRemoveISOPaths(wxCommandEvent& event)
if (dialog.ShowModal() == wxID_OK) if (dialog.ShowModal() == wxID_OK)
{ {
if (ISOPaths->FindString(dialog.GetPath()) != -1) if (ISOPaths->FindString(dialog.GetPath()) != -1)
{
wxMessageBox(_("The chosen directory is already in the list"), _("Error"), wxOK); wxMessageBox(_("The chosen directory is already in the list"), _("Error"), wxOK);
}
else else
{ {
bRefreshList = true; bRefreshList = true;

View File

@ -50,7 +50,9 @@ void BreakPointDlg::OnOK(wxCommandEvent& event)
Close(); Close();
} }
else else
{
PanicAlert("The address %s is invalid.", WxStrToStr(AddressString).c_str()); PanicAlert("The address %s is invalid.", WxStrToStr(AddressString).c_str());
}
event.Skip(); event.Skip();
} }

View File

@ -40,10 +40,10 @@ void CBreakPointView::Update()
InsertColumn(0, wxT("Active")); InsertColumn(0, wxT("Active"));
InsertColumn(1, wxT("Type")); InsertColumn(1, wxT("Type"));
InsertColumn(2, wxT("Function")); InsertColumn(2, wxT("Function"));
InsertColumn(3, wxT("Address")); InsertColumn(3, wxT("Address"));
InsertColumn(4, wxT("Flags")); InsertColumn(4, wxT("Flags"));
char szBuffer[64]; char szBuffer[64];
const BreakPoints::TBreakPoints& rBreakPoints = PowerPC::breakpoints.GetBreakPoints(); const BreakPoints::TBreakPoints& rBreakPoints = PowerPC::breakpoints.GetBreakPoints();
for (size_t i = 0; i < rBreakPoints.size(); i++) for (size_t i = 0; i < rBreakPoints.size(); i++)
{ {
@ -63,11 +63,11 @@ void CBreakPointView::Update()
SetItem(Item, 2, temp); SetItem(Item, 2, temp);
} }
sprintf(szBuffer, "%08x", rBP.iAddress); sprintf(szBuffer, "%08x", rBP.iAddress);
temp = StrToWxStr(szBuffer); temp = StrToWxStr(szBuffer);
SetItem(Item, 3, temp); SetItem(Item, 3, temp);
SetItemData(Item, rBP.iAddress); SetItemData(Item, rBP.iAddress);
} }
} }
@ -108,12 +108,12 @@ void CBreakPointView::Update()
void CBreakPointView::DeleteCurrentSelection() void CBreakPointView::DeleteCurrentSelection()
{ {
int Item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); int Item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
if (Item >= 0) if (Item >= 0)
{ {
u32 Address = (u32)GetItemData(Item); u32 Address = (u32)GetItemData(Item);
PowerPC::breakpoints.Remove(Address); PowerPC::breakpoints.Remove(Address);
PowerPC::memchecks.Remove(Address); PowerPC::memchecks.Remove(Address);
Update(); Update();
} }
} }

View File

@ -62,20 +62,20 @@ END_EVENT_TABLE()
CCodeView::CCodeView(DebugInterface* debuginterface, SymbolDB *symboldb, CCodeView::CCodeView(DebugInterface* debuginterface, SymbolDB *symboldb,
wxWindow* parent, wxWindowID Id) wxWindow* parent, wxWindowID Id)
: wxControl(parent, Id), : wxControl(parent, Id),
debugger(debuginterface), debugger(debuginterface),
symbol_db(symboldb), symbol_db(symboldb),
plain(false), plain(false),
curAddress(debuginterface->getPC()), curAddress(debuginterface->getPC()),
align(debuginterface->getInstructionSize(0)), align(debuginterface->getInstructionSize(0)),
rowHeight(13), rowHeight(13),
selection(0), selection(0),
oldSelection(0), oldSelection(0),
selectionChanged(false), selectionChanged(false),
selecting(false), selecting(false),
hasFocus(false), hasFocus(false),
showHex(false), showHex(false),
lx(-1), lx(-1),
ly(-1) ly(-1)
{ {
} }
@ -104,7 +104,9 @@ void CCodeView::OnMouseDown(wxMouseEvent& event)
Refresh(); Refresh();
} }
else else
{
ToggleBreakpoint(YToAddress(y)); ToggleBreakpoint(YToAddress(y));
}
event.Skip(true); event.Skip(true);
} }
@ -133,7 +135,9 @@ void CCodeView::OnMouseMove(wxMouseEvent& event)
Refresh(); Refresh();
} }
else else
{
OnMouseDown(event); OnMouseDown(event);
}
} }
event.Skip(true); event.Skip(true);
@ -180,7 +184,10 @@ void CCodeView::InsertBlrNop(int Blr)
for(u32 i = 0; i < BlrList.size(); i++) for(u32 i = 0; i < BlrList.size(); i++)
{ {
if(BlrList.at(i).Address == selection) if(BlrList.at(i).Address == selection)
{ find = i; break; } {
find = i;
break;
}
} }
// Save the old value // Save the old value
@ -211,14 +218,14 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
switch (event.GetId()) switch (event.GetId())
{ {
case IDM_GOTOINMEMVIEW: case IDM_GOTOINMEMVIEW:
// CMemoryDlg::Goto(selection); // CMemoryDlg::Goto(selection);
break; break;
#if wxUSE_CLIPBOARD #if wxUSE_CLIPBOARD
case IDM_COPYADDRESS: case IDM_COPYADDRESS:
wxTheClipboard->SetData(new wxTextDataObject(wxString::Format(_T("%08x"), selection))); wxTheClipboard->SetData(new wxTextDataObject(wxString::Format(_T("%08x"), selection)));
break; break;
case IDM_COPYCODE: case IDM_COPYCODE:
{ {
@ -228,13 +235,13 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
} }
break; break;
case IDM_COPYHEX: case IDM_COPYHEX:
{ {
char temp[24]; char temp[24];
sprintf(temp, "%08x", debugger->readInstruction(selection)); sprintf(temp, "%08x", debugger->readInstruction(selection));
wxTheClipboard->SetData(new wxTextDataObject(StrToWxStr(temp))); wxTheClipboard->SetData(new wxTextDataObject(StrToWxStr(temp)));
} }
break; break;
case IDM_COPYFUNCTION: case IDM_COPYFUNCTION:
@ -259,11 +266,11 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
break; break;
#endif #endif
case IDM_RUNTOHERE: case IDM_RUNTOHERE:
debugger->setBreakpoint(selection); debugger->setBreakpoint(selection);
debugger->runToBreakpoint(); debugger->runToBreakpoint();
Refresh(); Refresh();
break; break;
// Insert blr or restore old value // Insert blr or restore old value
case IDM_INSERTBLR: case IDM_INSERTBLR:
@ -275,9 +282,9 @@ void CCodeView::OnPopupMenu(wxCommandEvent& event)
Refresh(); Refresh();
break; break;
case IDM_JITRESULTS: case IDM_JITRESULTS:
debugger->showJitResults(selection); debugger->showJitResults(selection);
break; break;
case IDM_FOLLOWBRANCH: case IDM_FOLLOWBRANCH:
{ {
@ -366,7 +373,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
dc.GetTextExtent(_T("0WJyq"),&w,&h); dc.GetTextExtent(_T("0WJyq"),&w,&h);
if (h > rowHeight) if (h > rowHeight)
rowHeight = h; rowHeight = h;
dc.GetTextExtent(_T("W"),&w,&h); dc.GetTextExtent(_T("W"),&w,&h);
int charWidth = w; int charWidth = w;
@ -507,7 +514,8 @@ void CCodeView::OnPaint(wxPaintEvent& event)
strcpy(desc, debugger->getDescription(address).c_str()); strcpy(desc, debugger->getDescription(address).c_str());
} }
if (!plain) { if (!plain)
{
dc.SetTextForeground(_T("#0000FF")); // blue dc.SetTextForeground(_T("#0000FF")); // blue
//char temp[256]; //char temp[256];
@ -535,11 +543,11 @@ void CCodeView::OnPaint(wxPaintEvent& event)
for (int i = 0; i < numBranches; i++) for (int i = 0; i < numBranches; i++)
{ {
int x = 17 + 49 * charWidth + (branches[i].srcAddr % 9) * 8; int x = 17 + 49 * 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)
{ {
_LineTo(dc, x+2, branches[i].src); _LineTo(dc, x+2, branches[i].src);
_LineTo(dc, x+2, branches[i].dst); _LineTo(dc, x+2, branches[i].dst);
_LineTo(dc, x-4, branches[i].dst); _LineTo(dc, x-4, branches[i].dst);
@ -547,7 +555,7 @@ void CCodeView::OnPaint(wxPaintEvent& event)
_MoveTo(x, branches[i].dst - 4); _MoveTo(x, branches[i].dst - 4);
_LineTo(dc, x-4, branches[i].dst); _LineTo(dc, x-4, branches[i].dst);
_LineTo(dc, x+1, branches[i].dst+5); _LineTo(dc, x+1, branches[i].dst+5);
} }
//else //else
//{ //{
// This can be re-enabled when there is a scrollbar or // This can be re-enabled when there is a scrollbar or

View File

@ -138,16 +138,16 @@ void CCodeWindow::OnHostMessage(wxCommandEvent& event)
{ {
switch (event.GetId()) switch (event.GetId())
{ {
case IDM_NOTIFYMAPLOADED: case IDM_NOTIFYMAPLOADED:
NotifyMapLoaded(); NotifyMapLoaded();
if (m_BreakpointWindow) m_BreakpointWindow->NotifyUpdate(); if (m_BreakpointWindow) m_BreakpointWindow->NotifyUpdate();
break; break;
case IDM_UPDATEDISASMDIALOG: case IDM_UPDATEDISASMDIALOG:
Update(); Update();
if (codeview) codeview->Center(PC); if (codeview) codeview->Center(PC);
if (m_RegisterWindow) m_RegisterWindow->NotifyUpdate(); if (m_RegisterWindow) m_RegisterWindow->NotifyUpdate();
break; break;
case IDM_UPDATEBREAKPOINTS: case IDM_UPDATEBREAKPOINTS:
Update(); Update();
@ -161,31 +161,31 @@ void CCodeWindow::OnCodeStep(wxCommandEvent& event)
{ {
switch (event.GetId()) switch (event.GetId())
{ {
case IDM_STEP: case IDM_STEP:
SingleStep(); SingleStep();
break; break;
case IDM_STEPOVER: case IDM_STEPOVER:
StepOver(); StepOver();
break; break;
case IDM_TOGGLE_BREAKPOINT: case IDM_TOGGLE_BREAKPOINT:
ToggleBreakpoint(); ToggleBreakpoint();
break; break;
case IDM_SKIP: case IDM_SKIP:
PC += 4; PC += 4;
Update(); Update();
break; break;
case IDM_SETPC: case IDM_SETPC:
PC = codeview->GetSelection(); PC = codeview->GetSelection();
Update(); Update();
break; break;
case IDM_GOTOPC: case IDM_GOTOPC:
JumpToAddress(PC); JumpToAddress(PC);
break; break;
} }
UpdateButtonStates(); UpdateButtonStates();
@ -227,7 +227,7 @@ void CCodeWindow::OnCallstackListChange(wxCommandEvent& event)
{ {
int index = callstack->GetSelection(); int index = callstack->GetSelection();
if (index >= 0) if (index >= 0)
{ {
u32 address = (u32)(u64)(callstack->GetClientData(index)); u32 address = (u32)(u64)(callstack->GetClientData(index));
if (address) if (address)
JumpToAddress(address); JumpToAddress(address);
@ -238,7 +238,7 @@ void CCodeWindow::OnCallersListChange(wxCommandEvent& event)
{ {
int index = callers->GetSelection(); int index = callers->GetSelection();
if (index >= 0) if (index >= 0)
{ {
u32 address = (u32)(u64)(callers->GetClientData(index)); u32 address = (u32)(u64)(callers->GetClientData(index));
if (address) if (address)
JumpToAddress(address); JumpToAddress(address);
@ -249,7 +249,7 @@ void CCodeWindow::OnCallsListChange(wxCommandEvent& event)
{ {
int index = calls->GetSelection(); int index = calls->GetSelection();
if (index >= 0) if (index >= 0)
{ {
u32 address = (u32)(u64)(calls->GetClientData(index)); u32 address = (u32)(u64)(calls->GetClientData(index));
if (address) if (address)
JumpToAddress(address); JumpToAddress(address);
@ -283,7 +283,9 @@ void CCodeWindow::StepOver()
Update(); Update();
} }
else else
{
SingleStep(); SingleStep();
}
UpdateButtonStates(); UpdateButtonStates();
// Update all toolbars in the aui manager // Update all toolbars in the aui manager
@ -307,12 +309,13 @@ void CCodeWindow::UpdateLists()
Symbol *symbol = g_symbolDB.GetSymbolFromAddr(addr); Symbol *symbol = g_symbolDB.GetSymbolFromAddr(addr);
if (!symbol) if (!symbol)
return; return;
for (int i = 0; i < (int)symbol->callers.size(); i++) for (int i = 0; i < (int)symbol->callers.size(); i++)
{ {
u32 caller_addr = symbol->callers[i].callAddress; u32 caller_addr = symbol->callers[i].callAddress;
Symbol *caller_symbol = g_symbolDB.GetSymbolFromAddr(caller_addr); Symbol *caller_symbol = g_symbolDB.GetSymbolFromAddr(caller_addr);
if (caller_symbol) if (caller_symbol)
{ {
int idx = callers->Append(StrToWxStr(StringFromFormat int idx = callers->Append(StrToWxStr(StringFromFormat
("< %s (%08x)", caller_symbol->name.c_str(), caller_addr).c_str())); ("< %s (%08x)", caller_symbol->name.c_str(), caller_addr).c_str()));
callers->SetClientData(idx, (void*)(u64)caller_addr); callers->SetClientData(idx, (void*)(u64)caller_addr);
@ -325,7 +328,7 @@ void CCodeWindow::UpdateLists()
u32 call_addr = symbol->calls[i].function; u32 call_addr = symbol->calls[i].function;
Symbol *call_symbol = g_symbolDB.GetSymbolFromAddr(call_addr); Symbol *call_symbol = g_symbolDB.GetSymbolFromAddr(call_addr);
if (call_symbol) if (call_symbol)
{ {
int idx = calls->Append(StrToWxStr(StringFromFormat int idx = calls->Append(StrToWxStr(StringFromFormat
("> %s (%08x)", call_symbol->name.c_str(), call_addr).c_str())); ("> %s (%08x)", call_symbol->name.c_str(), call_addr).c_str()));
calls->SetClientData(idx, (void*)(u64)call_addr); calls->SetClientData(idx, (void*)(u64)call_addr);
@ -354,8 +357,7 @@ void CCodeWindow::UpdateCallstack()
} }
// Create CPU Mode menus // Create CPU Mode menus
void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter, wxMenuBar *pMenuBar)
wxMenuBar *pMenuBar)
{ {
// CPU Mode // CPU Mode
wxMenu* pCoreMenu = new wxMenu; wxMenu* pCoreMenu = new wxMenu;
@ -386,7 +388,7 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
_("Turn off all JIT functions, but still use the JIT core from Jit.cpp"), _("Turn off all JIT functions, but still use the JIT core from Jit.cpp"),
wxITEM_CHECK); wxITEM_CHECK);
pCoreMenu->Append(IDM_JITLSOFF, _("&JIT LoadStore off"), pCoreMenu->Append(IDM_JITLSOFF, _("&JIT LoadStore off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITLSLBZXOFF, _(" &JIT LoadStore lbzx off"), pCoreMenu->Append(IDM_JITLSLBZXOFF, _(" &JIT LoadStore lbzx off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITLSLXZOFF, _(" &JIT LoadStore lXz off"), pCoreMenu->Append(IDM_JITLSLXZOFF, _(" &JIT LoadStore lXz off"),
@ -394,17 +396,17 @@ void CCodeWindow::CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParam
pCoreMenu->Append(IDM_JITLSLWZOFF, _("&JIT LoadStore lwz off"), pCoreMenu->Append(IDM_JITLSLWZOFF, _("&JIT LoadStore lwz off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITLSFOFF, _("&JIT LoadStore Floating off"), pCoreMenu->Append(IDM_JITLSFOFF, _("&JIT LoadStore Floating off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITLSPOFF, _("&JIT LoadStore Paired off"), pCoreMenu->Append(IDM_JITLSPOFF, _("&JIT LoadStore Paired off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITFPOFF, _("&JIT FloatingPoint off"), pCoreMenu->Append(IDM_JITFPOFF, _("&JIT FloatingPoint off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITIOFF, _("&JIT Integer off"), pCoreMenu->Append(IDM_JITIOFF, _("&JIT Integer off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITPOFF, _("&JIT Paired off"), pCoreMenu->Append(IDM_JITPOFF, _("&JIT Paired off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pCoreMenu->Append(IDM_JITSROFF, _("&JIT SystemRegisters off"), pCoreMenu->Append(IDM_JITSROFF, _("&JIT SystemRegisters off"),
wxEmptyString, wxITEM_CHECK); wxEmptyString, wxITEM_CHECK);
pMenuBar->Append(pCoreMenu, _("&JIT")); pMenuBar->Append(pCoreMenu, _("&JIT"));
@ -448,46 +450,46 @@ void CCodeWindow::OnCPUMode(wxCommandEvent& event)
{ {
case IDM_INTERPRETER: case IDM_INTERPRETER:
PowerPC::SetMode(UseInterpreter() ? PowerPC::MODE_INTERPRETER : PowerPC::MODE_JIT); PowerPC::SetMode(UseInterpreter() ? PowerPC::MODE_INTERPRETER : PowerPC::MODE_JIT);
break; break;
case IDM_BOOTTOPAUSE: case IDM_BOOTTOPAUSE:
bBootToPause = !bBootToPause; bBootToPause = !bBootToPause;
return; return;
case IDM_AUTOMATICSTART: case IDM_AUTOMATICSTART:
bAutomaticStart = !bAutomaticStart; bAutomaticStart = !bAutomaticStart;
return; return;
case IDM_JITOFF: case IDM_JITOFF:
Core::g_CoreStartupParameter.bJITOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITOff = event.IsChecked();
break; break;
case IDM_JITLSOFF: case IDM_JITLSOFF:
Core::g_CoreStartupParameter.bJITLoadStoreOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStoreOff = event.IsChecked();
break; break;
case IDM_JITLSLXZOFF: case IDM_JITLSLXZOFF:
Core::g_CoreStartupParameter.bJITLoadStorelXzOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStorelXzOff = event.IsChecked();
break; break;
case IDM_JITLSLWZOFF: case IDM_JITLSLWZOFF:
Core::g_CoreStartupParameter.bJITLoadStorelwzOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStorelwzOff = event.IsChecked();
break; break;
case IDM_JITLSLBZXOFF: case IDM_JITLSLBZXOFF:
Core::g_CoreStartupParameter.bJITLoadStorelbzxOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStorelbzxOff = event.IsChecked();
break; break;
case IDM_JITLSFOFF: case IDM_JITLSFOFF:
Core::g_CoreStartupParameter.bJITLoadStoreFloatingOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStoreFloatingOff = event.IsChecked();
break; break;
case IDM_JITLSPOFF: case IDM_JITLSPOFF:
Core::g_CoreStartupParameter.bJITLoadStorePairedOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITLoadStorePairedOff = event.IsChecked();
break; break;
case IDM_JITFPOFF: case IDM_JITFPOFF:
Core::g_CoreStartupParameter.bJITFloatingPointOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITFloatingPointOff = event.IsChecked();
break; break;
case IDM_JITIOFF: case IDM_JITIOFF:
Core::g_CoreStartupParameter.bJITIntegerOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITIntegerOff = event.IsChecked();
break; break;
case IDM_JITPOFF: case IDM_JITPOFF:
Core::g_CoreStartupParameter.bJITPairedOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITPairedOff = event.IsChecked();
break; break;
case IDM_JITSROFF: case IDM_JITSROFF:
Core::g_CoreStartupParameter.bJITSystemRegistersOff = event.IsChecked(); Core::g_CoreStartupParameter.bJITSystemRegistersOff = event.IsChecked();
break; break;
} }
// Clear the JIT cache to enable these changes // Clear the JIT cache to enable these changes
@ -503,22 +505,22 @@ void CCodeWindow::OnJitMenu(wxCommandEvent& event)
{ {
case IDM_LOGINSTRUCTIONS: case IDM_LOGINSTRUCTIONS:
PPCTables::LogCompiledInstructions(); PPCTables::LogCompiledInstructions();
break; break;
case IDM_CLEARCODECACHE: case IDM_CLEARCODECACHE:
JitInterface::ClearCache(); JitInterface::ClearCache();
break; break;
case IDM_SEARCHINSTRUCTION: case IDM_SEARCHINSTRUCTION:
{ {
wxString str; wxString str;
str = wxGetTextFromUser(_T(""), wxT("Op?"), wxEmptyString, this); str = wxGetTextFromUser(_T(""), wxT("Op?"), wxEmptyString, this);
for (u32 addr = 0x80000000; addr < 0x80100000; addr += 4) for (u32 addr = 0x80000000; addr < 0x80100000; addr += 4)
{ {
const char *name = PPCTables::GetInstructionName(Memory::ReadUnchecked_U32(addr)); const char *name = PPCTables::GetInstructionName(Memory::ReadUnchecked_U32(addr));
auto const wx_name = WxStrToStr(str); auto const wx_name = WxStrToStr(str);
if (name && (wx_name == name)) if (name && (wx_name == name))
{ {
NOTICE_LOG(POWERPC, "Found %s at %08x", wx_name.c_str(), addr); NOTICE_LOG(POWERPC, "Found %s at %08x", wx_name.c_str(), addr);
} }
} }
@ -575,10 +577,10 @@ void CCodeWindow::PopulateToolbar(wxAuiToolBar* toolBar)
toolBar->SetToolBitmapSize(wxSize(w, h)); toolBar->SetToolBitmapSize(wxSize(w, h));
toolBar->AddTool(IDM_STEP, _("Step"), m_Bitmaps[Toolbar_Step]); toolBar->AddTool(IDM_STEP, _("Step"), m_Bitmaps[Toolbar_Step]);
toolBar->AddTool(IDM_STEPOVER, _("Step Over"), m_Bitmaps[Toolbar_StepOver]); toolBar->AddTool(IDM_STEPOVER, _("Step Over"), m_Bitmaps[Toolbar_StepOver]);
toolBar->AddTool(IDM_SKIP, _("Skip"), m_Bitmaps[Toolbar_Skip]); toolBar->AddTool(IDM_SKIP, _("Skip"), m_Bitmaps[Toolbar_Skip]);
toolBar->AddSeparator(); toolBar->AddSeparator();
toolBar->AddTool(IDM_GOTOPC, _("Show PC"), m_Bitmaps[Toolbar_GotoPC]); toolBar->AddTool(IDM_GOTOPC, _("Show PC"), m_Bitmaps[Toolbar_GotoPC]);
toolBar->AddTool(IDM_SETPC, _("Set PC"), m_Bitmaps[Toolbar_SetPC]); toolBar->AddTool(IDM_SETPC, _("Set PC"), m_Bitmaps[Toolbar_SetPC]);
toolBar->AddSeparator(); toolBar->AddSeparator();
toolBar->AddControl(new wxTextCtrl(toolBar, IDM_ADDRBOX, _T(""))); toolBar->AddControl(new wxTextCtrl(toolBar, IDM_ADDRBOX, _T("")));

View File

@ -36,13 +36,13 @@ BEGIN_EVENT_TABLE(DSPDebuggerLLE, wxPanel)
EVT_CLOSE(DSPDebuggerLLE::OnClose) EVT_CLOSE(DSPDebuggerLLE::OnClose)
EVT_MENU_RANGE(ID_RUNTOOL, ID_SHOWPCTOOL, DSPDebuggerLLE::OnChangeState) EVT_MENU_RANGE(ID_RUNTOOL, ID_SHOWPCTOOL, DSPDebuggerLLE::OnChangeState)
EVT_TEXT_ENTER(ID_ADDRBOX, DSPDebuggerLLE::OnAddrBoxChange) EVT_TEXT_ENTER(ID_ADDRBOX, DSPDebuggerLLE::OnAddrBoxChange)
EVT_LISTBOX(ID_SYMBOLLIST, DSPDebuggerLLE::OnSymbolListChange) EVT_LISTBOX(ID_SYMBOLLIST, DSPDebuggerLLE::OnSymbolListChange)
END_EVENT_TABLE() END_EVENT_TABLE()
DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id) DSPDebuggerLLE::DSPDebuggerLLE(wxWindow* parent, wxWindowID id)
: wxPanel(parent, id, wxDefaultPosition, wxDefaultSize, : wxPanel(parent, id, wxDefaultPosition, wxDefaultSize,
wxTAB_TRAVERSAL, _("DSP LLE Debugger")) wxTAB_TRAVERSAL, _("DSP LLE Debugger"))
, m_CachedStepCounter(-1) , m_CachedStepCounter(-1)
{ {
m_DebuggerFrame = this; m_DebuggerFrame = this;
@ -184,14 +184,14 @@ void DSPDebuggerLLE::FocusOnPC()
void DSPDebuggerLLE::UpdateState() void DSPDebuggerLLE::UpdateState()
{ {
if (DSPCore_GetState() == DSPCORE_RUNNING) if (DSPCore_GetState() == DSPCORE_RUNNING)
{ {
m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Pause")); m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Pause"));
m_Toolbar->SetToolBitmap(ID_RUNTOOL, m_Toolbar->SetToolBitmap(ID_RUNTOOL,
wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, wxSize(10,10))); wxArtProvider::GetBitmap(wxART_TICK_MARK, wxART_OTHER, wxSize(10,10)));
m_Toolbar->EnableTool(ID_STEPTOOL, false); m_Toolbar->EnableTool(ID_STEPTOOL, false);
} }
else else
{ {
m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Run")); m_Toolbar->SetToolLabel(ID_RUNTOOL, wxT("Run"));
m_Toolbar->SetToolBitmap(ID_RUNTOOL, m_Toolbar->SetToolBitmap(ID_RUNTOOL,
wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_OTHER, wxSize(10,10))); wxArtProvider::GetBitmap(wxART_GO_FORWARD, wxART_OTHER, wxSize(10,10)));

View File

@ -79,9 +79,10 @@ void GFXDebuggerPanel::SaveSettings() const
// TODO: make this work when we close the entire program too, currently on total close we get // TODO: make this work when we close the entire program too, currently on total close we get
// weird values, perhaps because of some conflict with the rendering window // weird values, perhaps because of some conflict with the rendering window
//
// TODO: get the screen resolution and make limits from that // TODO: get the screen resolution and make limits from that
if (GetPosition().x < 1000 && GetPosition().y < 1000 if (GetPosition().x < 1000 && GetPosition().y < 1000
&& GetSize().GetWidth() < 1000 && GetSize().GetWidth() < 1000
&& GetSize().GetHeight() < 1000) && GetSize().GetHeight() < 1000)
{ {
file.Set("VideoWindow", "x", GetPosition().x); file.Set("VideoWindow", "x", GetPosition().x);

View File

@ -59,15 +59,15 @@ BEGIN_EVENT_TABLE(CJitWindow, wxPanel)
END_EVENT_TABLE() END_EVENT_TABLE()
CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos, CJitWindow::CJitWindow(wxWindow* parent, wxWindowID id, const wxPoint& pos,
const wxSize& size, long style, const wxString& name) const wxSize& size, long style, const wxString& name)
: wxPanel(parent, id, pos, size, style, name) : wxPanel(parent, id, pos, size, style, name)
{ {
wxBoxSizer* sizerBig = new wxBoxSizer(wxVERTICAL); wxBoxSizer* sizerBig = new wxBoxSizer(wxVERTICAL);
wxBoxSizer* sizerSplit = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer* sizerSplit = new wxBoxSizer(wxHORIZONTAL);
sizerSplit->Add(ppc_box = new wxTextCtrl(this, IDM_PPC_BOX, _T("(ppc)"), sizerSplit->Add(ppc_box = new wxTextCtrl(this, IDM_PPC_BOX, _T("(ppc)"),
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE), 1, wxEXPAND); wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE), 1, wxEXPAND);
sizerSplit->Add(x86_box = new wxTextCtrl(this, IDM_X86_BOX, _T("(x86)"), sizerSplit->Add(x86_box = new wxTextCtrl(this, IDM_X86_BOX, _T("(x86)"),
wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE), 1, wxEXPAND); wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE), 1, wxEXPAND);
sizerBig->Add(block_list = new JitBlockList(this, IDM_BLOCKLIST, sizerBig->Add(block_list = new JitBlockList(this, IDM_BLOCKLIST,
wxDefaultPosition, wxSize(100, 140), wxDefaultPosition, wxSize(100, 140),
wxLC_REPORT | wxSUNKEN_BORDER | wxLC_ALIGN_LEFT | wxLC_SINGLE_SEL | wxLC_SORT_ASCENDING), wxLC_REPORT | wxSUNKEN_BORDER | wxLC_ALIGN_LEFT | wxLC_SINGLE_SEL | wxLC_SORT_ASCENDING),
@ -107,21 +107,26 @@ void CJitWindow::Compare(u32 em_address)
int block_num = jit->GetBlockCache()->GetBlockNumberFromStartAddress(em_address); int block_num = jit->GetBlockCache()->GetBlockNumberFromStartAddress(em_address);
if (block_num < 0) if (block_num < 0)
{ {
for (int i = 0; i < 500; i++) { for (int i = 0; i < 500; i++)
{
block_num = jit->GetBlockCache()->GetBlockNumberFromStartAddress(em_address - 4 * i); block_num = jit->GetBlockCache()->GetBlockNumberFromStartAddress(em_address - 4 * i);
if (block_num >= 0) if (block_num >= 0)
break; break;
} }
if (block_num >= 0) {
if (block_num >= 0)
{
JitBlock *block = jit->GetBlockCache()->GetBlock(block_num); JitBlock *block = jit->GetBlockCache()->GetBlock(block_num);
if (!(block->originalAddress <= em_address && if (!(block->originalAddress <= em_address &&
block->originalSize + block->originalAddress >= em_address)) block->originalSize + block->originalAddress >= em_address))
block_num = -1; block_num = -1;
} }
// Do not merge this "if" with the above - block_num changes inside it. // Do not merge this "if" with the above - block_num changes inside it.
if (block_num < 0) { if (block_num < 0)
{
ppc_box->SetValue(StrToWxStr(StringFromFormat("(non-code address: %08x)", ppc_box->SetValue(StrToWxStr(StringFromFormat("(non-code address: %08x)",
em_address))); em_address)));
x86_box->SetValue(StrToWxStr(StringFromFormat("(no translation)"))); x86_box->SetValue(StrToWxStr(StringFromFormat("(no translation)")));
delete[] xDis; delete[] xDis;
return; return;
@ -186,12 +191,14 @@ void CJitWindow::Compare(u32 em_address)
sptr += sprintf(sptr, "%i estimated cycles\n", st.numCycles); sptr += sprintf(sptr, "%i estimated cycles\n", st.numCycles);
sptr += sprintf(sptr, "Num instr: PPC: %i x86: %i (blowup: %i%%)\n", sptr += sprintf(sptr, "Num instr: PPC: %i x86: %i (blowup: %i%%)\n",
size, num_x86_instructions, 100 * (num_x86_instructions / size - 1)); size, num_x86_instructions, 100 * (num_x86_instructions / size - 1));
sptr += sprintf(sptr, "Num bytes: PPC: %i x86: %i (blowup: %i%%)\n", sptr += sprintf(sptr, "Num bytes: PPC: %i x86: %i (blowup: %i%%)\n",
size * 4, block->codeSize, 100 * (block->codeSize / (4 * size) - 1)); size * 4, block->codeSize, 100 * (block->codeSize / (4 * size) - 1));
ppc_box->SetValue(StrToWxStr((char*)xDis)); ppc_box->SetValue(StrToWxStr((char*)xDis));
} else { }
else
{
ppc_box->SetValue(StrToWxStr(StringFromFormat( ppc_box->SetValue(StrToWxStr(StringFromFormat(
"(non-code address: %08x)", em_address))); "(non-code address: %08x)", em_address)));
x86_box->SetValue("---"); x86_box->SetValue("---");
@ -209,9 +216,9 @@ void CJitWindow::OnHostMessage(wxCommandEvent& event)
{ {
switch (event.GetId()) switch (event.GetId())
{ {
case IDM_NOTIFYMAPLOADED: case IDM_NOTIFYMAPLOADED:
//NotifyMapLoaded(); //NotifyMapLoaded();
break; break;
} }
} }
@ -229,7 +236,7 @@ enum {
}; };
JitBlockList::JitBlockList(wxWindow* parent, const wxWindowID id, JitBlockList::JitBlockList(wxWindow* parent, const wxWindowID id,
const wxPoint& pos, const wxSize& size, long style) const wxPoint& pos, const wxSize& size, long style)
: wxListCtrl(parent, id, pos, size, style) // | wxLC_VIRTUAL) : wxListCtrl(parent, id, pos, size, style) // | wxLC_VIRTUAL)
{ {
Init(); Init();

View File

@ -90,7 +90,7 @@ void CMemoryView::OnMouseDownL(wxMouseEvent& event)
} }
else else
{ {
debugger->toggleMemCheck(YToAddress(y)); debugger->toggleMemCheck(YToAddress(y));
Refresh(); Refresh();
Host_UpdateBreakPointView(); Host_UpdateBreakPointView();
@ -143,17 +143,17 @@ void CMemoryView::OnPopupMenu(wxCommandEvent& event)
switch (event.GetId()) switch (event.GetId())
{ {
#if wxUSE_CLIPBOARD #if wxUSE_CLIPBOARD
case IDM_COPYADDRESS: case IDM_COPYADDRESS:
wxTheClipboard->SetData(new wxTextDataObject(wxString::Format(_T("%08x"), selection))); wxTheClipboard->SetData(new wxTextDataObject(wxString::Format(_T("%08x"), selection)));
break; break;
case IDM_COPYHEX: case IDM_COPYHEX:
{ {
char temp[24]; char temp[24];
sprintf(temp, "%08x", debugger->readExtraMemory(memory, selection)); sprintf(temp, "%08x", debugger->readExtraMemory(memory, selection));
wxTheClipboard->SetData(new wxTextDataObject(StrToWxStr(temp))); wxTheClipboard->SetData(new wxTextDataObject(StrToWxStr(temp)));
} }
break; break;
#endif #endif
case IDM_TOGGLEMEMORY: case IDM_TOGGLEMEMORY:
@ -197,7 +197,7 @@ void CMemoryView::OnMouseDownR(wxMouseEvent& event)
viewAsSubMenu->Append(IDM_VIEWASFP, StrToWxStr("FP value")); viewAsSubMenu->Append(IDM_VIEWASFP, StrToWxStr("FP value"));
viewAsSubMenu->Append(IDM_VIEWASASCII, StrToWxStr("ASCII")); viewAsSubMenu->Append(IDM_VIEWASASCII, StrToWxStr("ASCII"));
viewAsSubMenu->Append(IDM_VIEWASHEX, StrToWxStr("Hex")); viewAsSubMenu->Append(IDM_VIEWASHEX, StrToWxStr("Hex"));
menu->AppendSubMenu(viewAsSubMenu, StrToWxStr("View As:")); menu->AppendSubMenu(viewAsSubMenu, StrToWxStr("View As:"));
PopupMenu(menu); PopupMenu(menu);
} }
@ -212,10 +212,10 @@ void CMemoryView::OnPaint(wxPaintEvent& event)
wxCoord w,h; wxCoord w,h;
dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&hFont); dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&hFont);
if (h > rowHeight) if (h > rowHeight)
rowHeight = h; rowHeight = h;
dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&DebuggerFont); dc.GetTextExtent(_T("0WJyq"),&w,&h,NULL,NULL,&DebuggerFont);
if (h > rowHeight) if (h > rowHeight)
rowHeight = h; rowHeight = h;
if (viewAsType==VIEWAS_HEX) if (viewAsType==VIEWAS_HEX)
dc.SetFont(hFont); dc.SetFont(hFont);
@ -359,7 +359,9 @@ void CMemoryView::OnPaint(wxPaintEvent& event)
curAddress += 32; curAddress += 32;
} }
else else
{
sprintf(dis, "INVALID VIEWAS TYPE"); sprintf(dis, "INVALID VIEWAS TYPE");
}
char desc[256] = ""; char desc[256] = "";
if (viewAsType != VIEWAS_HEX) if (viewAsType != VIEWAS_HEX)

View File

@ -341,13 +341,13 @@ void CMemoryWindow::onSearch(wxCommandEvent& event)
newsize = rawData.size(); newsize = rawData.size();
if (pad) if (pad)
{ {
tmpstr = new char[newsize + 2]; tmpstr = new char[newsize + 2];
memset(tmpstr, 0, newsize + 2); memset(tmpstr, 0, newsize + 2);
tmpstr[0] = '0'; tmpstr[0] = '0';
} }
else else
{ {
tmpstr = new char[newsize + 1]; tmpstr = new char[newsize + 1];
memset(tmpstr, 0, newsize + 1); memset(tmpstr, 0, newsize + 1);
} }
@ -368,7 +368,9 @@ void CMemoryWindow::onSearch(wxCommandEvent& event)
i += 1; i += 1;
} }
delete[] tmpstr; delete[] tmpstr;
} else { }
else
{
//Looking for an ascii string //Looking for an ascii string
size = rawData.size(); size = rawData.size();
Dest.resize(size+1); Dest.resize(size+1);

View File

@ -31,8 +31,10 @@ static const char *special_reg_names[] = {
"PC", "LR", "CTR", "CR", "FPSCR", "MSR", "SRR0", "SRR1", "Exceptions", "Int Mask", "Int Cause", "PC", "LR", "CTR", "CR", "FPSCR", "MSR", "SRR0", "SRR1", "Exceptions", "Int Mask", "Int Cause",
}; };
static u32 GetSpecialRegValue(int reg) { static u32 GetSpecialRegValue(int reg)
switch (reg) { {
switch (reg)
{
case 0: return PowerPC::ppcState.pc; case 0: return PowerPC::ppcState.pc;
case 1: return PowerPC::ppcState.spr[SPR_LR]; case 1: return PowerPC::ppcState.spr[SPR_LR];
case 2: return PowerPC::ppcState.spr[SPR_CTR]; case 2: return PowerPC::ppcState.spr[SPR_CTR];
@ -50,8 +52,10 @@ static u32 GetSpecialRegValue(int reg) {
wxString CRegTable::GetValue(int row, int col) wxString CRegTable::GetValue(int row, int col)
{ {
if (row < 32) { if (row < 32)
switch (col) { {
switch (col)
{
case 0: return StrToWxStr(GetGPRName(row)); case 0: return StrToWxStr(GetGPRName(row));
case 1: return wxString::Format(wxT("%08x"), GPR(row)); case 1: return wxString::Format(wxT("%08x"), GPR(row));
case 2: return StrToWxStr(GetFPRName(row)); case 2: return StrToWxStr(GetFPRName(row));
@ -59,20 +63,26 @@ wxString CRegTable::GetValue(int row, int col)
case 4: return wxString::Format(wxT("%016llx"), riPS1(row)); case 4: return wxString::Format(wxT("%016llx"), riPS1(row));
default: return wxEmptyString; default: return wxEmptyString;
} }
} else { }
if (row - 32 < NUM_SPECIALS) { else
switch (col) { {
if (row - 32 < NUM_SPECIALS)
{
switch (col)
{
case 0: return StrToWxStr(special_reg_names[row - 32]); case 0: return StrToWxStr(special_reg_names[row - 32]);
case 1: return wxString::Format(wxT("%08x"), GetSpecialRegValue(row - 32)); case 1: return wxString::Format(wxT("%08x"), GetSpecialRegValue(row - 32));
default: return wxEmptyString; default: return wxEmptyString;
} }
} }
} }
return wxEmptyString; return wxEmptyString;
} }
static void SetSpecialRegValue(int reg, u32 value) { static void SetSpecialRegValue(int reg, u32 value)
switch (reg) { {
switch (reg)
{
case 0: PowerPC::ppcState.pc = value; break; case 0: PowerPC::ppcState.pc = value; break;
case 1: PowerPC::ppcState.spr[SPR_LR] = value; break; case 1: PowerPC::ppcState.spr[SPR_LR] = value; break;
case 2: PowerPC::ppcState.spr[SPR_CTR] = value; break; case 2: PowerPC::ppcState.spr[SPR_CTR] = value; break;
@ -94,15 +104,19 @@ void CRegTable::SetValue(int row, int col, const wxString& strNewVal)
u32 newVal = 0; u32 newVal = 0;
if (TryParse(WxStrToStr(strNewVal), &newVal)) if (TryParse(WxStrToStr(strNewVal), &newVal))
{ {
if (row < 32) { if (row < 32)
{
if (col == 1) if (col == 1)
GPR(row) = newVal; GPR(row) = newVal;
else if (col == 3) else if (col == 3)
riPS0(row) = newVal; riPS0(row) = newVal;
else if (col == 4) else if (col == 4)
riPS1(row) = newVal; riPS1(row) = newVal;
} else { }
if ((row - 32 < NUM_SPECIALS) && (col == 1)) { else
{
if ((row - 32 < NUM_SPECIALS) && (col == 1))
{
SetSpecialRegValue(row - 32, newVal); SetSpecialRegValue(row - 32, newVal);
} }
} }
@ -135,7 +149,8 @@ wxGridCellAttr *CRegTable::GetAttr(int row, int col, wxGridCellAttr::wxAttrKind)
attr->SetBackgroundColour(wxColour(wxT("#FFFFFF"))); //wxWHITE attr->SetBackgroundColour(wxColour(wxT("#FFFFFF"))); //wxWHITE
attr->SetFont(DebuggerFont); attr->SetFont(DebuggerFont);
switch (col) { switch (col)
{
case 1: case 1:
attr->SetAlignment(wxALIGN_CENTER, wxALIGN_CENTER); attr->SetAlignment(wxALIGN_CENTER, wxALIGN_CENTER);
break; break;
@ -149,11 +164,13 @@ wxGridCellAttr *CRegTable::GetAttr(int row, int col, wxGridCellAttr::wxAttrKind)
} }
bool red = false; bool red = false;
switch (col) { switch (col)
{
case 1: red = row < 32 ? m_CachedRegHasChanged[row] : m_CachedSpecialRegHasChanged[row-32]; break; case 1: red = row < 32 ? m_CachedRegHasChanged[row] : m_CachedSpecialRegHasChanged[row-32]; break;
case 3: case 3:
case 4: red = row < 32 ? m_CachedFRegHasChanged[row][col-3] : false; break; case 4: red = row < 32 ? m_CachedFRegHasChanged[row][col-3] : false; break;
} }
attr->SetTextColour(red ? wxColor(wxT("#FF0000")) : wxColor(wxT("#000000"))); attr->SetTextColour(red ? wxColor(wxT("#FF0000")) : wxColor(wxT("#000000")));
attr->IncRef(); attr->IncRef();
return attr; return attr;

View File

@ -28,8 +28,8 @@ END_EVENT_TABLE()
CRegisterWindow::CRegisterWindow(wxWindow* parent, wxWindowID id, CRegisterWindow::CRegisterWindow(wxWindow* parent, wxWindowID id,
const wxPoint& position, const wxSize& size, const wxPoint& position, const wxSize& size,
long style, const wxString& name) long style, const wxString& name)
: wxPanel(parent, id, position, size, style, name) : wxPanel(parent, id, position, size, style, name)
, m_GPRGridView(NULL) , m_GPRGridView(NULL)
{ {

View File

@ -387,18 +387,23 @@ void FifoPlayerDlg::OnCheckEarlyMemoryUpdates(wxCommandEvent& event)
void FifoPlayerDlg::OnSaveFile(wxCommandEvent& WXUNUSED(event)) void FifoPlayerDlg::OnSaveFile(wxCommandEvent& WXUNUSED(event))
{ {
// Pointer to the file data that was created as a result of recording.
FifoDataFile *file = FifoRecorder::GetInstance().GetRecordedFile(); FifoDataFile *file = FifoRecorder::GetInstance().GetRecordedFile();
if (file) if (file)
{ {
// Bring up a save file dialog. The location the user chooses will be assigned to this variable.
wxString path = wxSaveFileSelector(_("Dolphin FIFO"), wxT("dff"), wxEmptyString, this); wxString path = wxSaveFileSelector(_("Dolphin FIFO"), wxT("dff"), wxEmptyString, this);
// Has a valid file path
if (!path.empty()) if (!path.empty())
{ {
// Attempt to save the file to the path the user chose
wxBeginBusyCursor(); wxBeginBusyCursor();
bool result = file->Save(WxStrToStr(path).c_str()); bool result = file->Save(WxStrToStr(path).c_str());
wxEndBusyCursor(); wxEndBusyCursor();
// Wasn't able to save the file, shit's whack, yo.
if (!result) if (!result)
PanicAlert("Error saving file"); PanicAlert("Error saving file");
} }
@ -409,14 +414,21 @@ void FifoPlayerDlg::OnRecordStop(wxCommandEvent& WXUNUSED(event))
{ {
FifoRecorder& recorder = FifoRecorder::GetInstance(); FifoRecorder& recorder = FifoRecorder::GetInstance();
// Recorder is still recording
if (recorder.IsRecording()) if (recorder.IsRecording())
{ {
// Then stop recording
recorder.StopRecording(); recorder.StopRecording();
// and disable the button to stop recording
m_RecordStop->Disable(); m_RecordStop->Disable();
} }
else else // Recorder is actually about to start recording
{ {
// So start recording
recorder.StartRecording(m_FramesToRecord, RecordingFinished); recorder.StartRecording(m_FramesToRecord, RecordingFinished);
// and change the button label accordingly.
m_RecordStop->SetLabel(_("Stop")); m_RecordStop->SetLabel(_("Stop"));
} }
} }
@ -839,10 +851,12 @@ void FifoPlayerDlg::UpdateAnalyzerGui()
if ((int)m_framesList->GetCount() != num_frames) if ((int)m_framesList->GetCount() != num_frames)
{ {
m_framesList->Clear(); m_framesList->Clear();
for (int i = 0; i < num_frames; ++i) for (int i = 0; i < num_frames; ++i)
{ {
m_framesList->Append(wxString::Format(wxT("Frame %i"), i)); m_framesList->Append(wxString::Format(wxT("Frame %i"), i));
} }
wxCommandEvent ev = wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED); wxCommandEvent ev = wxCommandEvent(wxEVT_COMMAND_LISTBOX_SELECTED);
ev.SetInt(-1); ev.SetInt(-1);
OnFrameListSelectionChanged(ev); OnFrameListSelectionChanged(ev);

View File

@ -468,10 +468,13 @@ void CFrame::OnClose(wxCloseEvent& event)
event.Skip(); event.Skip();
// Save GUI settings // Save GUI settings
if (g_pCodeWindow) SaveIniPerspectives(); if (g_pCodeWindow)
// Close the log window now so that its settings are saved {
SaveIniPerspectives();
}
else else
{ {
// Close the log window now so that its settings are saved
m_LogWindow->Close(); m_LogWindow->Close();
m_LogWindow = NULL; m_LogWindow = NULL;
} }
@ -494,7 +497,9 @@ void CFrame::PostEvent(wxCommandEvent& event)
g_pCodeWindow->GetEventHandler()->AddPendingEvent(event); g_pCodeWindow->GetEventHandler()->AddPendingEvent(event);
} }
else else
{
event.Skip(); event.Skip();
}
} }
void CFrame::OnMove(wxMoveEvent& event) void CFrame::OnMove(wxMoveEvent& event)
@ -706,16 +711,20 @@ void CFrame::OnGameListCtrl_ItemActivated(wxListEvent& WXUNUSED (event))
m_GameListCtrl->Update(); m_GameListCtrl->Update();
} }
else if (!m_GameListCtrl->GetISO(0)) else if (!m_GameListCtrl->GetISO(0))
{
m_GameListCtrl->BrowseForDirectory(); m_GameListCtrl->BrowseForDirectory();
}
else else
{
// Game started by double click // Game started by double click
BootGame(std::string("")); BootGame(std::string(""));
}
} }
bool IsHotkey(wxKeyEvent &event, int Id) bool IsHotkey(wxKeyEvent &event, int Id)
{ {
return (event.GetKeyCode() != WXK_NONE && return (event.GetKeyCode() != WXK_NONE &&
event.GetKeyCode() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkey[Id] && event.GetKeyCode() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkey[Id] &&
event.GetModifiers() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[Id]); event.GetModifiers() == SConfig::GetInstance().m_LocalCoreStartupParameter.iHotkeyModifier[Id]);
} }
@ -853,7 +862,7 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
DoFullscreen(!RendererIsFullscreen()); DoFullscreen(!RendererIsFullscreen());
// Send Debugger keys to CodeWindow // Send Debugger keys to CodeWindow
else if (g_pCodeWindow && (event.GetKeyCode() >= WXK_F9 && event.GetKeyCode() <= WXK_F11)) else if (g_pCodeWindow && (event.GetKeyCode() >= WXK_F9 && event.GetKeyCode() <= WXK_F11))
event.Skip(); event.Skip();
// Pause and Unpause // Pause and Unpause
else if (IsHotkey(event, HK_PLAY_PAUSE)) else if (IsHotkey(event, HK_PLAY_PAUSE))
DoPause(); DoPause();
@ -964,7 +973,9 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
} }
} }
else else
{
event.Skip(); event.Skip();
}
} }
void CFrame::OnKeyUp(wxKeyEvent& event) void CFrame::OnKeyUp(wxKeyEvent& event)
@ -1019,7 +1030,9 @@ void CFrame::DoFullscreen(bool bF)
} }
} }
else else
{
m_RenderFrame->Raise(); m_RenderFrame->Raise();
}
} }
const CGameListCtrl *CFrame::GetGameListCtrl() const const CGameListCtrl *CFrame::GetGameListCtrl() const

View File

@ -67,11 +67,15 @@ void CFrame::OnPaneClose(wxAuiManagerEvent& event)
else else
{ {
if (GetNotebookCount() == 1) if (GetNotebookCount() == 1)
{
wxMessageBox(_("At least one pane must remain open."), wxMessageBox(_("At least one pane must remain open."),
_("Notice"), wxOK, this); _("Notice"), wxOK, this);
}
else if (nb->GetPageCount() != 0 && !nb->GetPageText(0).IsSameAs(wxT("<>"))) else if (nb->GetPageCount() != 0 && !nb->GetPageText(0).IsSameAs(wxT("<>")))
{
wxMessageBox(_("You can't close panes that have pages in them."), wxMessageBox(_("You can't close panes that have pages in them."),
_("Notice"), wxOK, this); _("Notice"), wxOK, this);
}
else else
{ {
// Detach and delete the empty notebook // Detach and delete the empty notebook
@ -92,14 +96,21 @@ void CFrame::ToggleLogWindow(bool bShow)
if (bShow) if (bShow)
{ {
if (!m_LogWindow) m_LogWindow = new CLogWindow(this, IDM_LOGWINDOW); // Create a new log window if it doesn't exist.
if (!m_LogWindow)
{
m_LogWindow = new CLogWindow(this, IDM_LOGWINDOW);
}
m_LogWindow->Enable(); m_LogWindow->Enable();
DoAddPage(m_LogWindow, DoAddPage(m_LogWindow,
g_pCodeWindow ? g_pCodeWindow->iNbAffiliation[0] : 0, g_pCodeWindow ? g_pCodeWindow->iNbAffiliation[0] : 0,
g_pCodeWindow ? bFloatWindow[0] : false); g_pCodeWindow ? bFloatWindow[0] : false);
} }
else else
{ {
// Hiding the log window, so disable it and remove it.
m_LogWindow->Disable(); m_LogWindow->Disable();
DoRemovePage(m_LogWindow, true); DoRemovePage(m_LogWindow, true);
} }
@ -117,6 +128,7 @@ void CFrame::ToggleLogConfigWindow(bool bShow)
{ {
if (!m_LogConfigWindow) if (!m_LogConfigWindow)
m_LogConfigWindow = new LogConfigWindow(this, m_LogWindow, IDM_LOGCONFIGWINDOW); m_LogConfigWindow = new LogConfigWindow(this, m_LogWindow, IDM_LOGCONFIGWINDOW);
const int nbIndex = IDM_LOGCONFIGWINDOW - IDM_LOGWINDOW; const int nbIndex = IDM_LOGCONFIGWINDOW - IDM_LOGWINDOW;
DoAddPage(m_LogConfigWindow, DoAddPage(m_LogConfigWindow,
g_pCodeWindow ? g_pCodeWindow->iNbAffiliation[nbIndex] : 0, g_pCodeWindow ? g_pCodeWindow->iNbAffiliation[nbIndex] : 0,
@ -147,7 +159,9 @@ void CFrame::ToggleConsole(bool bShow)
Console->Open(); Console->Open();
} }
else else
{
ShowWindow(GetConsoleWindow(), SW_SHOW); ShowWindow(GetConsoleWindow(), SW_SHOW);
}
// Create the parent window if it doesn't exist // Create the parent window if it doesn't exist
wxPanel *ConsoleParent = (wxPanel*)FindWindowById(IDM_CONSOLEWINDOW); wxPanel *ConsoleParent = (wxPanel*)FindWindowById(IDM_CONSOLEWINDOW);
@ -248,7 +262,9 @@ void CFrame::ClosePages()
void CFrame::OnNotebookPageChanged(wxAuiNotebookEvent& event) void CFrame::OnNotebookPageChanged(wxAuiNotebookEvent& event)
{ {
event.Skip(); event.Skip();
if (!g_pCodeWindow) return;
if (!g_pCodeWindow)
return;
// Remove the blank page if any // Remove the blank page if any
AddRemoveBlankPage(); AddRemoveBlankPage();
@ -364,6 +380,7 @@ void CFrame::OnTab(wxAuiNotebookEvent& event)
MenuPopup->Append(Item); MenuPopup->Append(Item);
Item->Enable(false); Item->Enable(false);
MenuPopup->Append(new wxMenuItem(MenuPopup)); MenuPopup->Append(new wxMenuItem(MenuPopup));
for (int i = IDM_LOGWINDOW; i <= IDM_CODEWINDOW; i++) for (int i = IDM_LOGWINDOW; i <= IDM_CODEWINDOW; i++)
{ {
wxWindow *Win = FindWindowById(i); wxWindow *Win = FindWindowById(i);
@ -379,6 +396,7 @@ void CFrame::OnTab(wxAuiNotebookEvent& event)
// Line up our menu with the cursor // Line up our menu with the cursor
wxPoint Pt = ::wxGetMousePosition(); wxPoint Pt = ::wxGetMousePosition();
Pt = ScreenToClient(Pt); Pt = ScreenToClient(Pt);
// Show // Show
PopupMenu(MenuPopup, Pt); PopupMenu(MenuPopup, Pt);
} }
@ -425,6 +443,7 @@ void CFrame::TogglePane()
if (m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) if (m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook)))
NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window;
} }
if (NB) if (NB)
{ {
if (NB->GetPageCount() == 0) if (NB->GetPageCount() == 0)
@ -433,7 +452,9 @@ void CFrame::TogglePane()
m_Mgr->Update(); m_Mgr->Update();
} }
else else
{
ShowResizePane(); ShowResizePane();
}
} }
} }
@ -452,7 +473,10 @@ void CFrame::DoRemovePage(wxWindow *Win, bool bHide)
Win->Reparent(this); Win->Reparent(this);
} }
else else
{
Win->Destroy(); Win->Destroy();
}
Parent->Destroy(); Parent->Destroy();
} }
else else
@ -469,10 +493,13 @@ void CFrame::DoRemovePage(wxWindow *Win, bool bHide)
Win->Reparent(this); Win->Reparent(this);
} }
else else
{
Win->Destroy(); Win->Destroy();
}
} }
} }
} }
if (g_pCodeWindow) if (g_pCodeWindow)
AddRemoveBlankPage(); AddRemoveBlankPage();
} }
@ -480,8 +507,15 @@ void CFrame::DoRemovePage(wxWindow *Win, bool bHide)
void CFrame::DoAddPage(wxWindow *Win, int i, bool Float) void CFrame::DoAddPage(wxWindow *Win, int i, bool Float)
{ {
if (!Win) return; if (!Win) return;
if (i < 0 || i > GetNotebookCount()-1) i = 0;
if (Win && GetNotebookFromId(i)->GetPageIndex(Win) != wxNOT_FOUND) return; // Ensure accessor remains within valid bounds.
if (i < 0 || i > GetNotebookCount()-1)
i = 0;
// The page was already previously added, no need to add it again.
if (Win && GetNotebookFromId(i)->GetPageIndex(Win) != wxNOT_FOUND)
return;
if (!Float) if (!Float)
GetNotebookFromId(i)->AddPage(Win, Win->GetName(), true); GetNotebookFromId(i)->AddPage(Win, Win->GetName(), true);
else else
@ -520,10 +554,15 @@ void CFrame::OnDropDownSettingsToolbar(wxAuiToolBarEvent& event)
wxRect rect = Tb->GetToolRect(event.GetId()); wxRect rect = Tb->GetToolRect(event.GetId());
wxPoint Pt = Tb->ClientToScreen(rect.GetBottomLeft()); wxPoint Pt = Tb->ClientToScreen(rect.GetBottomLeft());
Pt = ScreenToClient(Pt); Pt = ScreenToClient(Pt);
// Show // Show
PopupMenu(menuPopup, Pt); PopupMenu(menuPopup, Pt);
// Make the button un-stuck again // Make the button un-stuck again
if (!m_bEdit) Tb->SetToolSticky(event.GetId(), false); if (!m_bEdit)
{
Tb->SetToolSticky(event.GetId(), false);
}
} }
} }
@ -551,8 +590,13 @@ void CFrame::OnDropDownToolbarItem(wxAuiToolBarEvent& event)
wxMenuItem* mItem = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_0 + i, wxMenuItem* mItem = new wxMenuItem(menuPopup, IDM_PERSPECTIVES_0 + i,
StrToWxStr(Perspectives[i].Name), StrToWxStr(Perspectives[i].Name),
wxT(""), wxITEM_CHECK); wxT(""), wxITEM_CHECK);
menuPopup->Append(mItem); menuPopup->Append(mItem);
if (i == ActivePerspective) mItem->Check(true);
if (i == ActivePerspective)
{
mItem->Check(true);
}
} }
} }
@ -560,8 +604,10 @@ void CFrame::OnDropDownToolbarItem(wxAuiToolBarEvent& event)
wxRect rect = tb->GetToolRect(event.GetId()); wxRect rect = tb->GetToolRect(event.GetId());
wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft()); wxPoint pt = tb->ClientToScreen(rect.GetBottomLeft());
pt = ScreenToClient(pt); pt = ScreenToClient(pt);
// show // show
PopupMenu(menuPopup, pt); PopupMenu(menuPopup, pt);
// make sure the button is "un-stuck" // make sure the button is "un-stuck"
tb->SetToolSticky(event.GetId(), false); tb->SetToolSticky(event.GetId(), false);
} }
@ -609,12 +655,17 @@ void CFrame::OnDropDownToolbarSelect(wxCommandEvent& event)
wxString DefaultValue = wxString::Format(_("Perspective %d"), wxString DefaultValue = wxString::Format(_("Perspective %d"),
Perspectives.size() + 1); Perspectives.size() + 1);
dlg.SetValue(DefaultValue); dlg.SetValue(DefaultValue);
bool DlgOk = false; int Return = 0;
int Return = 0;
bool DlgOk = false;
while (!DlgOk) while (!DlgOk)
{ {
Return = dlg.ShowModal(); Return = dlg.ShowModal();
if (Return == wxID_CANCEL) if (Return == wxID_CANCEL)
{
return; return;
}
else if (dlg.GetValue().Find(wxT(",")) != -1) else if (dlg.GetValue().Find(wxT(",")) != -1)
{ {
wxMessageBox(_("The name can not contain the character ','"), wxMessageBox(_("The name can not contain the character ','"),
@ -630,7 +681,9 @@ void CFrame::OnDropDownToolbarSelect(wxCommandEvent& event)
dlg.SetValue(DefaultValue); dlg.SetValue(DefaultValue);
} }
else else
{
DlgOk = true; DlgOk = true;
}
} }
SPerspectives Tmp; SPerspectives Tmp;
@ -663,9 +716,12 @@ void CFrame::ResetToolbarStyle()
if (Pane.window->IsKindOf(CLASSINFO(wxAuiToolBar))) if (Pane.window->IsKindOf(CLASSINFO(wxAuiToolBar)))
{ {
Pane.Show(); Pane.Show();
// Show all of it // Show all of it
if (Pane.rect.GetLeft() > GetClientSize().GetX() - 50) if (Pane.rect.GetLeft() > GetClientSize().GetX() - 50)
{
Pane.Position(GetClientSize().GetX() - Pane.window->GetClientSize().GetX()); Pane.Position(GetClientSize().GetX() - Pane.window->GetClientSize().GetX());
}
} }
} }
m_Mgr->Update(); m_Mgr->Update();
@ -765,22 +821,31 @@ static int Limit(int i, int Low, int High)
void CFrame::SetPaneSize() void CFrame::SetPaneSize()
{ {
if (Perspectives.size() <= ActivePerspective) return; if (Perspectives.size() <= ActivePerspective)
int iClientX = GetSize().GetX(), iClientY = GetSize().GetY(); return;
int iClientX = GetSize().GetX();
int iClientY = GetSize().GetY();
for (u32 i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++) for (u32 i = 0, j = 0; i < m_Mgr->GetAllPanes().GetCount(); i++)
{ {
if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiToolBar))) if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiToolBar)))
{ {
if (!m_Mgr->GetAllPanes()[i].IsOk()) return; if (!m_Mgr->GetAllPanes()[i].IsOk())
return;
if (Perspectives[ActivePerspective].Width.size() <= j || if (Perspectives[ActivePerspective].Width.size() <= j ||
Perspectives[ActivePerspective].Height.size() <= j) Perspectives[ActivePerspective].Height.size() <= j)
continue; continue;
// Width and height of the active perspective
u32 W = Perspectives[ActivePerspective].Width[j], u32 W = Perspectives[ActivePerspective].Width[j],
H = Perspectives[ActivePerspective].Height[j]; H = Perspectives[ActivePerspective].Height[j];
// Check limits // Check limits
W = Limit(W, 5, 95); W = Limit(W, 5, 95);
H = Limit(H, 5, 95); H = Limit(H, 5, 95);
// Convert percentages to pixel lengths // Convert percentages to pixel lengths
W = (W * iClientX) / 100; W = (W * iClientX) / 100;
H = (H * iClientY) / 100; H = (H * iClientY) / 100;
@ -859,8 +924,10 @@ void CFrame::LoadIniPerspectives()
std::string _Section, _Perspective, _Width, _Height; std::string _Section, _Perspective, _Width, _Height;
std::vector<std::string> _SWidth, _SHeight; std::vector<std::string> _SWidth, _SHeight;
Tmp.Name = VPerspectives[i]; Tmp.Name = VPerspectives[i];
// Don't save a blank perspective // Don't save a blank perspective
if (Tmp.Name.empty()) continue; if (Tmp.Name.empty())
continue;
_Section = StringFromFormat("P - %s", Tmp.Name.c_str()); _Section = StringFromFormat("P - %s", Tmp.Name.c_str());
ini.Get(_Section.c_str(), "Perspective", &_Perspective, ini.Get(_Section.c_str(), "Perspective", &_Perspective,
@ -984,10 +1051,12 @@ wxWindow * CFrame::GetNotebookPageFromId(wxWindowID Id)
{ {
if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook)))
continue; continue;
wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window;
for(u32 j = 0; j < NB->GetPageCount(); j++) for(u32 j = 0; j < NB->GetPageCount(); j++)
{ {
if (NB->GetPage(j)->GetId() == Id) return NB->GetPage(j); if (NB->GetPage(j)->GetId() == Id)
return NB->GetPage(j);
} }
} }
return NULL; return NULL;
@ -1036,12 +1105,14 @@ void CFrame::AddRemoveBlankPage()
{ {
if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook)))
continue; continue;
wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window;
for(u32 j = 0; j < NB->GetPageCount(); j++) for(u32 j = 0; j < NB->GetPageCount(); j++)
{ {
if (NB->GetPageText(j).IsSameAs(wxT("<>")) && NB->GetPageCount() > 1) if (NB->GetPageText(j).IsSameAs(wxT("<>")) && NB->GetPageCount() > 1)
NB->DeletePage(j); NB->DeletePage(j);
} }
if (NB->GetPageCount() == 0) if (NB->GetPageCount() == 0)
NB->AddPage(new wxPanel(this, wxID_ANY), wxT("<>"), true); NB->AddPage(new wxPanel(this, wxID_ANY), wxT("<>"), true);
} }
@ -1053,6 +1124,7 @@ int CFrame::GetNotebookAffiliation(wxWindowID Id)
{ {
if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook))) if (!m_Mgr->GetAllPanes()[i].window->IsKindOf(CLASSINFO(wxAuiNotebook)))
continue; continue;
wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window; wxAuiNotebook * NB = (wxAuiNotebook*)m_Mgr->GetAllPanes()[i].window;
for(u32 k = 0; k < NB->GetPageCount(); k++) for(u32 k = 0; k < NB->GetPageCount(); k++)
{ {

View File

@ -177,10 +177,12 @@ void CFrame::CreateMenu()
loadMenu->Append(IDM_UNDOLOADSTATE, _("Undo Load State") + wxString(wxT("\tShift+F12"))); loadMenu->Append(IDM_UNDOLOADSTATE, _("Undo Load State") + wxString(wxT("\tShift+F12")));
loadMenu->AppendSeparator(); loadMenu->AppendSeparator();
for (int i = 1; i <= 8; i++) { for (int i = 1; i <= 8; i++)
{
loadMenu->Append(IDM_LOADSLOT1 + i - 1, GetMenuLabel(HK_LOAD_STATE_SLOT_1 + i - 1)); loadMenu->Append(IDM_LOADSLOT1 + i - 1, GetMenuLabel(HK_LOAD_STATE_SLOT_1 + i - 1));
saveMenu->Append(IDM_SAVESLOT1 + i - 1, GetMenuLabel(HK_SAVE_STATE_SLOT_1 + i - 1)); saveMenu->Append(IDM_SAVESLOT1 + i - 1, GetMenuLabel(HK_SAVE_STATE_SLOT_1 + i - 1));
} }
m_MenuBar->Append(emulationMenu, _("&Emulation")); m_MenuBar->Append(emulationMenu, _("&Emulation"));
// Options menu // Options menu
@ -297,7 +299,10 @@ void CFrame::CreateMenu()
viewMenu->Append(IDM_PURGECACHE, _("Purge Cache")); viewMenu->Append(IDM_PURGECACHE, _("Purge Cache"));
m_MenuBar->Append(viewMenu, _("&View")); m_MenuBar->Append(viewMenu, _("&View"));
if (g_pCodeWindow) g_pCodeWindow->CreateMenu(SConfig::GetInstance().m_LocalCoreStartupParameter, m_MenuBar); if (g_pCodeWindow)
{
g_pCodeWindow->CreateMenu(SConfig::GetInstance().m_LocalCoreStartupParameter, m_MenuBar);
}
// Help menu // Help menu
wxMenu* helpMenu = new wxMenu; wxMenu* helpMenu = new wxMenu;
@ -428,7 +433,7 @@ void CFrame::PopulateToolbar(wxAuiToolBar* ToolBar)
{ {
int w = m_Bitmaps[Toolbar_FileOpen].GetWidth(), int w = m_Bitmaps[Toolbar_FileOpen].GetWidth(),
h = m_Bitmaps[Toolbar_FileOpen].GetHeight(); h = m_Bitmaps[Toolbar_FileOpen].GetHeight();
ToolBar->SetToolBitmapSize(wxSize(w, h)); ToolBar->SetToolBitmapSize(wxSize(w, h));
ToolBar->AddTool(wxID_OPEN, _("Open"), m_Bitmaps[Toolbar_FileOpen], _("Open file...")); ToolBar->AddTool(wxID_OPEN, _("Open"), m_Bitmaps[Toolbar_FileOpen], _("Open file..."));
@ -558,12 +563,16 @@ void CFrame::BootGame(const std::string& filename)
} }
else if (!StartUp.m_strDefaultGCM.empty() else if (!StartUp.m_strDefaultGCM.empty()
&& wxFileExists(wxSafeConvertMB2WX(StartUp.m_strDefaultGCM.c_str()))) && wxFileExists(wxSafeConvertMB2WX(StartUp.m_strDefaultGCM.c_str())))
{
bootfile = StartUp.m_strDefaultGCM; bootfile = StartUp.m_strDefaultGCM;
}
else else
{ {
if (!SConfig::GetInstance().m_LastFilename.empty() if (!SConfig::GetInstance().m_LastFilename.empty()
&& wxFileExists(wxSafeConvertMB2WX(SConfig::GetInstance().m_LastFilename.c_str()))) && wxFileExists(wxSafeConvertMB2WX(SConfig::GetInstance().m_LastFilename.c_str())))
{
bootfile = SConfig::GetInstance().m_LastFilename; bootfile = SConfig::GetInstance().m_LastFilename;
}
else else
{ {
m_GameListCtrl->BrowseForDirectory(); m_GameListCtrl->BrowseForDirectory();
@ -608,7 +617,9 @@ void CFrame::DoOpen(bool Boot)
// Should we boot a new game or just change the disc? // Should we boot a new game or just change the disc?
if (Boot && !path.IsEmpty()) if (Boot && !path.IsEmpty())
{
BootGame(WxStrToStr(path)); BootGame(WxStrToStr(path));
}
else else
{ {
DVDInterface::ChangeDisc(WxStrToStr(path).c_str()); DVDInterface::ChangeDisc(WxStrToStr(path).c_str());
@ -666,7 +677,8 @@ void CFrame::OnRecord(wxCommandEvent& WXUNUSED (event))
GetMenuBar()->FindItem(IDM_RECORDREADONLY)->Check(false); GetMenuBar()->FindItem(IDM_RECORDREADONLY)->Check(false);
} }
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++)
{
if (SConfig::GetInstance().m_SIDevice[i] == SIDEVICE_GC_CONTROLLER || SConfig::GetInstance().m_SIDevice[i] == SIDEVICE_GC_TARUKONGA) if (SConfig::GetInstance().m_SIDevice[i] == SIDEVICE_GC_CONTROLLER || SConfig::GetInstance().m_SIDevice[i] == SIDEVICE_GC_TARUKONGA)
controllers |= (1 << i); controllers |= (1 << i);
@ -726,11 +738,15 @@ void CFrame::OnPlay(wxCommandEvent& WXUNUSED (event))
UpdateGUI(); UpdateGUI();
} }
else else
{
DoPause(); DoPause();
}
} }
else else
{
// Core is uninitialized, start the game // Core is uninitialized, start the game
BootGame(std::string("")); BootGame(std::string(""));
}
} }
void CFrame::OnRenderParentClose(wxCloseEvent& event) void CFrame::OnRenderParentClose(wxCloseEvent& event)
@ -757,7 +773,7 @@ void CFrame::OnRenderParentResize(wxSizeEvent& event)
{ {
int width, height; int width, height;
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain && if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain &&
!RendererIsFullscreen() && !m_RenderFrame->IsMaximized() && !m_RenderFrame->IsIconized()) !RendererIsFullscreen() && !m_RenderFrame->IsMaximized() && !m_RenderFrame->IsIconized())
{ {
m_RenderFrame->GetClientSize(&width, &height); m_RenderFrame->GetClientSize(&width, &height);
SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth = width; SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth = width;
@ -920,13 +936,19 @@ void CFrame::OnBootDrive(wxCommandEvent& event)
// Refresh the file list and browse for a favorites directory // Refresh the file list and browse for a favorites directory
void CFrame::OnRefresh(wxCommandEvent& WXUNUSED (event)) void CFrame::OnRefresh(wxCommandEvent& WXUNUSED (event))
{ {
if (m_GameListCtrl) m_GameListCtrl->Update(); if (m_GameListCtrl)
{
m_GameListCtrl->Update();
}
} }
void CFrame::OnBrowse(wxCommandEvent& WXUNUSED (event)) void CFrame::OnBrowse(wxCommandEvent& WXUNUSED (event))
{ {
if (m_GameListCtrl) m_GameListCtrl->BrowseForDirectory(); if (m_GameListCtrl)
{
m_GameListCtrl->BrowseForDirectory();
}
} }
// Create screenshot // Create screenshot
@ -1127,7 +1149,9 @@ void CFrame::OnConfigPAD(wxCommandEvent& WXUNUSED (event))
InputPlugin *const pad_plugin = Pad::GetPlugin(); InputPlugin *const pad_plugin = Pad::GetPlugin();
bool was_init = false; bool was_init = false;
if (g_controller_interface.IsInit()) // check if game is running if (g_controller_interface.IsInit()) // check if game is running
{
was_init = true; was_init = true;
}
else else
{ {
#if defined(HAVE_X11) && HAVE_X11 #if defined(HAVE_X11) && HAVE_X11
@ -1153,7 +1177,9 @@ void CFrame::OnConfigWiimote(wxCommandEvent& WXUNUSED (event))
InputPlugin *const wiimote_plugin = Wiimote::GetPlugin(); InputPlugin *const wiimote_plugin = Wiimote::GetPlugin();
bool was_init = false; bool was_init = false;
if (g_controller_interface.IsInit()) // check if game is running if (g_controller_interface.IsInit()) // check if game is running
{
was_init = true; was_init = true;
}
else else
{ {
#if defined(HAVE_X11) && HAVE_X11 #if defined(HAVE_X11) && HAVE_X11
@ -1204,7 +1230,10 @@ void CFrame::OnHelp(wxCommandEvent& event)
void CFrame::ClearStatusBar() void CFrame::ClearStatusBar()
{ {
if (this->GetStatusBar()->IsEnabled()) this->GetStatusBar()->SetStatusText(wxT(""),0); if (this->GetStatusBar()->IsEnabled())
{
this->GetStatusBar()->SetStatusText(wxT(""),0);
}
} }
void CFrame::StatusBarMessage(const char * Text, ...) void CFrame::StatusBarMessage(const char * Text, ...)
@ -1216,7 +1245,10 @@ void CFrame::StatusBarMessage(const char * Text, ...)
vsnprintf(Str, MAX_BYTES, Text, ArgPtr); vsnprintf(Str, MAX_BYTES, Text, ArgPtr);
va_end(ArgPtr); va_end(ArgPtr);
if (this->GetStatusBar()->IsEnabled()) this->GetStatusBar()->SetStatusText(StrToWxStr(Str),0); if (this->GetStatusBar()->IsEnabled())
{
this->GetStatusBar()->SetStatusText(StrToWxStr(Str),0);
}
} }
@ -1233,7 +1265,9 @@ void CFrame::OnNetPlay(wxCommandEvent& WXUNUSED (event))
g_NetPlaySetupDiag = new NetPlaySetupDiag(this, m_GameListCtrl); g_NetPlaySetupDiag = new NetPlaySetupDiag(this, m_GameListCtrl);
} }
else else
{
g_NetPlaySetupDiag->Raise(); g_NetPlaySetupDiag->Raise();
}
} }
void CFrame::OnMemcard(wxCommandEvent& WXUNUSED (event)) void CFrame::OnMemcard(wxCommandEvent& WXUNUSED (event))
@ -1618,7 +1652,11 @@ void CFrame::UpdateGUI()
m_bGameLoading = false; m_bGameLoading = false;
} }
if (m_ToolBar) m_ToolBar->Refresh(); // Refresh toolbar
if (m_ToolBar)
{
m_ToolBar->Refresh();
}
// Commit changes to manager // Commit changes to manager
m_Mgr->Update(); m_Mgr->Update();
@ -1685,7 +1723,11 @@ void CFrame::GameListChanged(wxCommandEvent& event)
break; break;
} }
if (m_GameListCtrl) m_GameListCtrl->Update(); // Update gamelist
if (m_GameListCtrl)
{
m_GameListCtrl->Update();
}
} }
// Enable and disable the toolbar // Enable and disable the toolbar

View File

@ -22,7 +22,7 @@
BEGIN_EVENT_TABLE(GCMicDialog,wxDialog) BEGIN_EVENT_TABLE(GCMicDialog,wxDialog)
EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1, EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1,
wxEVT_COMMAND_BUTTON_CLICKED, GCMicDialog::OnButtonClick) wxEVT_COMMAND_BUTTON_CLICKED, GCMicDialog::OnButtonClick)
EVT_TIMER(wxID_ANY, GCMicDialog::OnButtonTimer) EVT_TIMER(wxID_ANY, GCMicDialog::OnButtonTimer)
END_EVENT_TABLE() END_EVENT_TABLE()
@ -86,8 +86,8 @@ void GCMicDialog::OnKeyDown(wxKeyEvent& event)
else else
{ {
SetButtonText(ClickedButton->GetId(), SetButtonText(ClickedButton->GetId(),
InputCommon::WXKeyToString(g_Pressed), InputCommon::WXKeyToString(g_Pressed),
InputCommon::WXKeymodToString(g_Modkey)); InputCommon::WXKeymodToString(g_Modkey));
SaveButtonMapping(ClickedButton->GetId(), g_Pressed, g_Modkey); SaveButtonMapping(ClickedButton->GetId(), g_Pressed, g_Modkey);
} }
EndGetButtons(); EndGetButtons();
@ -112,7 +112,7 @@ void GCMicDialog::DoGetButtons(int _GetId)
if(m_ButtonMappingTimer->IsRunning()) if(m_ButtonMappingTimer->IsRunning())
m_ButtonMappingTimer->Stop(); m_ButtonMappingTimer->Stop();
// Save the button Id // Save the button Id
GetButtonWaitingID = _GetId; GetButtonWaitingID = _GetId;
GetButtonWaitingTimer = 0; GetButtonWaitingTimer = 0;
@ -149,7 +149,8 @@ void GCMicDialog::OnButtonClick(wxCommandEvent& event)
{ {
event.Skip(); event.Skip();
if (m_ButtonMappingTimer->IsRunning()) return; if (m_ButtonMappingTimer->IsRunning())
return;
wxTheApp->Bind(wxEVT_KEY_DOWN, &GCMicDialog::OnKeyDown, this); wxTheApp->Bind(wxEVT_KEY_DOWN, &GCMicDialog::OnKeyDown, this);

View File

@ -61,7 +61,7 @@ bool sorted = false;
extern CFrame* main_frame; extern CFrame* main_frame;
static int CompareGameListItems(const GameListItem* iso1, const GameListItem* iso2, static int CompareGameListItems(const GameListItem* iso1, const GameListItem* iso2,
long sortData = CGameListCtrl::COLUMN_TITLE) long sortData = CGameListCtrl::COLUMN_TITLE)
{ {
int t = 1; int t = 1;
@ -732,7 +732,9 @@ void CGameListCtrl::OnKeyPress(wxListEvent& event)
continue; continue;
} }
else if (lastKey != event.GetKeyCode()) else if (lastKey != event.GetKeyCode())
{
sLoop = 0; sLoop = 0;
}
lastKey = event.GetKeyCode(); lastKey = event.GetKeyCode();
sLoop++; sLoop++;
@ -801,7 +803,9 @@ void CGameListCtrl::OnMouseMotion(wxMouseEvent& event)
toolTip = new wxEmuStateTip(this, StrToWxStr(temp), &toolTip); toolTip = new wxEmuStateTip(this, StrToWxStr(temp), &toolTip);
} }
else else
{
toolTip = new wxEmuStateTip(this, _("Not Set"), &toolTip); toolTip = new wxEmuStateTip(this, _("Not Set"), &toolTip);
}
// Get item Coords // Get item Coords
GetItemRect(item, Rect); GetItemRect(item, Rect);
@ -891,8 +895,11 @@ void CGameListCtrl::OnRightClick(wxMouseEvent& event)
else if (selected_iso->GetFileName().substr(selected_iso->GetFileName().find_last_of(".")) != ".ciso" else if (selected_iso->GetFileName().substr(selected_iso->GetFileName().find_last_of(".")) != ".ciso"
&& selected_iso->GetFileName().substr(selected_iso->GetFileName().find_last_of(".")) != ".wbfs") && selected_iso->GetFileName().substr(selected_iso->GetFileName().find_last_of(".")) != ".wbfs")
popupMenu->Append(IDM_COMPRESSGCM, _("Compress ISO...")); popupMenu->Append(IDM_COMPRESSGCM, _("Compress ISO..."));
} else }
else
{
popupMenu->Append(IDM_LIST_INSTALLWAD, _("Install to Wii Menu")); popupMenu->Append(IDM_LIST_INSTALLWAD, _("Install to Wii Menu"));
}
PopupMenu(popupMenu); PopupMenu(popupMenu);
} }
@ -911,14 +918,20 @@ void CGameListCtrl::OnRightClick(wxMouseEvent& event)
const GameListItem * CGameListCtrl::GetSelectedISO() const GameListItem * CGameListCtrl::GetSelectedISO()
{ {
if (m_ISOFiles.size() == 0) if (m_ISOFiles.size() == 0)
{
return NULL; return NULL;
}
else if (GetSelectedItemCount() == 0) else if (GetSelectedItemCount() == 0)
{
return NULL; return NULL;
}
else else
{ {
long item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED); long item = GetNextItem(-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
if (item == wxNOT_FOUND) if (item == wxNOT_FOUND)
{
return NULL; return NULL;
}
else else
{ {
// Here is a little workaround for multiselections: // Here is a little workaround for multiselections:
@ -1030,6 +1043,7 @@ void CGameListCtrl::OnProperties(wxCommandEvent& WXUNUSED (event))
const GameListItem *iso = GetSelectedISO(); const GameListItem *iso = GetSelectedISO();
if (!iso) if (!iso)
return; return;
CISOProperties ISOProperties(iso->GetFileName(), this); CISOProperties ISOProperties(iso->GetFileName(), this);
if(ISOProperties.ShowModal() == wxID_OK) if(ISOProperties.ShowModal() == wxID_OK)
Update(); Update();
@ -1249,7 +1263,9 @@ void CGameListCtrl::OnCompressGCM(wxCommandEvent& WXUNUSED (event))
void CGameListCtrl::OnSize(wxSizeEvent& event) void CGameListCtrl::OnSize(wxSizeEvent& event)
{ {
if (lastpos == event.GetSize()) return; if (lastpos == event.GetSize())
return;
lastpos = event.GetSize(); lastpos = event.GetSize();
AutomaticColumnWidth(); AutomaticColumnWidth();
@ -1261,7 +1277,9 @@ void CGameListCtrl::AutomaticColumnWidth()
wxRect rc(GetClientRect()); wxRect rc(GetClientRect());
if (GetColumnCount() == 1) if (GetColumnCount() == 1)
{
SetColumnWidth(0, rc.GetWidth()); SetColumnWidth(0, rc.GetWidth());
}
else if (GetColumnCount() > 4) else if (GetColumnCount() > 4)
{ {
int resizable = rc.GetWidth() - ( int resizable = rc.GetWidth() - (
@ -1291,7 +1309,6 @@ void CGameListCtrl::UnselectAll()
{ {
SetItemState(i, 0, wxLIST_STATE_SELECTED); SetItemState(i, 0, wxLIST_STATE_SELECTED);
} }
} }

View File

@ -301,10 +301,14 @@ void CodeConfigPanel::DownloadCodes(wxCommandEvent&)
UpdateCodeList(); UpdateCodeList();
} }
else else
{
PanicAlertT("File contained no codes."); PanicAlertT("File contained no codes.");
}
} }
else else
{
PanicAlertT("Failed to download codes."); PanicAlertT("Failed to download codes.");
}
} }
} }

View File

@ -185,7 +185,7 @@ enum
IDM_LOADMAPFILE, IDM_LOADMAPFILE,
IDM_SAVEMAPFILE, IDM_SAVEMAPFILEWITHCODES, IDM_SAVEMAPFILE, IDM_SAVEMAPFILEWITHCODES,
IDM_CREATESIGNATUREFILE, IDM_CREATESIGNATUREFILE,
IDM_RENAME_SYMBOLS, IDM_RENAME_SYMBOLS,
IDM_USESIGNATUREFILE, IDM_USESIGNATUREFILE,
IDM_PATCHHLEFUNCTIONS, IDM_PATCHHLEFUNCTIONS,

View File

@ -1,3 +1,4 @@
// Copyright (C) 2003 Dolphin Project. // Copyright (C) 2003 Dolphin Project.
// This program is free software: you can redistribute it and/or modify // This program is free software: you can redistribute it and/or modify
@ -22,7 +23,7 @@
BEGIN_EVENT_TABLE(HotkeyConfigDialog,wxDialog) BEGIN_EVENT_TABLE(HotkeyConfigDialog,wxDialog)
EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1, EVT_COMMAND_RANGE(0, NUM_HOTKEYS - 1,
wxEVT_COMMAND_BUTTON_CLICKED, HotkeyConfigDialog::OnButtonClick) wxEVT_COMMAND_BUTTON_CLICKED, HotkeyConfigDialog::OnButtonClick)
EVT_TIMER(wxID_ANY, HotkeyConfigDialog::OnButtonTimer) EVT_TIMER(wxID_ANY, HotkeyConfigDialog::OnButtonTimer)
END_EVENT_TABLE() END_EVENT_TABLE()
@ -86,8 +87,8 @@ void HotkeyConfigDialog::OnKeyDown(wxKeyEvent& event)
else else
{ {
SetButtonText(ClickedButton->GetId(), SetButtonText(ClickedButton->GetId(),
InputCommon::WXKeyToString(g_Pressed), InputCommon::WXKeyToString(g_Pressed),
InputCommon::WXKeymodToString(g_Modkey)); InputCommon::WXKeymodToString(g_Modkey));
SaveButtonMapping(ClickedButton->GetId(), g_Pressed, g_Modkey); SaveButtonMapping(ClickedButton->GetId(), g_Pressed, g_Modkey);
} }
EndGetButtons(); EndGetButtons();
@ -112,7 +113,7 @@ void HotkeyConfigDialog::DoGetButtons(int _GetId)
if(m_ButtonMappingTimer->IsRunning()) if(m_ButtonMappingTimer->IsRunning())
m_ButtonMappingTimer->Stop(); m_ButtonMappingTimer->Stop();
// Save the button Id // Save the button Id
GetButtonWaitingID = _GetId; GetButtonWaitingID = _GetId;
GetButtonWaitingTimer = 0; GetButtonWaitingTimer = 0;
@ -149,7 +150,8 @@ void HotkeyConfigDialog::OnButtonClick(wxCommandEvent& event)
{ {
event.Skip(); event.Skip();
if (m_ButtonMappingTimer->IsRunning()) return; if (m_ButtonMappingTimer->IsRunning())
return;
wxTheApp->Bind(wxEVT_KEY_DOWN, &HotkeyConfigDialog::OnKeyDown, this); wxTheApp->Bind(wxEVT_KEY_DOWN, &HotkeyConfigDialog::OnKeyDown, this);

View File

@ -98,7 +98,9 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
} }
} }
else else
{
break; break;
}
} }
} }
else else
@ -131,9 +133,13 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
_iniFilename = tmp; _iniFilename = tmp;
} }
} }
GameIniFile = File::GetUserPath(D_GAMECONFIG_IDX) + _iniFilename + ".ini"; GameIniFile = File::GetUserPath(D_GAMECONFIG_IDX) + _iniFilename + ".ini";
if (GameIni.Load(GameIniFile.c_str())) if (GameIni.Load(GameIniFile.c_str()))
{
LoadGameConfig(); LoadGameConfig();
}
else else
{ {
// Will fail out if GameConfig folder doesn't exist // Will fail out if GameConfig folder doesn't exist
@ -148,6 +154,7 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
<< "[ActionReplay] Add action replay cheats here.\n"; << "[ActionReplay] Add action replay cheats here.\n";
f.close(); f.close();
} }
if (GameIni.Load(GameIniFile.c_str())) if (GameIni.Load(GameIniFile.c_str()))
LoadGameConfig(); LoadGameConfig();
else else
@ -226,7 +233,9 @@ CISOProperties::CISOProperties(const std::string fileName, wxWindow* parent, wxW
} }
} }
else if (!GCFiles.empty()) else if (!GCFiles.empty())
{
CreateDirectoryTree(RootId, GCFiles, 1, GCFiles.at(0)->m_FileSize); CreateDirectoryTree(RootId, GCFiles, 1, GCFiles.at(0)->m_FileSize);
}
m_Treectrl->Expand(RootId); m_Treectrl->Expand(RootId);
} }
@ -255,7 +264,11 @@ size_t CISOProperties::CreateDirectoryTree(wxTreeItemId& parent,
const DiscIO::SFileInfo *rFileInfo = fileInfos[CurrentIndex]; const DiscIO::SFileInfo *rFileInfo = fileInfos[CurrentIndex];
char *name = (char*)rFileInfo->m_FullPath; char *name = (char*)rFileInfo->m_FullPath;
if (rFileInfo->IsDirectory()) name[strlen(name) - 1] = '\0'; if (rFileInfo->IsDirectory())
{
name[strlen(name) - 1] = '\0';
}
char *itemName = strrchr(name, DIR_SEP_CHR); char *itemName = strrchr(name, DIR_SEP_CHR);
if(!itemName) if(!itemName)
@ -664,7 +677,9 @@ void CISOProperties::OnExtractFile(wxCommandEvent& WXUNUSED (event))
WiiDisc.at(partitionNum).FileSystem->ExportFile(WxStrToStr(File).c_str(), WxStrToStr(Path).c_str()); WiiDisc.at(partitionNum).FileSystem->ExportFile(WxStrToStr(File).c_str(), WxStrToStr(Path).c_str());
} }
else else
{
pFileSystem->ExportFile(WxStrToStr(File).c_str(), WxStrToStr(Path).c_str()); pFileSystem->ExportFile(WxStrToStr(File).c_str(), WxStrToStr(Path).c_str());
}
} }
void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolder, const int partitionNum) void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolder, const int partitionNum)
@ -679,7 +694,9 @@ void CISOProperties::ExportDir(const char* _rFullPath, const char* _rExportFolde
FS = WiiDisc.at(partitionNum).FileSystem; FS = WiiDisc.at(partitionNum).FileSystem;
} }
else else
{
FS = pFileSystem; FS = pFileSystem;
}
FS->GetFileList(fst); FS->GetFileList(fst);
@ -799,7 +816,9 @@ void CISOProperties::OnExtractDir(wxCommandEvent& event)
ExportDir(WxStrToStr(Directory).c_str(), WxStrToStr(Path).c_str(), partitionNum); ExportDir(WxStrToStr(Directory).c_str(), WxStrToStr(Path).c_str(), partitionNum);
} }
else else
{
ExportDir(WxStrToStr(Directory).c_str(), WxStrToStr(Path).c_str()); ExportDir(WxStrToStr(Directory).c_str(), WxStrToStr(Path).c_str());
}
} }
void CISOProperties::OnExtractDataFromHeader(wxCommandEvent& event) void CISOProperties::OnExtractDataFromHeader(wxCommandEvent& event)

View File

@ -600,7 +600,9 @@ void GamepadPage::SaveProfile(wxCommandEvent&)
m_config_dialog->UpdateProfileComboBox(); m_config_dialog->UpdateProfileComboBox();
} }
else else
{
PanicAlertT("You must enter a valid profile name."); PanicAlertT("You must enter a valid profile name.");
}
} }
void GamepadPage::DeleteProfile(wxCommandEvent&) void GamepadPage::DeleteProfile(wxCommandEvent&)
@ -872,7 +874,9 @@ ControlGroupsSizer::ControlGroupsSizer(ControllerEmu* const controller, wxWindow
col_size = grp_size; col_size = grp_size;
} }
else else
{
stacked_groups->Add(control_group, 0, wxEXPAND); stacked_groups->Add(control_group, 0, wxEXPAND);
}
if (groups) if (groups)
groups->push_back(control_group_box); groups->push_back(control_group_box);

View File

@ -111,7 +111,9 @@ void InputConfigDialog::UpdateBitmaps(wxTimerEvent& WXUNUSED(event))
dc.DrawCircle( 32, 32, 32); dc.DrawCircle( 32, 32, 32);
} }
else else
{
dc.DrawRectangle( 16, 16, 32, 32 ); dc.DrawRectangle( 16, 16, 32, 32 );
}
if ( GROUP_TYPE_CURSOR != (*g)->control_group->type ) if ( GROUP_TYPE_CURSOR != (*g)->control_group->type )
{ {
@ -217,7 +219,9 @@ void InputConfigDialog::UpdateBitmaps(wxTimerEvent& WXUNUSED(event))
for (unsigned int n = 0; n<button_count; ++n) for (unsigned int n = 0; n<button_count; ++n)
{ {
if ( buttons & bitmasks[n] ) if ( buttons & bitmasks[n] )
{
dc.SetBrush( *wxRED_BRUSH ); dc.SetBrush( *wxRED_BRUSH );
}
else else
{ {
unsigned char amt = 255 - (*g)->control_group->controls[n]->control_ref->State() * 128; unsigned char amt = 255 - (*g)->control_group->controls[n]->control_ref->State() * 128;

View File

@ -111,12 +111,20 @@ void LogConfigWindow::LoadSettings()
IniFile ini; IniFile ini;
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX)); ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
// Retrieve the verbosity value from the config ini file.
int verbosity; int verbosity;
ini.Get("Options", "Verbosity", &verbosity, 0); ini.Get("Options", "Verbosity", &verbosity, 0);
if (verbosity < 1) verbosity = 1;
if (verbosity > MAX_LOGLEVEL) verbosity = MAX_LOGLEVEL; // Ensure the verbosity level is valid.
if (verbosity < 1)
verbosity = 1;
if (verbosity > MAX_LOGLEVEL)
verbosity = MAX_LOGLEVEL;
// Actually set the logging verbosity.
m_verbosity->SetSelection(verbosity - 1); m_verbosity->SetSelection(verbosity - 1);
// Get the logger output settings from the config ini file.
ini.Get("Options", "WriteToFile", &m_writeFile, false); ini.Get("Options", "WriteToFile", &m_writeFile, false);
m_writeFileCB->SetValue(m_writeFile); m_writeFileCB->SetValue(m_writeFile);
ini.Get("Options", "WriteToConsole", &m_writeConsole, true); ini.Get("Options", "WriteToConsole", &m_writeConsole, true);
@ -134,11 +142,17 @@ void LogConfigWindow::LoadSettings()
{ {
m_writeDebugger = false; m_writeDebugger = false;
} }
// Run through all of the log types and check each checkbox for each logging type
// depending on its set value within the config ini.
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
{ {
bool log_enabled; bool log_enabled;
ini.Get("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &log_enabled, true); ini.Get("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), &log_enabled, true);
if (log_enabled) enableAll = false;
if (log_enabled)
enableAll = false;
m_checks->Check(i, log_enabled); m_checks->Check(i, log_enabled);
} }
} }
@ -148,7 +162,10 @@ void LogConfigWindow::SaveSettings()
IniFile ini; IniFile ini;
ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX)); ini.Load(File::GetUserPath(F_LOGGERCONFIG_IDX));
// Save the verbosity level.
ini.Set("Options", "Verbosity", m_verbosity->GetSelection() + 1); ini.Set("Options", "Verbosity", m_verbosity->GetSelection() + 1);
// Save the enabled/disabled states of the logger outputs to the config ini.
ini.Set("Options", "WriteToFile", m_writeFile); ini.Set("Options", "WriteToFile", m_writeFile);
ini.Set("Options", "WriteToConsole", m_writeConsole); ini.Set("Options", "WriteToConsole", m_writeConsole);
ini.Set("Options", "WriteToWindow", m_writeWindow); ini.Set("Options", "WriteToWindow", m_writeWindow);
@ -156,16 +173,28 @@ void LogConfigWindow::SaveSettings()
if (IsDebuggerPresent()) if (IsDebuggerPresent())
ini.Set("Options", "WriteToDebugger", m_writeDebugger); ini.Set("Options", "WriteToDebugger", m_writeDebugger);
#endif #endif
// Save all enabled/disabled states of the log types to the config ini.
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
{
ini.Set("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), m_checks->IsChecked(i)); ini.Set("Logs", m_LogManager->GetShortName((LogTypes::LOG_TYPE)i), m_checks->IsChecked(i));
}
ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX)); ini.Save(File::GetUserPath(F_LOGGERCONFIG_IDX));
} }
// If the verbosity changes while logging
void LogConfigWindow::OnVerbosityChange(wxCommandEvent& event) void LogConfigWindow::OnVerbosityChange(wxCommandEvent& event)
{ {
// Get the new verbosity
int v = m_verbosity->GetSelection() + 1; int v = m_verbosity->GetSelection() + 1;
// Set all log types to that verbosity level
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; i++)
{
m_LogManager->SetLogLevel((LogTypes::LOG_TYPE)i, (LogTypes::LOG_LEVELS)v); m_LogManager->SetLogLevel((LogTypes::LOG_TYPE)i, (LogTypes::LOG_LEVELS)v);
}
event.Skip(); event.Skip();
} }

View File

@ -38,7 +38,7 @@ BEGIN_EVENT_TABLE(CLogWindow, wxPanel)
END_EVENT_TABLE() END_EVENT_TABLE()
CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxPoint& pos, CLogWindow::CLogWindow(CFrame *parent, wxWindowID id, const wxPoint& pos,
const wxSize& size, long style, const wxString& name) const wxSize& size, long style, const wxString& name)
: wxPanel(parent, id, pos, size, style, name) : wxPanel(parent, id, pos, size, style, name)
, x(0), y(0), winpos(0) , x(0), y(0), winpos(0)
, Parent(parent), m_ignoreLogTimer(false), m_LogAccess(true) , Parent(parent), m_ignoreLogTimer(false), m_LogAccess(true)
@ -64,9 +64,14 @@ void CLogWindow::CreateGUIControls()
// Set up log listeners // Set up log listeners
int verbosity; int verbosity;
ini.Get("Options", "Verbosity", &verbosity, 0); ini.Get("Options", "Verbosity", &verbosity, 0);
if (verbosity < 1) verbosity = 1;
if (verbosity > MAX_LOGLEVEL) verbosity = MAX_LOGLEVEL;
// Ensure the verbosity level is valid
if (verbosity < 1)
verbosity = 1;
if (verbosity > MAX_LOGLEVEL)
verbosity = MAX_LOGLEVEL;
// Get the logger output settings from the config ini file.
ini.Get("Options", "WriteToFile", &m_writeFile, false); ini.Get("Options", "WriteToFile", &m_writeFile, false);
ini.Get("Options", "WriteToConsole", &m_writeConsole, true); ini.Get("Options", "WriteToConsole", &m_writeConsole, true);
ini.Get("Options", "WriteToWindow", &m_writeWindow, true); ini.Get("Options", "WriteToWindow", &m_writeWindow, true);
@ -80,6 +85,7 @@ void CLogWindow::CreateGUIControls()
{ {
m_writeDebugger = false; m_writeDebugger = false;
} }
for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i) for (int i = 0; i < LogTypes::NUMBER_OF_LOGS; ++i)
{ {
bool enable; bool enable;

View File

@ -313,7 +313,7 @@ bool DolphinApp::OnInit()
MessageBox(NULL, MessageBox(NULL,
L"This version of Dolphin was downloaded from a website stealing money from developers of the emulator. Please " L"This version of Dolphin was downloaded from a website stealing money from developers of the emulator. Please "
L"download Dolphin from the official website instead: http://dolphin-emu.org/", L"download Dolphin from the official website instead: http://dolphin-emu.org/",
L"Unofficial version detected", MB_OK | MB_ICONWARNING); L"Unofficial version detected", MB_OK | MB_ICONWARNING);
ShellExecute(NULL, L"open", L"http://dolphin-emu.org/?ref=badver", NULL, NULL, SW_SHOWDEFAULT); ShellExecute(NULL, L"open", L"http://dolphin-emu.org/?ref=badver", NULL, NULL, SW_SHOWDEFAULT);
exit(0); exit(0);
} }
@ -376,7 +376,9 @@ void DolphinApp::AfterInit(wxTimerEvent& WXUNUSED(event))
main_frame->BootGame(WxStrToStr(FileToLoad)); main_frame->BootGame(WxStrToStr(FileToLoad));
} }
else else
{
main_frame->BootGame(std::string("")); main_frame->BootGame(std::string(""));
}
} }
} }
@ -516,7 +518,7 @@ void* Host_GetInstance()
void* Host_GetRenderHandle() void* Host_GetRenderHandle()
{ {
return main_frame->GetRenderHandle(); return main_frame->GetRenderHandle();
} }
// OK, this thread boundary is DANGEROUS on linux // OK, this thread boundary is DANGEROUS on linux

View File

@ -466,7 +466,7 @@ bool CMemcardManager::CopyDeleteSwitch(u32 error, int slot)
break; break;
case DELETE_FAIL: case DELETE_FAIL:
PanicAlertT("Order of files in the File Directory do not match the block order\n" PanicAlertT("Order of files in the File Directory do not match the block order\n"
"Right click and export all of the saves,\nand import the the saves to a new memcard\n"); "Right click and export all of the saves,\nand import the saves to a new memcard\n");
break; break;
default: default:
PanicAlert(E_UNK); PanicAlert(E_UNK);
@ -508,7 +508,10 @@ void CMemcardManager::CopyDeleteClick(wxCommandEvent& event)
{ {
SuccessAlertT("The checksum was successfully fixed"); SuccessAlertT("The checksum was successfully fixed");
} }
else PanicAlert(E_SAVEFAILED); else
{
PanicAlert(E_SAVEFAILED);
}
break; break;
case ID_CONVERTTOGCI: case ID_CONVERTTOGCI:
fileName2 = "convert"; fileName2 = "convert";
@ -533,7 +536,10 @@ void CMemcardManager::CopyDeleteClick(wxCommandEvent& event)
wxEmptyString, wxEmptyString, wxT(".gci"), wxEmptyString, wxEmptyString, wxT(".gci"),
_("GCI File(*.gci)") + wxString(_T("|*.gci")), _("GCI File(*.gci)") + wxString(_T("|*.gci")),
wxFD_OVERWRITE_PROMPT|wxFD_SAVE, this); wxFD_OVERWRITE_PROMPT|wxFD_SAVE, this);
if (temp2.empty()) break;
if (temp2.empty())
break;
fileName2 = WxStrToStr(temp2); fileName2 = WxStrToStr(temp2);
} }
if (fileName.length() > 0) if (fileName.length() > 0)
@ -610,7 +616,8 @@ bool CMemcardManager::ReloadMemcard(const char *fileName, int card)
// TODO: add error checking and animate icons // TODO: add error checking and animate icons
memoryCard[card] = new GCMemcard(fileName); memoryCard[card] = new GCMemcard(fileName);
if (!memoryCard[card]->IsValid()) return false; if (!memoryCard[card]->IsValid())
return false;
int j; int j;
@ -671,7 +678,10 @@ bool CMemcardManager::ReloadMemcard(const char *fileName, int card)
{ {
memset(pxdata,0,96*32*4); memset(pxdata,0,96*32*4);
int frames=3; int frames=3;
if (numFrames<frames) frames=numFrames;
if (numFrames<frames)
frames=numFrames;
for (int f=0;f<frames;f++) for (int f=0;f<frames;f++)
{ {
for (int y=0;y<32;y++) for (int y=0;y<32;y++)
@ -714,7 +724,10 @@ bool CMemcardManager::ReloadMemcard(const char *fileName, int card)
m_MemcardList[card]->SetItem(index, COLUMN_COMMENT, wxComment); m_MemcardList[card]->SetItem(index, COLUMN_COMMENT, wxComment);
blocks = memoryCard[card]->DEntry_BlockCount(fileIndex); blocks = memoryCard[card]->DEntry_BlockCount(fileIndex);
if (blocks == 0xFFFF) blocks = 0;
if (blocks == 0xFFFF)
blocks = 0;
wxBlock.Printf(wxT("%10d"), blocks); wxBlock.Printf(wxT("%10d"), blocks);
m_MemcardList[card]->SetItem(index,COLUMN_BLOCKS, wxBlock); m_MemcardList[card]->SetItem(index,COLUMN_BLOCKS, wxBlock);
firstblock = memoryCard[card]->DEntry_FirstBlock(fileIndex); firstblock = memoryCard[card]->DEntry_FirstBlock(fileIndex);

View File

@ -56,8 +56,11 @@ CWiiSaveCrypted::CWiiSaveCrypted(const char* FileName, u64 TitleID)
SuccessAlertT("Successfully imported save files"); SuccessAlertT("Successfully imported save files");
b_tryAgain = false; b_tryAgain = false;
} }
else b_tryAgain = AskYesNoT("Import failed, try again?"); else
}while(b_tryAgain); {
b_tryAgain = AskYesNoT("Import failed, try again?");
}
} while(b_tryAgain);
} }
else else
{ {
@ -77,8 +80,11 @@ CWiiSaveCrypted::CWiiSaveCrypted(const char* FileName, u64 TitleID)
SuccessAlertT("Successfully exported file to %s", pathData_bin); SuccessAlertT("Successfully exported file to %s", pathData_bin);
b_tryAgain = false; b_tryAgain = false;
} }
else b_tryAgain = AskYesNoT("Export failed, try again?"); else
}while(b_tryAgain); {
b_tryAgain = AskYesNoT("Export failed, try again?");
}
} while(b_tryAgain);
} }
} }
} }
@ -333,7 +339,6 @@ void CWiiSaveCrypted::ExportWiiSaveFiles()
for (Common::replace_v::const_iterator iter = replacements.begin(); iter != replacements.end(); ++iter) for (Common::replace_v::const_iterator iter = replacements.begin(); iter != replacements.end(); ++iter)
{ {
for (size_t j = 0; (j = __name.find(iter->second, j)) != __name.npos; ++j) for (size_t j = 0; (j = __name.find(iter->second, j)) != __name.npos; ++j)
{ {
__name.replace(j, iter->second.length(), 1, iter->first); __name.replace(j, iter->second.length(), 1, iter->first);
@ -488,6 +493,7 @@ bool CWiiSaveCrypted::getPaths(bool forExport)
WiiTitlePath = Common::GetTitleDataPath(m_TitleID); WiiTitlePath = Common::GetTitleDataPath(m_TitleID);
BannerFilePath = WiiTitlePath + "banner.bin"; BannerFilePath = WiiTitlePath + "banner.bin";
} }
if (forExport) if (forExport)
{ {
char GameID[5]; char GameID[5];
@ -530,7 +536,10 @@ void CWiiSaveCrypted::ScanForFiles(std::string savDir, std::vector<std::string>&
Directories.push_back(savDir); Directories.push_back(savDir);
for (u32 i = 0; i < Directories.size(); i++) for (u32 i = 0; i < Directories.size(); i++)
{ {
if (i) FileList.push_back(Directories[i]);//add dir to fst if (i != 0)
{
FileList.push_back(Directories[i]);//add dir to fst
}
File::FSTEntry FST_Temp; File::FSTEntry FST_Temp;
File::ScanDirectoryTree(Directories[i], FST_Temp); File::ScanDirectoryTree(Directories[i], FST_Temp);

View File

@ -26,7 +26,6 @@
// --- this is used for encrypted Wii save files // --- this is used for encrypted Wii save files
class CWiiSaveCrypted class CWiiSaveCrypted
{ {
public: public:
@ -40,8 +39,7 @@ public:
void ImportWiiSaveFiles(); void ImportWiiSaveFiles();
void ExportWiiSaveFiles(); // To data.bin void ExportWiiSaveFiles(); // To data.bin
void do_sig(); void do_sig();
void make_ec_cert(u8 *cert, u8 *sig, char *signer, char *name, u8 *priv, void make_ec_cert(u8 *cert, u8 *sig, char *signer, char *name, u8 *priv, u32 key_id);
u32 key_id);
bool getPaths(bool forExport = false); bool getPaths(bool forExport = false);
void ScanForFiles(std::string savDir, std::vector<std::string>&FilesList, u32 *_numFiles, u32 *_sizeFiles); void ScanForFiles(std::string savDir, std::vector<std::string>&FilesList, u32 *_numFiles, u32 *_sizeFiles);
@ -91,7 +89,6 @@ private:
AP_CERT_SZ = 0x180, AP_CERT_SZ = 0x180,
FULL_CERT_SZ = 0x3C0, // SIG_SZ + NG_CERT_SZ + AP_CERT_SZ + 0x80? FULL_CERT_SZ = 0x3C0, // SIG_SZ + NG_CERT_SZ + AP_CERT_SZ + 0x80?
BK_HDR_MAGIC = 0x426B0001, BK_HDR_MAGIC = 0x426B0001,
FILE_HDR_MAGIC = 0x03adf17e FILE_HDR_MAGIC = 0x03adf17e
}; };

View File

@ -49,8 +49,8 @@ void CPatchAddEdit::CreateGUIControls(int _selection)
} }
else else
{ {
currentName = StrToWxStr(onFrame.at(_selection).name); currentName = StrToWxStr(onFrame.at(_selection).name);
tempEntries = onFrame.at(_selection).entries; tempEntries = onFrame.at(_selection).entries;
} }
itCurEntry = tempEntries.begin(); itCurEntry = tempEntries.begin();
@ -218,7 +218,9 @@ bool CPatchAddEdit::UpdateTempEntryData(std::vector<PatchEngine::PatchEntry>::it
parsed_ok = false; parsed_ok = false;
} }
else else
{
parsed_ok = false; parsed_ok = false;
}
if (!parsed_ok) if (!parsed_ok)
{ {

View File

@ -686,13 +686,13 @@ bool TASInputDlg::HasFocus()
if(TextBoxHasFocus()) if(TextBoxHasFocus())
return false; return false;
if (wxWindow::FindFocus() == this) if (wxWindow::FindFocus() == this)
return true; return true;
else if (wxWindow::FindFocus() != NULL && else if (wxWindow::FindFocus() != NULL &&
wxWindow::FindFocus()->GetParent() == this) wxWindow::FindFocus()->GetParent() == this)
return true; return true;
else else
return false; return false;
} }
bool TASInputDlg::TextBoxHasFocus() bool TASInputDlg::TextBoxHasFocus()
@ -825,6 +825,7 @@ void TASInputDlg::SetTurboFalse(wxMouseEvent& event)
case ID_A: case ID_A:
A_turbo = false; A_turbo = false;
break; break;
case ID_B: case ID_B:
B_turbo = false; B_turbo = false;
break; break;
@ -868,6 +869,7 @@ void TASInputDlg::SetTurboFalse(wxMouseEvent& event)
case ID_RIGHT: case ID_RIGHT:
DR_turbo = false; DR_turbo = false;
break; break;
default: default:
return; return;
} }
@ -989,7 +991,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_a_button->GetValue()) if(wx_a_button->GetValue())
wx_a_button->SetValue(false); wx_a_button->SetValue(false);
else else
wx_a_button->SetValue(true); wx_a_button->SetValue(true);
} }
@ -998,7 +999,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_b_button->GetValue()) if(wx_b_button->GetValue())
wx_b_button->SetValue(false); wx_b_button->SetValue(false);
else else
wx_b_button->SetValue(true); wx_b_button->SetValue(true);
} }
@ -1007,7 +1007,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_x_button->GetValue()) if(wx_x_button->GetValue())
wx_x_button->SetValue(false); wx_x_button->SetValue(false);
else else
wx_x_button->SetValue(true); wx_x_button->SetValue(true);
} }
@ -1016,7 +1015,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_y_button->GetValue()) if(wx_y_button->GetValue())
wx_y_button->SetValue(false); wx_y_button->SetValue(false);
else else
wx_y_button->SetValue(true); wx_y_button->SetValue(true);
} }
@ -1025,15 +1023,14 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_z_button->GetValue()) if(wx_z_button->GetValue())
wx_z_button->SetValue(false); wx_z_button->SetValue(false);
else else
wx_z_button->SetValue(true); wx_z_button->SetValue(true);
} }
if(L_turbo)
if(L_turbo)
{ {
if(wx_l_button->GetValue()) if(wx_l_button->GetValue())
wx_l_button->SetValue(false); wx_l_button->SetValue(false);
else else
wx_l_button->SetValue(true); wx_l_button->SetValue(true);
} }
@ -1042,7 +1039,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_r_button->GetValue()) if(wx_r_button->GetValue())
wx_r_button->SetValue(false); wx_r_button->SetValue(false);
else else
wx_r_button->SetValue(true); wx_r_button->SetValue(true);
} }
@ -1051,7 +1047,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_start_button->GetValue()) if(wx_start_button->GetValue())
wx_start_button->SetValue(false); wx_start_button->SetValue(false);
else else
wx_start_button->SetValue(true); wx_start_button->SetValue(true);
} }
@ -1060,7 +1055,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_up_button->GetValue()) if(wx_up_button->GetValue())
wx_up_button->SetValue(false); wx_up_button->SetValue(false);
else else
wx_up_button->SetValue(true); wx_up_button->SetValue(true);
} }
@ -1069,7 +1063,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_down_button->GetValue()) if(wx_down_button->GetValue())
wx_down_button->SetValue(false); wx_down_button->SetValue(false);
else else
wx_down_button->SetValue(true); wx_down_button->SetValue(true);
} }
@ -1078,7 +1071,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_left_button->GetValue()) if(wx_left_button->GetValue())
wx_left_button->SetValue(false); wx_left_button->SetValue(false);
else else
wx_left_button->SetValue(true); wx_left_button->SetValue(true);
} }
@ -1087,7 +1079,6 @@ void TASInputDlg::ButtonTurbo()
{ {
if(wx_right_button->GetValue()) if(wx_right_button->GetValue())
wx_right_button->SetValue(false); wx_right_button->SetValue(false);
else else
wx_right_button->SetValue(true); wx_right_button->SetValue(true);
} }
@ -1099,11 +1090,11 @@ wxBitmap TASInputDlg::CreateStickBitmap(int x, int y)
y = y/2; y = y/2;
wxMemoryDC memDC; wxMemoryDC memDC;
wxBitmap stick_bitmap(127, 127); wxBitmap stick_bitmap(127, 127);
memDC.SelectObject(stick_bitmap); memDC.SelectObject(stick_bitmap);
memDC.SetBackground(*wxLIGHT_GREY_BRUSH); memDC.SetBackground(*wxLIGHT_GREY_BRUSH);
memDC.Clear(); memDC.Clear();
memDC.SetBrush(*wxWHITE_BRUSH); memDC.SetBrush(*wxWHITE_BRUSH);
memDC.DrawCircle(65,65,64); memDC.DrawCircle(65,65,64);
memDC.SetBrush(*wxRED_BRUSH); memDC.SetBrush(*wxRED_BRUSH);
memDC.DrawLine(64,64,x,y); memDC.DrawLine(64,64,x,y);
@ -1115,6 +1106,6 @@ wxBitmap TASInputDlg::CreateStickBitmap(int x, int y)
memDC.CrossHair(64,64); memDC.CrossHair(64,64);
memDC.SetBrush(*wxBLUE_BRUSH); memDC.SetBrush(*wxBLUE_BRUSH);
memDC.DrawCircle(x,y,5); memDC.DrawCircle(x,y,5);
memDC.SelectObject(wxNullBitmap); memDC.SelectObject(wxNullBitmap);
return stick_bitmap; return stick_bitmap;
} }