Path: blob/master/src/updater/win32_progress_callback.h
4243 views
// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <[email protected]>1// SPDX-License-Identifier: CC-BY-NC-ND-4.023#pragma once4#include "common/progress_callback.h"5#include "common/windows_headers.h"67class Win32ProgressCallback final : public ProgressCallback8{9public:10Win32ProgressCallback();1112void PushState() override;13void PopState() override;1415void SetCancellable(bool cancellable) override;16void SetTitle(const std::string_view title) override;17void SetStatusText(const std::string_view text) override;18void SetProgressRange(u32 range) override;19void SetProgressValue(u32 value) override;2021void DisplayError(const std::string_view message) override;22void DisplayWarning(const std::string_view message) override;23void DisplayInformation(const std::string_view message) override;24void DisplayDebugMessage(const std::string_view message) override;2526void ModalError(const std::string_view message) override;27bool ModalConfirmation(const std::string_view message) override;28void ModalInformation(const std::string_view message) override;2930private:31enum : int32{33WINDOW_WIDTH = 600,34WINDOW_HEIGHT = 300,35WINDOW_MARGIN = 10,36SUBWINDOW_WIDTH = WINDOW_WIDTH - 20 - WINDOW_MARGIN - WINDOW_MARGIN,37};3839bool Create();40void Destroy();41void Redraw(bool force);42void PumpMessages();4344static LRESULT CALLBACK WndProcThunk(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);45LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam);4647HWND m_window_hwnd{};48HWND m_text_hwnd{};49HWND m_progress_hwnd{};50HWND m_list_box_hwnd{};5152int m_last_progress_percent = -1;53};545556