diff options
author | Lukas Werling <lukas@lwrl.de> | 2020-04-15 21:58:50 +0200 |
---|---|---|
committer | wm4 <1387750+wm4@users.noreply.github.com> | 2020-04-15 23:49:50 +0200 |
commit | 1fe6d5ec636aa1e459f4908537d3dd166c27cff3 (patch) | |
tree | 178e3b7cfc3a62e41e015c2dc1f858202a15ebe3 | |
parent | 066746f8bd79cb3bbd61ade357c52947fd5df4b6 (diff) | |
download | mpv-examples-1fe6d5ec636aa1e459f4908537d3dd166c27cff3.tar.bz2 mpv-examples-1fe6d5ec636aa1e459f4908537d3dd166c27cff3.tar.xz |
Fix wxwidgets example on Linux/GTK+3
-rw-r--r-- | libmpv/wxwidgets/main.cpp | 20 |
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());
|