| 262 | } |
| 263 | |
| 264 | void GameView::InitFloatController() |
| 265 | { |
| 266 | // float controller |
| 267 | int shadow_color = 0x999999; |
| 268 | float_controller_ = new FloatController(ctx_, this); |
| 269 | float_controller_->installEventFilter(this); |
| 270 | float_controller_->setFixedSize(40, 40); |
| 271 | WidgetHelper::AddShadow(float_controller_, shadow_color); |
| 272 | controller_panel_ = new FloatControllerPanel(ctx_, this); |
| 273 | WidgetHelper::AddShadow(controller_panel_, shadow_color); |
| 274 | RegisterControllerPanelListeners(); |
| 275 | controller_panel_->installEventFilter(this); |
| 276 | controller_panel_->hide(); |
| 277 | |
| 278 | float_controller_->SetOnClickListener([=, this]() { |
| 279 | QPoint point = float_controller_->mapToGlobal(QPoint(0, 0)); |
| 280 | point.setX(float_controller_->pos().x() + float_controller_->width() + 10); |
| 281 | point.setY(float_controller_->pos().y()); |
| 282 | controller_panel_->move(point); |
| 283 | if (controller_panel_->isHidden()) { |
| 284 | if (!float_controller_->HasMoved()) { |
| 285 | controller_panel_->show(); |
| 286 | } |
| 287 | } |
| 288 | else { |
| 289 | controller_panel_->Hide(); |
| 290 | } |
| 291 | }); |
| 292 | |
| 293 | float_controller_->SetOnMoveListener([=, this]() { |
| 294 | if (!controller_panel_) { |
| 295 | return; |
| 296 | } |
| 297 | controller_panel_->Hide(); |
| 298 | }); |
| 299 | } |
| 300 | |
| 301 | void GameView::RegisterControllerPanelListeners() { |
| 302 | controller_panel_->SetOnDebugListener([=, this](QWidget* w) { |
nothing calls this directly
no test coverage detected