More wxStyledTextCtrl fixes, and updates.

I'm also trying to use the C++ class definitions in the header
directly for SWIG/wxPython instead of a cleaned up simplified version
like I usually do.  So far so good.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_2_BRANCH@7218 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2000-04-21 03:30:24 +00:00
parent 2512232672
commit e920d72d4a
4 changed files with 98 additions and 20 deletions

View File

@@ -63,7 +63,15 @@ const int wxSTC_MARK_ARROW = 2;
const int wxSTC_MARK_SMALLRECT = 3; const int wxSTC_MARK_SMALLRECT = 3;
const int wxSTC_MARK_SHORTARROW = 4; const int wxSTC_MARK_SHORTARROW = 4;
const int wxSTC_MARK_EMPTY = 5; const int wxSTC_MARK_EMPTY = 5;
const int wxSTC_MARK_ARROWDOWN = 6;
const int wxSTC_MARK_MINUS = 7;
const int wxSTC_MARK_PLUS = 8;
const int wxSTC_MARKNUM_FOLDER = 30;
const int wxSTC_MARKNUM_FOLDEROPEN= 31;
const int wxSTC_MASK_FOLDERS = ((1 << wxSTC_MARKNUM_FOLDER) | (1 << wxSTC_MARKNUM_FOLDEROPEN));
const int wxSTC_INDIC_MAX = 7;
const int wxSTC_INDIC_PLAIN = 0; const int wxSTC_INDIC_PLAIN = 0;
const int wxSTC_INDIC_SQUIGGLE = 1; const int wxSTC_INDIC_SQUIGGLE = 1;
const int wxSTC_INDIC_TT = 2; const int wxSTC_INDIC_TT = 2;
@@ -73,6 +81,12 @@ const int wxSTC_INDIC2_MASK = 128;
const int wxSTC_INDICS_MASK = (wxSTC_INDIC0_MASK | wxSTC_INDIC1_MASK | wxSTC_INDIC2_MASK); const int wxSTC_INDICS_MASK = (wxSTC_INDIC0_MASK | wxSTC_INDIC1_MASK | wxSTC_INDIC2_MASK);
const int wxSTC_FOLDLEVELBASE = 0x0400;
const int wxSTC_FOLDLEVELWHITEFLAG = 0x1000;
const int wxSTC_FOLDLEVELHEADERFLAG = 0x2000;
const int wxSTC_FOLDLEVELNUMBERMASK = 0x0FFF;
// key commands // key commands
enum { enum {
wxSTC_CMD_LINEDOWN = 2300, wxSTC_CMD_LINEDOWN = 2300,
@@ -158,13 +172,23 @@ extern const wxChar* wxSTCNameStr;
class wxStyledTextCtrl : public wxControl { class wxStyledTextCtrl : public wxControl {
public: public:
#ifdef SWIG
wxStyledTextCtrl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const char* name = wxSTCNameStr);
#else
wxStyledTextCtrl(wxWindow *parent, wxWindowID id, wxStyledTextCtrl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0, const wxSize& size = wxDefaultSize, long style = 0,
const wxString& name = wxSTCNameStr); const wxString& name = wxSTCNameStr);
~wxStyledTextCtrl(); #endif
#ifndef SWIG
~wxStyledTextCtrl();
#endif
// Text retrieval and modification // Text retrieval and modification
wxString GetText(); wxString GetText();
@@ -175,8 +199,10 @@ public:
bool GetReadOnly(); bool GetReadOnly();
wxString GetTextRange(int startPos, int endPos); wxString GetTextRange(int startPos, int endPos);
wxString GetStyledTextRange(int startPos, int endPos); wxString GetStyledTextRange(int startPos, int endPos);
#ifndef SWIG
void GetTextRange(int startPos, int endPos, char* buff); void GetTextRange(int startPos, int endPos, char* buff);
void GetStyledTextRange(int startPos, int endPos, char* buff); void GetStyledTextRange(int startPos, int endPos, char* buff);
#endif
void AddText(const wxString& text); void AddText(const wxString& text);
void AddStyledText(const wxString& text); void AddStyledText(const wxString& text);
void InsertText(int pos, const wxString& text); void InsertText(int pos, const wxString& text);
@@ -208,7 +234,11 @@ public:
// Selection and information // Selection and information
#ifdef SWIG
void GetSelection(int* OUTPUT, int* OUTPUT);
#else
void GetSelection(int* startPos, int* endPos); void GetSelection(int* startPos, int* endPos);
#endif
void SetSelection(int startPos, int endPos); void SetSelection(int startPos, int endPos);
wxString GetSelectedText(); wxString GetSelectedText();
void HideSelection(bool hide); void HideSelection(bool hide);
@@ -223,7 +253,7 @@ public:
int GetLineStartPos(int line); int GetLineStartPos(int line);
int GetLineLengthAtPos(int pos); int GetLineLengthAtPos(int pos);
int GetLineLength(int line); int GetLineLength(int line);
wxString GetCurrentLineText(int* linePos=NULL); wxString GetCurrentLineText();
int GetCurrentLine(); int GetCurrentLine();
int PositionFromPoint(wxPoint pt); int PositionFromPoint(wxPoint pt);
int LineFromPoint(wxPoint pt); int LineFromPoint(wxPoint pt);
@@ -401,10 +431,11 @@ public:
void ShowLines(int lineStart, int lineEnd); void ShowLines(int lineStart, int lineEnd);
void HideLines(int lineStart, int lineEnd); void HideLines(int lineStart, int lineEnd);
bool GetLineVisible(int line); bool GetLineVisible(int line);
void SetFoldExpanded(int line); void SetFoldExpanded(int line, bool expanded);
bool GetFoldExpanded(int line); bool GetFoldExpanded(int line);
void ToggleFold(int line); void ToggleFold(int line);
void EnsureVisible(int line); void EnsureVisible(int line);
void SetFoldFlags(int flags);
// Long Lines // Long Lines
@@ -424,7 +455,7 @@ public:
void SetKeywords(int keywordSet, const wxString& keywordList); void SetKeywords(int keywordSet, const wxString& keywordList);
#ifndef SWIG
private: private:
// Event handlers // Event handlers
void OnPaint(wxPaintEvent& evt); void OnPaint(wxPaintEvent& evt);
@@ -459,6 +490,7 @@ private:
friend class ScintillaWX; friend class ScintillaWX;
friend class Platform; friend class Platform;
#endif
}; };
//---------------------------------------------------------------------- //----------------------------------------------------------------------
@@ -543,6 +575,7 @@ enum {
wxEVT_STC_NEEDSHOWN wxEVT_STC_NEEDSHOWN
}; };
#ifndef SWIG
typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&); typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#define EVT_STC_CHANGE(id, fn) { wxEVT_STC_CHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_CHANGE(id, fn) { wxEVT_STC_CHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
@@ -557,6 +590,7 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#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_UNKNOWNCMDKEY(id, fn) { wxEVT_STC_UNKNOWNCMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#endif
//---------------------------------------------------------------------- //----------------------------------------------------------------------
//---------------------------------------------------------------------- //----------------------------------------------------------------------

