|
|
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); ! 22: ~WXLCDPanel(); ! 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); ! 49: ~WXLCDWindow(); ! 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); ! 61: ~WXLCDCharPanel(); ! 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); ! 80: ~WXLCDMonitor(); ! 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.