|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
1.1.1.6 ! root 7: //
! 8: // メモリダンプウィンドウ
! 9: //
! 10:
1.1 root 11: #pragma once
12:
13: #include "wxsubwindow.h"
1.1.1.5 root 14: #include "monitor.h"
1.1.1.6 ! root 15: #include <array>
1.1 root 16:
1.1.1.5 root 17: class WXMemdumpWindow : public WXVResizeSubWindow
1.1 root 18: {
1.1.1.3 root 19: using inherited = WXVResizeSubWindow;
1.1 root 20: public:
1.1.1.5 root 21: WXMemdumpWindow(wxWindow *parent, int idx_);
1.1.1.3 root 22: virtual ~WXMemdumpWindow() override;
23:
1.1.1.5 root 24: // ウィンドウID(モニタID) に対応する sticky address を取得する
25: static uint32 GetStickyAddr(int id);
26: // ウィンドウID(モニタID) に対応する sitcky address を設定する
27: static void SetStickyAddr(int id, uint32 addr);
1.1 root 28:
29: private:
30: // テキスト入力イベント
31: void OnTextEnter(wxCommandEvent& event);
32:
33: // ページアップダウンイベント
34: void OnPrev(wxCommandEvent& event);
35: void OnNext(wxCommandEvent& event);
36:
1.1.1.5 root 37: // アドレス欄を更新
38: void UpdateAddr();
1.1 root 39:
1.1.1.5 root 40: // コントロール
41: wxTextCtrl *addrctrl {};
1.1.1.4 root 42: wxButton *prev_btn {};
43: wxButton *next_btn {};
1.1 root 44:
1.1.1.3 root 45: // コントロールパネルを格納する sizer
46: wxBoxSizer *ctrlbox {};
47:
1.1.1.5 root 48: // 識別子、または sticky_addr[] の添字。
49: // メモリダンプウィンドウは複数枚あるので自分がそのうちの何番目か。
50: int idx {};
1.1 root 51:
52: // イベントテーブル
53: wxDECLARE_EVENT_TABLE();
1.1.1.5 root 54:
55: // 開始番地の二次記憶域。
56: // サブウィンドウは今のところ開いてる時だけオブジェクトが存在している
57: // タイプだが、メモリダンプウィンドウを閉じてまた開くとさっきのアドレスが
58: // 見えていてほしいので、ここでその状況を真似する。
59: // こっちはあくまで補助用の領域で、現在表示中のアドレスの一次情報は
60: // screen.userdata のほう。
61: static std::array<uint32, MAX_MEMDUMP_MONITOR> sticky_addr;
1.1 root 62: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.