summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Debugger/MemoryView.h
blob: c540e96c7078370c689dceccf809f6515a7069f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
// Copyright 2008 Dolphin Emulator Project
// Licensed under GPLv2+
// Refer to the license.txt file included.

#pragma once

#include <wx/control.h>
#include "Common/CommonTypes.h"

class DebugInterface;

enum class MemoryDataType
{
  U8,
  U16,
  U32
};

class CMemoryView : public wxControl
{
public:
  CMemoryView(DebugInterface* debuginterface, wxWindow* parent);

  u32 GetSelection() const { return selection; }
  int GetMemoryType() const { return memory; }
  void Center(u32 addr)
  {
    curAddress = addr;
    Refresh();
  }

  void SetDataType(MemoryDataType data_type)
  {
    dataType = data_type;
    Refresh();
  }

private:
  void OnPaint(wxPaintEvent& event);
  void OnMouseDownL(wxMouseEvent& event);
  void OnMouseMove(wxMouseEvent& event);
  void OnMouseUpL(wxMouseEvent& event);
  void OnMouseDownR(wxMouseEvent& event);
  void OnScrollWheel(wxMouseEvent& event);
  void OnPopupMenu(wxCommandEvent& event);

  int YToAddress(int y);
  void OnResize(wxSizeEvent& event);

  DebugInterface* debugger;

  int align;
  int rowHeight;

  u32 selection;
  u32 oldSelection;
  bool selecting;

  int memory;
  int curAddress;
  MemoryDataType dataType;

  enum EViewAsType
  {
    VIEWAS_ASCII = 0,
    VIEWAS_FP,
    VIEWAS_HEX,
  };

  EViewAsType viewAsType;
};