TTKMusicPlayer  4.1.3.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
miniblink.cpp
Go to the documentation of this file.
1 #include "miniblink.h"
2 #include "wke.h"
3 
4 #include <QFile>
5 #include <QApplication>
6 
7 static void onLoadingFinish(wkeWebView, void *param, const wkeString, wkeLoadingResult result, const wkeString)
8 {
9  //0 = WKE_LOADING_SUCCEEDED
10  //1 = WKE_LOADING_FAILED
11  //2 = WKE_LOADING_CANCELED
12  ((Miniblink *)param)->finish(result == WKE_LOADING_SUCCEEDED);
13 }
14 
15 int Miniblink::m_ref = 0;
16 
17 Miniblink::Miniblink(QWidget *parent)
18  : QWidget(parent)
19 {
20  m_webView = wkeCreateWebWindow(WKE_WINDOW_TYPE_CONTROL, (HWND)winId(), 0, 0, width(), height());
21  wkeOnLoadingFinish(m_webView, onLoadingFinish, this);
22  wkeShowWindow(m_webView, TRUE);
23 }
24 
26 {
27  wkeDestroyWebWindow(m_webView);
28  //
29  if(--m_ref == 0)
30  {
31  wkeFinalize();
32  }
33 }
34 
36 {
37  static bool loaded = false;
38  if(!loaded)
39  {
40  const QString &dll = QCoreApplication::applicationDirPath() + "/GPlugins/node.dll";
41  if(QFile(dll).exists())
42  {
43  wkeSetWkeDllPath(reinterpret_cast<const wchar_t *>(dll.utf16()));
44  wkeInitialize();
45  loaded = true;
46  }
47  }
48 
49  if(loaded)
50  {
51  ++m_ref;
52  }
53  return loaded;
54 }
55 
56 void Miniblink::load(const QString& url)
57 {
58  wkeLoadURL(m_webView, url.toUtf8().constData());
59 }
60 
61 void Miniblink::setHtml(const QString& html)
62 {
63  wkeLoadFile(m_webView, html.toUtf8().constData());
64 }
65 
66 void Miniblink::setUrl(const QString &url)
67 {
68  wkeLoadURL(m_webView, url.toUtf8().constData());
69 }
70 
71 QString Miniblink::url() const
72 {
73  return wkeGetURL(m_webView);
74 }
75 
76 void Miniblink::finish(bool ok)
77 {
78  Q_EMIT loadFinished(ok);
79 }
80 
82 {
83  wkeStopLoading(m_webView);
84 }
85 
87 {
88  if(wkeCanGoBack(m_webView))
89  {
90  wkeGoBack(m_webView);
91  }
92 }
93 
95 {
96  if(wkeCanGoForward(m_webView))
97  {
98  wkeGoForward(m_webView);
99  }
100 }
101 
103 {
104  wkeReload(m_webView);
105 }
106 
107 void Miniblink::resizeEvent(QResizeEvent *event)
108 {
109  Q_UNUSED(event);
110  wkeResize(m_webView, width(), height());
111 }
wkeLoadingResult
Definition: wke.h:395
struct _tagWkeWebView * wkeWebView
Definition: wke.h:82
void wkeSetWkeDllPath(const wchar_t *dllPath)
Definition: wke.h:1057
struct _tagWkeString * wkeString
Definition: wke.h:85
void wkeInitialize()
Definition: wke.h:1081