Esempio n. 1
0
void CWatchView::OnMouseDownR(wxGridEvent& event)
{
  // popup menu
  int row = event.GetRow();
  int col = event.GetCol();

  m_selectedRow = row;

  if (col == 1 || col == 2)
  {
    wxString strNewVal = GetValueByRowCol(row, col);
    TryParse("0x" + WxStrToStr(strNewVal), &m_selectedAddress);
  }

  wxMenu menu;
  if (row != 0 && row != (int)(PowerPC::watches.GetWatches().size() + 1))
    menu.Append(IDM_DELETEWATCH, _("&Delete watch"));

  if (row != 0 && row != (int)(PowerPC::watches.GetWatches().size() + 1) && (col == 1 || col == 2))
  {
    menu.Append(IDM_ADDMEMCHECK, _("Add memory &breakpoint"));
    menu.Append(IDM_VIEWMEMORY, _("View &memory"));
  }
  PopupMenu(&menu);
}
Esempio n. 2
0
void CWatchView::OnMouseDownR(wxGridEvent& event)
{
  // popup menu
  int row = event.GetRow();
  int col = event.GetCol();

  m_selectedRow = row;

  if (col == 1 || col == 2)
  {
    wxString strNewVal = GetValueByRowCol(row, col);
    TryParse("0x" + WxStrToStr(strNewVal), &m_selectedAddress);
  }

  wxMenu menu;
  if (row != 0 && row != static_cast<int>(PowerPC::debug_interface.GetWatches().size() + 1))
  {
    // i18n: This kind of "watch" is used for watching emulated memory.
    // It's not related to timekeeping devices.
    menu.Append(IDM_DELETEWATCH, _("&Delete watch"));
  }

  if (row != 0 && row != static_cast<int>(PowerPC::debug_interface.GetWatches().size() + 1) &&
      (col == 1 || col == 2))
  {
    menu.Append(IDM_ADDMEMCHECK, _("Add memory &breakpoint"));
    menu.Append(IDM_VIEWMEMORY, _("View &memory"));
  }
  PopupMenu(&menu);
}
void CRegisterView::OnMouseDownR(wxGridEvent& event)
{
	// popup menu
	int row = event.GetRow();
	int col = event.GetCol();

	wxString strNewVal = GetValueByRowCol(row, col);
	TryParse("0x" + WxStrToStr(strNewVal), &m_selectedAddress);

	wxMenu menu;
	menu.Append(IDM_WATCHADDRESS, _("Add to &watch"));
	menu.Append(IDM_VIEWMEMORY, _("View &memory"));
	PopupMenu(&menu);
}
Esempio n. 4
0
void CWatchView::OnPopupMenu(wxCommandEvent& event)
{
  // FIXME: This is terrible. Generate events instead.
  CFrame* cframe = wxGetApp().GetCFrame();
  CCodeWindow* code_window = cframe->m_code_window;
  CWatchWindow* watch_window = code_window->GetPanel<CWatchWindow>();
  CMemoryWindow* memory_window = code_window->GetPanel<CMemoryWindow>();
  CBreakPointWindow* breakpoint_window = code_window->GetPanel<CBreakPointWindow>();

  switch (event.GetId())
  {
  case IDM_DELETEWATCH:
  {
    wxString strNewVal = GetValueByRowCol(m_selectedRow, 1);
    if (TryParse("0x" + WxStrToStr(strNewVal), &m_selectedAddress))
    {
      PowerPC::debug_interface.UnsetWatch(m_selectedAddress);
      if (watch_window)
        watch_window->NotifyUpdate();
      Refresh();
    }
    break;
  }
  case IDM_ADDMEMCHECK:
  {
    TMemCheck MemCheck;
    MemCheck.start_address = m_selectedAddress;
    MemCheck.end_address = m_selectedAddress;
    MemCheck.is_ranged = false;
    MemCheck.is_break_on_read = true;
    MemCheck.is_break_on_write = true;
    MemCheck.log_on_hit = true;
    MemCheck.break_on_hit = true;
    PowerPC::memchecks.Add(MemCheck);

    if (breakpoint_window)
      breakpoint_window->NotifyUpdate();
    Refresh();
    break;
  }
  case IDM_VIEWMEMORY:
    if (memory_window)
      memory_window->JumpToAddress(m_selectedAddress);
    Refresh();
    break;
  }
  event.Skip();
}
Esempio n. 5
0
void CWatchView::OnPopupMenu(wxCommandEvent& event)
{
  CFrame* main_frame = static_cast<CFrame*>(GetGrandParent()->GetParent());
  CCodeWindow* code_window = main_frame->g_pCodeWindow;
  CWatchWindow* watch_window = code_window->m_WatchWindow;
  CMemoryWindow* memory_window = code_window->m_MemoryWindow;
  CBreakPointWindow* breakpoint_window = code_window->m_BreakpointWindow;

  wxString strNewVal;
  TMemCheck MemCheck;

  switch (event.GetId())
  {
  case IDM_DELETEWATCH:
    strNewVal = GetValueByRowCol(m_selectedRow, 1);
    if (TryParse("0x" + WxStrToStr(strNewVal), &m_selectedAddress))
    {
      PowerPC::watches.Remove(m_selectedAddress);
      if (watch_window)
        watch_window->NotifyUpdate();
      Refresh();
    }
    break;
  case IDM_ADDMEMCHECK:
    MemCheck.StartAddress = m_selectedAddress;
    MemCheck.EndAddress = m_selectedAddress;
    MemCheck.bRange = false;
    MemCheck.OnRead = true;
    MemCheck.OnWrite = true;
    MemCheck.Log = true;
    MemCheck.Break = true;
    PowerPC::memchecks.Add(MemCheck);

    if (breakpoint_window)
      breakpoint_window->NotifyUpdate();
    Refresh();
    break;
  case IDM_VIEWMEMORY:
    if (memory_window)
      memory_window->JumpToAddress(m_selectedAddress);
    Refresh();
    break;
  }
  event.Skip();
}
Esempio n. 6
0
wxString CWatchTable::GetValue(int row, int col)
{
  return GetValueByRowCol(row, col);
}