Misc wxSTC fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@18280 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -817,7 +817,7 @@ void ListBox::Select(int n) {
|
|||||||
if (n > 4)
|
if (n > 4)
|
||||||
n = n - 4;
|
n = n - 4;
|
||||||
else
|
else
|
||||||
n = 1;
|
n = 0;
|
||||||
GETLB(id)->SetFirstItem(n);
|
GETLB(id)->SetFirstItem(n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -429,13 +429,45 @@ long ScintillaWX::DefWndProc(unsigned int /*iMessage*/, unsigned long /*wParam*/
|
|||||||
}
|
}
|
||||||
|
|
||||||
long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
|
long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
|
||||||
// switch (iMessage) {
|
switch (iMessage) {
|
||||||
// case EM_CANPASTE:
|
case SCI_CALLTIPSHOW: {
|
||||||
// return CanPaste();
|
// NOTE: This is copied here from scintilla/src/ScintillaBase.cxx
|
||||||
// default:
|
// because of the little tweak that needs done below. When updating
|
||||||
return ScintillaBase::WndProc(iMessage, wParam, lParam);
|
// new versions double check that this is still needed, and that any
|
||||||
// }
|
// new code there is copied here too.
|
||||||
// return 0;
|
AutoCompleteCancel();
|
||||||
|
if (!ct.wCallTip.Created()) {
|
||||||
|
Point pt = LocationFromPosition(wParam);
|
||||||
|
pt.y += vs.lineHeight;
|
||||||
|
PRectangle rc = ct.CallTipStart(currentPos, pt,
|
||||||
|
reinterpret_cast<char *>(lParam),
|
||||||
|
vs.styles[STYLE_DEFAULT].fontName,
|
||||||
|
vs.styles[STYLE_DEFAULT].sizeZoomed,
|
||||||
|
IsUnicodeMode());
|
||||||
|
// If the call-tip window would be out of the client
|
||||||
|
// space, adjust so it displays above the text.
|
||||||
|
PRectangle rcClient = GetClientRectangle();
|
||||||
|
if (rc.bottom > rcClient.bottom) {
|
||||||
|
#ifdef __WXGTK__
|
||||||
|
int offset = int(vs.lineHeight * 1.25) + rc.Height();
|
||||||
|
#else
|
||||||
|
int offset = vs.lineHeight + rc.Height();
|
||||||
|
#endif
|
||||||
|
rc.top -= offset;
|
||||||
|
rc.bottom -= offset;
|
||||||
|
}
|
||||||
|
// Now display the window.
|
||||||
|
CreateCallTipWindow(rc);
|
||||||
|
ct.wCallTip.SetPositionRelative(rc, wMain);
|
||||||
|
ct.wCallTip.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return ScintillaBase::WndProc(iMessage, wParam, lParam);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -607,11 +639,10 @@ void ScintillaWX::DoMiddleButtonUp(Point pt) {
|
|||||||
|
|
||||||
void ScintillaWX::DoAddChar(int key) {
|
void ScintillaWX::DoAddChar(int key) {
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
char ansiChars[3];
|
wxChar wszChars[2];
|
||||||
ansiChars[0] = key;
|
wszChars[0] = key;
|
||||||
ansiChars[1] = 0;
|
wszChars[1] = 0;
|
||||||
wxString uniChar(ansiChars, wxConvLocal);
|
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
|
||||||
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
|
|
||||||
AddCharUTF((char*)buf.data(), strlen(buf));
|
AddCharUTF((char*)buf.data(), strlen(buf));
|
||||||
#else
|
#else
|
||||||
AddChar(key);
|
AddChar(key);
|
||||||
|
@@ -817,7 +817,7 @@ void ListBox::Select(int n) {
|
|||||||
if (n > 4)
|
if (n > 4)
|
||||||
n = n - 4;
|
n = n - 4;
|
||||||
else
|
else
|
||||||
n = 1;
|
n = 0;
|
||||||
GETLB(id)->SetFirstItem(n);
|
GETLB(id)->SetFirstItem(n);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -429,13 +429,45 @@ long ScintillaWX::DefWndProc(unsigned int /*iMessage*/, unsigned long /*wParam*/
|
|||||||
}
|
}
|
||||||
|
|
||||||
long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
|
long ScintillaWX::WndProc(unsigned int iMessage, unsigned long wParam, long lParam) {
|
||||||
// switch (iMessage) {
|
switch (iMessage) {
|
||||||
// case EM_CANPASTE:
|
case SCI_CALLTIPSHOW: {
|
||||||
// return CanPaste();
|
// NOTE: This is copied here from scintilla/src/ScintillaBase.cxx
|
||||||
// default:
|
// because of the little tweak that needs done below. When updating
|
||||||
return ScintillaBase::WndProc(iMessage, wParam, lParam);
|
// new versions double check that this is still needed, and that any
|
||||||
// }
|
// new code there is copied here too.
|
||||||
// return 0;
|
AutoCompleteCancel();
|
||||||
|
if (!ct.wCallTip.Created()) {
|
||||||
|
Point pt = LocationFromPosition(wParam);
|
||||||
|
pt.y += vs.lineHeight;
|
||||||
|
PRectangle rc = ct.CallTipStart(currentPos, pt,
|
||||||
|
reinterpret_cast<char *>(lParam),
|
||||||
|
vs.styles[STYLE_DEFAULT].fontName,
|
||||||
|
vs.styles[STYLE_DEFAULT].sizeZoomed,
|
||||||
|
IsUnicodeMode());
|
||||||
|
// If the call-tip window would be out of the client
|
||||||
|
// space, adjust so it displays above the text.
|
||||||
|
PRectangle rcClient = GetClientRectangle();
|
||||||
|
if (rc.bottom > rcClient.bottom) {
|
||||||
|
#ifdef __WXGTK__
|
||||||
|
int offset = int(vs.lineHeight * 1.25) + rc.Height();
|
||||||
|
#else
|
||||||
|
int offset = vs.lineHeight + rc.Height();
|
||||||
|
#endif
|
||||||
|
rc.top -= offset;
|
||||||
|
rc.bottom -= offset;
|
||||||
|
}
|
||||||
|
// Now display the window.
|
||||||
|
CreateCallTipWindow(rc);
|
||||||
|
ct.wCallTip.SetPositionRelative(rc, wMain);
|
||||||
|
ct.wCallTip.Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
return ScintillaBase::WndProc(iMessage, wParam, lParam);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -607,11 +639,10 @@ void ScintillaWX::DoMiddleButtonUp(Point pt) {
|
|||||||
|
|
||||||
void ScintillaWX::DoAddChar(int key) {
|
void ScintillaWX::DoAddChar(int key) {
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
char ansiChars[3];
|
wxChar wszChars[2];
|
||||||
ansiChars[0] = key;
|
wszChars[0] = key;
|
||||||
ansiChars[1] = 0;
|
wszChars[1] = 0;
|
||||||
wxString uniChar(ansiChars, wxConvLocal);
|
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
|
||||||
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(uniChar);
|
|
||||||
AddCharUTF((char*)buf.data(), strlen(buf));
|
AddCharUTF((char*)buf.data(), strlen(buf));
|
||||||
#else
|
#else
|
||||||
AddChar(key);
|
AddChar(key);
|
||||||
|
Reference in New Issue
Block a user