aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/Editor.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Editor.h')
-rw-r--r--src/Editor.h67
1 files changed, 36 insertions, 31 deletions
diff --git a/src/Editor.h b/src/Editor.h
index 87a904bf1..fc3a84ecd 100644
--- a/src/Editor.h
+++ b/src/Editor.h
@@ -37,25 +37,27 @@ public:
* accumulate needed styling range and other work items in
* WorkNeeded to avoid unnecessary work inside paint handler
*/
+
+enum class WorkItems {
+ none = 0,
+ style = 1,
+ updateUI = 2
+};
+
class WorkNeeded {
public:
- enum workItems {
- workNone=0,
- workStyle=1,
- workUpdateUI=2
- };
- enum workItems items;
+ enum WorkItems items;
Sci::Position upTo;
- WorkNeeded() noexcept : items(workNone), upTo(0) {}
+ WorkNeeded() noexcept : items(WorkItems::none), upTo(0) {}
void Reset() noexcept {
- items = workNone;
+ items = WorkItems::none;
upTo = 0;
}
- void Need(workItems items_, Sci::Position pos) noexcept {
- if ((items_ & workStyle) && (upTo < pos))
+ void Need(WorkItems items_, Sci::Position pos) noexcept {
+ if (FlagSet(items_, WorkItems::style) && (upTo < pos))
upTo = pos;
- items = static_cast<workItems>(items | items_);
+ items = static_cast<WorkItems>(static_cast<int>(items) | static_cast<int>(items_));
}
};
@@ -155,6 +157,14 @@ struct CaretPolicies {
CaretPolicy y;
};
+enum class XYScrollOptions {
+ none = 0x0,
+ useMargin = 0x1,
+ vertical = 0x2,
+ horizontal = 0x4,
+ all = useMargin | vertical | horizontal
+};
+
/**
*/
class Editor : public EditModel, public DocWatcher {
@@ -212,7 +222,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
bool dwelling;
enum class TextUnit { character, word, subLine, wholeLine } selectionUnit;
Point ptMouseLast;
- enum { ddNone, ddInitial, ddDragging } inDragDrop;
+ enum class DragDrop { none, initial, dragging } inDragDrop;
bool dropWentOutside;
SelectionPosition posDrop;
Sci::Position hotSpotClickPos;
@@ -230,7 +240,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
int needUpdateUI;
- enum { notPainting, painting, paintAbandoned } paintState;
+ enum class PaintState { notPainting, painting, abandoned } paintState;
bool paintAbandonedByStyling;
PRectangle rcPaint;
bool paintingAllText;
@@ -290,8 +300,8 @@ protected: // ScintillaBase subclass needs access to much of Editor
Sci::Line LinesToScroll() const;
Sci::Line MaxScrollPos() const;
SelectionPosition ClampPositionIntoDocument(SelectionPosition sp) const;
- Point LocationFromPosition(SelectionPosition pos, PointEnd pe=peDefault);
- Point LocationFromPosition(Sci::Position pos, PointEnd pe=peDefault);
+ Point LocationFromPosition(SelectionPosition pos, PointEnd pe=PointEnd::start);
+ Point LocationFromPosition(Sci::Position pos, PointEnd pe=PointEnd::start);
int XFromPosition(SelectionPosition sp);
SelectionPosition SPositionFromLocation(Point pt, bool canReturnInvalid=false, bool charPosition=false, bool virtualSpace=true);
Sci::Position PositionFromLocation(Point pt, bool canReturnInvalid = false, bool charPosition = false);
@@ -334,8 +344,8 @@ protected: // ScintillaBase subclass needs access to much of Editor
SelectionPosition MovePositionOutsideChar(SelectionPosition pos, Sci::Position moveDir, bool checkLineEnd=true) const;
void MovedCaret(SelectionPosition newPos, SelectionPosition previousPos,
bool ensureVisible, CaretPolicies policies);
- void MovePositionTo(SelectionPosition newPos, Selection::selTypes selt=Selection::noSel, bool ensureVisible=true);
- void MovePositionTo(Sci::Position newPos, Selection::selTypes selt=Selection::noSel, bool ensureVisible=true);
+ void MovePositionTo(SelectionPosition newPos, Selection::SelTypes selt=Selection::SelTypes::none, bool ensureVisible=true);
+ void MovePositionTo(Sci::Position newPos, Selection::SelTypes selt=Selection::SelTypes::none, bool ensureVisible=true);
SelectionPosition MovePositionSoVisible(SelectionPosition pos, int moveDir);
SelectionPosition MovePositionSoVisible(Sci::Position pos, int moveDir);
Point PointMainCaret();
@@ -359,11 +369,6 @@ protected: // ScintillaBase subclass needs access to much of Editor
return (xOffset == other.xOffset) && (topLine == other.topLine);
}
};
- enum XYScrollOptions {
- xysUseMargin=0x1,
- xysVertical=0x2,
- xysHorizontal=0x4,
- xysDefault=xysUseMargin|xysVertical|xysHorizontal};
XYScrollPosition XYScrollToMakeVisible(const SelectionRange &range,
const XYScrollOptions options, CaretPolicies policies);
void SetXYScroll(XYScrollPosition newXY);
@@ -404,7 +409,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
virtual void InsertCharacter(std::string_view sv, CharacterSource charSource);
void ClearBeforeTentativeStart();
void InsertPaste(const char *text, Sci::Position len);
- enum PasteShape { pasteStream=0, pasteRectangular = 1, pasteLine = 2 };
+ enum class PasteShape { stream=0, rectangular = 1, line = 2 };
void InsertPasteShape(const char *text, Sci::Position len, PasteShape shape);
void ClearSelection(bool retainMultipleSelections = false);
void ClearAll();
@@ -456,18 +461,18 @@ protected: // ScintillaBase subclass needs access to much of Editor
void NotifyMacroRecord(unsigned int iMessage, uptr_t wParam, sptr_t lParam);
void ContainerNeedsUpdate(int flags) noexcept;
- void PageMove(int direction, Selection::selTypes selt=Selection::noSel, bool stuttered = false);
- enum { cmSame, cmUpper, cmLower };
- virtual std::string CaseMapString(const std::string &s, int caseMapping);
- void ChangeCaseOfSelection(int caseMapping);
+ void PageMove(int direction, Selection::SelTypes selt=Selection::SelTypes::none, bool stuttered = false);
+ enum class CaseMapping { same, upper, lower };
+ virtual std::string CaseMapString(const std::string &s, CaseMapping caseMapping);
+ void ChangeCaseOfSelection(CaseMapping caseMapping);
void LineTranspose();
void LineReverse();
void Duplicate(bool forLine);
virtual void CancelModes();
void NewLine();
SelectionPosition PositionUpOrDown(SelectionPosition spStart, int direction, int lastX);
- void CursorUpOrDown(int direction, Selection::selTypes selt);
- void ParaUpOrDown(int direction, Selection::selTypes selt);
+ void CursorUpOrDown(int direction, Selection::SelTypes selt);
+ void ParaUpOrDown(int direction, Selection::SelTypes selt);
Range RangeDisplayLine(Sci::Line lineVisible);
Sci::Position StartEndDisplayLine(Sci::Position pos, bool start);
Sci::Position VCHomeDisplayPosition(Sci::Position position);
@@ -515,7 +520,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
void ButtonUpWithModifiers(Point pt, unsigned int curTime, int modifiers);
bool Idle();
- enum TickReason { tickCaret, tickScroll, tickWiden, tickDwell, tickPlatform };
+ enum class TickReason { caret, scroll, widen, dwell, platform };
virtual void TickFor(TickReason reason);
virtual bool FineTickerRunning(TickReason reason);
virtual void FineTickerStart(TickReason reason, int millis, int tolerance);
@@ -535,7 +540,7 @@ protected: // ScintillaBase subclass needs access to much of Editor
}
void IdleStyling();
virtual void IdleWork();
- virtual void QueueIdleWork(WorkNeeded::workItems items, Sci::Position upTo=0);
+ virtual void QueueIdleWork(WorkItems items, Sci::Position upTo=0);
virtual int SupportsFeature(int feature);
virtual bool PaintContains(PRectangle rc);