View File

@@ -421,7 +421,7 @@ int wxStyledTextCtrl::GetCurrentLine() {
} }
wxString wxStyledTextCtrl::GetCurrentLineText(int* linePos) { wxString wxStyledTextCtrl::GetCurrentLineText(/*int* linePos*/) {
wxString text; wxString text;
int len = GetLineLength(GetCurrentLine()); int len = GetLineLength(GetCurrentLine());
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len+1);
@@ -429,8 +429,8 @@ wxString wxStyledTextCtrl::GetCurrentLineText(int* linePos) {
int pos = SendMsg(SCI_GETCURLINE, len+1, (long)buff); int pos = SendMsg(SCI_GETCURLINE, len+1, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf();
if (linePos) /* if (linePos)
*linePos = pos; *linePos = pos; */
return text; return text;
} }
@@ -1009,7 +1009,7 @@ int wxStyledTextCtrl::IndicatorGetStyle(int indicNum) {
void wxStyledTextCtrl::IndicatorSetColour(int indicNum, const wxColour& colour) { void wxStyledTextCtrl::IndicatorSetColour(int indicNum, const wxColour& colour) {
SendMsg(SCI_INDICSETSTYLE, indicNum, wxColourAsLong(colour)); SendMsg(SCI_INDICSETFORE, indicNum, wxColourAsLong(colour));
} }
@@ -1196,8 +1196,8 @@ bool wxStyledTextCtrl::GetLineVisible(int line) {
} }
void wxStyledTextCtrl::SetFoldExpanded(int line) { void wxStyledTextCtrl::SetFoldExpanded(int line, bool expanded) {
SendMsg(SCI_SETFOLDEXPANDED, line); SendMsg(SCI_SETFOLDEXPANDED, line, expanded);
} }
@@ -1216,6 +1216,11 @@ void wxStyledTextCtrl::EnsureVisible(int line) {
} }
void wxStyledTextCtrl::SetFoldFlags(int flags) {
SendMsg(SCI_SETFOLDFLAGS, flags);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Long Lines // Long Lines

View File

@@ -63,7 +63,15 @@ const int wxSTC_MARK_ARROW = 2;
const int wxSTC_MARK_SMALLRECT = 3; const int wxSTC_MARK_SMALLRECT = 3;
const int wxSTC_MARK_SHORTARROW = 4; const int wxSTC_MARK_SHORTARROW = 4;
const int wxSTC_MARK_EMPTY = 5; const int wxSTC_MARK_EMPTY = 5;
const int wxSTC_MARK_ARROWDOWN = 6;
const int wxSTC_MARK_MINUS = 7;
const int wxSTC_MARK_PLUS = 8;
const int wxSTC_MARKNUM_FOLDER = 30;
const int wxSTC_MARKNUM_FOLDEROPEN= 31;
const int wxSTC_MASK_FOLDERS = ((1 << wxSTC_MARKNUM_FOLDER) | (1 << wxSTC_MARKNUM_FOLDEROPEN));
const int wxSTC_INDIC_MAX = 7;
const int wxSTC_INDIC_PLAIN = 0; const int wxSTC_INDIC_PLAIN = 0;
const int wxSTC_INDIC_SQUIGGLE = 1; const int wxSTC_INDIC_SQUIGGLE = 1;
const int wxSTC_INDIC_TT = 2; const int wxSTC_INDIC_TT = 2;
@@ -73,6 +81,12 @@ const int wxSTC_INDIC2_MASK = 128;
const int wxSTC_INDICS_MASK = (wxSTC_INDIC0_MASK | wxSTC_INDIC1_MASK | wxSTC_INDIC2_MASK); const int wxSTC_INDICS_MASK = (wxSTC_INDIC0_MASK | wxSTC_INDIC1_MASK | wxSTC_INDIC2_MASK);
const int wxSTC_FOLDLEVELBASE = 0x0400;
const int wxSTC_FOLDLEVELWHITEFLAG = 0x1000;
const int wxSTC_FOLDLEVELHEADERFLAG = 0x2000;
const int wxSTC_FOLDLEVELNUMBERMASK = 0x0FFF;
// key commands // key commands
enum { enum {
wxSTC_CMD_LINEDOWN = 2300, wxSTC_CMD_LINEDOWN = 2300,
@@ -158,13 +172,23 @@ extern const wxChar* wxSTCNameStr;
class wxStyledTextCtrl : public wxControl { class wxStyledTextCtrl : public wxControl {
public: public:
#ifdef SWIG
wxStyledTextCtrl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0,
const char* name = wxSTCNameStr);
#else
wxStyledTextCtrl(wxWindow *parent, wxWindowID id, wxStyledTextCtrl(wxWindow *parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition, const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize, long style = 0, const wxSize& size = wxDefaultSize, long style = 0,
const wxString& name = wxSTCNameStr); const wxString& name = wxSTCNameStr);
~wxStyledTextCtrl(); #endif
#ifndef SWIG
~wxStyledTextCtrl();
#endif
// Text retrieval and modification // Text retrieval and modification
wxString GetText(); wxString GetText();
@@ -175,8 +199,10 @@ public:
bool GetReadOnly(); bool GetReadOnly();
wxString GetTextRange(int startPos, int endPos); wxString GetTextRange(int startPos, int endPos);
wxString GetStyledTextRange(int startPos, int endPos); wxString GetStyledTextRange(int startPos, int endPos);
#ifndef SWIG
void GetTextRange(int startPos, int endPos, char* buff); void GetTextRange(int startPos, int endPos, char* buff);
void GetStyledTextRange(int startPos, int endPos, char* buff); void GetStyledTextRange(int startPos, int endPos, char* buff);
#endif
void AddText(const wxString& text); void AddText(const wxString& text);
void AddStyledText(const wxString& text); void AddStyledText(const wxString& text);
void InsertText(int pos, const wxString& text); void InsertText(int pos, const wxString& text);
@@ -208,7 +234,11 @@ public:
// Selection and information // Selection and information
#ifdef SWIG
void GetSelection(int* OUTPUT, int* OUTPUT);
#else
void GetSelection(int* startPos, int* endPos); void GetSelection(int* startPos, int* endPos);
#endif
void SetSelection(int startPos, int endPos); void SetSelection(int startPos, int endPos);
wxString GetSelectedText(); wxString GetSelectedText();
void HideSelection(bool hide); void HideSelection(bool hide);
@@ -223,7 +253,7 @@ public:
int GetLineStartPos(int line); int GetLineStartPos(int line);
int GetLineLengthAtPos(int pos); int GetLineLengthAtPos(int pos);
int GetLineLength(int line); int GetLineLength(int line);
wxString GetCurrentLineText(int* linePos=NULL); wxString GetCurrentLineText();
int GetCurrentLine(); int GetCurrentLine();
int PositionFromPoint(wxPoint pt); int PositionFromPoint(wxPoint pt);
int LineFromPoint(wxPoint pt); int LineFromPoint(wxPoint pt);
@@ -401,10 +431,11 @@ public:
void ShowLines(int lineStart, int lineEnd); void ShowLines(int lineStart, int lineEnd);
void HideLines(int lineStart, int lineEnd); void HideLines(int lineStart, int lineEnd);
bool GetLineVisible(int line); bool GetLineVisible(int line);
void SetFoldExpanded(int line); void SetFoldExpanded(int line, bool expanded);
bool GetFoldExpanded(int line); bool GetFoldExpanded(int line);
void ToggleFold(int line); void ToggleFold(int line);
void EnsureVisible(int line); void EnsureVisible(int line);
void SetFoldFlags(int flags);
// Long Lines // Long Lines
@@ -424,7 +455,7 @@ public:
void SetKeywords(int keywordSet, const wxString& keywordList); void SetKeywords(int keywordSet, const wxString& keywordList);
#ifndef SWIG
private: private:
// Event handlers // Event handlers
void OnPaint(wxPaintEvent& evt); void OnPaint(wxPaintEvent& evt);
@@ -459,6 +490,7 @@ private:
friend class ScintillaWX; friend class ScintillaWX;
friend class Platform; friend class Platform;
#endif
}; };
//---------------------------------------------------------------------- //----------------------------------------------------------------------
@@ -543,6 +575,7 @@ enum {
wxEVT_STC_NEEDSHOWN wxEVT_STC_NEEDSHOWN
}; };
#ifndef SWIG
typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&); typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#define EVT_STC_CHANGE(id, fn) { wxEVT_STC_CHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL }, #define EVT_STC_CHANGE(id, fn) { wxEVT_STC_CHANGE, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
@@ -557,6 +590,7 @@ typedef void (wxEvtHandler::*wxStyledTextEventFunction)(wxStyledTextEvent&);
#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_UNKNOWNCMDKEY(id, fn) { wxEVT_STC_UNKNOWNCMDKEY, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxStyledTextEventFunction) & fn, (wxObject *) NULL },
#endif
//---------------------------------------------------------------------- //----------------------------------------------------------------------
//---------------------------------------------------------------------- //----------------------------------------------------------------------

