aboutsummaryrefslogtreecommitdiffhomepage
path: root/qt/ScintillaEditBase/PlatQt.cpp
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2021-05-24 19:31:06 +1000
committerNeil <nyamatongwe@gmail.com>2021-05-24 19:31:06 +1000
commit92290868cf9753d2df0d494cb44e2ff62a570b58 (patch)
tree001e6cfce84372a03997de3138d630751ee8d38a /qt/ScintillaEditBase/PlatQt.cpp
parentee1886079d0a5cd350ee8e3379be347943ba93ae (diff)
downloadscintilla-mirror-92290868cf9753d2df0d494cb44e2ff62a570b58.tar.gz
Define C++ version of the Scintilla API in ScintillaTypes.h, ScintillaMessages.h
and ScintillaStructures.h using scoped enumerations. Use these headers instead of Scintilla.h internally. External definitions go in the Scintilla namespace and internal definitio0ns in Scintilla::Internal.
Diffstat (limited to 'qt/ScintillaEditBase/PlatQt.cpp')
-rw-r--r--qt/ScintillaEditBase/PlatQt.cpp77
1 files changed, 39 insertions, 38 deletions
diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp
index d5475f4bd..2d49dcb5c 100644
--- a/qt/ScintillaEditBase/PlatQt.cpp
+++ b/qt/ScintillaEditBase/PlatQt.cpp
@@ -14,7 +14,6 @@
#include "Scintilla.h"
#include "UniConversion.h"
#include "DBCS.h"
-#include "FontQuality.h"
#include <QApplication>
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
@@ -42,55 +41,57 @@
#include <QTextLine>
#include <QLibrary>
-namespace Scintilla {
+using namespace Scintilla;
+
+namespace Scintilla::Internal {
//----------------------------------------------------------------------
// Convert from a Scintilla characterSet value to a Qt codec name.
-const char *CharacterSetID(int characterSet)
+const char *CharacterSetID(CharacterSet characterSet)
{
switch (characterSet) {
- //case SC_CHARSET_ANSI:
+ //case CharacterSet::Ansi:
// return "";
- case SC_CHARSET_DEFAULT:
+ case CharacterSet::Default:
return "ISO 8859-1";
- case SC_CHARSET_BALTIC:
+ case CharacterSet::Baltic:
return "ISO 8859-13";
- case SC_CHARSET_CHINESEBIG5:
+ case CharacterSet::ChineseBig5:
return "Big5";
- case SC_CHARSET_EASTEUROPE:
+ case CharacterSet::EastEurope:
return "ISO 8859-2";
- case SC_CHARSET_GB2312:
+ case CharacterSet::GB2312:
return "GB18030-0";
- case SC_CHARSET_GREEK:
+ case CharacterSet::Greek:
return "ISO 8859-7";
- case SC_CHARSET_HANGUL:
+ case CharacterSet::Hangul:
return "CP949";
- case SC_CHARSET_MAC:
+ case CharacterSet::Mac:
return "Apple Roman";
//case SC_CHARSET_OEM:
// return "ASCII";
- case SC_CHARSET_RUSSIAN:
+ case CharacterSet::Russian:
return "KOI8-R";
- case SC_CHARSET_CYRILLIC:
+ case CharacterSet::Cyrillic:
return "Windows-1251";
- case SC_CHARSET_SHIFTJIS:
+ case CharacterSet::ShiftJis:
return "Shift-JIS";
//case SC_CHARSET_SYMBOL:
// return "";
- case SC_CHARSET_TURKISH:
+ case CharacterSet::Turkish:
return "ISO 8859-9";
//case SC_CHARSET_JOHAB:
// return "CP1361";
- case SC_CHARSET_HEBREW:
+ case CharacterSet::Hebrew:
return "ISO 8859-8";
- case SC_CHARSET_ARABIC:
+ case CharacterSet::Arabic:
return "ISO 8859-6";
- case SC_CHARSET_VIETNAMESE:
+ case CharacterSet::Vietnamese:
return "Windows-1258";
- case SC_CHARSET_THAI:
+ case CharacterSet::Thai:
return "TIS-620";
- case SC_CHARSET_8859_15:
+ case CharacterSet::Iso8859_15:
return "ISO 8859-15";
default:
return "ISO 8859-1";
@@ -101,27 +102,27 @@ QString UnicodeFromText(QTextCodec *codec, std::string_view text) {
return codec->toUnicode(text.data(), static_cast<int>(text.length()));
}
-static QFont::StyleStrategy ChooseStrategy(int eff)
+static QFont::StyleStrategy ChooseStrategy(FontQuality eff)
{
switch (eff) {
- case SC_EFF_QUALITY_DEFAULT: return QFont::PreferDefault;
- case SC_EFF_QUALITY_NON_ANTIALIASED: return QFont::NoAntialias;
- case SC_EFF_QUALITY_ANTIALIASED: return QFont::PreferAntialias;
- case SC_EFF_QUALITY_LCD_OPTIMIZED: return QFont::PreferAntialias;
+ case FontQuality::QualityDefault: return QFont::PreferDefault;
+ case FontQuality::QualityNonAntialiased: return QFont::NoAntialias;
+ case FontQuality::QualityAntialiased: return QFont::PreferAntialias;
+ case FontQuality::QualityLcdOptimized: return QFont::PreferAntialias;
default: return QFont::PreferDefault;
}
}
class FontAndCharacterSet : public Font {
public:
- int characterSet = 0;
+ CharacterSet characterSet = CharacterSet::Ansi;
QFont *pfont = nullptr;
FontAndCharacterSet(const FontParameters &fp) {
pfont = new QFont;
pfont->setStyleStrategy(ChooseStrategy(fp.extraFontFlag));
pfont->setFamily(QString::fromUtf8(fp.faceName));
pfont->setPointSizeF(fp.size);
- pfont->setBold(fp.weight > 500);
+ pfont->setBold(static_cast<int>(fp.weight) > 500);
pfont->setItalic(fp.italic);
characterSet = fp.characterSet;
@@ -134,11 +135,11 @@ public:
namespace {
-const int SupportsQt[] = {
- SC_SUPPORTS_LINE_DRAWS_FINAL,
- SC_SUPPORTS_FRACTIONAL_STROKE_WIDTH,
- SC_SUPPORTS_TRANSLUCENT_STROKE,
- SC_SUPPORTS_PIXEL_MODIFICATION,
+const Supports SupportsQt[] = {
+ Supports::LineDrawsFinal,
+ Supports::FractionalStrokeWidth,
+ Supports::TranslucentStroke,
+ Supports::PixelModification,
};
const FontAndCharacterSet *AsFontAndCharacterSet(const Font *f) {
@@ -216,9 +217,9 @@ void SurfaceImpl::Release() noexcept
Clear();
}
-int SurfaceImpl::Supports(int feature) noexcept
+int SurfaceImpl::SupportsFeature(Supports feature) noexcept
{
- for (const int f : SupportsQt) {
+ for (const Supports f : SupportsQt) {
if (f == feature)
return 1;
}
@@ -781,7 +782,7 @@ QPainter *SurfaceImpl::GetPainter()
return painter;
}
-std::unique_ptr<Surface> Surface::Allocate(int)
+std::unique_ptr<Surface> Surface::Allocate(Technology)
{
return std::make_unique<SurfaceImpl>();
}
@@ -942,7 +943,7 @@ public:
void SetFont(const Font *font) override;
void Create(Window &parent, int ctrlID, Point location,
- int lineHeight, bool unicodeMode_, int technology) override;
+ int lineHeight, bool unicodeMode_, Technology technology) override;
void SetAverageCharWidth(int width) override;
void SetVisibleRows(int rows) override;
int GetVisibleRows() const override;
@@ -979,7 +980,7 @@ void ListBoxImpl::Create(Window &parent,
Point location,
int /*lineHeight*/,
bool unicodeMode_,
- int)
+ Technology)
{
unicodeMode = unicodeMode_;