More STC fixes and tweaks. (Try Ctrl-KP_plus and Ctrl-KP_minus for a

really COOL feature that's no longer broken on MSW)


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2000-04-21 09:09:37 +00:00
parent 07b1aad30f
commit 156cb8c2e4
4 changed files with 48 additions and 16 deletions

View File

@@ -466,6 +466,7 @@ private:
void OnMouseLeftUp(wxMouseEvent& evt); void OnMouseLeftUp(wxMouseEvent& evt);
void OnMouseRightUp(wxMouseEvent& evt); void OnMouseRightUp(wxMouseEvent& evt);
void OnChar(wxKeyEvent& evt); void OnChar(wxKeyEvent& evt);
void OnKeyDown(wxKeyEvent& evt);
void OnLoseFocus(wxFocusEvent& evt); void OnLoseFocus(wxFocusEvent& evt);
void OnGainFocus(wxFocusEvent& evt); void OnGainFocus(wxFocusEvent& evt);
void OnSysColourChanged(wxSysColourChangedEvent& evt); void OnSysColourChanged(wxSysColourChangedEvent& evt);
@@ -481,6 +482,7 @@ private:
private: private:
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
DECLARE_CLASS(wxStyledTextCtrl)
ScintillaWX* m_swx; ScintillaWX* m_swx;
wxStopWatch m_stopWatch; wxStopWatch m_stopWatch;
@@ -497,7 +499,7 @@ private:
class wxStyledTextEvent : public wxCommandEvent { class wxStyledTextEvent : public wxCommandEvent {
public: public:
wxStyledTextEvent(wxEventType commandType, int id); wxStyledTextEvent(wxEventType commandType=0, int id=0);
~wxStyledTextEvent() {} ~wxStyledTextEvent() {}
void SetPosition(int pos) { m_position = pos; } void SetPosition(int pos) { m_position = pos; }
@@ -536,7 +538,10 @@ public:
void CopyObject(wxObject& obj) const; void CopyObject(wxObject& obj) const;
#ifndef SWIG
private: private:
DECLARE_DYNAMIC_CLASS(wxStyledTextEvent)
int m_position; int m_position;
int m_key; int m_key;
int m_modifiers; int m_modifiers;
@@ -554,7 +559,7 @@ private:
int m_message; // wxEVT_STC_MACRORECORD int m_message; // wxEVT_STC_MACRORECORD
int m_wParam; int m_wParam;
int m_lParam; int m_lParam;
#endif
}; };
@@ -588,7 +593,9 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#define EVT_STC_DOUBLECLICK(id, fn) { wxEVT_STC_DOUBLECLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_DOUBLECLICK(id, fn) { wxEVT_STC_DOUBLECLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_MODIFIED(id, fn) { wxEVT_STC_MODIFIED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_MODIFIED(id, fn) { wxEVT_STC_MODIFIED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_CMDKEY(id, fn) { wxEVT_STC_CMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_CMDKEY(id, fn) { wxEVT_STC_CMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_UNKNOWNCMDKEY(id, fn) { wxEVT_STC_UNKNOWNCMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_MACRORECORD(id, fn) { wxEVT_STC_MACRORECORD, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_MARGINCLICK(id, fn) { wxEVT_STC_MARGINCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_NEEDSHOWN(id, fn) { wxEVT_STC_NEEDSHOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#endif #endif

View File

@@ -75,6 +75,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
EVT_LEFT_UP (wxStyledTextCtrl::OnMouseLeftUp) EVT_LEFT_UP (wxStyledTextCtrl::OnMouseLeftUp)
EVT_RIGHT_UP (wxStyledTextCtrl::OnMouseRightUp) EVT_RIGHT_UP (wxStyledTextCtrl::OnMouseRightUp)
EVT_CHAR (wxStyledTextCtrl::OnChar) EVT_CHAR (wxStyledTextCtrl::OnChar)
EVT_KEY_DOWN (wxStyledTextCtrl::OnKeyDown)
EVT_KILL_FOCUS (wxStyledTextCtrl::OnLoseFocus) EVT_KILL_FOCUS (wxStyledTextCtrl::OnLoseFocus)
EVT_SET_FOCUS (wxStyledTextCtrl::OnGainFocus) EVT_SET_FOCUS (wxStyledTextCtrl::OnGainFocus)
EVT_SYS_COLOUR_CHANGED (wxStyledTextCtrl::OnSysColourChanged) EVT_SYS_COLOUR_CHANGED (wxStyledTextCtrl::OnSysColourChanged)
@@ -82,6 +83,10 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
EVT_MENU_RANGE (-1, -1, wxStyledTextCtrl::OnMenu) EVT_MENU_RANGE (-1, -1, wxStyledTextCtrl::OnMenu)
END_EVENT_TABLE() END_EVENT_TABLE()
IMPLEMENT_CLASS(wxStyledTextCtrl, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxStyledTextEvent, wxCommandEvent)
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Constructor and Destructor // Constructor and Destructor
@@ -1325,20 +1330,23 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
} }
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) { void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
int processed = 0;
long key = evt.KeyCode(); long key = evt.KeyCode();
if ((key > WXK_ESCAPE) && if ((key > WXK_ESCAPE) &&
(key != WXK_DELETE) && (key < 255) && (key != WXK_DELETE) && (key < 255) &&
!evt.ControlDown() && !evt.AltDown()) { !evt.ControlDown() && !evt.AltDown()) {
m_swx->DoAddChar(key); m_swx->DoAddChar(key);
processed = true;
} }
else { else {
key = toupper(key); evt.Skip();
processed = m_swx->DoKeyDown(key, evt.ShiftDown(),
evt.ControlDown(), evt.AltDown());
} }
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
key = toupper(key);
int processed = m_swx->DoKeyDown(key, evt.ShiftDown(),
evt.ControlDown(), evt.AltDown());
if (! processed) if (! processed)
evt.Skip(); evt.Skip();
} }
@@ -1369,6 +1377,7 @@ void wxStyledTextCtrl::OnMenu(wxCommandEvent& evt) {
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Turn notifications from Scintilla into events // Turn notifications from Scintilla into events
void wxStyledTextCtrl::NotifyChange() { void wxStyledTextCtrl::NotifyChange() {
wxStyledTextEvent evt(wxEVT_STC_CHANGE, GetId()); wxStyledTextEvent evt(wxEVT_STC_CHANGE, GetId());
GetEventHandler()->ProcessEvent(evt); GetEventHandler()->ProcessEvent(evt);

View File

@@ -466,6 +466,7 @@ private:
void OnMouseLeftUp(wxMouseEvent& evt); void OnMouseLeftUp(wxMouseEvent& evt);
void OnMouseRightUp(wxMouseEvent& evt); void OnMouseRightUp(wxMouseEvent& evt);
void OnChar(wxKeyEvent& evt); void OnChar(wxKeyEvent& evt);
void OnKeyDown(wxKeyEvent& evt);
void OnLoseFocus(wxFocusEvent& evt); void OnLoseFocus(wxFocusEvent& evt);
void OnGainFocus(wxFocusEvent& evt); void OnGainFocus(wxFocusEvent& evt);
void OnSysColourChanged(wxSysColourChangedEvent& evt); void OnSysColourChanged(wxSysColourChangedEvent& evt);
@@ -481,6 +482,7 @@ private:
private: private:
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
DECLARE_CLASS(wxStyledTextCtrl)
ScintillaWX* m_swx; ScintillaWX* m_swx;
wxStopWatch m_stopWatch; wxStopWatch m_stopWatch;
@@ -497,7 +499,7 @@ private:
class wxStyledTextEvent : public wxCommandEvent { class wxStyledTextEvent : public wxCommandEvent {
public: public:
wxStyledTextEvent(wxEventType commandType, int id); wxStyledTextEvent(wxEventType commandType=0, int id=0);
~wxStyledTextEvent() {} ~wxStyledTextEvent() {}
void SetPosition(int pos) { m_position = pos; } void SetPosition(int pos) { m_position = pos; }
@@ -536,7 +538,10 @@ public:
void CopyObject(wxObject& obj) const; void CopyObject(wxObject& obj) const;
#ifndef SWIG
private: private:
DECLARE_DYNAMIC_CLASS(wxStyledTextEvent)
int m_position; int m_position;
int m_key; int m_key;
int m_modifiers; int m_modifiers;
@@ -554,7 +559,7 @@ private:
int m_message; // wxEVT_STC_MACRORECORD int m_message; // wxEVT_STC_MACRORECORD
int m_wParam; int m_wParam;
int m_lParam; int m_lParam;
#endif
}; };
@@ -588,7 +593,9 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#define EVT_STC_DOUBLECLICK(id, fn) { wxEVT_STC_DOUBLECLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_DOUBLECLICK(id, fn) { wxEVT_STC_DOUBLECLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_MODIFIED(id, fn) { wxEVT_STC_MODIFIED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_MODIFIED(id, fn) { wxEVT_STC_MODIFIED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_CMDKEY(id, fn) { wxEVT_STC_CMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_CMDKEY(id, fn) { wxEVT_STC_CMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_UNKNOWNCMDKEY(id, fn) { wxEVT_STC_UNKNOWNCMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_MACRORECORD(id, fn) { wxEVT_STC_MACRORECORD, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_MARGINCLICK(id, fn) { wxEVT_STC_MARGINCLICK, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#define EVT_STC_NEEDSHOWN(id, fn) { wxEVT_STC_NEEDSHOWN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#endif #endif

View File

@@ -75,6 +75,7 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
EVT_LEFT_UP (wxStyledTextCtrl::OnMouseLeftUp) EVT_LEFT_UP (wxStyledTextCtrl::OnMouseLeftUp)
EVT_RIGHT_UP (wxStyledTextCtrl::OnMouseRightUp) EVT_RIGHT_UP (wxStyledTextCtrl::OnMouseRightUp)
EVT_CHAR (wxStyledTextCtrl::OnChar) EVT_CHAR (wxStyledTextCtrl::OnChar)
EVT_KEY_DOWN (wxStyledTextCtrl::OnKeyDown)
EVT_KILL_FOCUS (wxStyledTextCtrl::OnLoseFocus) EVT_KILL_FOCUS (wxStyledTextCtrl::OnLoseFocus)
EVT_SET_FOCUS (wxStyledTextCtrl::OnGainFocus) EVT_SET_FOCUS (wxStyledTextCtrl::OnGainFocus)
EVT_SYS_COLOUR_CHANGED (wxStyledTextCtrl::OnSysColourChanged) EVT_SYS_COLOUR_CHANGED (wxStyledTextCtrl::OnSysColourChanged)
@@ -82,6 +83,10 @@ BEGIN_EVENT_TABLE(wxStyledTextCtrl, wxControl)
EVT_MENU_RANGE (-1, -1, wxStyledTextCtrl::OnMenu) EVT_MENU_RANGE (-1, -1, wxStyledTextCtrl::OnMenu)
END_EVENT_TABLE() END_EVENT_TABLE()
IMPLEMENT_CLASS(wxStyledTextCtrl, wxControl)
IMPLEMENT_DYNAMIC_CLASS(wxStyledTextEvent, wxCommandEvent)
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Constructor and Destructor // Constructor and Destructor
@@ -1325,20 +1330,23 @@ void wxStyledTextCtrl::OnMouseRightUp(wxMouseEvent& evt) {
} }
void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) { void wxStyledTextCtrl::OnChar(wxKeyEvent& evt) {
int processed = 0;
long key = evt.KeyCode(); long key = evt.KeyCode();
if ((key > WXK_ESCAPE) && if ((key > WXK_ESCAPE) &&
(key != WXK_DELETE) && (key < 255) && (key != WXK_DELETE) && (key < 255) &&
!evt.ControlDown() && !evt.AltDown()) { !evt.ControlDown() && !evt.AltDown()) {
m_swx->DoAddChar(key); m_swx->DoAddChar(key);
processed = true;
} }
else { else {
key = toupper(key); evt.Skip();
processed = m_swx->DoKeyDown(key, evt.ShiftDown(),
evt.ControlDown(), evt.AltDown());
} }
}
void wxStyledTextCtrl::OnKeyDown(wxKeyEvent& evt) {
long key = evt.KeyCode();
key = toupper(key);
int processed = m_swx->DoKeyDown(key, evt.ShiftDown(),
evt.ControlDown(), evt.AltDown());
if (! processed) if (! processed)
evt.Skip(); evt.Skip();
} }
@@ -1369,6 +1377,7 @@ void wxStyledTextCtrl::OnMenu(wxCommandEvent& evt) {
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Turn notifications from Scintilla into events // Turn notifications from Scintilla into events
void wxStyledTextCtrl::NotifyChange() { void wxStyledTextCtrl::NotifyChange() {
wxStyledTextEvent evt(wxEVT_STC_CHANGE, GetId()); wxStyledTextEvent evt(wxEVT_STC_CHANGE, GetId());
GetEventHandler()->ProcessEvent(evt); GetEventHandler()->ProcessEvent(evt);