From 1fe6d5ec636aa1e459f4908537d3dd166c27cff3 Mon Sep 17 00:00:00 2001 From: Lukas Werling Date: Wed, 15 Apr 2020 21:58:50 +0200 Subject: Fix wxwidgets example on Linux/GTK+3 --- libmpv/wxwidgets/main.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/libmpv/wxwidgets/main.cpp b/libmpv/wxwidgets/main.cpp index 196ac78..e6d1256 100644 --- a/libmpv/wxwidgets/main.cpp +++ b/libmpv/wxwidgets/main.cpp @@ -1,4 +1,4 @@ -// Build with: g++ -o main main.cpp `wx-config --libs --cxxflags` -lmpv +// Build with: g++ -o main main.cpp `wx-config-gtk3 --libs --cxxflags` `pkg-config --cflags --libs gtk+-3.0` -lmpv #include "main.h" @@ -7,6 +7,12 @@ #include +#ifdef __WXGTK__ +#include +#include +#include +#endif + wxIMPLEMENT_APP(MpvApp); bool MpvApp::OnInit() @@ -34,7 +40,17 @@ MpvFrame::MpvFrame() auto panel = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxWANTS_CHARS); - MpvCreate(reinterpret_cast(panel->GetHandle())); + uint64_t wid; +#if defined(__WXMSW__) + wid = reinterpret_cast(panel->GetHandle()); +#elif defined(__WXGTK__) + GtkWidget *widget = panel->GetHandle(); + gtk_widget_realize(widget); + wid = GDK_WINDOW_XID(gtk_widget_get_parent_window(widget)); +#else + #error cannot determine wid +#endif + MpvCreate(wid); if (wxGetApp().argc == 2) { const std::string filepath(wxGetApp().argv[1].utf8_str().data()); -- cgit v1.2.3