2025-01-08 21:14:55 -03:00
|
|
|
#ifndef RECOMPUI_ELEMENT_MOD_DETAILS_PANEL_H
|
|
|
|
#define RECOMPUI_ELEMENT_MOD_DETAILS_PANEL_H
|
|
|
|
|
|
|
|
#include "librecomp/mods.hpp"
|
2025-01-12 01:02:21 -03:00
|
|
|
#include "elements/ui_button.h"
|
|
|
|
#include "elements/ui_container.h"
|
|
|
|
#include "elements/ui_image.h"
|
|
|
|
#include "elements/ui_label.h"
|
|
|
|
#include "elements/ui_toggle.h"
|
2025-01-08 21:14:55 -03:00
|
|
|
|
|
|
|
namespace recompui {
|
|
|
|
|
|
|
|
class ModDetailsPanel : public Element {
|
|
|
|
public:
|
2025-01-16 21:02:13 -03:00
|
|
|
ModDetailsPanel(Element *parent);
|
|
|
|
virtual ~ModDetailsPanel();
|
2025-01-28 22:34:03 -03:00
|
|
|
void set_mod_details(const recomp::mods::ModDetails& details, const std::string &thumbnail, bool mod_enabled, bool toggle_enabled);
|
2025-01-16 21:02:13 -03:00
|
|
|
void set_mod_toggled_callback(std::function<void(bool)> callback);
|
2025-01-18 13:02:19 -03:00
|
|
|
void set_mod_configure_pressed_callback(std::function<void()> callback);
|
2025-01-08 21:14:55 -03:00
|
|
|
private:
|
2025-01-16 21:02:13 -03:00
|
|
|
recomp::mods::ModDetails cur_details;
|
|
|
|
Container *thumbnail_container = nullptr;
|
|
|
|
Image *thumbnail_image = nullptr;
|
|
|
|
Container *header_container = nullptr;
|
|
|
|
Container *header_details_container = nullptr;
|
|
|
|
Label *title_label = nullptr;
|
|
|
|
Label *version_label = nullptr;
|
|
|
|
Container *body_container = nullptr;
|
|
|
|
Label *description_label = nullptr;
|
|
|
|
Label *authors_label = nullptr;
|
2025-01-16 22:34:47 -03:00
|
|
|
Element *spacer_element = nullptr;
|
2025-01-16 21:02:13 -03:00
|
|
|
Container *buttons_container = nullptr;
|
|
|
|
Toggle *enable_toggle = nullptr;
|
|
|
|
Button *configure_button = nullptr;
|
|
|
|
Button *erase_button = nullptr;
|
2025-01-18 13:02:19 -03:00
|
|
|
std::function<void(bool)> mod_toggled_callback = nullptr;
|
|
|
|
std::function<void()> mod_configure_pressed_callback = nullptr;
|
2025-01-16 21:02:13 -03:00
|
|
|
|
|
|
|
void enable_toggle_checked(bool checked);
|
2025-01-18 13:02:19 -03:00
|
|
|
void configure_button_pressed();
|
2025-01-08 21:14:55 -03:00
|
|
|
};
|
|
|
|
|
|
|
|
} // namespace recompui
|
|
|
|
#endif
|