diff options
author | jrxx <devnull@localhost> | 2011-01-17 16:04:20 -0600 |
---|---|---|
committer | jrxx <devnull@localhost> | 2011-01-17 16:04:20 -0600 |
commit | 9d5f8be054e6c3289b7730935664c0baf65e4c51 (patch) | |
tree | c2eb4407e29227d7f4b5f787f8a4e9c34f605784 /src/Editor.cxx | |
parent | 89c21a81fcfccc4beecc2442e6e434fd6edbc9b1 (diff) | |
download | scintilla-mirror-9d5f8be054e6c3289b7730935664c0baf65e4c51.tar.gz |
Add SCI_SETMARGINCURSORN and SCI_GETMARGINCURSORN.
Diffstat (limited to 'src/Editor.cxx')
-rw-r--r-- | src/Editor.cxx | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/src/Editor.cxx b/src/Editor.cxx index 5b908ac6f..865633be3 100644 --- a/src/Editor.cxx +++ b/src/Editor.cxx @@ -5844,6 +5844,16 @@ bool Editor::PointInSelMargin(Point pt) { } } +Window::Cursor Editor::GetMarginCursor(Point pt) { + int x = 0; + for (int margin = 0; margin < ViewStyle::margins; margin++) { + if ((pt.x >= x) && (pt.x < x + vs.ms[margin].width)) + return static_cast<Window::Cursor>(vs.ms[margin].cursor); + x += vs.ms[margin].width; + } + return Window::cursorReverseArrow; +} + void Editor::LineSelection(int lineCurrent_, int lineAnchor_) { if (lineAnchor_ < lineCurrent_) { SetSelection(pdoc->LineStart(lineCurrent_ + 1), @@ -6201,7 +6211,7 @@ void Editor::ButtonMove(Point pt) { } else { if (vs.fixedColumnWidth > 0) { // There is a margin if (PointInSelMargin(pt)) { - DisplayCursor(Window::cursorReverseArrow); + DisplayCursor(GetMarginCursor(pt)); SetHotSpotRange(NULL); return; // No need to test for selection } @@ -6236,7 +6246,7 @@ void Editor::ButtonUp(Point pt, unsigned int curTime, bool ctrl) { } if (HaveMouseCapture()) { if (PointInSelMargin(pt)) { - DisplayCursor(Window::cursorReverseArrow); + DisplayCursor(GetMarginCursor(pt)); } else { DisplayCursor(Window::cursorText); SetHotSpotRange(NULL); @@ -7839,6 +7849,17 @@ sptr_t Editor::WndProc(unsigned int iMessage, uptr_t wParam, sptr_t lParam) { else return 0; + case SCI_SETMARGINCURSORN: + if (ValidMargin(wParam)) + vs.ms[wParam].cursor = lParam; + break; + + case SCI_GETMARGINCURSORN: + if (ValidMargin(wParam)) + return vs.ms[wParam].cursor; + else + return 0; + case SCI_STYLECLEARALL: vs.ClearStyles(); InvalidateStyleRedraw(); |