Annotation of nono/wx/wxscreenmonitor.h, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2020 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: //
        !             8: // スクリーンモニタ
        !             9: //
        !            10: 
        !            11: #pragma once
        !            12: 
        !            13: #include "wxbitmappanel.h"
        !            14: #include "wxsubwindow.h"
        !            15: 
        !            16: class WXScrollBar;
        !            17: 
        !            18: // スクリーンパネル (共通部)
        !            19: class WXScreenPanel : public WXBitmapPanel
        !            20: {
        !            21:        using inherited = WXBitmapPanel;
        !            22: 
        !            23:  public:
        !            24:        WXScreenPanel(wxWindow *parent);
        !            25:        ~WXScreenPanel() override;
        !            26: 
        !            27:        int GetVirtualWidth() const                     { return virtual_width; }
        !            28:        int GetVirtualHeight() const            { return virtual_height; }
        !            29:        const wxPoint& GetCursor() const        { return cursor; }
        !            30: 
        !            31:        void SetScale(int new_scale);
        !            32: 
        !            33:        void OnScroll(wxScrollEvent&);
        !            34: 
        !            35:        // 現在表示中のビュー (virtual_size 座標系)
        !            36:        Rect view {};
        !            37: 
        !            38:  protected:
        !            39:        // コンストラクタの後半。
        !            40:        void Ctor(int screen_width_, int screen_height_);
        !            41: 
        !            42:        void OnMouseMove(wxMouseEvent&);
        !            43:        void OnMouseWheel(wxMouseEvent&);
        !            44: 
        !            45:        // 拡大前のビットマップの大きさ (TVRAM なら 1024x1024 など)
        !            46:        int plane_width {};
        !            47:        int plane_height {};
        !            48: 
        !            49:        // 拡大後のビットマップの大きさ
        !            50:        int virtual_width {};
        !            51:        int virtual_height {};
        !            52:        // 倍率
        !            53:        int scale {};
        !            54: 
        !            55:        // マウスカーソルがこのパネル上にあればその座標。拡大前ビットマップ座標系。
        !            56:        // マウスカーソルがパネル外なら wxDefaultPosition とする。
        !            57:        wxPoint cursor {};
        !            58: 
        !            59:        // イベントテーブル
        !            60:        wxDECLARE_EVENT_TABLE();
        !            61: };
        !            62: 
        !            63: // スクリーンモニタウィンドウ (共通部)
        !            64: class WXScreenWindow : public WXSubWindow
        !            65: {
        !            66:        using inherited = WXSubWindow;
        !            67: 
        !            68:  public:
        !            69:        WXScreenWindow(wxWindow *parent, const wxString& name);
        !            70:        ~WXScreenWindow() override;
        !            71: 
        !            72:        bool Layout() override;
        !            73: 
        !            74:        // 縦スクロールバーの位置を設定する。(パネルから呼ばれる)
        !            75:        void SetVScrollPosition(int);
        !            76: 
        !            77:  protected:
        !            78:        // コンストラクタの共通部。
        !            79:        void Ctor();
        !            80: 
        !            81:        // ステータス部の更新。
        !            82:        virtual void UpdateInfo(TextScreen&, int px, int py) = 0;
        !            83: 
        !            84:        void OnScale(wxCommandEvent&);
        !            85:        void DoScale(int scale_index_);
        !            86:        void OnTimer(wxTimerEvent&);
        !            87: 
        !            88:        bool GetMySizeHints(wxSize *, wxSize *, wxSize *, wxSize *) override;
        !            89:        void SetScroll();
        !            90: 
        !            91:        // コントロールパネル
        !            92:        wxPanel *ctrlpanel {};
        !            93:        // ステータスパネル
        !            94:        WXTextScreen *statuspanel {};
        !            95:        WXBitmapPanel *spacer {};       // ステータスパネル右の空き地用
        !            96:        // グラフィックパネル
        !            97:        WXScreenPanel *viewpanel {};
        !            98:        WXScrollBar *vscroll {};
        !            99:        WXScrollBar *hscroll {};
        !           100:        WXBitmapPanel *corner {};       // 右下の空き地
        !           101: 
        !           102:        // タイマー
        !           103:        wxTimer timer {};
        !           104: 
        !           105:        // イベントテーブル
        !           106:        wxDECLARE_EVENT_TABLE();
        !           107: };

unix.superglobalmegacorp.com

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