|
|
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: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.