55 : wxPanel(parent, wxID_ANY)
60{
61 SetBackgroundColour(0xEEEEEE);
62 Hide();
63
64 wxBoxSizer * sizer = new wxBoxSizer(wxVERTICAL);
65
66 wxBoxSizer * top_sizer = new wxBoxSizer(wxHORIZONTAL);
67 top_sizer->SetMinSize({-1, 75 *
em_unit(
this) / 10});
68
69
70 auto time_panel = new wxWindow(this, wxID_ANY);
71 time_panel->SetBackgroundColour(0xEEEEEE);
72 m_time_panel = new ::StaticBox(time_panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
82 b->SetBackgroundColor(StateColor());
83 b->SetTextColor(StateColor(
87 ));
88 }
89
90 wxBoxSizer *time_sizer = new wxBoxSizer(wxHORIZONTAL);
91 time_sizer->Add(
m_button_year, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 24);
93 time_sizer->Add(
m_button_all, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 24);
95 wxBoxSizer *time_sizer2 = new wxBoxSizer(wxHORIZONTAL);
97 time_panel->SetSizer(time_sizer2);
98 top_sizer->Add(time_panel, 1, wxEXPAND);
99
100
101 StateColor background(
105 m_type_panel = new ::StaticBox(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
116 b->SetBackgroundColor(background);
117 b->SetCanFocus(false);
118 }
119
120 wxBoxSizer *type_sizer = new wxBoxSizer(wxHORIZONTAL);
121 type_sizer->Add(
m_button_timelapse, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 24);
122
124 type_sizer->Add(
m_button_model, 0, wxALIGN_CENTER_VERTICAL | wxRIGHT, 24);
126 top_sizer->Add(
m_type_panel, 0, wxALIGN_CENTER_VERTICAL);
127
128
129 m_manage_panel = new ::StaticBox(
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE);
141 b->SetCornerRadius(12);
142 b->SetPaddingSize({10, 6});
143 b->SetCanFocus(false);
144 }
155
156 wxBoxSizer *manage_sizer = new wxBoxSizer(wxHORIZONTAL);
157 manage_sizer->AddStretchSpacer(1);
159 manage_sizer->Add(
m_button_delete, 0, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT, 24)->Show(
false);
164
165 sizer->Add(top_sizer, 0, wxEXPAND);
166
168 m_image_grid->Bind(EVT_ITEM_ACTION, [
this](wxCommandEvent &e) {
doAction(
size_t(e.GetExtraLong()), e.GetInt()); });
171
172 SetSizer(sizer);
173
174
175 auto time_button_clicked = [this](wxEvent &e) {
182 };
183 m_button_year->Bind(wxEVT_COMMAND_BUTTON_CLICKED, time_button_clicked);
184 m_button_month->Bind(wxEVT_COMMAND_BUTTON_CLICKED, time_button_clicked);
185 m_button_all->Bind(wxEVT_COMMAND_BUTTON_CLICKED, time_button_clicked);
187
188
189 auto type_button_clicked = [this](wxEvent &e) {
191 auto type = std::find(buttons, buttons + sizeof(buttons) / sizeof(buttons[0]), e.GetEventObject()) - buttons;
193 return;
200 };
202 m_button_video->Bind(wxEVT_COMMAND_BUTTON_CLICKED, type_button_clicked);
203 m_button_model->Bind(wxEVT_COMMAND_BUTTON_CLICKED, type_button_clicked);
205
206
208 e.Skip();
210 });
212 e.Skip();
214 fs->ListAllFiles();
215 });
219 });
223 });
224
225 auto onShowHide = [this](auto &e) {
226 e.Skip();
227 if (auto w = dynamic_cast<wxWindow *>(e.GetEventObject()); !w || w->IsBeingDeleted())
228 return;
229 CallAfter([this] {
231 if (fs) IsShownOnScreen() ? fs->Start() : fs->Stop();
232 });
233 };
234 Bind(wxEVT_SHOW, onShowHide);
235 parent->GetParent()->Bind(wxEVT_SHOW, onShowHide);
236
238}
#define _L(s)
Definition OBJ.cpp:34
static wxFont Head_14
Definition Label.hpp:45
static wxFont Body_12
Definition Label.hpp:55
@ F_MODEL
Definition PrinterFileSystem.h:94
@ G_MONTH
Definition PrinterFileSystem.h:100
@ G_YEAR
Definition PrinterFileSystem.h:101
@ G_NONE
Definition PrinterFileSystem.h:99
@ Hovered
Definition StateColor.hpp:20
@ Normal
Definition StateColor.hpp:16
@ Checked
Definition StateColor.hpp:18
int em_unit(wxWindow *win)
Definition wxExtensions.cpp:424