--- nono/wx/wxdipswwindow.cpp 2026/04/29 17:05:19 1.1.1.2 +++ nono/wx/wxdipswwindow.cpp 2026/04/29 17:05:58 1.1.1.5 @@ -74,8 +74,7 @@ WXDipswWindow::WXDipswWindow(wxWindow *p swctl.push_back(ctl); // スクロールイベントをこっちに接続 - ctl->Connect(NONO_EVT_SCROLL, - wxScrollEventHandler(WXDipswWindow::OnScroll), NULL, this); + ctl->Bind(NONO_EVT_SCROLL, &WXDipswWindow::OnScroll, this); } // DIPSW ボックス @@ -114,11 +113,10 @@ WXDipswWindow::WXDipswWindow(wxWindow *p SetSizer(topsizer); FontChanged(); - DoSize(); // 現在値を反映 for (int i = 0; i < ndipsw; i++) { - int pos = swdev->GetPosition(i); + uint pos = swdev->GetPosition(i); swctl[i]->SetThumbPosition(pos); } } @@ -137,22 +135,22 @@ WXDipswWindow::FontChanged() // スクロールバーの幅はフォントサイズで変わるので、 // 高さをそれに連動させる。 - wxSize size = swctl[0]->GetClientSize(); + wxSize size = swctl[0]->GetSize(); size.y = size.x * 5 / 3; for (auto *ctl : swctl) { - ctl->SetClientSize(size); - ctl->SetMinClientSize(size); + ctl->SetSize(size); + ctl->SetMinSize(size); } - DoSize(); + Fit(); } // スクロール位置変更通知 void WXDipswWindow::OnScroll(wxScrollEvent& event) { - int n = event.GetId() - ID_DIPSW0; - int pos = event.GetPosition(); + uint n = event.GetId() - ID_DIPSW0; + uint pos = event.GetPosition(); swdev->SetPosition(n, pos); }