aboutsummaryrefslogtreecommitdiff
path: root/src/widgets/EdgeDecoration.hpp
blob: 0a977df250563f49f78e2d9ed0aabf3ba06fb099 (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
#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();

  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();
};