Wireshark 5.1.0
The Wireshark network protocol analyzer
Loading...
Searching...
No Matches
theme_lua_code_preview.h
Go to the documentation of this file.
1
9
10#ifndef THEME_LUA_CODE_PREVIEW_H
11#define THEME_LUA_CODE_PREVIEW_H
12
15
16#include <QColor>
17#include <QFont>
18#include <QHash>
19#include <QImage>
20#include <QList>
21#include <QWidget>
22
23#include <memory>
24
26class QAction;
27class QContextMenuEvent;
28class QMenu;
29class QMouseEvent;
30class QPaintEvent;
31class QTextDocument;
32
47class ThemeLuaCodePreview : public QWidget
48{
49 Q_OBJECT
50public:
51 explicit ThemeLuaCodePreview(QWidget *parent = nullptr);
52 ~ThemeLuaCodePreview();
53
61 void setPreviewColors(const QHash<ThemeManager::ThemeToken, QColor> &colors);
62
64 void setPreviewFont(const QFont &monospace);
65
71 ThemePreviewPicker &picker() { return picker_; }
72
73signals:
76
81 void pickMenuRequested(QMenu *menu, QAction *before,
82 const QList<ThemePreviewPick::Layer> &layers);
83
86
87protected:
88 void paintEvent(QPaintEvent *event) override;
89 void contextMenuEvent(QContextMenuEvent *event) override;
90 void mouseMoveEvent(QMouseEvent *event) override;
91 void mousePressEvent(QMouseEvent *event) override;
92 QSize minimumSizeHint() const override;
93
94private:
99 QColor c(ThemeManager::ThemeToken token, const QColor &fallback = QColor()) const;
100
102 QFont resolvedFont() const;
103
105 int gutterWidth(const QFont &font) const;
106
108 QImage renderPickImage();
109
111 int pickTextHeight() const;
112
113 QTextDocument *document_;
114 LuaSyntaxHighlighter *highlighter_;
115 QHash<ThemeManager::ThemeToken, QColor> colors_;
116 QFont preview_font_;
117 bool has_preview_font_ = false;
118
120 std::unique_ptr<ThemeLuaCodePreview> pick_probe_;
121
123 ThemePreviewPicker picker_;
124};
125
126#endif // THEME_LUA_CODE_PREVIEW_H
Syntax highlighter tuned for Lua keywords, strings, numbers, comments and Lua's long-bracket strings/...
Definition lua_syntax_highlighter.h:36
void setPreviewColors(const QHash< ThemeManager::ThemeToken, QColor > &colors)
Definition theme_lua_code_preview.cpp:116
ThemePreviewPicker & picker()
Definition theme_lua_code_preview.h:71
void pickMenuRequested(QMenu *menu, QAction *before, const QList< ThemePreviewPick::Layer > &layers)
void setPreviewFont(const QFont &monospace)
Definition theme_lua_code_preview.cpp:123
void layerPicked(const ThemePreviewPick::Layer &layer)
Definition theme_preview_pick.h:171
Definition theme_preview_pick.h:60