Update Scintilla to version 3.6.2
[geany-mirror.git] / scintilla / src / AutoComplete.h
blobc35fa1a0eeb0e0ab81837cf9940dadcecb6f2211
1 // Scintilla source code edit control
2 /** @file AutoComplete.h
3 ** Defines the auto completion list box.
4 **/
5 // Copyright 1998-2003 by Neil Hodgson <neilh@scintilla.org>
6 // The License.txt file describes the conditions under which this software may be distributed.
8 #ifndef AUTOCOMPLETE_H
9 #define AUTOCOMPLETE_H
11 #ifdef SCI_NAMESPACE
12 namespace Scintilla {
13 #endif
15 /**
17 class AutoComplete {
18 bool active;
19 std::string stopChars;
20 std::string fillUpChars;
21 char separator;
22 char typesep; // Type seperator
23 enum { maxItemLen=1000 };
24 std::vector<int> sortMatrix;
26 public:
28 bool ignoreCase;
29 bool chooseSingle;
30 ListBox *lb;
31 int posStart;
32 int startLen;
33 /// Should autocompletion be canceled if editor's currentPos <= startPos?
34 bool cancelAtStartPos;
35 bool autoHide;
36 bool dropRestOfWord;
37 unsigned int ignoreCaseBehaviour;
38 int widthLBDefault;
39 int heightLBDefault;
40 /** SC_ORDER_PRESORTED: Assume the list is presorted; selection will fail if it is not alphabetical<br />
41 * SC_ORDER_PERFORMSORT: Sort the list alphabetically; start up performance cost for sorting<br />
42 * SC_ORDER_CUSTOM: Handle non-alphabetical entries; start up performance cost for generating a sorted lookup table
44 int autoSort;
46 AutoComplete();
47 ~AutoComplete();
49 /// Is the auto completion list displayed?
50 bool Active() const;
52 /// Display the auto completion list positioned to be near a character position
53 void Start(Window &parent, int ctrlID, int position, Point location,
54 int startLen_, int lineHeight, bool unicodeMode, int technology);
56 /// The stop chars are characters which, when typed, cause the auto completion list to disappear
57 void SetStopChars(const char *stopChars_);
58 bool IsStopChar(char ch);
60 /// The fillup chars are characters which, when typed, fill up the selected word
61 void SetFillUpChars(const char *fillUpChars_);
62 bool IsFillUpChar(char ch);
64 /// The separator character is used when interpreting the list in SetList
65 void SetSeparator(char separator_);
66 char GetSeparator() const;
68 /// The typesep character is used for separating the word from the type
69 void SetTypesep(char separator_);
70 char GetTypesep() const;
72 /// The list string contains a sequence of words separated by the separator character
73 void SetList(const char *list);
75 /// Return the position of the currently selected list item
76 int GetSelection() const;
78 /// Return the value of an item in the list
79 std::string GetValue(int item) const;
81 void Show(bool show);
82 void Cancel();
84 /// Move the current list element by delta, scrolling appropriately
85 void Move(int delta);
87 /// Select a list element that starts with word as the current element
88 void Select(const char *word);
91 #ifdef SCI_NAMESPACE
93 #endif
95 #endif