vnote/src/vstyleparser.h

44 lines
1.2 KiB
C++

#ifndef VSTYLEPARSER_H
#define VSTYLEPARSER_H
#include <QPalette>
#include <QVector>
#include <QString>
#include <QHash>
#include "hgmarkdownhighlighter.h"
extern "C" {
#include <pmh_definitions.h>
#include <pmh_styleparser.h>
}
class QColor;
class QBrush;
class VStyleParser
{
public:
VStyleParser();
~VStyleParser();
void parseMarkdownStyle(const QString &styleStr);
QVector<HighlightingStyle> fetchMarkdownStyles(const QFont &baseFont) const;
// Fetch style sections: editor, editor-selection, editor-current-line.
// @styles: [rule] -> ([attr] -> value).
void fetchMarkdownEditorStyles(QPalette &palette, QFont &font,
QMap<QString, QMap<QString, QString>> &styles) const;
QHash<QString, QTextCharFormat> fetchCodeBlockStyles(const QFont &p_baseFont) const;
private:
QColor QColorFromPmhAttr(pmh_attr_argb_color *attr) const;
QBrush QBrushFromPmhAttr(pmh_attr_argb_color *attr) const;
QTextCharFormat QTextCharFormatFromAttrs(pmh_style_attribute *attrs,
const QFont &baseFont) const;
QString filterAvailableFontFamily(const QString &familyList) const;
pmh_style_collection *markdownStyles;
};
#endif // VSTYLEPARSER_H