diff options
Diffstat (limited to 'cocoa')
-rw-r--r-- | cocoa/ScintillaCocoa.h | 6 | ||||
-rw-r--r-- | cocoa/ScintillaCocoa.mm | 66 |
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(); } |