void CtrlRegisterList::onPopupClick(wxCommandEvent& evt) { switch (evt.GetId()) { case ID_REGISTERLIST_DISPLAY32: maxBits = 32; SetBestSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY64: maxBits = 64; SetBestSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY128: maxBits = 128; SetBestSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; default: wxMessageBox( L"Unimplemented.", L"Unimplemented.", wxICON_INFORMATION); break; } }
void CtrlRegisterList::onPopupClick(wxCommandEvent& evt) { switch (evt.GetId()) { case ID_REGISTERLIST_DISPLAY32: resolvePointerStrings = false; maxBits = 32; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY64: resolvePointerStrings = false; maxBits = 64; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY128: resolvePointerStrings = false; maxBits = 128; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY128STRINGS: resolvePointerStrings = true; maxBits = 128; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT, 0); Refresh(); break; case ID_REGISTERLIST_CHANGELOWER: changeValue(LOWER64); Refresh(); break; case ID_REGISTERLIST_CHANGEUPPER: changeValue(UPPER64); Refresh(); break; case ID_REGISTERLIST_CHANGEVALUE: if (cpu->getRegisterSize(category) == 32) changeValue(CHANGE32); else changeValue(LOWER64); Refresh(); break; case ID_REGISTERLIST_GOTOINMEMORYVIEW: postEvent(debEVT_GOTOINMEMORYVIEW, cpu->getRegister(category, currentRows[category])._u32[0]); break; case ID_REGISTERLIST_GOTOINDISASM: postEvent(debEVT_GOTOINDISASM, cpu->getRegister(category, currentRows[category])._u32[0]); break; default: wxMessageBox( L"Unimplemented.", L"Unimplemented.", wxICON_INFORMATION); break; } }
wxSize wxStaticBox::DoGetBestSize() const { wxSize best; // Calculate the size needed by the label int cx, cy; wxGetCharSize(GetHWND(), &cx, &cy, GetFont()); int wBox; GetTextExtent(GetLabelText(wxGetWindowText(m_hWnd)), &wBox, &cy); wBox += 3*cx; int hBox = EDIT_HEIGHT_FROM_CHAR_HEIGHT(cy); // If there is a sizer then the base best size is the sizer's minimum if (GetSizer() != NULL) { wxSize cm(GetSizer()->CalcMin()); best = ClientToWindowSize(cm); // adjust for a long label if needed best.x = wxMax(best.x, wBox); } // otherwise the best size falls back to the label size else { best = wxSize(wBox, hBox); } return best; }
CtrlRegisterList::CtrlRegisterList(wxWindow* parent, DebugInterface* _cpu) : wxScrolledWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxWANTS_CHARS|wxBORDER_NONE|wxVSCROLL), cpu(_cpu) { rowHeight = getDebugFontHeight()+2; charWidth = getDebugFontWidth(); category = 0; maxBits = 128; lastPc = 0xFFFFFFFF; for (int i = 0; i < cpu->getRegisterCategoryCount(); i++) { int count = cpu->getRegisterCount(i); ChangedReg* regs = new ChangedReg[count]; memset(regs,0,sizeof(ChangedReg)*count); changedCategories.push_back(regs); int maxLen = 0; for (int k = 0; k < cpu->getRegisterCount(i); k++) { maxLen = std::max<int>(maxLen,strlen(cpu->getRegisterName(i,k))); } int x = 17+(maxLen+2)*charWidth; startPositions.push_back(x); currentRows.push_back(0); } SetDoubleBuffered(true); SetInitialSize(ClientToWindowSize(GetMinClientSize())); wxSize actualSize = getOptimalSize(); SetVirtualSize(actualSize); SetScrollbars(1, rowHeight, actualSize.x, actualSize.y / rowHeight, 0, 0); }
void CtrlRegisterList::onPopupClick(wxCommandEvent& evt) { switch (evt.GetId()) { case ID_REGISTERLIST_DISPLAY32: maxBits = 32; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY64: maxBits = 64; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_DISPLAY128: maxBits = 128; SetInitialSize(ClientToWindowSize(GetMinClientSize())); postEvent(debEVT_UPDATELAYOUT,0); Refresh(); break; case ID_REGISTERLIST_CHANGELOWER: changeValue(LOWER64); Refresh(); break; case ID_REGISTERLIST_CHANGEUPPER: changeValue(UPPER64); Refresh(); break; case ID_REGISTERLIST_CHANGEVALUE: if (cpu->getRegisterSize(category) == 32) changeValue(CHANGE32); else changeValue(LOWER64); Refresh(); break; default: wxMessageBox( L"Unimplemented.", L"Unimplemented.", wxICON_INFORMATION); break; } }
CtrlRegisterList::CtrlRegisterList(wxWindow* parent, DebugInterface* _cpu) : wxWindow(parent,wxID_ANY,wxDefaultPosition,wxDefaultSize,wxWANTS_CHARS|wxBORDER), cpu(_cpu) { rowHeight = 14; charWidth = 8; category = 0; maxBits = 128; for (int i = 0; i < cpu->getRegisterCategoryCount(); i++) { int count = cpu->getRegisterCount(i); ChangedReg* regs = new ChangedReg[count]; memset(regs,0,sizeof(ChangedReg)*count); changedCategories.push_back(regs); int maxLen = 0; for (int k = 0; k < cpu->getRegisterCount(i); k++) { maxLen = std::max<int>(maxLen,strlen(cpu->getRegisterName(i,k))); } int x = 17+(maxLen+3)*charWidth; startPositions.push_back(x); currentRows.push_back(0); } menu.AppendRadioItem(ID_REGISTERLIST_DISPLAY32, L"Display 32 bit"); menu.AppendRadioItem(ID_REGISTERLIST_DISPLAY64, L"Display 64 bit"); menu.AppendRadioItem(ID_REGISTERLIST_DISPLAY128, L"Display 128 bit"); menu.Check(ID_REGISTERLIST_DISPLAY128,true); menu.Connect(wxEVT_COMMAND_MENU_SELECTED, (wxObjectEventFunction)&CtrlRegisterList::onPopupClick, NULL, this); SetDoubleBuffered(true); SetInitialBestSize(ClientToWindowSize(GetMinClientSize())); }