|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: //
8: // LUNA LCD パネル
9: //
10:
11: #pragma once
12:
13: #include "wxheader.h"
14: #include "wxsubwindow.h"
15:
16: // LCD パネル
17: class WXLCDPanel : public wxPanel
18: {
19: using inherited = wxPanel;
20: public:
21: WXLCDPanel(wxWindow *parent);
1.1.1.2 ! root 22: virtual ~WXLCDPanel() override;
1.1 root 23:
24: private:
25: void OnTimer(wxTimerEvent& event);
26: void OnPaint(wxPaintEvent& event);
27: void Draw(wxDC&);
28: void DrawChar(wxDC&, int x, int y, uint8 ch);
29:
30: const uint8 *ddram {};
31:
32: std::unique_ptr<uint8[]> bmpbuf {};
33: std::unique_ptr<wxImage> image {};
34: std::unique_ptr<wxBitmap> bitmap {};
35:
36: // 描画管理用
37: uint32 count {};
38: wxTimer timer {};
39:
40: wxDECLARE_EVENT_TABLE();
41: };
42:
43: // LCD ウィンドウ
44: class WXLCDWindow : public WXSubWindow
45: {
46: using inherited = WXSubWindow;
47: public:
48: WXLCDWindow(wxWindow *parent, wxWindowID id);
1.1.1.2 ! root 49: virtual ~WXLCDWindow() override;
1.1 root 50:
51: private:
52: WXLCDPanel *panel {};
53: };
54:
55: // LCD キャラクタパネル
56: class WXLCDCharPanel : public wxPanel
57: {
58: using inherited = wxPanel;
59: public:
60: WXLCDCharPanel(wxWindow *parent);
1.1.1.2 ! root 61: virtual ~WXLCDCharPanel() override;
1.1 root 62:
63: private:
64: void OnPaint(wxPaintEvent& event);
65: void Draw(wxDC&);
66:
67: std::unique_ptr<uint8[]> bmpbuf {};
68: std::unique_ptr<wxImage> image {};
69: std::unique_ptr<wxBitmap> bitmap {};
70:
71: wxDECLARE_EVENT_TABLE();
72: };
73:
74: // LCD キャラクタウィンドウ
75: class WXLCDMonitor : public WXSubWindow
76: {
77: using inherited = WXSubWindow;
78: public:
79: WXLCDMonitor(wxWindow *parent, wxWindowID id);
1.1.1.2 ! root 80: virtual ~WXLCDMonitor() override;
1.1 root 81:
82: private:
83: WXTextScreen *monpanel {};
84: WXLCDCharPanel *chrpanel {};
85: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.