dolphin/Source/Core/DolphinQt/Achievements/AchievementsWindow.h
JosJuice de98c3b96f AchievementManager: Use HookableEvent instead of std::function callbacks
The callback mechanism AchievementManager had until now only supported
one caller registering a callback, and it didn't have any
synchronization. This isn't a problem for DolphinQt, but the PR to add
Android support for RetroAchievements exposes these problems. Let's
replace it with HookableEvent, which can handle all of this.
2025-08-24 14:47:13 +02:00

43 lines
1 KiB
C++

// Copyright 2023 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#ifdef USE_RETRO_ACHIEVEMENTS
#include <QDialog>
#include "Common/HookableEvent.h"
#include "Core/AchievementManager.h"
class AchievementHeaderWidget;
class AchievementLeaderboardWidget;
class AchievementSettingsWidget;
class AchievementProgressWidget;
class QDialogButtonBox;
class QTabWidget;
class UpdateCallback;
class AchievementsWindow : public QDialog
{
Q_OBJECT
public:
explicit AchievementsWindow(QWidget* parent);
void UpdateData(AchievementManager::UpdatedItems updated_items);
void ForceSettingsTab();
private:
void CreateMainLayout();
void showEvent(QShowEvent* event) override;
void ConnectWidgets();
AchievementHeaderWidget* m_header_widget;
QTabWidget* m_tab_widget;
AchievementSettingsWidget* m_settings_widget;
AchievementProgressWidget* m_progress_widget;
AchievementLeaderboardWidget* m_leaderboard_widget;
QDialogButtonBox* m_button_box;
Common::EventHook m_event_hook;
};
#endif // USE_RETRO_ACHIEVEMENTS