aboutsummaryrefslogtreecommitdiff
path: root/src/widgets/EdgeDecoration.hpp
blob: 2af567c1a733e48f579130818c304c6bb01e390b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once

#include <QWidget>
#include <QtCore>
#include <cstdint>
#include <optional>
#include <qwebengineprofile.h>
#include <qwebengineview.h>

#include "WebViewData.hpp"
#include "utils.hpp"
#include "widgets/WebView.hpp"

class EdgeDecoration : public QWidget {
  Q_OBJECT

public:
  EdgeDecoration(bool vertical, QWebEngineProfile *profile, QWidget *parent = nullptr);

  void set_size(uint16_t size_value);
  void set_html(const QString &content);
  void set_enabled(bool enabled_value);
  void set_url(const QUrl &url);
  std::optional<WebViewId> get_view_id();
  void expose_rpc_function(const QString &name, const RpcFunc &action);

  DEFINE_GETTER(is_enabled, enabled)

private:
  bool vertical;
  std::optional<WebView *> webview = std::nullopt;
  QWebEngineProfile *profile;
  bool enabled = false;
  QString html_content = "";
  uint16_t size = 24;

  void setup_webview();
};