View File

@@ -421,7 +421,7 @@ int wxStyledTextCtrl::GetCurrentLine() {
} }
wxString wxStyledTextCtrl::GetCurrentLineText(int* linePos) { wxString wxStyledTextCtrl::GetCurrentLineText(/*int* linePos*/) {
wxString text; wxString text;
int len = GetLineLength(GetCurrentLine()); int len = GetLineLength(GetCurrentLine());
char* buff = text.GetWriteBuf(len+1); char* buff = text.GetWriteBuf(len+1);
@@ -429,8 +429,8 @@ wxString wxStyledTextCtrl::GetCurrentLineText(int* linePos) {
int pos = SendMsg(SCI_GETCURLINE, len+1, (long)buff); int pos = SendMsg(SCI_GETCURLINE, len+1, (long)buff);
text.UngetWriteBuf(); text.UngetWriteBuf();
if (linePos) /* if (linePos)
*linePos = pos; *linePos = pos; */
return text; return text;
} }
@@ -1009,7 +1009,7 @@ int wxStyledTextCtrl::IndicatorGetStyle(int indicNum) {
void wxStyledTextCtrl::IndicatorSetColour(int indicNum, const wxColour& colour) { void wxStyledTextCtrl::IndicatorSetColour(int indicNum, const wxColour& colour) {
SendMsg(SCI_INDICSETSTYLE, indicNum, wxColourAsLong(colour)); SendMsg(SCI_INDICSETFORE, indicNum, wxColourAsLong(colour));
} }
@@ -1196,8 +1196,8 @@ bool wxStyledTextCtrl::GetLineVisible(int line) {
} }
void wxStyledTextCtrl::SetFoldExpanded(int line) { void wxStyledTextCtrl::SetFoldExpanded(int line, bool expanded) {
SendMsg(SCI_SETFOLDEXPANDED, line); SendMsg(SCI_SETFOLDEXPANDED, line, expanded);
} }
@@ -1216,6 +1216,11 @@ void wxStyledTextCtrl::EnsureVisible(int line) {
} }
void wxStyledTextCtrl::SetFoldFlags(int flags) {
SendMsg(SCI_SETFOLDFLAGS, flags);
}
//---------------------------------------------------------------------- //----------------------------------------------------------------------
// Long Lines // Long Lines