aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa
diff options
context:
space:
mode:
Diffstat (limited to 'cocoa')
-rw-r--r--cocoa/ScintillaCocoa.h6
-rw-r--r--cocoa/ScintillaCocoa.mm66
2 files changed, 35 insertions, 37 deletions
diff --git a/cocoa/ScintillaCocoa.h b/cocoa/ScintillaCocoa.h
index e75efffef..8ea0f410f 100644
--- a/cocoa/ScintillaCocoa.h
+++ b/cocoa/ScintillaCocoa.h
@@ -121,7 +121,7 @@ protected:
void Init();
std::unique_ptr<CaseFolder> CaseFolderForEncoding() override;
- std::string CaseMapString(const std::string &s, int caseMapping) override;
+ std::string CaseMapString(const std::string &s, CaseMapping caseMapping) override;
void CancelModes() override;
public:
@@ -187,14 +187,14 @@ public:
static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam);
- NSTimer *timers[tickPlatform+1];
+ NSTimer *timers[static_cast<size_t>(TickReason::platform)+1];
void TimerFired(NSTimer *timer);
void IdleTimerFired();
static void UpdateObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *sci);
void ObserverAdd();
void ObserverRemove();
void IdleWork() override;
- void QueueIdleWork(WorkNeeded::workItems items, Sci::Position upTo) override;
+ void QueueIdleWork(WorkItems items, Sci::Position upTo) override;
ptrdiff_t InsertText(NSString *input, CharacterSource charSource);
NSRange PositionsFromCharacters(NSRange rangeCharacters) const;
NSRange CharactersFromPositions(NSRange rangePositions) const;
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm
index e1b11c16a..54b809cd9 100644
--- a/cocoa/ScintillaCocoa.mm
+++ b/cocoa/ScintillaCocoa.mm
@@ -407,10 +407,8 @@ ScintillaCocoa::ScintillaCocoa(ScintillaView *sciView_, SCIContentView *viewCont
scrollTicks = 2000;
observer = NULL;
layerFindIndicator = NULL;
- imeInteraction = imeInline;
- for (TickReason tr=tickCaret; tr<=tickPlatform; tr = static_cast<TickReason>(tr+1)) {
- timers[tr] = nil;
- }
+ imeInteraction = IMEInteraction::internal;
+ std::fill(timers, std::end(timers), nil);
Init();
}
@@ -446,8 +444,8 @@ void ScintillaCocoa::Init() {
*/
void ScintillaCocoa::Finalise() {
ObserverRemove();
- for (TickReason tr=tickCaret; tr<=tickPlatform; tr = static_cast<TickReason>(tr+1)) {
- FineTickerCancel(tr);
+ for (size_t tr=static_cast<size_t>(TickReason::caret); tr<=static_cast<size_t>(TickReason::platform); tr++) {
+ FineTickerCancel(static_cast<TickReason>(tr));
}
ScintillaBase::Finalise();
}
@@ -504,7 +502,7 @@ void ScintillaCocoa::IdleWork() {
//--------------------------------------------------------------------------------------------------
-void ScintillaCocoa::QueueIdleWork(WorkNeeded::workItems items, Sci::Position upTo) {
+void ScintillaCocoa::QueueIdleWork(WorkItems items, Sci::Position upTo) {
Editor::QueueIdleWork(items, upTo);
ObserverAdd();
}
@@ -626,14 +624,14 @@ std::unique_ptr<CaseFolder> ScintillaCocoa::CaseFolderForEncoding() {
/**
* Case-fold the given string depending on the specified case mapping type.
*/
-std::string ScintillaCocoa::CaseMapString(const std::string &s, int caseMapping) {
- if ((s.size() == 0) || (caseMapping == cmSame))
+std::string ScintillaCocoa::CaseMapString(const std::string &s, CaseMapping caseMapping) {
+ if ((s.size() == 0) || (caseMapping == CaseMapping::same))
return s;
if (IsUnicodeMode()) {
std::string retMapped(s.length() * maxExpansionCaseConversion, 0);
size_t lenMapped = CaseConvertString(&retMapped[0], retMapped.length(), s.c_str(), s.length(),
- (caseMapping == cmUpper) ? CaseConversionUpper : CaseConversionLower);
+ (caseMapping == CaseMapping::upper) ? CaseConversionUpper : CaseConversionLower);
retMapped.resize(lenMapped);
return retMapped;
}
@@ -648,10 +646,10 @@ std::string ScintillaCocoa::CaseMapString(const std::string &s, int caseMapping)
NSString *sMapped;
switch (caseMapping) {
- case cmUpper:
+ case CaseMapping::upper:
sMapped = ((__bridge NSString *)cfsVal).uppercaseString;
break;
- case cmLower:
+ case CaseMapping::lower:
sMapped = ((__bridge NSString *)cfsVal).lowercaseString;
break;
default:
@@ -927,7 +925,7 @@ sptr_t ScintillaCocoa::DefWndProc(unsigned int, uptr_t, sptr_t) {
* Handle any ScintillaCocoa-specific ticking or call superclass.
*/
void ScintillaCocoa::TickFor(TickReason reason) {
- if (reason == tickPlatform) {
+ if (reason == TickReason::platform) {
DragScroll();
} else {
Editor::TickFor(reason);
@@ -940,7 +938,7 @@ void ScintillaCocoa::TickFor(TickReason reason) {
* Is a particular timer currently running?
*/
bool ScintillaCocoa::FineTickerRunning(TickReason reason) {
- return timers[reason] != nil;
+ return timers[static_cast<size_t>(reason)] != nil;
}
//--------------------------------------------------------------------------------------------------
@@ -958,7 +956,7 @@ void ScintillaCocoa::FineTickerStart(TickReason reason, int millis, int toleranc
if (tolerance && [fineTimer respondsToSelector: @selector(setTolerance:)]) {
fineTimer.tolerance = tolerance / 1000.0;
}
- timers[reason] = fineTimer;
+ timers[static_cast<size_t>(reason)] = fineTimer;
[NSRunLoop.currentRunLoop addTimer: fineTimer forMode: NSDefaultRunLoopMode];
[NSRunLoop.currentRunLoop addTimer: fineTimer forMode: NSModalPanelRunLoopMode];
}
@@ -969,9 +967,10 @@ void ScintillaCocoa::FineTickerStart(TickReason reason, int millis, int toleranc
* Cancel a fine-grained timer.
*/
void ScintillaCocoa::FineTickerCancel(TickReason reason) {
- if (timers[reason]) {
- [timers[reason] invalidate];
- timers[reason] = nil;
+ const size_t reasonIndex = static_cast<size_t>(reason);
+ if (timers[reasonIndex]) {
+ [timers[reasonIndex] invalidate];
+ timers[reasonIndex] = nil;
}
}
@@ -1046,7 +1045,7 @@ void ScintillaCocoa::Paste(bool forceRectangular) {
pdoc->BeginUndoAction();
ClearSelection(false);
InsertPasteShape(selectedText.Data(), selectedText.Length(),
- selectedText.rectangular ? pasteRectangular : pasteStream);
+ selectedText.rectangular ? PasteShape::rectangular : PasteShape::stream);
pdoc->EndUndoAction();
Redraw();
@@ -1325,9 +1324,9 @@ void ScintillaCocoa::StartDrag() {
if (sel.Empty())
return;
- inDragDrop = ddDragging;
+ inDragDrop = DragDrop::dragging;
- FineTickerStart(tickPlatform, timer.tickSize, 0);
+ FineTickerStart(TickReason::platform, timer.tickSize, 0);
// Put the data to be dragged on the drag pasteboard.
SelectionText selectedText;
@@ -1419,12 +1418,12 @@ void ScintillaCocoa::StartDrag() {
const bool lastHideSelection = view.hideSelection;
view.hideSelection = true;
PRectangle imageRect = rcSel;
- paintState = painting;
+ paintState = PaintState::painting;
paintingAllText = true;
CGContextRef gcsw = sw.GetContext();
CGContextTranslateCTM(gcsw, -client.left, -client.top);
Paint(&sw, client);
- paintState = notPainting;
+ paintState = PaintState::notPainting;
view.hideSelection = lastHideSelection;
SurfaceImpl pixmap;
@@ -1488,7 +1487,7 @@ void ScintillaCocoa::StartDrag() {
* Called when a drag operation reaches the control which was initiated outside.
*/
NSDragOperation ScintillaCocoa::DraggingEntered(id <NSDraggingInfo> info) {
- FineTickerStart(tickPlatform, timer.tickSize, 0);
+ FineTickerStart(TickReason::platform, timer.tickSize, 0);
return DraggingUpdated(info);
}
@@ -1529,8 +1528,8 @@ NSDragOperation ScintillaCocoa::DraggingUpdated(id <NSDraggingInfo> info) {
void ScintillaCocoa::DraggingExited(id <NSDraggingInfo> info) {
#pragma unused(info)
SetDragPosition(SelectionPosition(Sci::invalidPosition));
- FineTickerCancel(tickPlatform);
- inDragDrop = ddNone;
+ FineTickerCancel(TickReason::platform);
+ inDragDrop = DragDrop::none;
}
//--------------------------------------------------------------------------------------------------
@@ -1703,8 +1702,7 @@ NSRect ScintillaCocoa::FrameForRange(NSRange rangeCharacters) {
(pdoc->GetColumn(rangeEnd) == 0);
Point ptStart = LocationFromPosition(posRange.location);
- const PointEnd peEndRange = static_cast<PointEnd>(peSubLineEnd|peLineEnd);
- Point ptEnd = LocationFromPosition(rangeEnd, peEndRange);
+ Point ptEnd = LocationFromPosition(rangeEnd, PointEnd::endEither);
NSRect rect = NSMakeRect(ptStart.x, ptStart.y,
ptEnd.x - ptStart.x,
@@ -1773,7 +1771,7 @@ bool ScintillaCocoa::HaveMouseCapture() {
* Synchronously paint a rectangle of the window.
*/
bool ScintillaCocoa::SyncPaint(void *gc, PRectangle rc) {
- paintState = painting;
+ paintState = PaintState::painting;
rcPaint = rc;
PRectangle rcText = GetTextRectangle();
paintingAllText = rcPaint.Contains(rcText);
@@ -1787,9 +1785,9 @@ bool ScintillaCocoa::SyncPaint(void *gc, PRectangle rc) {
vs.extraFontFlag == SC_EFF_QUALITY_LCD_OPTIMIZED);
sw->Init(gc, wMain.GetID());
Paint(sw.get(), rc);
- const bool succeeded = paintState != paintAbandoned;
+ const bool succeeded = paintState != PaintState::abandoned;
sw->Release();
- paintState = notPainting;
+ paintState = PaintState::notPainting;
if (!succeeded) {
NSView *marginView = (__bridge NSView *)(wMargin.GetID());
[marginView setNeedsDisplay: YES];
@@ -2070,9 +2068,9 @@ bool ScintillaCocoa::CanRedo() {
//--------------------------------------------------------------------------------------------------
void ScintillaCocoa::TimerFired(NSTimer *timer) {
- for (TickReason tr=tickCaret; tr<=tickPlatform; tr = static_cast<TickReason>(tr+1)) {
+ for (size_t tr=static_cast<size_t>(TickReason::caret); tr<=static_cast<size_t>(TickReason::platform); tr++) {
if (timers[tr] == timer) {
- TickFor(tr);
+ TickFor(static_cast<TickReason>(tr));
}
}
}
@@ -2504,7 +2502,7 @@ void ScintillaCocoa::ActiveStateChanged(bool isActive) {
if (!isActive) {
DropCaret();
//SetFocusState( false );
- FineTickerCancel(tickCaret);
+ FineTickerCancel(TickReason::caret);
} else {
ShowCaretAtCurrentPosition();
}