| 16 | { |
| 17 | |
| 18 | SubModePanel::SubModePanel(const std::shared_ptr<ClientContext>& ctx, QWidget* parent) : BaseWidget(ctx, parent) { |
| 19 | this->setWindowFlags(Qt::FramelessWindowHint); |
| 20 | this->setStyleSheet("background:#00000000;"); |
| 21 | int offset = 5; |
| 22 | setFixedSize(210, 138); |
| 23 | auto item_height = 38; |
| 24 | auto border_spacing = 10; |
| 25 | auto item_size = QSize(this->width() - 2*offset, item_height); |
| 26 | auto root_layout = new NoMarginVLayout(); |
| 27 | root_layout->setContentsMargins(offset, offset, offset, offset); |
| 28 | |
| 29 | settings_ = Settings::Instance(); |
| 30 | |
| 31 | { |
| 32 | auto layout = new NoMarginHLayout(); |
| 33 | auto widget = new QWidget(this); |
| 34 | widget->setLayout(layout); |
| 35 | widget->setFixedSize(item_size); |
| 36 | layout->addWidget(widget); |
| 37 | |
| 38 | auto lbl = new QLabel(); |
| 39 | lbl->setText(tr("Work Mode")); |
| 40 | lbl->setStyleSheet(R"(font-weight:bold;)"); |
| 41 | layout->addSpacing(border_spacing*2); |
| 42 | layout->addWidget(lbl); |
| 43 | |
| 44 | layout->addStretch(); |
| 45 | |
| 46 | auto sb = new SwitchButton(this); |
| 47 | sb_work_ = sb; |
| 48 | sb->setFixedSize(35, 20); |
| 49 | sb->SetStatus(settings_->work_mode_ == SwitchWorkMode::kWork); |
| 50 | layout->addWidget(sb); |
| 51 | sb->SetClickCallback([=, this](bool enabled) { |
| 52 | SwitchWorkMode::WorkMode mode = enabled ? SwitchWorkMode::kWork : SwitchWorkMode::kGame; |
| 53 | settings_->SetWorkMode(mode); |
| 54 | sb_game_->SetStatus(!enabled); |
| 55 | context_->SendAppMessage(MsgClientSwitchWorkMode { |
| 56 | .mode_ = mode, |
| 57 | }); |
| 58 | context_->SendAppMessage(MsgClientFloatControllerPanelUpdate{.update_type_ = MsgClientFloatControllerPanelUpdate::EUpdate::kWorkMode}); |
| 59 | }); |
| 60 | |
| 61 | layout->addSpacing(border_spacing); |
| 62 | |
| 63 | root_layout->addSpacing(5); |
| 64 | root_layout->addWidget(widget); |
| 65 | } |
| 66 | { |
| 67 | auto layout = new NoMarginHLayout(); |
| 68 | auto widget = new QWidget(this); |
| 69 | widget->setLayout(layout); |
| 70 | widget->setFixedSize(item_size); |
| 71 | layout->addWidget(widget); |
| 72 | |
| 73 | auto lbl = new QLabel(); |
| 74 | lbl->setText(tr("Game Mode")); |
| 75 | lbl->setStyleSheet(R"(font-weight:bold;)"); |
nothing calls this directly
no test coverage detected