mirror of
https://github.com/velopack/velopack.git
synced 2025-10-25 15:19:22 +00:00
@@ -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]()
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user