Annotation of nono/wx/wxbitmappanel.h, revision 1.1.1.4

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
1.1.1.3   root        8: // バックバッファが BitmapRGBX なパネル
1.1       root        9: //
                     10: 
                     11: #pragma once
                     12: 
                     13: #include "wxnono.h"
                     14: #include "bitmap.h"
                     15: 
                     16: class WXBitmapPanel : public wxPanel
                     17: {
                     18:        using inherited = wxPanel;
                     19:  public:
                     20:        WXBitmapPanel(wxWindow *parent,
1.1.1.2   root       21:                const wxPoint& position = wxDefaultPosition,
                     22:                const wxSize& size = wxDefaultSize,
                     23:                long style = wxTAB_TRAVERSAL);
1.1       root       24:        WXBitmapPanel(wxWindow *parent, wxWindowID id,
1.1.1.2   root       25:                const wxPoint& position = wxDefaultPosition,
                     26:                const wxSize& size = wxDefaultSize,
                     27:                long style = wxTAB_TRAVERSAL);
1.1       root       28:        virtual ~WXBitmapPanel() override;
                     29: 
1.1.1.2   root       30:        // 背景色を設定する
1.1       root       31:        void SetBitmapBGColor(Color c);
                     32: 
1.1.1.2   root       33:        // 背景色で塗りつぶす
                     34:        void Fill();
                     35: 
                     36:        // サイズ固定。
1.1.1.4 ! root       37:        // バックバッファのサイズは通常ウィンドウのクライアントサイズから決まるが
        !            38:        // 実画面に収まらないサイズのウィンドウを表示しようとすると、ウィンドウ
        !            39:        // サイズは実画面でクリップされるため、バックバッファもこの大きさでクリップ
        !            40:        // される。しかし、Bitmap クラスは範囲外への描画を自動クリップする機能を
        !            41:        // 持っていないため、このままでは1文字の描画の途中で画像をはみ出るなどの
        !            42:        // 問題が起きる。このようなケースのため、ウィンドウサイズとは関係なく
        !            43:        // バックバッファを一定のサイズで確保したいための機能。
1.1.1.2   root       44:        // バックバッファより小さいウィンドウへの描画は問題なく行えるっぽい?。
1.1.1.4 ! root       45:        // 指定サイズを制約なく受け入れる場合は (0, 0) を指定する (デフォルト)。
        !            46:        void SetMinBitmapSize(const wxSize& size);
1.1.1.2   root       47: 
1.1       root       48:  protected:
                     49:        void OnSize(wxSizeEvent&);
                     50:        void OnPaint(wxPaintEvent&);
                     51: 
                     52:        virtual void Draw();
                     53: 
1.1.1.3   root       54:        BitmapRGBX bitmap {};
1.1       root       55: 
1.1.1.2   root       56:        // 固定サイズ指定
                     57:        wxSize fixedsize {};
                     58: 
1.1       root       59:  private:
1.1.1.3   root       60:        BitmapRGB bitmap24 {};
                     61: 
1.1       root       62:        Color bitmap_bgcolor;
                     63: 
                     64:        wxDECLARE_EVENT_TABLE();
                     65: };

unix.superglobalmegacorp.com

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