diff options
author | Neil <nyamatongwe@gmail.com> | 2021-05-24 19:31:06 +1000 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-05-24 19:31:06 +1000 |
commit | 92290868cf9753d2df0d494cb44e2ff62a570b58 (patch) | |
tree | 001e6cfce84372a03997de3138d630751ee8d38a /qt | |
parent | ee1886079d0a5cd350ee8e3379be347943ba93ae (diff) | |
download | scintilla-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')
-rw-r--r-- | qt/ScintillaEdit/ScintillaDocument.cpp | 20 | ||||
-rw-r--r-- | qt/ScintillaEdit/ScintillaDocument.h | 2 | ||||
-rw-r--r-- | qt/ScintillaEditBase/PlatQt.cpp | 77 | ||||
-rw-r--r-- | qt/ScintillaEditBase/PlatQt.h | 8 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.cpp | 29 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaEditBase.h | 9 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.cpp | 34 | ||||
-rw-r--r-- | qt/ScintillaEditBase/ScintillaQt.h | 17 |
8 files changed, 105 insertions, 91 deletions
diff --git a/qt/ScintillaEdit/ScintillaDocument.cpp b/qt/ScintillaEdit/ScintillaDocument.cpp index 2272c383c..8d50eabdb 100644 --- a/qt/ScintillaEdit/ScintillaDocument.cpp +++ b/qt/ScintillaEdit/ScintillaDocument.cpp @@ -10,6 +10,9 @@ #include <optional> #include <memory> +#include "ScintillaTypes.h" +#include "ScintillaMessages.h" +#include "ScintillaStructures.h" #include "ScintillaDocument.h" #include "Debugging.h" @@ -39,6 +42,7 @@ #include "Document.h" using namespace Scintilla; +using namespace Scintilla::Internal; class WatcherHelper : public DocWatcher { ScintillaDocument *owner; @@ -52,7 +56,7 @@ public: void NotifyDeleted(Document *doc, void *userData) noexcept override; void NotifyStyleNeeded(Document *doc, void *userData, Sci::Position endPos) override; void NotifyLexerChanged(Document *doc, void *userData) override; - void NotifyErrorOccurred(Document *doc, void *userData, int status) override; + void NotifyErrorOccurred(Document *doc, void *userData, Status status) override; }; WatcherHelper::WatcherHelper(ScintillaDocument *owner_) : owner(owner_) { @@ -74,8 +78,8 @@ void WatcherHelper::NotifyModified(Document *, DocModification mh, void *) { if (!mh.text) length = 0; QByteArray ba = QByteArray::fromRawData(mh.text, length); - emit owner->modified(mh.position, mh.modificationType, ba, length, - mh.linesAdded, mh.line, mh.foldLevelNow, mh.foldLevelPrev); + emit owner->modified(mh.position, static_cast<int>(mh.modificationType), ba, length, + mh.linesAdded, mh.line, static_cast<int>(mh.foldLevelNow), static_cast<int>(mh.foldLevelPrev)); } void WatcherHelper::NotifyDeleted(Document *, void *) noexcept { @@ -89,14 +93,14 @@ void WatcherHelper::NotifyLexerChanged(Document *, void *) { emit owner->lexer_changed(); } -void WatcherHelper::NotifyErrorOccurred(Document *, void *, int status) { - emit owner->error_occurred(status); +void WatcherHelper::NotifyErrorOccurred(Document *, void *, Status status) { + emit owner->error_occurred(static_cast<int>(status)); } ScintillaDocument::ScintillaDocument(QObject *parent, void *pdoc_) : QObject(parent), pdoc(pdoc_), docWatcher(nullptr) { if (!pdoc) { - pdoc = new Document(SC_DOCUMENTOPTION_DEFAULT); + pdoc = new Document(DocumentOption::Default); } docWatcher = new WatcherHelper(this); (static_cast<Document *>(pdoc))->AddRef(); @@ -266,11 +270,11 @@ void ScintillaDocument::set_code_page(int code_page) { } int ScintillaDocument::get_eol_mode() { - return (static_cast<Document *>(pdoc))->eolMode; + return static_cast<int>((static_cast<Document *>(pdoc))->eolMode); } void ScintillaDocument::set_eol_mode(int eol_mode) { - (static_cast<Document *>(pdoc))->eolMode = eol_mode; + (static_cast<Document *>(pdoc))->eolMode = static_cast<EndOfLine>(eol_mode); } int ScintillaDocument::move_position_outside_char(int pos, int move_dir, bool check_line_end) { diff --git a/qt/ScintillaEdit/ScintillaDocument.h b/qt/ScintillaEdit/ScintillaDocument.h index c10d50d42..9a28689b6 100644 --- a/qt/ScintillaEdit/ScintillaDocument.h +++ b/qt/ScintillaEdit/ScintillaDocument.h @@ -80,7 +80,7 @@ signals: void modify_attempt(); void save_point(bool atSavePoint); void modified(int position, int modification_type, const QByteArray &text, int length, - int linesAdded, int line, int foldLevelNow, int foldLevelPrev); + int linesAdded, int line, int foldLevelNow, int foldLevelPrev); void style_needed(int pos); void lexer_changed(); void error_occurred(int status); 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_; diff --git a/qt/ScintillaEditBase/PlatQt.h b/qt/ScintillaEditBase/PlatQt.h index 446e07ebb..02f3b0f7a 100644 --- a/qt/ScintillaEditBase/PlatQt.h +++ b/qt/ScintillaEditBase/PlatQt.h @@ -20,6 +20,8 @@ #include "Debugging.h" #include "Geometry.h" +#include "ScintillaTypes.h" +#include "ScintillaMessages.h" #include "Platform.h" #include <QUrl> @@ -27,9 +29,9 @@ #include <QPainter> #include <QHash> -namespace Scintilla { +namespace Scintilla::Internal { -const char *CharacterSetID(int characterSet); +const char *CharacterSetID(Scintilla::CharacterSet characterSet); inline QColor QColorFromColourRGBA(ColourRGBA ca) { @@ -89,7 +91,7 @@ public: void SetMode(SurfaceMode mode) override; void Release() noexcept override; - int Supports(int feature) noexcept override; + int SupportsFeature(Scintilla::Supports feature) noexcept override; bool Initialised() override; void PenColour(ColourRGBA fore); void PenColourWidth(ColourRGBA fore, XYPOSITION strokeWidth); diff --git a/qt/ScintillaEditBase/ScintillaEditBase.cpp b/qt/ScintillaEditBase/ScintillaEditBase.cpp index c94cd13f7..393910ba2 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.cpp +++ b/qt/ScintillaEditBase/ScintillaEditBase.cpp @@ -40,6 +40,7 @@ #endif // QT_VERSION >= 5.0.0 using namespace Scintilla; +using namespace Scintilla::Internal; ScintillaEditBase::ScintillaEditBase(QWidget *parent) : QAbstractScrollArea(parent), sqt(nullptr), preeditPos(-1), wheelDelta(0) @@ -59,10 +60,10 @@ ScintillaEditBase::ScintillaEditBase(QWidget *parent) setAttribute(Qt::WA_KeyCompression); setAttribute(Qt::WA_InputMethodEnabled); - sqt->vs.indicators[SC_INDICATOR_UNKNOWN] = Indicator(INDIC_HIDDEN, ColourRGBA(0, 0, 0xff)); - sqt->vs.indicators[SC_INDICATOR_INPUT] = Indicator(INDIC_DOTS, ColourRGBA(0, 0, 0xff)); - sqt->vs.indicators[SC_INDICATOR_CONVERTED] = Indicator(INDIC_COMPOSITIONTHICK, ColourRGBA(0, 0, 0xff)); - sqt->vs.indicators[SC_INDICATOR_TARGET] = Indicator(INDIC_STRAIGHTBOX, ColourRGBA(0, 0, 0xff)); + sqt->vs.indicators[SC_INDICATOR_UNKNOWN] = Indicator(IndicatorStyle::Hidden, ColourRGBA(0, 0, 0xff)); + sqt->vs.indicators[SC_INDICATOR_INPUT] = Indicator(IndicatorStyle::Dots, ColourRGBA(0, 0, 0xff)); + sqt->vs.indicators[SC_INDICATOR_CONVERTED] = Indicator(IndicatorStyle::CompositionThick, ColourRGBA(0, 0, 0xff)); + sqt->vs.indicators[SC_INDICATOR_TARGET] = Indicator(IndicatorStyle::StraightBox, ColourRGBA(0, 0, 0xff)); connect(sqt, SIGNAL(notifyParent(SCNotification)), this, SLOT(notifyParent(SCNotification))); @@ -100,7 +101,7 @@ sptr_t ScintillaEditBase::send( uptr_t wParam, sptr_t lParam) const { - return sqt->WndProc(iMessage, wParam, lParam); + return sqt->WndProc(static_cast<Message>(iMessage), wParam, lParam); } sptr_t ScintillaEditBase::sends( @@ -108,7 +109,7 @@ sptr_t ScintillaEditBase::sends( uptr_t wParam, const char *s) const { - return sqt->WndProc(iMessage, wParam, (sptr_t)s); + return sqt->WndProc(static_cast<Message>(iMessage), wParam, (sptr_t)s); } void ScintillaEditBase::scrollHorizontal(int value) @@ -179,9 +180,9 @@ void ScintillaEditBase::wheelEvent(QWheelEvent *event) // Zoom! We play with the font sizes in the styles. // Number of steps/line is ignored, we just care if sizing up or down if (wheelEventYDelta(event) > 0) { - sqt->KeyCommand(SCI_ZOOMIN); + sqt->KeyCommand(Message::ZoomIn); } else { - sqt->KeyCommand(SCI_ZOOMOUT); + sqt->KeyCommand(Message::ZoomOut); } } else { // Ignore wheel events when the scroll bars are disabled. @@ -257,7 +258,7 @@ void ScintillaEditBase::keyPressEvent(QKeyEvent *event) bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; bool consumed = false; - bool added = sqt->KeyDownWithModifiers(key, + bool added = sqt->KeyDownWithModifiers(static_cast<Keys>(key), ScintillaQt::ModifierFlags(shift, ctrl, alt), &consumed) != 0; if (!consumed) @@ -278,7 +279,7 @@ void ScintillaEditBase::keyPressEvent(QKeyEvent *event) QString text = event->text(); if (input && !text.isEmpty() && text[0].isPrint()) { QByteArray utext = sqt->BytesForDocument(text); - sqt->InsertCharacter(std::string_view(utext.data(), utext.size()), EditModel::CharacterSource::directInput); + sqt->InsertCharacter(std::string_view(utext.data(), utext.size()), CharacterSource::DirectInput); } else { event->ignore(); } @@ -374,7 +375,7 @@ void ScintillaEditBase::mouseMoveEvent(QMouseEvent *event) bool alt = QApplication::keyboardModifiers() & Qt::AltModifier; #endif - const int modifiers = ScintillaQt::ModifierFlags(shift, ctrl, alt); + const KeyMod modifiers = ScintillaQt::ModifierFlags(shift, ctrl, alt); sqt->ButtonMoveWithModifiers(pos, time.elapsed(), modifiers); } @@ -568,7 +569,7 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event) const QString oneCharUTF16 = commitStr.mid(i, ucWidth); const QByteArray oneChar = sqt->BytesForDocument(oneCharUTF16); - sqt->InsertCharacter(std::string_view(oneChar.data(), oneChar.length()), EditModel::CharacterSource::directInput); + sqt->InsertCharacter(std::string_view(oneChar.data(), oneChar.length()), CharacterSource::DirectInput); i += ucWidth; } @@ -592,7 +593,7 @@ void ScintillaEditBase::inputMethodEvent(QInputMethodEvent *event) const QByteArray oneChar = sqt->BytesForDocument(oneCharUTF16); const int oneCharLen = oneChar.length(); - sqt->InsertCharacter(std::string_view(oneChar.data(), oneCharLen), EditModel::CharacterSource::tentativeInput); + sqt->InsertCharacter(std::string_view(oneChar.data(), oneCharLen), CharacterSource::TentativeInput); DrawImeIndicator(imeIndicator[i], oneCharLen); i += ucWidth; @@ -832,7 +833,7 @@ void ScintillaEditBase::event_command(uptr_t wParam, sptr_t lParam) emit command(wParam, lParam); } -int ScintillaEditBase::ModifiersOfKeyboard() const +KeyMod ScintillaEditBase::ModifiersOfKeyboard() const { const bool shift = QApplication::keyboardModifiers() & Qt::ShiftModifier; const bool ctrl = QApplication::keyboardModifiers() & Qt::ControlModifier; diff --git a/qt/ScintillaEditBase/ScintillaEditBase.h b/qt/ScintillaEditBase/ScintillaEditBase.h index a0375f13d..751b9d294 100644 --- a/qt/ScintillaEditBase/ScintillaEditBase.h +++ b/qt/ScintillaEditBase/ScintillaEditBase.h @@ -21,6 +21,9 @@ #include "Debugging.h" #include "Geometry.h" +#include "ScintillaTypes.h" +#include "ScintillaMessages.h" +#include "ScintillaStructures.h" #include "Platform.h" #include "Scintilla.h" @@ -28,7 +31,7 @@ #include <QMimeData> #include <QElapsedTimer> -namespace Scintilla { +namespace Scintilla::Internal { class ScintillaQt; class SurfaceImpl; @@ -146,7 +149,7 @@ protected: void scrollContentsBy(int, int) override {} private: - Scintilla::ScintillaQt *sqt; + Scintilla::Internal::ScintillaQt *sqt; QElapsedTimer time; @@ -158,7 +161,7 @@ private: static bool IsHangul(const QChar qchar); void MoveImeCarets(int offset); void DrawImeIndicator(int indicator, int len); - int ModifiersOfKeyboard() const; + Scintilla::KeyMod ModifiersOfKeyboard() const; }; #endif /* SCINTILLAEDITBASE_H */ diff --git a/qt/ScintillaEditBase/ScintillaQt.cpp b/qt/ScintillaEditBase/ScintillaQt.cpp index 710b7de9f..f90313554 100644 --- a/qt/ScintillaEditBase/ScintillaQt.cpp +++ b/qt/ScintillaEditBase/ScintillaQt.cpp @@ -23,7 +23,7 @@ #include <QTimer> using namespace Scintilla; - +using namespace Scintilla::Internal; ScintillaQt::ScintillaQt(QAbstractScrollArea *parent) : QObject(parent), scrollArea(parent), vMax(0), hMax(0), vPage(0), hPage(0), @@ -32,7 +32,7 @@ ScintillaQt::ScintillaQt(QAbstractScrollArea *parent) wMain = scrollArea->viewport(); - imeInteraction = IMEInteraction::internal; + imeInteraction = IMEInteraction::Inline; // On OS X drawing text into a pixmap moves it around 1 pixel to // the right compared to drawing it directly onto a window. @@ -385,7 +385,7 @@ void ScintillaQt::PasteFromMode(QClipboard::Mode clipboardMode_) selText.Copy(dest, pdoc->dbcsCodePage, CharacterSetOfDocument(), isRectangular, false); UndoGroup ug(pdoc); - ClearSelection(multiPasteMode == SC_MULTIPASTE_EACH); + ClearSelection(multiPasteMode == MultiPaste::Each); InsertPasteShape(selText.Data(), selText.Length(), isRectangular ? PasteShape::rectangular : (isLine ? PasteShape::line : PasteShape::stream)); EnsureCaretVisible(); @@ -432,7 +432,7 @@ void ScintillaQt::NotifyFocus(bool focus) Editor::NotifyFocus(focus); } -void ScintillaQt::NotifyParent(SCNotification scn) +void ScintillaQt::NotifyParent(NotificationData scn) { scn.nmhdr.hwndFrom = wMain.GetID(); scn.nmhdr.idFrom = GetCtrlID(); @@ -441,8 +441,8 @@ void ScintillaQt::NotifyParent(SCNotification scn) void ScintillaQt::NotifyURIDropped(const char *uri) { - SCNotification scn = {}; - scn.nmhdr.code = SCN_URIDROPPED; + NotificationData scn = {}; + scn.nmhdr.code = Notification::URIDropped; scn.text = uri; NotifyParent(scn); @@ -519,7 +519,7 @@ bool ScintillaQt::SetIdle(bool on) return ChangeIdle(on); } -int ScintillaQt::CharacterSetOfDocument() const +CharacterSet ScintillaQt::CharacterSetOfDocument() const { return vs.styles[STYLE_DEFAULT].characterSet; } @@ -689,7 +689,7 @@ public: void paintEvent(QPaintEvent *) override { if (pct->inCallTipMode) { - std::unique_ptr<Surface> surfaceWindow = Surface::Allocate(0); + std::unique_ptr<Surface> surfaceWindow = Surface::Allocate(Technology::Default); surfaceWindow->Init(this); surfaceWindow->SetMode(SurfaceMode(pct->codePage, false)); pct->PaintCT(surfaceWindow.get()); @@ -732,37 +732,37 @@ void ScintillaQt::AddToPopUp(const char *label, this, SLOT(execCommand(QAction *))); } -sptr_t ScintillaQt::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) +sptr_t ScintillaQt::WndProc(Message iMessage, uptr_t wParam, sptr_t lParam) { try { switch (iMessage) { - case SCI_SETIMEINTERACTION: + case Message::SetIMEInteraction: // Only inline IME supported on Qt break; - case SCI_GRABFOCUS: + case Message::GrabFocus: scrollArea->setFocus(Qt::OtherFocusReason); break; - case SCI_GETDIRECTFUNCTION: + case Message::GetDirectFunction: return reinterpret_cast<sptr_t>(DirectFunction); - case SCI_GETDIRECTPOINTER: + case Message::GetDirectPointer: return reinterpret_cast<sptr_t>(this); default: return ScintillaBase::WndProc(iMessage, wParam, lParam); } } catch (std::bad_alloc &) { - errorStatus = SC_STATUS_BADALLOC; + errorStatus = Status::BadAlloc; } catch (...) { - errorStatus = SC_STATUS_FAILURE; + errorStatus = Status::Failure; } return 0; } -sptr_t ScintillaQt::DefWndProc(unsigned int, uptr_t, sptr_t) +sptr_t ScintillaQt::DefWndProc(Message, uptr_t, sptr_t) { return 0; } @@ -770,7 +770,7 @@ sptr_t ScintillaQt::DefWndProc(unsigned int, uptr_t, sptr_t) sptr_t ScintillaQt::DirectFunction( sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam) { - return reinterpret_cast<ScintillaQt *>(ptr)->WndProc(iMessage, wParam, lParam); + return reinterpret_cast<ScintillaQt *>(ptr)->WndProc(static_cast<Message>(iMessage), wParam, lParam); } // Additions to merge in Scientific Toolworks widget structure diff --git a/qt/ScintillaEditBase/ScintillaQt.h b/qt/ScintillaEditBase/ScintillaQt.h index adbf11efd..053e59cc8 100644 --- a/qt/ScintillaEditBase/ScintillaQt.h +++ b/qt/ScintillaEditBase/ScintillaQt.h @@ -29,6 +29,9 @@ #include <algorithm> #include <memory> +#include "ScintillaTypes.h" +#include "ScintillaMessages.h" +#include "ScintillaStructures.h" #include "Scintilla.h" #include "Debugging.h" #include "Geometry.h" @@ -71,7 +74,7 @@ class ScintillaEditBase; -namespace Scintilla { +namespace Scintilla::Internal { class ScintillaQt : public QObject, public ScintillaBase { Q_OBJECT @@ -86,14 +89,14 @@ signals: void horizontalRangeChanged(int max, int page); void verticalRangeChanged(int max, int page); - void notifyParent(SCNotification scn); + void notifyParent(Scintilla::NotificationData scn); void notifyChange(); // Clients can use this hook to add additional // formats (e.g. rich text) to the MIME data. void aboutToCopy(QMimeData *data); - void command(uptr_t wParam, sptr_t lParam); + void command(Scintilla::uptr_t wParam, Scintilla::sptr_t lParam); private slots: void onIdle(); @@ -122,7 +125,7 @@ private: void ClaimSelection() override; void NotifyChange() override; void NotifyFocus(bool focus) override; - void NotifyParent(SCNotification scn) override; + void NotifyParent(Scintilla::NotificationData scn) override; void NotifyURIDropped(const char *uri); int timers[static_cast<size_t>(TickReason::dwell)+1]; bool FineTickerRunning(TickReason reason) override; @@ -134,7 +137,7 @@ private: void SetMouseCapture(bool on) override; bool HaveMouseCapture() override; void StartDrag() override; - int CharacterSetOfDocument() const; + Scintilla::CharacterSet CharacterSetOfDocument() const; const char *CharacterSetIDOfDocument() const; QString StringFromDocument(const char *s) const; QByteArray BytesForDocument(const QString &text) const; @@ -143,8 +146,8 @@ private: void CreateCallTipWindow(PRectangle rc) override; void AddToPopUp(const char *label, int cmd = 0, bool enabled = true) override; - sptr_t WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override; - sptr_t DefWndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) override; + sptr_t WndProc(Scintilla::Message iMessage, uptr_t wParam, sptr_t lParam) override; + sptr_t DefWndProc(Scintilla::Message iMessage, uptr_t wParam, sptr_t lParam) override; static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); |