////////////////////////////////////////////////////////////////////////////
-// Name: stc.h
+// Name: wx/stc/stc.h
// Purpose: A wxWidgets implementation of Scintilla. This class is the
// one meant to be used directly by wx applications. It does not
// derive directly from the Scintilla classes, and in fact there
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
-#ifndef __stc_h__
-#define __stc_h__
+/*
+ IMPORTANT: include/wx/stc/stc.h is generated by src/stc/gen_iface.py from
+ src/stc/stc.h.in, don't edit stc.h file as your changes will be
+ lost after the next regeneration, edit stc.h.in and rerun the
+ gen_iface.py script instead!
+ Parts of this file generated by the script are found in between
+ the special "{{{" and "}}}" markers, the rest of it is copied
+ verbatim from src.h.in.
+ */
-#include "wx/wx.h"
-#include "wx/dnd.h"
+#ifndef _WX_STC_STC_H_
+#define _WX_STC_STC_H_
+#include "wx/defs.h"
-#ifdef WXMAKINGDLL_STC
- #define WXDLLIMPEXP_STC WXEXPORT
-#elif defined(WXUSINGDLL)
- #define WXDLLIMPEXP_STC WXIMPORT
-#else // not making nor using DLL
- #define WXDLLIMPEXP_STC
-#endif
+#if wxUSE_STC
+
+#include "wx/control.h"
+#include "wx/dnd.h"
+#include "wx/stopwatch.h"
+#include "wx/textentry.h"
+#if wxUSE_TEXTCTRL
+ #include "wx/textctrl.h"
+#endif // wxUSE_TEXTCTRL
+
+class WXDLLIMPEXP_FWD_CORE wxScrollBar;
// SWIG can't handle "#if" type of conditionals, only "#ifdef"
#ifdef SWIG
#endif
#endif
-//----------------------------------------------------------------------
-
-// Should a wxPopupWindow be used for the call tips and autocomplete windows?
-#ifndef wxSTC_USE_POPUP
-#define wxSTC_USE_POPUP 1
-#endif
//----------------------------------------------------------------------
-// BEGIN generated section. The following code is automatically generated
-// by gen_iface.py. Do not edit this file. Edit stc.h.in instead
-// and regenerate
+// STC constants generated section {{{
#define wxSTC_INVALID_POSITION -1
#define wxSTC_STYLE_INDENTGUIDE 37
#define wxSTC_STYLE_CALLTIP 38
#define wxSTC_STYLE_LASTPREDEFINED 39
-#define wxSTC_STYLE_MAX 127
+#define wxSTC_STYLE_MAX 255
// Character set identifiers are used in StyleSetCharacterSet.
// The values are the same as the Windows *_CHARSET values.
#define wxSTC_CASE_MIXED 0
#define wxSTC_CASE_UPPER 1
#define wxSTC_CASE_LOWER 2
-#define wxSTC_INDIC_MAX 7
+
+// Indicator style enumeration and some constants
#define wxSTC_INDIC_PLAIN 0
#define wxSTC_INDIC_SQUIGGLE 1
#define wxSTC_INDIC_TT 2
#define wxSTC_INDIC_HIDDEN 5
#define wxSTC_INDIC_BOX 6
#define wxSTC_INDIC_ROUNDBOX 7
+#define wxSTC_INDIC_MAX 31
+#define wxSTC_INDIC_CONTAINER 8
#define wxSTC_INDIC0_MASK 0x20
#define wxSTC_INDIC1_MASK 0x40
#define wxSTC_INDIC2_MASK 0x80
#define wxSTC_INDICS_MASK 0xE0
+#define wxSTC_IV_NONE 0
+#define wxSTC_IV_REAL 1
+#define wxSTC_IV_LOOKFORWARD 2
+#define wxSTC_IV_LOOKBOTH 3
// PrintColourMode - use same colours as screen.
#define wxSTC_PRINT_NORMAL 0
// where most code reside, and the lines after the caret, eg. the body of a function.
#define wxSTC_CARET_EVEN 0x08
-// Selection modes
+// Selection Modes
#define wxSTC_SEL_STREAM 0
#define wxSTC_SEL_RECTANGLE 1
#define wxSTC_SEL_LINES 2
#define wxSTC_ALPHA_OPAQUE 255
#define wxSTC_ALPHA_NOALPHA 256
+// Caret Styles
+#define wxSTC_CARETSTYLE_INVISIBLE 0
+#define wxSTC_CARETSTYLE_LINE 1
+#define wxSTC_CARETSTYLE_BLOCK 2
+
// Maximum value of keywordSet parameter of SetKeyWords.
#define wxSTC_KEYWORDSET_MAX 8
#define wxSTC_MOD_BEFOREINSERT 0x400
#define wxSTC_MOD_BEFOREDELETE 0x800
#define wxSTC_MULTILINEUNDOREDO 0x1000
-#define wxSTC_MODEVENTMASKALL 0x1FFF
+#define wxSTC_STARTACTION 0x2000
+#define wxSTC_MOD_CHANGEINDICATOR 0x4000
+#define wxSTC_MOD_CHANGELINESTATE 0x8000
+#define wxSTC_MODEVENTMASKALL 0xFFFF
// Symbolic key codes and modifier flags.
// ASCII and other printable characters below 256.
#define wxSTC_KEY_ADD 310
#define wxSTC_KEY_SUBTRACT 311
#define wxSTC_KEY_DIVIDE 312
+#define wxSTC_KEY_WIN 313
+#define wxSTC_KEY_RWIN 314
+#define wxSTC_KEY_MENU 315
#define wxSTC_SCMOD_NORM 0
#define wxSTC_SCMOD_SHIFT 1
#define wxSTC_SCMOD_CTRL 2
#define wxSTC_LEX_INNOSETUP 76
#define wxSTC_LEX_OPAL 77
#define wxSTC_LEX_SPICE 78
+#define wxSTC_LEX_D 79
+#define wxSTC_LEX_CMAKE 80
+#define wxSTC_LEX_GAP 81
+#define wxSTC_LEX_PLM 82
+#define wxSTC_LEX_PROGRESS 83
+#define wxSTC_LEX_ABAQUS 84
+#define wxSTC_LEX_ASYMPTOTE 85
+#define wxSTC_LEX_R 86
// When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
// value assigned in sequence from SCLEX_AUTOMATIC+1.
#define wxSTC_C_COMMENTDOCKEYWORDERROR 18
#define wxSTC_C_GLOBALCLASS 19
+// Lexical states for SCLEX_D
+#define wxSTC_D_DEFAULT 0
+#define wxSTC_D_COMMENT 1
+#define wxSTC_D_COMMENTLINE 2
+#define wxSTC_D_COMMENTDOC 3
+#define wxSTC_D_COMMENTNESTED 4
+#define wxSTC_D_NUMBER 5
+#define wxSTC_D_WORD 6
+#define wxSTC_D_WORD2 7
+#define wxSTC_D_WORD3 8
+#define wxSTC_D_TYPEDEF 9
+#define wxSTC_D_STRING 10
+#define wxSTC_D_STRINGEOL 11
+#define wxSTC_D_CHARACTER 12
+#define wxSTC_D_OPERATOR 13
+#define wxSTC_D_IDENTIFIER 14
+#define wxSTC_D_COMMENTLINEDOC 15
+#define wxSTC_D_COMMENTDOCKEYWORD 16
+#define wxSTC_D_COMMENTDOCKEYWORDERROR 17
+
// Lexical states for SCLEX_TCL
#define wxSTC_TCL_DEFAULT 0
#define wxSTC_TCL_COMMENT 1
#define wxSTC_PL_STRING_QR 29
#define wxSTC_PL_STRING_QW 30
#define wxSTC_PL_POD_VERB 31
+#define wxSTC_PL_SUB_PROTOTYPE 40
+#define wxSTC_PL_FORMAT_IDENT 41
+#define wxSTC_PL_FORMAT 42
// Lexical states for SCLEX_RUBY
#define wxSTC_RB_DEFAULT 0
#define wxSTC_ERR_ABSF 18
#define wxSTC_ERR_TIDY 19
#define wxSTC_ERR_JAVA_STACK 20
+#define wxSTC_ERR_VALUE 21
// Lexical states for SCLEX_BATCH
#define wxSTC_BAT_DEFAULT 0
#define wxSTC_YAML_DOCUMENT 6
#define wxSTC_YAML_TEXT 7
#define wxSTC_YAML_ERROR 8
+#define wxSTC_YAML_OPERATOR 9
// Lexical states for SCLEX_TEX
#define wxSTC_TEX_DEFAULT 0
#define wxSTC_T3_USER1 17
#define wxSTC_T3_USER2 18
#define wxSTC_T3_USER3 19
+#define wxSTC_T3_BRACE 20
// Lexical states for SCLEX_REBOL
#define wxSTC_REBOL_DEFAULT 0
#define wxSTC_SPICE_VALUE 7
#define wxSTC_SPICE_COMMENTLINE 8
+// Lexical states for SCLEX_CMAKE
+#define wxSTC_CMAKE_DEFAULT 0
+#define wxSTC_CMAKE_COMMENT 1
+#define wxSTC_CMAKE_STRINGDQ 2
+#define wxSTC_CMAKE_STRINGLQ 3
+#define wxSTC_CMAKE_STRINGRQ 4
+#define wxSTC_CMAKE_COMMANDS 5
+#define wxSTC_CMAKE_PARAMETERS 6
+#define wxSTC_CMAKE_VARIABLE 7
+#define wxSTC_CMAKE_USERDEFINED 8
+#define wxSTC_CMAKE_WHILEDEF 9
+#define wxSTC_CMAKE_FOREACHDEF 10
+#define wxSTC_CMAKE_IFDEFINEDEF 11
+#define wxSTC_CMAKE_MACRODEF 12
+#define wxSTC_CMAKE_STRINGVAR 13
+#define wxSTC_CMAKE_NUMBER 14
+
+// Lexical states for SCLEX_GAP
+#define wxSTC_GAP_DEFAULT 0
+#define wxSTC_GAP_IDENTIFIER 1
+#define wxSTC_GAP_KEYWORD 2
+#define wxSTC_GAP_KEYWORD2 3
+#define wxSTC_GAP_KEYWORD3 4
+#define wxSTC_GAP_KEYWORD4 5
+#define wxSTC_GAP_STRING 6
+#define wxSTC_GAP_CHAR 7
+#define wxSTC_GAP_OPERATOR 8
+#define wxSTC_GAP_COMMENT 9
+#define wxSTC_GAP_NUMBER 10
+#define wxSTC_GAP_STRINGEOL 11
+
+// Lexical state for SCLEX_PLM
+#define wxSTC_PLM_DEFAULT 0
+#define wxSTC_PLM_COMMENT 1
+#define wxSTC_PLM_STRING 2
+#define wxSTC_PLM_NUMBER 3
+#define wxSTC_PLM_IDENTIFIER 4
+#define wxSTC_PLM_OPERATOR 5
+#define wxSTC_PLM_CONTROL 6
+#define wxSTC_PLM_KEYWORD 7
+
+// Lexical state for SCLEX_PROGRESS
+#define wxSTC_4GL_DEFAULT 0
+#define wxSTC_4GL_NUMBER 1
+#define wxSTC_4GL_WORD 2
+#define wxSTC_4GL_STRING 3
+#define wxSTC_4GL_CHARACTER 4
+#define wxSTC_4GL_PREPROCESSOR 5
+#define wxSTC_4GL_OPERATOR 6
+#define wxSTC_4GL_IDENTIFIER 7
+#define wxSTC_4GL_BLOCK 8
+#define wxSTC_4GL_END 9
+#define wxSTC_4GL_COMMENT1 10
+#define wxSTC_4GL_COMMENT2 11
+#define wxSTC_4GL_COMMENT3 12
+#define wxSTC_4GL_COMMENT4 13
+#define wxSTC_4GL_COMMENT5 14
+#define wxSTC_4GL_COMMENT6 15
+#define wxSTC_4GL_DEFAULT_ 16
+#define wxSTC_4GL_NUMBER_ 17
+#define wxSTC_4GL_WORD_ 18
+#define wxSTC_4GL_STRING_ 19
+#define wxSTC_4GL_CHARACTER_ 20
+#define wxSTC_4GL_PREPROCESSOR_ 21
+#define wxSTC_4GL_OPERATOR_ 22
+#define wxSTC_4GL_IDENTIFIER_ 23
+#define wxSTC_4GL_BLOCK_ 24
+#define wxSTC_4GL_END_ 25
+#define wxSTC_4GL_COMMENT1_ 26
+#define wxSTC_4GL_COMMENT2_ 27
+#define wxSTC_4GL_COMMENT3_ 28
+#define wxSTC_4GL_COMMENT4_ 29
+#define wxSTC_4GL_COMMENT5_ 30
+#define wxSTC_4GL_COMMENT6_ 31
+
+// Lexical states for SCLEX_ABAQUS
+#define wxSTC_ABAQUS_DEFAULT 0
+#define wxSTC_ABAQUS_COMMENT 1
+#define wxSTC_ABAQUS_COMMENTBLOCK 2
+#define wxSTC_ABAQUS_NUMBER 3
+#define wxSTC_ABAQUS_STRING 4
+#define wxSTC_ABAQUS_OPERATOR 5
+#define wxSTC_ABAQUS_WORD 6
+#define wxSTC_ABAQUS_PROCESSOR 7
+#define wxSTC_ABAQUS_COMMAND 8
+#define wxSTC_ABAQUS_SLASHCOMMAND 9
+#define wxSTC_ABAQUS_STARCOMMAND 10
+#define wxSTC_ABAQUS_ARGUMENT 11
+#define wxSTC_ABAQUS_FUNCTION 12
+
+// Lexical states for SCLEX_ASYMPTOTE
+#define wxSTC_ASY_DEFAULT 0
+#define wxSTC_ASY_COMMENT 1
+#define wxSTC_ASY_COMMENTLINE 2
+#define wxSTC_ASY_NUMBER 3
+#define wxSTC_ASY_WORD 4
+#define wxSTC_ASY_STRING 5
+#define wxSTC_ASY_CHARACTER 6
+#define wxSTC_ASY_OPERATOR 7
+#define wxSTC_ASY_IDENTIFIER 8
+#define wxSTC_ASY_STRINGEOL 9
+#define wxSTC_ASY_COMMENTLINEDOC 10
+#define wxSTC_ASY_WORD2 11
+
+// Lexical states for SCLEX_R
+#define wxSTC_R_DEFAULT 0
+#define wxSTC_R_COMMENT 1
+#define wxSTC_R_KWORD 2
+#define wxSTC_R_BASEKWORD 3
+#define wxSTC_R_OTHERKWORD 4
+#define wxSTC_R_NUMBER 5
+#define wxSTC_R_STRING 6
+#define wxSTC_R_STRING2 7
+#define wxSTC_R_OPERATOR 8
+#define wxSTC_R_IDENTIFIER 9
+#define wxSTC_R_INFIX 10
+#define wxSTC_R_INFIXEOL 11
+
+//}}}
+//----------------------------------------------------------------------
-//-----------------------------------------
-// Commands that can be bound to keystrokes
+//----------------------------------------------------------------------
+// Commands that can be bound to keystrokes section {{{
// Redoes the next action on the undo history.
// Delete the word to the right of the caret.
#define wxSTC_CMD_DELWORDRIGHT 2336
+// Delete the word to the right of the caret, but not the trailing non-word characters.
+#define wxSTC_CMD_DELWORDRIGHTEND 2518
+
// Cut the line containing the caret.
#define wxSTC_CMD_LINECUT 2337
// Move caret right one word, position cursor at end of word, extending selection to new caret position.
#define wxSTC_CMD_WORDRIGHTENDEXTEND 2442
-
-// END of generated section
+//}}}
//----------------------------------------------------------------------
class ScintillaWX; // forward declare
struct SCNotification;
#ifndef SWIG
-extern WXDLLIMPEXP_STC const wxChar* wxSTCNameStr;
-class WXDLLIMPEXP_STC wxStyledTextCtrl;
-class WXDLLIMPEXP_STC wxStyledTextEvent;
+extern WXDLLIMPEXP_DATA_STC(const char) wxSTCNameStr[];
+class WXDLLIMPEXP_FWD_STC wxStyledTextCtrl;
+class WXDLLIMPEXP_FWD_STC wxStyledTextEvent;
#endif
//----------------------------------------------------------------------
-class WXDLLIMPEXP_STC wxStyledTextCtrl : public wxControl {
+class WXDLLIMPEXP_STC wxStyledTextCtrl : public wxControl
+ , public wxTextEntryBase
+#if wxUSE_TEXTCTRL
+ , public wxTextAreaBase
+#endif // wxUSE_TEXTCTRL
+{
public:
#ifdef SWIG
const wxString& name = wxSTCNameStr);
-//----------------------------------------------------------------------
-// BEGIN generated section. The following code is automatically generated
-// by gen_iface.py. Do not edit this file. Edit stc.h.in instead
-// and regenerate
+ //----------------------------------------------------------------------
+ // Generated method declaration section {{{
// Add text to the document at current position.
void ClearDocumentStyle();
// Returns the number of characters in the document.
- int GetLength();
+ int GetLength() const;
// Returns the character byte at the position.
- int GetCharAt(int pos);
+ int GetCharAt(int pos) const;
// Returns the position of the caret.
- int GetCurrentPos();
+ int GetCurrentPos() const;
// Returns the position of the opposite end of the selection to the caret.
- int GetAnchor();
+ int GetAnchor() const;
// Returns the style byte at the position.
- int GetStyleAt(int pos);
+ int GetStyleAt(int pos) const;
// Redoes the next action on the undo history.
void Redo();
wxMemoryBuffer GetStyledText(int startPos, int endPos);
// Are there any redoable actions in the undo history?
- bool CanRedo();
+ bool CanRedo() const;
// Retrieve the line number at which a particular marker is located.
int MarkerLineFromHandle(int handle);
void MarkerDeleteHandle(int handle);
// Is undo history being collected?
- bool GetUndoCollection();
+ bool GetUndoCollection() const;
// Are white space characters currently visible?
// Returns one of SCWS_* constants.
- int GetViewWhiteSpace();
+ int GetViewWhiteSpace() const;
// Make white space characters invisible, always visible or visible outside indentation.
void SetViewWhiteSpace(int viewWS);
// Find the position from a point within the window.
- int PositionFromPoint(wxPoint pt);
+ int PositionFromPoint(wxPoint pt) const;
// Find the position from a point within the window but return
// INVALID_POSITION if not close to text.
#endif
// Retrieve the position of the last correctly styled character.
- int GetEndStyled();
+ int GetEndStyled() const;
// Convert all line endings in the document to one mode.
void ConvertEOLs(int eolMode);
// Retrieve the current end of line mode - one of CRLF, CR, or LF.
- int GetEOLMode();
+ int GetEOLMode() const;
// Set the current end of line mode.
void SetEOLMode(int eolMode);
void SetStyling(int length, int style);
// Is drawing done first into a buffer or direct to the screen?
- bool GetBufferedDraw();
+ bool GetBufferedDraw() const;
// If drawing is buffered then each line of text is drawn into a bitmap buffer
// before drawing it to the screen to avoid flicker.
void SetTabWidth(int tabWidth);
// Retrieve the visible size of a tab.
- int GetTabWidth();
+ int GetTabWidth() const;
// Set the code page used to interpret the bytes of the document as characters.
void SetCodePage(int codePage);
void SetMarginType(int margin, int marginType);
// Retrieve the type of a margin.
- int GetMarginType(int margin);
+ int GetMarginType(int margin) const;
// Set the width of a margin to a width expressed in pixels.
void SetMarginWidth(int margin, int pixelWidth);
// Retrieve the width of a margin in pixels.
- int GetMarginWidth(int margin);
+ int GetMarginWidth(int margin) const;
// Set a mask that determines which markers are displayed in a margin.
void SetMarginMask(int margin, int mask);
// Retrieve the marker mask of a margin.
- int GetMarginMask(int margin);
+ int GetMarginMask(int margin) const;
// Make a margin sensitive or insensitive to mouse clicks.
void SetMarginSensitive(int margin, bool sensitive);
// Retrieve the mouse click sensitivity of a margin.
- bool GetMarginSensitive(int margin);
+ bool GetMarginSensitive(int margin) const;
// Clear all the styles and make equivalent to the global default style.
void StyleClearAll();
// Set a style to be underlined or not.
void StyleSetUnderline(int style, bool underline);
+ // Get the foreground colour of a style.
+ wxColour StyleGetForeground(int style) const;
+
+ // Get the background colour of a style.
+ wxColour StyleGetBackground(int style) const;
+
+ // Get is a style bold or not.
+ bool StyleGetBold(int style) const;
+
+ // Get is a style italic or not.
+ bool StyleGetItalic(int style) const;
+
+ // Get the size of characters of a style.
+ int StyleGetSize(int style) const;
+
+ // Get the font facename of a style
+ wxString StyleGetFaceName(int style);
+
+ // Get is a style to have its end of line filled or not.
+ bool StyleGetEOLFilled(int style) const;
+
+ // Get is a style underlined or not.
+ bool StyleGetUnderline(int style) const;
+
+ // Get is a style mixed case, or to force upper or lower case.
+ int StyleGetCase(int style) const;
+
+ // Get the character set of the font in a style.
+ int StyleGetCharacterSet(int style) const;
+
+ // Get is a style visible or not.
+ bool StyleGetVisible(int style) const;
+
+ // Get is a style changeable or not (read only).
+ // Experimental feature, currently buggy.
+ bool StyleGetChangeable(int style) const;
+
+ // Get is a style a hotspot or not.
+ bool StyleGetHotSpot(int style) const;
+
// Set a style to be mixed case, or to force upper or lower case.
void StyleSetCase(int style, int caseForce);
void SetSelBackground(bool useSetting, const wxColour& back);
// Get the alpha of the selection.
- int GetSelAlpha();
+ int GetSelAlpha() const;
// Set the alpha of the selection.
void SetSelAlpha(int alpha);
+ // Is the selection end of line filled?
+ bool GetSelEOLFilled() const;
+
+ // Set the selection to have its end of line filled or not.
+ void SetSelEOLFilled(bool filled);
+
// Set the foreground colour of the caret.
void SetCaretForeground(const wxColour& fore);
void StyleSetVisible(int style, bool visible);
// Get the time in milliseconds that the caret is on and off.
- int GetCaretPeriod();
+ int GetCaretPeriod() const;
// Get the time in milliseconds that the caret is on and off. 0 = steady on.
void SetCaretPeriod(int periodMilliseconds);
void IndicatorSetStyle(int indic, int style);
// Retrieve the style of an indicator.
- int IndicatorGetStyle(int indic);
+ int IndicatorGetStyle(int indic) const;
// Set the foreground colour of an indicator.
void IndicatorSetForeground(int indic, const wxColour& fore);
// Retrieve the foreground colour of an indicator.
- wxColour IndicatorGetForeground(int indic);
+ wxColour IndicatorGetForeground(int indic) const;
+
+ // Set an indicator to draw under text or over(default).
+ void IndicatorSetUnder(int indic, bool under);
+
+ // Retrieve whether indicator drawn under or over text.
+ bool IndicatorGetUnder(int indic) const;
// Set the foreground colour of all whitespace and whether to use this setting.
void SetWhitespaceForeground(bool useSetting, const wxColour& fore);
void SetStyleBits(int bits);
// Retrieve number of bits in style bytes used to hold the lexical state.
- int GetStyleBits();
+ int GetStyleBits() const;
// Used to hold extra styling information for each line.
void SetLineState(int line, int state);
// Retrieve the extra styling information for a line.
- int GetLineState(int line);
+ int GetLineState(int line) const;
// Retrieve the last line number that has line state.
- int GetMaxLineState();
+ int GetMaxLineState() const;
// Is the background of the line containing the caret in a different colour?
- bool GetCaretLineVisible();
+ bool GetCaretLineVisible() const;
// Display the background of the line containing the caret in a different colour.
void SetCaretLineVisible(bool show);
// Get the colour of the background of the line containing the caret.
- wxColour GetCaretLineBack();
+ wxColour GetCaretLineBackground() const;
// Set the colour of the background of the line containing the caret.
- void SetCaretLineBack(const wxColour& back);
+ void SetCaretLineBackground(const wxColour& back);
// Set a style to be changeable or not (read only).
// Experimental feature, currently buggy.
void AutoCompSetSeparator(int separatorCharacter);
// Retrieve the auto-completion list separator character.
- int AutoCompGetSeparator();
+ int AutoCompGetSeparator() const;
// Select the item in the auto-completion list that starts with a string.
void AutoCompSelect(const wxString& text);
void AutoCompSetCancelAtStart(bool cancel);
// Retrieve whether auto-completion cancelled by backspacing before start.
- bool AutoCompGetCancelAtStart();
+ bool AutoCompGetCancelAtStart() const;
// Define a set of characters that when typed will cause the autocompletion to
// choose the selected item.
void AutoCompSetChooseSingle(bool chooseSingle);
// Retrieve whether a single item auto-completion list automatically choose the item.
- bool AutoCompGetChooseSingle();
+ bool AutoCompGetChooseSingle() const;
// Set whether case is significant when performing auto-completion searches.
void AutoCompSetIgnoreCase(bool ignoreCase);
// Retrieve state of ignore case flag.
- bool AutoCompGetIgnoreCase();
+ bool AutoCompGetIgnoreCase() const;
// Display a list of strings and send notification when user chooses one.
void UserListShow(int listType, const wxString& itemList);
void AutoCompSetAutoHide(bool autoHide);
// Retrieve whether or not autocompletion is hidden automatically when nothing matches.
- bool AutoCompGetAutoHide();
+ bool AutoCompGetAutoHide() const;
// Set whether or not autocompletion deletes any word characters
// after the inserted text upon completion.
// Retrieve whether or not autocompletion deletes any word characters
// after the inserted text upon completion.
- bool AutoCompGetDropRestOfWord();
+ bool AutoCompGetDropRestOfWord() const;
// Register an image for use in autocompletion lists.
void RegisterImage(int type, const wxBitmap& bmp);
void ClearRegisteredImages();
// Retrieve the auto-completion list type-separator character.
- int AutoCompGetTypeSeparator();
+ int AutoCompGetTypeSeparator() const;
// Change the type-separator character in the string setting up an auto-completion list.
// Default is '?' but can be changed if items contain '?'.
void AutoCompSetMaxWidth(int characterCount);
// Get the maximum width, in characters, of auto-completion and user lists.
- int AutoCompGetMaxWidth();
+ int AutoCompGetMaxWidth() const;
// Set the maximum height, in rows, of auto-completion and user lists.
// The default is 5 rows.
void AutoCompSetMaxHeight(int rowCount);
// Set the maximum height, in rows, of auto-completion and user lists.
- int AutoCompGetMaxHeight();
+ int AutoCompGetMaxHeight() const;
// Set the number of spaces used for one level of indentation.
void SetIndent(int indentSize);
// Retrieve indentation size.
- int GetIndent();
+ int GetIndent() const;
// Indentation will only use space characters if useTabs is false, otherwise
// it will use a combination of tabs and spaces.
void SetUseTabs(bool useTabs);
// Retrieve whether tabs will be used in indentation.
- bool GetUseTabs();
+ bool GetUseTabs() const;
// Change the indentation of a line to a number of columns.
void SetLineIndentation(int line, int indentSize);
// Retrieve the number of columns that a line is indented.
- int GetLineIndentation(int line);
+ int GetLineIndentation(int line) const;
// Retrieve the position before the first non indentation character on a line.
- int GetLineIndentPosition(int line);
+ int GetLineIndentPosition(int line) const;
// Retrieve the column number of a position, taking tab width into account.
- int GetColumn(int pos);
+ int GetColumn(int pos) const;
// Show or hide the horizontal scroll bar.
void SetUseHorizontalScrollBar(bool show);
// Is the horizontal scroll bar visible?
- bool GetUseHorizontalScrollBar();
+ bool GetUseHorizontalScrollBar() const;
// Show or hide indentation guides.
- void SetIndentationGuides(bool show);
+ void SetIndentationGuides(int indentView);
// Are the indentation guides visible?
- bool GetIndentationGuides();
+ int GetIndentationGuides() const;
// Set the highlighted indentation guide column.
// 0 = no highlighted guide.
void SetHighlightGuide(int column);
// Get the highlighted indentation guide column.
- int GetHighlightGuide();
+ int GetHighlightGuide() const;
// Get the position after the last visible characters on a line.
- int GetLineEndPosition(int line);
+ int GetLineEndPosition(int line) const;
// Get the code page used to interpret the bytes of the document as characters.
- int GetCodePage();
+ int GetCodePage() const;
// Get the foreground colour of the caret.
- wxColour GetCaretForeground();
+ wxColour GetCaretForeground() const;
// In read-only mode?
- bool GetReadOnly();
+ bool GetReadOnly() const;
// Sets the position of the caret.
void SetCurrentPos(int pos);
void SetSelectionStart(int pos);
// Returns the position at the start of the selection.
- int GetSelectionStart();
+ int GetSelectionStart() const;
// Sets the position that ends the selection - this becomes the currentPosition.
void SetSelectionEnd(int pos);
// Returns the position at the end of the selection.
- int GetSelectionEnd();
+ int GetSelectionEnd() const;
// Sets the print magnification added to the point size of each style for printing.
void SetPrintMagnification(int magnification);
// Returns the print magnification.
- int GetPrintMagnification();
+ int GetPrintMagnification() const;
// Modify colours when printing for clearer printed text.
void SetPrintColourMode(int mode);
// Returns the print colour mode.
- int GetPrintColourMode();
+ int GetPrintColourMode() const;
// Find some text in the document.
int FindText(int minPos, int maxPos, const wxString& text, int flags=0);
int startPos,
int endPos,
wxDC* draw,
- wxDC* target,
+ wxDC* target,
wxRect renderRect,
wxRect pageRect);
// Retrieve the display line at the top of the display.
- int GetFirstVisibleLine();
+ int GetFirstVisibleLine() const;
// Retrieve the contents of a line.
- wxString GetLine(int line);
+ wxString GetLine(int line) const;
// Returns the number of lines in the document. There is always at least one.
- int GetLineCount();
+ int GetLineCount() const;
// Sets the size in pixels of the left margin.
void SetMarginLeft(int pixelWidth);
// Returns the size in pixels of the left margin.
- int GetMarginLeft();
+ int GetMarginLeft() const;
// Sets the size in pixels of the right margin.
void SetMarginRight(int pixelWidth);
// Returns the size in pixels of the right margin.
- int GetMarginRight();
+ int GetMarginRight() const;
// Is the document different from when it was last saved?
- bool GetModify();
-
- // Select a range of text.
- void SetSelection(int start, int end);
+ bool GetModify() const;
// Retrieve the selected text.
wxString GetSelectedText();
void HideSelection(bool normal);
// Retrieve the line containing a position.
- int LineFromPosition(int pos);
+ int LineFromPosition(int pos) const;
// Retrieve the position at the start of a line.
- int PositionFromLine(int line);
+ int PositionFromLine(int line) const;
// Scroll horizontally and vertically.
void LineScroll(int columns, int lines);
void SetReadOnly(bool readOnly);
// Will a paste succeed?
- bool CanPaste();
+ bool CanPaste() const;
// Are there any undoable actions in the undo history?
- bool CanUndo();
+ bool CanUndo() const;
// Delete the undo history.
void EmptyUndoBuffer();
void SetText(const wxString& text);
// Retrieve all the text in the document.
- wxString GetText();
+ wxString GetText() const;
// Retrieve the number of characters in the document.
- int GetTextLength();
+ int GetTextLength() const;
// Set to overtype (true) or insert mode.
void SetOvertype(bool overtype);
// Returns true if overtype mode is active otherwise false is returned.
- bool GetOvertype();
+ bool GetOvertype() const;
// Set the width of the insert mode caret.
void SetCaretWidth(int pixelWidth);
// Returns the width of the insert mode caret.
- int GetCaretWidth();
+ int GetCaretWidth() const;
// Sets the position that starts the target which is used for updating the
// document without affecting the scroll position.
void SetTargetStart(int pos);
// Get the position that starts the target.
- int GetTargetStart();
+ int GetTargetStart() const;
// Sets the position that ends the target which is used for updating the
// document without affecting the scroll position.
void SetTargetEnd(int pos);
// Get the position that ends the target.
- int GetTargetEnd();
+ int GetTargetEnd() const;
// Replace the target text with the argument text.
// Text is counted so it can contain NULs.
void SetSearchFlags(int flags);
// Get the search flags used by SearchInTarget.
- int GetSearchFlags();
+ int GetSearchFlags() const;
// Show a call tip containing a definition near position pos.
void CallTipShow(int pos, const wxString& definition);
void SetFoldLevel(int line, int level);
// Retrieve the fold level of a line.
- int GetFoldLevel(int line);
+ int GetFoldLevel(int line) const;
// Find the last child line of a header line.
- int GetLastChild(int line, int level);
+ int GetLastChild(int line, int level) const;
// Find the parent line of a child line.
- int GetFoldParent(int line);
+ int GetFoldParent(int line) const;
// Make a range of lines visible.
void ShowLines(int lineStart, int lineEnd);
void HideLines(int lineStart, int lineEnd);
// Is a line visible?
- bool GetLineVisible(int line);
+ bool GetLineVisible(int line) const;
// Show the children of a header line.
void SetFoldExpanded(int line, bool expanded);
// Is a header line expanded?
- bool GetFoldExpanded(int line);
+ bool GetFoldExpanded(int line) const;
// Switch a header line between expanded and contracted.
void ToggleFold(int line);
void SetTabIndents(bool tabIndents);
// Does a tab pressed when caret is within indentation indent?
- bool GetTabIndents();
+ bool GetTabIndents() const;
// Sets whether a backspace pressed when caret is within indentation unindents.
void SetBackSpaceUnIndents(bool bsUnIndents);
// Does a backspace pressed when caret is within indentation unindent?
- bool GetBackSpaceUnIndents();
+ bool GetBackSpaceUnIndents() const;
// Sets the time the mouse must sit still to generate a mouse dwell event.
void SetMouseDwellTime(int periodMilliseconds);
// Retrieve the time the mouse must sit still to generate a mouse dwell event.
- int GetMouseDwellTime();
+ int GetMouseDwellTime() const;
// Get position of start of word.
int WordStartPosition(int pos, bool onlyWordCharacters);
void SetWrapMode(int mode);
// Retrieve whether text is word wrapped.
- int GetWrapMode();
+ int GetWrapMode() const;
// Set the display mode of visual flags for wrapped lines.
void SetWrapVisualFlags(int wrapVisualFlags);
// Retrive the display mode of visual flags for wrapped lines.
- int GetWrapVisualFlags();
+ int GetWrapVisualFlags() const;
// Set the location of visual flags for wrapped lines.
void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation);
// Retrive the location of visual flags for wrapped lines.
- int GetWrapVisualFlagsLocation();
+ int GetWrapVisualFlagsLocation() const;
// Set the start indent for wrapped lines.
void SetWrapStartIndent(int indent);
// Retrive the start indent for wrapped lines.
- int GetWrapStartIndent();
+ int GetWrapStartIndent() const;
// Sets the degree of caching of layout information.
void SetLayoutCache(int mode);
// Retrieve the degree of caching of layout information.
- int GetLayoutCache();
+ int GetLayoutCache() const;
// Sets the document width assumed for scrolling.
void SetScrollWidth(int pixelWidth);
// Retrieve the document width assumed for scrolling.
- int GetScrollWidth();
+ int GetScrollWidth() const;
+
+ // Sets whether the maximum width line displayed is used to set scroll width.
+ void SetScrollWidthTracking(bool tracking);
+
+ // Retrieve whether the scroll width tracks wide lines.
+ bool GetScrollWidthTracking() const;
// Measure the pixel width of some text in a particular style.
// NUL terminated text argument.
// Retrieve whether the maximum scroll position has the last
// line at the bottom of the view.
- bool GetEndAtLastLine();
+ bool GetEndAtLastLine() const;
// Retrieve the height of a particular line of text in pixels.
int TextHeight(int line);
void SetUseVerticalScrollBar(bool show);
// Is the vertical scroll bar visible?
- bool GetUseVerticalScrollBar();
+ bool GetUseVerticalScrollBar() const;
// Append a string to the end of the document without changing the selection.
void AppendText(const wxString& text);
// Is drawing done in two phases with backgrounds drawn before foregrounds?
- bool GetTwoPhaseDraw();
+ bool GetTwoPhaseDraw() const;
// In twoPhaseDraw mode, drawing is performed in two phases, first the background
// and then the foreground. This avoids chopping off characters that overlap the next run.
// Delete the word to the right of the caret.
void DelWordRight();
+ // Delete the word to the right of the caret, but not the trailing non-word characters.
+ void DelWordRightEnd();
+
// Cut the line containing the caret.
void LineCut();
void MoveCaretInsideView();
// How many characters are on a line, not including end of line characters?
- int LineLength(int line);
+ int LineLength(int line) const;
// Highlight the characters at two positions.
void BraceHighlight(int pos1, int pos2);
int BraceMatch(int pos);
// Are the end of line characters visible?
- bool GetViewEOL();
+ bool GetViewEOL() const;
// Make the end of line characters visible or invisible.
void SetViewEOL(bool visible);
void SetModEventMask(int mask);
// Retrieve the column number which text should be kept within.
- int GetEdgeColumn();
+ int GetEdgeColumn() const;
// Set the column number of the edge.
// If text goes past the edge then it is highlighted.
void SetEdgeColumn(int column);
// Retrieve the edge highlight mode.
- int GetEdgeMode();
+ int GetEdgeMode() const;
// The edge may be displayed by a line (EDGE_LINE) or by highlighting text that
// goes beyond it (EDGE_BACKGROUND) or not displayed at all (EDGE_NONE).
void SetEdgeMode(int mode);
// Retrieve the colour used in edge indication.
- wxColour GetEdgeColour();
+ wxColour GetEdgeColour() const;
// Change the colour used in edge indication.
void SetEdgeColour(const wxColour& edgeColour);
int SearchPrev(int flags, const wxString& text);
// Retrieves the number of lines completely visible.
- int LinesOnScreen();
+ int LinesOnScreen() const;
// Set whether a pop up menu is displayed automatically when the user presses
// the wrong mouse button.
void UsePopUp(bool allowPopUp);
// Is the selection rectangular? The alternative is the more common stream selection.
- bool SelectionIsRectangle();
+ bool SelectionIsRectangle() const;
// Set the zoom level. This number of points is added to the size of all fonts.
// It may be positive to magnify or negative to reduce.
void SetZoom(int zoom);
// Retrieve the zoom level.
- int GetZoom();
+ int GetZoom() const;
// Create a new document object.
// Starts with reference count of 1 and not selected into editor.
void ReleaseDocument(void* docPointer);
// Get which document modification events are sent to the container.
- int GetModEventMask();
+ int GetModEventMask() const;
// Change internal focus flag.
void SetSTCFocus(bool focus);
// Get internal focus flag.
- bool GetSTCFocus();
+ bool GetSTCFocus() const;
// Change error status - 0 = OK.
void SetStatus(int statusCode);
// Get error status.
- int GetStatus();
+ int GetStatus() const;
// Set whether the mouse is captured when its button is pressed.
void SetMouseDownCaptures(bool captures);
// Get whether mouse gets captured.
- bool GetMouseDownCaptures();
+ bool GetMouseDownCaptures() const;
// Sets the cursor to one of the SC_CURSOR* values.
void SetSTCCursor(int cursorType);
// Get cursor type.
- int GetSTCCursor();
+ int GetSTCCursor() const;
// Change the way control characters are displayed:
// If symbol is < 32, keep the drawn way, else, use the given character.
void SetControlCharSymbol(int symbol);
// Get the way control characters are displayed.
- int GetControlCharSymbol();
+ int GetControlCharSymbol() const;
// Move to the previous change in capitalisation.
void WordPartLeft();
// Get and Set the xOffset (ie, horizonal scroll position).
void SetXOffset(int newOffset);
- int GetXOffset();
+ int GetXOffset() const;
// Set the last x chosen value to be the caret x position.
void ChooseCaretX();
void SetPrintWrapMode(int mode);
// Is printing line wrapped?
- int GetPrintWrapMode();
+ int GetPrintWrapMode() const;
// Set a fore colour for active hotspots.
void SetHotspotActiveForeground(bool useSetting, const wxColour& fore);
+ // Get the fore colour for active hotspots.
+ wxColour GetHotspotActiveForeground() const;
+
// Set a back colour for active hotspots.
void SetHotspotActiveBackground(bool useSetting, const wxColour& back);
+ // Get the back colour for active hotspots.
+ wxColour GetHotspotActiveBackground() const;
+
// Enable / Disable underlining active hotspots.
void SetHotspotActiveUnderline(bool underline);
+ // Get whether underlining for active hotspots.
+ bool GetHotspotActiveUnderline() const;
+
// Limit hotspots to single line so hotspots on two lines don't merge.
void SetHotspotSingleLine(bool singleLine);
+ // Get the HotspotSingleLine property
+ bool GetHotspotSingleLine() const;
+
// Move caret between paragraphs (delimited by empty lines).
void ParaDown();
void ParaDownExtend();
void SetSelectionMode(int mode);
// Get the mode of the current selection.
- int GetSelectionMode();
+ int GetSelectionMode() const;
// Retrieve the position of the start of the selection at the given line (INVALID_POSITION if no selection on this line).
int GetLineSelStartPosition(int line);
int FindColumn(int line, int column);
// Can the caret preferred x position only be changed by explicit movement commands?
- bool GetCaretSticky();
+ bool GetCaretSticky() const;
// Stop the caret preferred x position changing when the user types.
void SetCaretSticky(bool useCaretStickyBehaviour);
void SetPasteConvertEndings(bool convert);
// Get convert-on-paste setting
- bool GetPasteConvertEndings();
+ bool GetPasteConvertEndings() const;
// Duplicate the selection. If selection empty duplicate the line containing the caret.
void SelectionDuplicate();
void SetCaretLineBackAlpha(int alpha);
// Get the background alpha of the caret line.
- int GetCaretLineBackAlpha();
+ int GetCaretLineBackAlpha() const;
+
+ // Set the style of the caret to be drawn.
+ void SetCaretStyle(int caretStyle);
+
+ // Returns the current style of the caret.
+ int GetCaretStyle() const;
+
+ // Set the indicator used for IndicatorFillRange and IndicatorClearRange
+ void SetIndicatorCurrent(int indicator);
+
+ // Get the current indicator
+ int GetIndicatorCurrent() const;
+
+ // Set the value used for IndicatorFillRange
+ void SetIndicatorValue(int value);
+
+ // Get the current indicator vaue
+ int GetIndicatorValue() const;
+
+ // Turn a indicator on over a range.
+ void IndicatorFillRange(int position, int fillLength);
+
+ // Turn a indicator off over a range.
+ void IndicatorClearRange(int position, int clearLength);
+
+ // Are any indicators present at position?
+ int IndicatorAllOnFor(int position);
+
+ // What value does a particular indicator have at at a position?
+ int IndicatorValueAt(int indicator, int position);
+
+ // Where does a particular indicator start?
+ int IndicatorStart(int indicator, int position);
+
+ // Where does a particular indicator end?
+ int IndicatorEnd(int indicator, int position);
+
+ // Set number of entries in position cache
+ void SetPositionCacheSize(int size);
+
+ // How many entries are allocated to the position cache?
+ int GetPositionCacheSize() const;
// Start notifying the container of all key presses and commands.
void StartRecord();
void SetLexer(int lexer);
// Retrieve the lexing language of the document.
- int GetLexer();
+ int GetLexer() const;
// Colourise a segment of the document using the current lexing language.
void Colourise(int start, int end);
// Retrieve a 'property' value previously set with SetProperty,
// interpreted as an int AFTER any '$()' variable replacement.
- int GetPropertyInt(const wxString& key);
+ int GetPropertyInt(const wxString& key) const;
// Retrieve the number of bits the current lexer needs for styling.
- int GetStyleBitsNeeded();
+ int GetStyleBitsNeeded() const;
-// END of generated section
-//----------------------------------------------------------------------
-// Others...
+ //}}}
+ //----------------------------------------------------------------------
+ // Manually declared methods
// Returns the line number of the line with the caret.
int GetCurrentLine();
void StyleSetSpec(int styleNum, const wxString& spec);
+ // Get the font of a style.
+ wxFont StyleGetFont(int style);
+
// Set style size, face, bold, italic, and underline attributes from
// a wxFont's attributes.
// Set the font encoding to be used by a style.
void StyleSetFontEncoding(int style, wxFontEncoding encoding);
-
+
// Perform one of the operations defined by the wxSTC_CMD_* constants.
void CmdKeyExecute(int cmd);
void SetMargins(int left, int right);
- // Retrieve the start and end positions of the current selection.
-#ifdef SWIG
- void GetSelection(int* OUTPUT, int* OUTPUT);
-#else
- void GetSelection(int* startPos, int* endPos);
-#endif
-
// Retrieve the point in the window where a position is displayed.
wxPoint PointFromPosition(int pos);
// Send a message to Scintilla
- long SendMsg(int msg, long wp=0, long lp=0);
+ //
+ // NB: this method is not really const as it can modify the control but it
+ // has to be declared as such as it's called from both const and
+ // non-const methods and we can't distinguish between the two
+ wxIntPtr SendMsg(int msg, wxUIntPtr wp=0, wxIntPtr lp=0) const;
// Set the vertical scrollbar to use instead of the ont that's built-in.
bool GetLastKeydownProcessed() { return m_lastKeyDownConsumed; }
void SetLastKeydownProcessed(bool val) { m_lastKeyDownConsumed = val; }
+ // if we derive from wxTextAreaBase it already provides these methods
+#if !wxUSE_TEXTCTRL
// Write the contents of the editor to filename
bool SaveFile(const wxString& filename);
// Load the contents of filename into the editor
bool LoadFile(const wxString& filename);
+#endif // !wxUSE_TEXTCTRL
#ifdef STC_USE_DND
// Allow for simulating a DnD DragOver
bool GetUseAntiAliasing();
-
+
// The following methods are nearly equivallent to their similarly named
// cousins above. The difference is that these methods bypass wxString
// and always use a char* even if used in a unicode build of wxWidgets.
// In that case the character data will be utf-8 encoded since that is
// what is used internally by Scintilla in unicode builds.
-
+
// Add text to the document at current position.
void AddTextRaw(const char* text);
#ifdef SWIG
%pythoncode "_stc_utf8_methods.py"
#endif
-//----------------------------------------------------------------------
+ // implement wxTextEntryBase pure virtual methods
+ // ----------------------------------------------
+
+ virtual void WriteText(const wxString& text) { AddText(text); }
+ virtual wxString GetValue() const { return GetText(); }
+ virtual void Remove(long from, long to)
+ {
+ Replace(from, to, "");
+ }
+ virtual void Replace(long from, long to, const wxString& text)
+ {
+ SetTargetStart(from);
+ SetTargetEnd(to);
+ ReplaceTarget(text);
+ }
+
+ /*
+ These functions are already declared in the generated section.
+
+ virtual void Copy();
+ virtual void Cut();
+ virtual void Paste();
+
+ virtual void Undo();
+ virtual void Redo();
+
+ virtual bool CanUndo() const;
+ virtual bool CanRedo() const;
+
+ */
+
+ virtual void SetInsertionPoint(long pos) { SetCurrentPos(pos); }
+ virtual long GetInsertionPoint() const { return GetCurrentPos(); }
+ virtual long GetLastPosition() const { return GetTextLength(); }
+
+ virtual void SetSelection(long from, long to)
+ {
+ if ( from == -1 && to == -1 )
+ {
+ SelectAll();
+ }
+ else
+ {
+ SetSelectionStart(from);
+ SetSelectionEnd(to);
+ }
+ }
+
+#ifdef SWIG
+ void GetSelection(long* OUTPUT, long* OUTPUT) const;
+#else
+ virtual void GetSelection(long *from, long *to) const
+ {
+ if ( from )
+ *from = GetSelectionStart();
+ if ( to )
+ *to = GetSelectionEnd();
+ }
+
+ // kept for compatibility only
+ void GetSelection(int *from, int *to)
+ {
+ long f, t;
+ GetSelection(&f, &t);
+ if ( from )
+ *from = f;
+ if ( to )
+ *to = t;
+ }
+#endif
+
+ virtual bool IsEditable() const { return !GetReadOnly(); }
+ virtual void SetEditable(bool editable) { SetReadOnly(!editable); }
+
+ // implement wxTextAreaBase pure virtual methods
+ // ---------------------------------------------
+
+ virtual int GetLineLength(long n) const { return GetLine(n).length(); }
+ virtual wxString GetLineText(long n) const { return GetLine(n); }
+ virtual int GetNumberOfLines() const { return GetLineCount(); }
+
+ virtual bool IsModified() const { return GetModify(); }
+ virtual void MarkDirty() { wxFAIL_MSG("not implemented"); }
+ virtual void DiscardEdits() { SetSavePoint(); }
+
+ virtual bool SetStyle(long WXUNUSED(start), long WXUNUSED(end),
+ const wxTextAttr& WXUNUSED(style))
+ {
+ wxFAIL_MSG("not implemented");
+
+ return false;
+ }
+
+ virtual bool GetStyle(long WXUNUSED(position), wxTextAttr& WXUNUSED(style))
+ {
+ wxFAIL_MSG("not implemented");
+
+ return false;
+ }
+
+ virtual bool SetDefaultStyle(const wxTextAttr& WXUNUSED(style))
+ {
+ wxFAIL_MSG("not implemented");
+
+ return false;
+ }
+
+ virtual long XYToPosition(long x, long y) const
+ {
+ long pos = PositionFromLine(y);
+ pos += x;
+ return pos;
+ }
+
+ virtual bool PositionToXY(long pos, long *x, long *y) const
+ {
+ if ( x )
+ *x = -1; // TODO
+
+ if ( y )
+ {
+ long l = LineFromPosition(pos);
+ if ( l == -1 )
+ return false;
+ *y = l;
+ }
+
+ return true;
+ }
+
+ virtual void ShowPosition(long pos) { GotoPos(pos); }
+
+ // FIXME-VC6: can't use wxWindow here because of "error C2603: illegal
+ // access declaration: 'wxWindow' is not a direct base of
+ // 'wxStyledTextCtrl'" with VC6
+ using wxControl::HitTest;
+
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt, long *pos) const
+ {
+ const long l = PositionFromPoint(pt);
+ if ( l == -1 )
+ return wxTE_HT_BELOW; // we don't really know where it was
+
+ if ( pos )
+ *pos = l;
+
+ return wxTE_HT_ON_TEXT;
+ }
+
+ // just unhide it
+ virtual wxTextCtrlHitTestResult HitTest(const wxPoint& pt,
+ wxTextCoord *col,
+ wxTextCoord *row) const
+ {
+ return wxTextAreaBase::HitTest(pt, col, row);
+ }
+
#ifndef SWIG
protected:
+ virtual bool DoLoadFile(const wxString& file, int fileType);
+ virtual bool DoSaveFile(const wxString& file, int fileType);
+
// Event handlers
void OnPaint(wxPaintEvent& evt);
void OnScrollWin(wxScrollWinEvent& evt);
bool m_lastKeyDownConsumed;
+ // the timestamp that consists of the last wheel event
+ // added to the time taken to process that event.
+ long m_lastWheelTimestamp;
+
friend class ScintillaWX;
friend class Platform;
-#endif
+#endif // !SWIG
};
//----------------------------------------------------------------------
#ifndef SWIG
-BEGIN_DECLARE_EVENT_TYPES()
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_CHANGE, 1650)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_STYLENEEDED, 1651)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_CHARADDED, 1652)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_SAVEPOINTREACHED, 1653)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_SAVEPOINTLEFT, 1654)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_ROMODIFYATTEMPT, 1655)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_KEY, 1656)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_DOUBLECLICK, 1657)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_UPDATEUI, 1658)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_MODIFIED, 1659)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_MACRORECORD, 1660)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_MARGINCLICK, 1661)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_NEEDSHOWN, 1662)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_PAINTED, 1664)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_USERLISTSELECTION, 1665)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_URIDROPPED, 1666)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_DWELLSTART, 1667)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_DWELLEND, 1668)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_START_DRAG, 1669)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_DRAG_OVER, 1670)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_DO_DROP, 1671)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_ZOOM, 1672)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_HOTSPOT_CLICK, 1673)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_HOTSPOT_DCLICK, 1674)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_CALLTIP_CLICK, 1675)
- DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_STC, wxEVT_STC_AUTOCOMP_SELECTION, 1676)
-END_DECLARE_EVENT_TYPES()
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_CHANGE;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_STYLENEEDED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_CHARADDED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_SAVEPOINTREACHED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_SAVEPOINTLEFT;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_ROMODIFYATTEMPT;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_KEY;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_DOUBLECLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_UPDATEUI;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_MODIFIED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_MACRORECORD;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_MARGINCLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_NEEDSHOWN;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_PAINTED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_USERLISTSELECTION;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_URIDROPPED;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_DWELLSTART;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_DWELLEND;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_START_DRAG;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_DRAG_OVER;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_DO_DROP;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_ZOOM;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_HOTSPOT_CLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_HOTSPOT_DCLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_CALLTIP_CLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_AUTOCOMP_SELECTION;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_INDICATOR_CLICK;
+extern WXDLLIMPEXP_STC const wxEventType wxEVT_STC_INDICATOR_RELEASE;
#else
enum {
wxEVT_STC_CHANGE,
wxEVT_STC_HOTSPOT_CLICK,
wxEVT_STC_HOTSPOT_DCLICK,
wxEVT_STC_CALLTIP_CLICK,
- wxEVT_STC_AUTOCOMP_SELECTION
+ wxEVT_STC_AUTOCOMP_SELECTION,
+ wxEVT_STC_INDICATOR_CLICK,
+ wxEVT_STC_INDICATOR_RELEASE
};
#endif
#define EVT_STC_ZOOM(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_ZOOM, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
#define EVT_STC_HOTSPOT_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_CLICK, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
#define EVT_STC_HOTSPOT_DCLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_HOTSPOT_DCLICK, id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
-#define EVT_STC_CALLTIP_CLICK(id, fn)) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CALLTIP_CLICK id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
+#define EVT_STC_CALLTIP_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_CALLTIP_CLICK id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
#define EVT_STC_AUTOCOMP_SELECTION(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_AUTOCOMP_SELECTION id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
-#endif
+#define EVT_STC_INDICATOR_CLICK(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_INDICATOR_CLICK id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
+#define EVT_STC_INDICATOR_RELEASE(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_STC_INDICATOR_RELEASE id, wxID_ANY, (wxObjectEventFunction) (wxEventFunction) wxStaticCastEvent( wxStyledTextEventFunction, & fn ), (wxObject *) NULL ),
-//----------------------------------------------------------------------
-// Utility functions used within wxSTC
-
-#ifndef SWIG
-#if wxUSE_UNICODE
-
-WXDLLIMPEXP_STC wxString stc2wx(const char* str);
-WXDLLIMPEXP_STC wxString stc2wx(const char* str, size_t len);
-WXDLLIMPEXP_STC const wxWX2MBbuf wx2stc(const wxString& str);
-
-#else // not UNICODE
-
-inline wxString stc2wx(const char* str) {
- return wxString(str);
-}
-inline wxString stc2wx(const char* str, size_t len) {
- return wxString(str, len);
-}
-inline const wxWX2MBbuf wx2stc(const wxString& str) {
- return str.mbc_str();
-}
-
-#endif // UNICODE
-#endif // SWIG
-
-//----------------------------------------------------------------------
#endif
+#endif // wxUSE_STC
+#endif // _WX_STC_STC_H_