diff options
author | Unknown <nyamatongwe@gmail.com> | 2013-03-13 09:38:48 +1100 |
---|---|---|
committer | Unknown <nyamatongwe@gmail.com> | 2013-03-13 09:38:48 +1100 |
commit | 551a8ab98dfffa718374fbbf2e575006df29d273 (patch) | |
tree | 9f75cf99f0b0b616ce8c1000a4168029a560c099 /src/Editor.h | |
parent | 69d7b3f7588a282eac6e8d917e499396b1414f93 (diff) | |
download | scintilla-mirror-551a8ab98dfffa718374fbbf2e575006df29d273.tar.gz |
Add different types of task to StyleNeeded mechanism, renaming to WorkNeeded.
Ask to perform update UI work for some selection moves.
Diffstat (limited to 'src/Editor.h')
-rw-r--r-- | src/Editor.h | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/Editor.h b/src/Editor.h index 553cbeec0..bc7babb13 100644 --- a/src/Editor.h +++ b/src/Editor.h @@ -47,21 +47,30 @@ public: /** * When platform has a way to generate an event before painting, - * accumulate needed styling range in StyleNeeded to avoid unnecessary work. + * accumulate needed styling range and other work items in + * WorkNeeded to avoid unnecessary work inside paint handler */ -class StyleNeeded { +class WorkNeeded { public: + enum workItems { + workNone=0, + workStyle=1, + workUpdateUI=2 + }; bool active; + enum workItems items; Position upTo; - StyleNeeded() : active(false), upTo(0) {} + WorkNeeded() : active(false), items(workNone), upTo(0) {} void Reset() { active = false; + items = workNone; upTo = 0; } - void NeedUpTo(Position pos) { - if (upTo < pos) + void Need(workItems items_, Position pos) { + if ((items_ & workStyle) && (upTo < pos)) upTo = pos; + items = static_cast<workItems>(items | items_); } }; @@ -241,7 +250,7 @@ protected: // ScintillaBase subclass needs access to much of Editor PRectangle rcPaint; bool paintingAllText; bool willRedrawAll; - StyleNeeded styleNeeded; + WorkNeeded workNeeded; int modEventMask; @@ -532,7 +541,7 @@ protected: // ScintillaBase subclass needs access to much of Editor int PositionAfterArea(PRectangle rcArea); void StyleToPositionInView(Position pos); void IdleStyling(); - virtual void QueueStyling(int upTo); + virtual void QueueIdleWork(WorkNeeded::workItems items, int upTo=0); virtual bool PaintContains(PRectangle rc); bool PaintContainsMargin(); |