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

1.1       root        1: //
                      2: // nono
                      3: // Copyright (C) 2021 nono project
                      4: // Licensed under nono-license.txt
                      5: //
                      6: 
                      7: //
                      8: // 独自スクロールバー
                      9: //
                     10: 
                     11: #pragma once
                     12: 
1.1.1.3   root       13: #include "wxtextpanel.h"
1.1       root       14: 
                     15: wxDECLARE_EVENT(NONO_EVT_SCROLL, wxScrollEvent);
                     16: 
1.1.1.3   root       17: class WXScrollBar : public WXTextPanel
1.1       root       18: {
1.1.1.3   root       19:        using inherited = WXTextPanel;
1.1       root       20: 
                     21:  public:
                     22:        WXScrollBar(wxWindow *parent, wxWindowID id, long style);
                     23:        ~WXScrollBar() override;
                     24: 
1.1.1.3   root       25:        void FontChanged() override;
1.1.1.4   root       26:        void Fit() override;
1.1.1.3   root       27: 
1.1.1.5 ! root       28:        void SetScrollParam(int thumbsize_, int range_, int pagesize_) {
        !            29:                SetScrollParam(GetThumbPosition(), thumbsize_, range_, pagesize_);
        !            30:        }
1.1       root       31:        void SetScrollParam(int pos_, int thumbsize_, int range_, int pagesize_);
                     32: 
1.1.1.3   root       33:        bool SetThumbPosition(int pos_);
1.1       root       34: 
                     35:        int GetThumbPosition() const { return thumbpos; }
                     36:        int GetThumbSize() const { return thumbsize; }
                     37:        int GetRange() const { return range; }
                     38: 
                     39:        void Draw() override;
                     40: 
                     41:  private:
                     42:        void OnSize(wxSizeEvent& event);
                     43:        void OnMouse(wxMouseEvent& event);
1.1.1.2   root       44:        void OnTimer(wxTimerEvent& event);
1.1       root       45: 
                     46:        // つまみの位置を変更する (内部用)
                     47:        void MoveThumb(int pos_);
                     48: 
1.1.1.2   root       49:        int PosCmp() const;
1.1       root       50: 
                     51:        bool is_vertical {};
1.1.1.4   root       52:        // スクロール領域の太さというか従方向の長さ。
                     53:        // 縦スクロールバーなら横幅、横スクロールバーなら高さ。
                     54:        int subpx {};
1.1       root       55: 
                     56:        int thumbpos {};        // つまみの上(左)位置
                     57:        int thumbsize {};       // つまみのサイズ
1.1.1.3   root       58:        int thumbmin {};        // つまみの最小サイズ
1.1       root       59:        int range {};           // スクロール領域の高さ(幅)
                     60:        int pagesize {};        // ページアップ、ダウンの移動量
                     61: 
                     62:        int p1 {};                      // つまみの上(左)ピクセル座標
                     63:        int p2 {};                      // つまみの下(右)ピクセル座標(開区間)
                     64:        int range_px {};        // スクロール領域の高さ(幅)ピクセル
                     65: 
                     66:        int start_thumb;        // ドラッグ開始時のつまみの位置
                     67:        int start_px {};        // ドラッグ開始時のピクセル座標
                     68: 
1.1.1.2   root       69:        int mouse_px {};        // 直近のマウスカーソルのピクセル座標
                     70:        bool left_click {};     // 左クリック継続中か
                     71: 
                     72:        wxTimer timer {};
                     73: 
1.1       root       74:        wxDECLARE_EVENT_TABLE();
                     75: };

unix.superglobalmegacorp.com

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