|
|
1.1 ! root 1: // ! 2: // nono ! 3: // Copyright (C) 2022 nono project ! 4: // Licensed under nono-license.txt ! 5: // ! 6: ! 7: // ! 8: // 独自ボタン ! 9: // ! 10: ! 11: #pragma once ! 12: ! 13: #include "wxtextpanel.h" ! 14: ! 15: wxDECLARE_EVENT(NONO_EVT_BUTTON, wxCommandEvent); ! 16: ! 17: class WXButton : public WXTextPanel ! 18: { ! 19: using inherited = WXTextPanel; ! 20: public: ! 21: // 引数の並び順は標準スタイルとは変えてある ! 22: WXButton(wxWindow *parent, wxWindowID id, const wxSize& size, ! 23: const wxString& text_, ! 24: const wxPoint& position = wxDefaultPosition); ! 25: ~WXButton() override; ! 26: ! 27: void FontChanged() override; ! 28: ! 29: bool Enable(bool enable_) override; ! 30: ! 31: private: ! 32: void OnMouse(wxMouseEvent& event); ! 33: void OnTimer(wxTimerEvent& event); ! 34: ! 35: // ボタンが押されていれば true。 ! 36: bool IsPressed() const { return pressed; } ! 37: ! 38: // ボタンを押すか離した時の内部処理 ! 39: void Press(bool press); ! 40: ! 41: void Draw() override; ! 42: ! 43: // ボタン上のテキスト ! 44: std::string sjistext {}; ! 45: ! 46: // テキスト領域の大きさ ! 47: wxSize textsize {}; ! 48: ! 49: // テキスト描画開始の左上座標 ! 50: wxPoint textpos {}; ! 51: ! 52: // ボタン押下中なら true ! 53: bool pressed {}; ! 54: ! 55: // キーリピート風動作のためのタイマーイベント ! 56: wxTimer timer {}; ! 57: ! 58: // イベントテーブル ! 59: wxDECLARE_EVENT_TABLE(); ! 60: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.