Annotation of nono/wx/wxlogmonitor.h, revision 1.1.1.5

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: 
                      7: #pragma once
                      8: 
                      9: #include "wxsubwindow.h"
                     10: #include "wxtextscreen.h"
                     11: 
1.1.1.3   root       12: class WXLogMonitor : public WXVResizeSubWindow, public IMonitor
1.1       root       13: {
1.1.1.3   root       14:        using inherited = WXVResizeSubWindow;
1.1       root       15: 
                     16:  public:
                     17:        WXLogMonitor(wxWindow *, wxWindowID);
1.1.1.3   root       18:        virtual ~WXLogMonitor() override;
1.1       root       19: 
1.1.1.3   root       20:        nnSize GetMonitorSize() override;
                     21:        void MonitorUpdate(TextScreen& ts) override;
1.1       root       22: 
                     23:  private:
1.1.1.3   root       24:        // サイズ変更イベント
                     25:        void OnSize(wxSizeEvent&);
1.1       root       26: 
1.1.1.3   root       27:        // マウスホイールイベント
                     28:        void OnMouseWheel(wxMouseEvent&);
                     29: 
                     30:        // スクロールイベント
                     31:        void OnScroll(wxScrollEvent&);
                     32: 
                     33:        // スクロールバー再設定
                     34:        void SetScroll();
                     35: 
                     36:        // スクロール処理
                     37:        void DoScroll(int pos);
                     38: 
                     39:        // ウィンドウサイズ再計算
                     40:        void DoSize() override;
                     41: 
                     42:        // バックログに追加
1.1       root       43:        void Append(const char *);
                     44: 
1.1.1.3   root       45:        // 1行追加された時の下請け処理
                     46:        void IncLines();
1.1       root       47: 
1.1.1.3   root       48:        // スクロールバー
1.1.1.4   root       49:        wxScrollBar *vscroll {};
1.1       root       50: 
1.1.1.4   root       51:        int col {};
                     52:        int row {};
1.1       root       53: 
1.1.1.3   root       54:        // 表示開始位置
                     55:        // パネル最下行に表示する行を、最新行からのオフセットで表す。
                     56:        // 0 ならパネル最下行は最新行、1 なら一つ手前の行…となる。
1.1.1.4   root       57:        int vpos {};
1.1.1.3   root       58: 
                     59:        // 現在のログ行数
1.1.1.4   root       60:        int lines {};
1.1.1.3   root       61: 
                     62:        // ログ全体の行数(上限)
                     63:        const int backlog = 10000;
                     64: 
1.1       root       65:        // ログバッファ
1.1.1.5 ! root       66:        TextScreen logbuf {};
1.1       root       67: 
1.1.1.5 ! root       68:        // 今から書き込む行の logbuf でのY座標
1.1.1.3   root       69:        int cursor {};
1.1       root       70: 
                     71:        // UTF-8 -> CP932 変換
                     72:        wxCSConv conv { "CP932" };
                     73: 
                     74:        // イベントテーブル
                     75:        wxDECLARE_EVENT_TABLE();
                     76: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.