Revert "Remove callbacks from samples"

This reverts commit e715a7e67f.
This commit is contained in:
Caelan Sayler
2025-03-12 22:54:02 +00:00
committed by Caelan
parent 088a43bf9e
commit 267a09f456
3 changed files with 31 additions and 1 deletions

View File

@@ -51,8 +51,14 @@ public:
class MyFrame : public wxFrame
{
public:
~MyFrame()
{
vpkc_set_logger(nullptr, nullptr);
}
MyFrame() : wxFrame(nullptr, wxID_ANY, "VelopackCppWidgetsSample", wxDefaultPosition, wxSize(600, 600))
{
vpkc_set_logger(&MyFrame::HandleVpkcLogStatic, this);
// Set background color to white
// SetBackgroundColour(*wxWHITE);
@@ -180,6 +186,23 @@ private:
}
void HandleVpkcLog(const char* pszLevel, const char* pszMessage)
{
std::string level(pszLevel);
std::string message(pszMessage);
wxTheApp->CallAfter([this, level, message]() {
if (textArea) { // Ensure textArea is valid.
textArea->AppendText(level + ": " + message + "\n");
}
});
}
static void HandleVpkcLogStatic(void* context, const char* pszLevel, const char* pszMessage)
{
MyFrame* instance = static_cast<MyFrame*>(context);
instance->HandleVpkcLog(pszLevel, pszMessage);
}
void HandleProgressCallback(size_t progress)
{
wxTheApp->CallAfter([this, progress]()

View File

@@ -38,6 +38,11 @@ INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
std::wstring Utf8ToWString(std::string const& str);
std::string WStringToUtf8(std::wstring const& wstr);
void handle_vpkc_log(void* pUserData, const char* pszLevel, const char* pszMessage)
{
std::cout << pszLevel << ": " << pszMessage << std::endl;
}
int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPWSTR lpCmdLine,
@@ -52,6 +57,7 @@ int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
// Initialize Velopack log capture
std::cout << "Velopack C++ Sample App" << std::endl;
vpkc_set_logger(handle_vpkc_log, 0);
// This should run as early as possible in the main method.
// Velopack may exit / restart the app at this point.

View File

@@ -1,5 +1,5 @@
import { app, BrowserWindow } from 'electron';
import { VelopackApp } from "velopack";
import { VelopackApp, setVelopackLogger } from "velopack";
import { initializeUpdates } from "./update"
// This allows TypeScript to pick up the magic constants that's auto-generated by Forge's Webpack
// plugin that tells the Electron app where to look for the Webpack-bundled app code (depending on
@@ -9,6 +9,7 @@ declare const MAIN_WINDOW_PRELOAD_WEBPACK_ENTRY: string;
// VelopackApp should be the first thing to run in startup
// as it may need to quit / restart the application at certain points
setVelopackLogger((lvl, msg) => console.log(`Velopack [${lvl}] ${msg}`));
VelopackApp.build().run();
// Configure IPC listener for Velopack update messages