MCPcopy Create free account
hub / github.com/RGAA-Software/GoDesk / SubModePanel

Method SubModePanel

src/client/ui/float_sub_mode_panel.cpp:18–104  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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;)");

Callers

nothing calls this directly

Calls 4

SetClickCallbackMethod · 0.80
SetWorkModeMethod · 0.80
SetStatusMethod · 0.45
SendAppMessageMethod · 0.45

Tested by

no test coverage detected