public:
wxSTCCallTip(wxWindow* parent, CallTip* ct, ScintillaWX* swx)
: wxSTCCallTipBase(parent, param2),
- m_ct(ct), m_swx(swx)
+ m_ct(ct), m_swx(swx), m_cx(wxDefaultCoord), m_cy(wxDefaultCoord)
{
}
~wxSTCCallTip() {
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP && defined(__WXGTK__)
wxRect rect = GetRect();
- GetParent()->ScreenToClient(&rect.x, &rect.y);
+ rect.x = m_cx;
+ rect.y = m_cy;
GetParent()->Refresh(false, &rect);
#endif
}
- bool AcceptsFocus() const { return FALSE; }
+ bool AcceptsFocus() const { return false; }
void OnPaint(wxPaintEvent& WXUNUSED(evt)) {
wxBufferedPaintDC dc(this);
virtual void DoSetSize(int x, int y,
int width, int height,
int sizeFlags = wxSIZE_AUTO) {
- if (x != -1)
+ if (x != wxDefaultCoord) {
+ m_cx = x;
GetParent()->ClientToScreen(&x, NULL);
- if (y != -1)
+ }
+ if (y != wxDefaultCoord) {
+ m_cy = y;
GetParent()->ClientToScreen(NULL, &y);
+ }
wxSTCCallTipBase::DoSetSize(x, y, width, height, sizeFlags);
}
#endif
+ wxPoint GetMyPosition() {
+ return wxPoint(m_cx, m_cy);
+ }
+
private:
CallTip* m_ct;
ScintillaWX* m_swx;
+ int m_cx, m_cy;
DECLARE_EVENT_TABLE()
};
static wxTextFileType wxConvertEOLMode(int scintillaMode)
{
wxTextFileType type;
-
+
switch (scintillaMode) {
case wxSTC_EOL_CRLF:
type = wxTextFileType_Dos;
break;
-
+
case wxSTC_EOL_CR:
type = wxTextFileType_Mac;
break;
-
+
case wxSTC_EOL_LF:
type = wxTextFileType_Unix;
break;
-
+
default:
type = wxTextBuffer::typeDefault;
break;
}
return type;
}
-
+
//----------------------------------------------------------------------
// Constructor/Destructor
wxStyledTextEvent evt(wxEVT_STC_START_DRAG, stc->GetId());
evt.SetEventObject(stc);
evt.SetDragText(dragText);
- evt.SetDragAllowMove(TRUE);
+ evt.SetDragAllowMove(true);
evt.SetPosition(wxMin(stc->GetSelectionStart(),
stc->GetSelectionEnd()));
stc->GetEventHandler()->ProcessEvent(evt);
wxDragResult result;
source.SetData(data);
- dropWentOutside = TRUE;
+ dropWentOutside = true;
result = source.DoDragDrop(evt.GetDragAllowMove());
if (result == wxDragMove && dropWentOutside)
ClearSelection();
- inDragDrop = FALSE;
+ inDragDrop = false;
SetDragPosition(invalidPosition);
}
#endif
bool ScintillaWX::SetIdle(bool on) {
if (idler.state != on) {
// connect or disconnect the EVT_IDLE handler
- if (on)
- stc->Connect(-1, wxEVT_IDLE,
+ if (on)
+ stc->Connect(wxID_ANY, wxEVT_IDLE,
(wxObjectEventFunction) (wxEventFunction) (wxIdleEventFunction) &wxStyledTextCtrl::OnIdle);
else
- stc->Disconnect(-1, wxEVT_IDLE,
+ stc->Disconnect(wxID_ANY, wxEVT_IDLE,
(wxObjectEventFunction) (wxEventFunction) (wxIdleEventFunction) &wxStyledTextCtrl::OnIdle);
idler.state = on;
}
return idler.state;
}
-
+
void ScintillaWX::SetTicking(bool on) {
wxSTCTimer* steTimer;
if (timer.ticking != on) {
ClearSelection();
wxTextDataObject data;
- bool gotData = FALSE;
+ bool gotData = false;
if (wxTheClipboard->Open()) {
- wxTheClipboard->UsePrimarySelection(FALSE);
+ wxTheClipboard->UsePrimarySelection(false);
gotData = wxTheClipboard->GetData(data);
wxTheClipboard->Close();
}
void ScintillaWX::CopyToClipboard(const SelectionText& st) {
if (wxTheClipboard->Open()) {
- wxTheClipboard->UsePrimarySelection(FALSE);
+ wxTheClipboard->UsePrimarySelection(false);
wxString text = wxTextBuffer::Translate(stc2wx(st.s, st.len));
wxTheClipboard->SetData(new wxTextDataObject(text));
wxTheClipboard->Close();
bool ScintillaWX::CanPaste() {
- bool canPaste = FALSE;
+ bool canPaste = false;
bool didOpen;
if (Editor::CanPaste()) {
wxTheClipboard->Open();
if (wxTheClipboard->IsOpened()) {
- wxTheClipboard->UsePrimarySelection(FALSE);
+ wxTheClipboard->UsePrimarySelection(false);
canPaste = wxTheClipboard->IsSupported(wxUSE_UNICODE ? wxDF_UNICODETEXT : wxDF_TEXT);
if (didOpen)
wxTheClipboard->Close();
SelectionText st;
CopySelectionRange(&st);
if (wxTheClipboard->Open()) {
- wxTheClipboard->UsePrimarySelection(TRUE);
+ wxTheClipboard->UsePrimarySelection(true);
wxString text = stc2wx(st.s, st.len);
wxTheClipboard->SetData(new wxTextDataObject(text));
- wxTheClipboard->UsePrimarySelection(FALSE);
+ wxTheClipboard->UsePrimarySelection(false);
wxTheClipboard->Close();
}
}
defn,
vs.styles[STYLE_DEFAULT].fontName,
vs.styles[STYLE_DEFAULT].sizeZoomed,
- IsUnicodeMode(),
+ CodePage(),
+ vs.styles[STYLE_DEFAULT].characterSet,
wMain);
// If the call-tip window would be out of the client
// space, adjust so it displays above the text.
}
#ifdef SCI_LEXER
- case SCI_LOADLEXERLIBRARY:
+ case SCI_LOADLEXERLIBRARY:
LexerManager::GetInstance()->Load((const char*)lParam);
break;
#endif
void ScintillaWX::DoSize(int WXUNUSED(width), int WXUNUSED(height)) {
-// PRectangle rcClient(0,0,width,height);
-// SetScrollBarsTo(rcClient);
-// DropGraphics();
ChangeSize();
}
pdoc->BeginUndoAction();
wxTextDataObject data;
- bool gotData = FALSE;
+ bool gotData = false;
if (wxTheClipboard->Open()) {
- wxTheClipboard->UsePrimarySelection(TRUE);
+ wxTheClipboard->UsePrimarySelection(true);
gotData = wxTheClipboard->GetData(data);
- wxTheClipboard->UsePrimarySelection(FALSE);
+ wxTheClipboard->UsePrimarySelection(false);
wxTheClipboard->Close();
}
if (gotData) {
void ScintillaWX::DoAddChar(int key) {
#if wxUSE_UNICODE
wxChar wszChars[2];
- wszChars[0] = key;
+ wszChars[0] = (wxChar)key;
wszChars[1] = 0;
wxWX2MBbuf buf = (wxWX2MBbuf)wx2stc(wszChars);
AddCharUTF((char*)buf.data(), strlen(buf));
#else
- AddChar(key);
+ AddChar((char)key);
#endif
}
-#ifdef __WXMAC__
-int ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool meta, bool* consumed) {
-#else
-int ScintillaWX::DoKeyDown(int key, bool shift, bool ctrl, bool alt, bool WXUNUSED(meta), bool* consumed) {
-#endif
-#if defined(__WXGTK__) || defined(__WXMAC__)
- // Ctrl chars (A-Z) end up with the wrong keycode on wxGTK
- // TODO: Check this, it shouldn't be true any longer.
+int ScintillaWX::DoKeyDown(const wxKeyEvent& evt, bool* consumed)
+{
+ int key = evt.GetKeyCode();
+ bool shift = evt.ShiftDown(),
+ ctrl = evt.ControlDown(),
+ alt = evt.AltDown();
+
if (ctrl && key >= 1 && key <= 26)
key += 'A' - 1;
-#endif
switch (key) {
case WXK_DOWN: key = SCK_DOWN; break;
}
#ifdef __WXMAC__
- if ( meta ) {
+ if ( evt.MetaDown() ) {
// check for a few common Mac Meta-key combos and remap them to Ctrl
// for Scintilla
switch ( key ) {
}
}
#endif
-
+
int rv = KeyDown(key, shift, ctrl, alt, consumed);
if (key)
AutoCompleteCompleted();
}
-
+
void ScintillaWX::DoOnIdle(wxIdleEvent& evt) {
if ( Idle() )
else
SetIdle(false);
}
-
+
//----------------------------------------------------------------------
#if wxUSE_DRAG_AND_DROP
wxString text = wxTextBuffer::Translate(data,
wxConvertEOLMode(pdoc->eolMode));
-
+
// Send an event to allow the drag details to be changed
wxStyledTextEvent evt(wxEVT_STC_DO_DROP, stc->GetId());
evt.SetEventObject(stc);
DropAt(evt.GetPosition(),
wx2stc(evt.GetDragText()),
dragResult == wxDragMove,
- FALSE); // TODO: rectangular?
- return TRUE;
+ false); // TODO: rectangular?
+ return true;
}
- return FALSE;
+ return false;
}
rgn.Subtract(childRect);
}
if (ct.inCallTipMode) {
- wxWindow* tip = (wxWindow*)ct.wCallTip.GetID();
+ wxSTCCallTip* tip = (wxSTCCallTip*)ct.wCallTip.GetID();
wxRect childRect = tip->GetRect();
#if wxUSE_POPUPWIN && wxSTC_USE_POPUP
- tip->GetParent()->ScreenToClient(&childRect.x, &childRect.y);
+ childRect.SetPosition(tip->GetMyPosition());
#endif
rgn.Subtract(childRect);
}
bool ScintillaWX::GetUseAntiAliasing() {
return vs.extraFontFlag;
}
-
+
//----------------------------------------------------------------------
//----------------------------------------------------------------------