From 01c48f98e5557089fc7501394f905a5b15fde9c0 Mon Sep 17 00:00:00 2001 From: Neil Date: Tue, 19 Dec 2017 15:00:40 +1100 Subject: Start of bidirectional code - implement SCI_SETBIDIRECTIONAL. --- src/EditModel.cxx | 1 + src/EditModel.h | 2 ++ src/Editor.cxx | 7 +++++++ 3 files changed, 10 insertions(+) (limited to 'src') diff --git a/src/EditModel.cxx b/src/EditModel.cxx index 7dfd90e37..0e00bcfe0 100644 --- a/src/EditModel.cxx +++ b/src/EditModel.cxx @@ -63,6 +63,7 @@ EditModel::EditModel() { highlightGuideColumn = 0; primarySelection = true; imeInteraction = imeWindowed; + bidirectional = Bidirectional::bidiDisabled; foldFlags = 0; foldDisplayTextStyle = SC_FOLDDISPLAYTEXT_HIDDEN; hotspot = Range(Sci::invalidPosition); diff --git a/src/EditModel.h b/src/EditModel.h index 773309d45..6e4919bd5 100644 --- a/src/EditModel.h +++ b/src/EditModel.h @@ -38,6 +38,8 @@ public: enum IMEInteraction { imeWindowed, imeInline } imeInteraction; + enum class Bidirectional { bidiDisabled, bidiL2R, bidiR2L } bidirectional; + int foldFlags; int foldDisplayTextStyle; ContractionState cs; diff --git a/src/Editor.cxx b/src/Editor.cxx index d45a8684c..36af34685 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -6736,6 +6736,13 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { case SCI_GETIMEINTERACTION: return imeInteraction; + case SCI_SETBIDIRECTIONAL: + // SCI_SETBIDIRECTIONAL is implemented on platform subclasses if they support bidirectional text. + break; + + case SCI_GETBIDIRECTIONAL: + return static_cast(bidirectional); + // Marker definition and setting case SCI_MARKERDEFINE: if (wParam <= MARKER_MAX) { -- cgit v1.2.3