summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLukas Werling <lukas@lwrl.de>2020-04-15 21:58:50 +0200
committerwm4 <1387750+wm4@users.noreply.github.com>2020-04-15 23:49:50 +0200
commit1fe6d5ec636aa1e459f4908537d3dd166c27cff3 (patch)
tree178e3b7cfc3a62e41e015c2dc1f858202a15ebe3
parent066746f8bd79cb3bbd61ade357c52947fd5df4b6 (diff)
downloadmpv-examples-1fe6d5ec636aa1e459f4908537d3dd166c27cff3.tar.bz2
mpv-examples-1fe6d5ec636aa1e459f4908537d3dd166c27cff3.tar.xz
Fix wxwidgets example on Linux/GTK+3
-rw-r--r--libmpv/wxwidgets/main.cpp20
1 files 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 <wx/display.h>
+#ifdef __WXGTK__
+#include <gdk/gdk.h>
+#include <gdk/gdkx.h>
+#include <gtk/gtk.h>
+#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<int64_t>(panel->GetHandle()));
+ uint64_t wid;
+#if defined(__WXMSW__)
+ wid = reinterpret_cast<int64_t>(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());