diff --git a/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp b/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp index da4c8c5be1..8a8c22708f 100644 --- a/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp +++ b/rpcs3/Emu/Cell/Modules/cellMsgDialog.cpp @@ -2,7 +2,7 @@ #include "Emu/Cell/PPUModule.h" #include "Emu/Cell/PPUThread.h" #include "Emu/Cell/lv2/sys_sync.h" -#include "Emu/RSX/Overlays/overlays.h" +#include "Emu/RSX/Overlays/overlay_message_dialog.h" #include "Input/pad_thread.h" diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index e45cc6cb83..5004223193 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -2,6 +2,7 @@ #include "GLGSRender.h" #include "GLCompute.h" #include "GLVertexProgram.h" +#include "../Overlays/overlay_shader_compile_notification.h" #include "../Overlays/Shaders/shader_loading_dialog_native.h" #include "../rsx_methods.h" #include "../Common/BufferUtils.h" diff --git a/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.cpp b/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.cpp index cf5c1f09d1..7318f23d6e 100644 --- a/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.cpp +++ b/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.cpp @@ -1,5 +1,6 @@ #include "stdafx.h" #include "shader_loading_dialog_native.h" +#include "../overlay_message_dialog.h" namespace rsx { diff --git a/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.h b/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.h index c9d25d226c..b6cb51ca74 100644 --- a/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.h +++ b/rpcs3/Emu/RSX/Overlays/Shaders/shader_loading_dialog_native.h @@ -5,6 +5,11 @@ namespace rsx { + namespace overlays + { + class message_dialog; + } + struct shader_loading_dialog_native : rsx::shader_loading_dialog { rsx::thread* owner = nullptr; diff --git a/rpcs3/Emu/RSX/Overlays/overlay_controls.h b/rpcs3/Emu/RSX/Overlays/overlay_controls.h index 8bbdfd3e9e..5948d35bff 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_controls.h +++ b/rpcs3/Emu/RSX/Overlays/overlay_controls.h @@ -4,7 +4,6 @@ #include "Utilities/File.h" #include "overlay_utils.h" #include "overlay_fonts.h" -#include "Emu/System.h" #include #include diff --git a/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.cpp b/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.cpp index 6582884152..040c5b8811 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.cpp @@ -1,7 +1,8 @@ #include "stdafx.h" -#include "overlays.h" +#include "overlay_message_dialog.h" #include "Emu/System.h" #include "Emu/system_config.h" +#include "Emu/Cell/ErrorCodes.h" namespace rsx { diff --git a/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.h b/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.h new file mode 100644 index 0000000000..fed0175269 --- /dev/null +++ b/rpcs3/Emu/RSX/Overlays/overlay_message_dialog.h @@ -0,0 +1,47 @@ +#pragma once + +#include "overlays.h" +#include "Emu/Cell/Modules/cellMsgDialog.h" + +namespace rsx +{ + namespace overlays + { + struct message_dialog : public user_interface + { + private: + label text_display; + image_button btn_ok; + image_button btn_cancel; + + overlay_element bottom_bar, background; + image_view background_poster; + progress_bar progress_1, progress_2; + u8 num_progress_bars = 0; + s32 taskbar_index = 0; + s32 taskbar_limit = 0; + + bool interactive = false; + bool ok_only = false; + bool cancel_only = false; + + std::unique_ptr background_image; + + public: + message_dialog(bool use_custom_background = false); + + compiled_resource get_compiled() override; + + void on_button_pressed(pad_button button_press) override; + + error_code show(bool is_blocking, const std::string& text, const MsgDialogType& type, std::function on_close); + + u32 progress_bar_count(); + void progress_bar_set_taskbar_index(s32 index); + error_code progress_bar_set_message(u32 index, const std::string& msg); + error_code progress_bar_increment(u32 index, f32 value); + error_code progress_bar_reset(u32 index); + error_code progress_bar_set_limit(u32 index, u32 limit); + }; + } +} diff --git a/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp index 3af644aeec..0fa93fce29 100644 --- a/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp +++ b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.cpp @@ -1,5 +1,5 @@ #include "stdafx.h" -#include "overlays.h" +#include "overlay_save_dialog.h" #include "Utilities/date_time.h" namespace rsx diff --git a/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.h b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.h new file mode 100644 index 0000000000..d0142ada03 --- /dev/null +++ b/rpcs3/Emu/RSX/Overlays/overlay_save_dialog.h @@ -0,0 +1,41 @@ +#pragma once + +#include "overlays.h" +#include "Emu/Cell/Modules/cellSaveData.h" + +namespace rsx +{ + namespace overlays + { + struct save_dialog : public user_interface + { + private: + struct save_dialog_entry : horizontal_layout + { + private: + std::unique_ptr icon_data; + + public: + save_dialog_entry(const std::string& text1, const std::string& text2, const std::string& text3, u8 resource_id, const std::vector& icon_buf); + }; + + std::unique_ptr m_dim_background; + std::unique_ptr m_list; + std::unique_ptr