5 ** General textual input MUI class
7 ** (C) 1997-2001 Oliver Wagner <owagner@vapor.com>
12 #ifndef TEXTINPUT_MCC_H
13 #define TEXTINPUT_MCC_H
15 #ifndef LIBRARIES_MUI_H
16 #include <libraries/mui.h>
24 ** Class name, object macros
27 #define MUIC_Textinput "Textinput.mcc"
28 #define TextinputObject MUI_NewObject(MUIC_Textinput
30 #define MUIC_Textinputscroll "Textinputscroll.mcc"
31 #define TextinputscrollObject MUI_NewObject(MUIC_Textinputscroll
34 #define MCC_TI_TAGBASE ((TAG_USER)|((1307<<16)+0x712))
35 #define MCC_TI_ID(x) (MCC_TI_TAGBASE+(x))
37 #define MCC_Textinput_Version 29
38 #define MCC_Textinput_Revision 1
45 #define MUIM_Textinput_ExternalEdit MCC_TI_ID(1) /* V1 */
46 #define MUIM_Textinputscroll_Inform MCC_TI_ID(2) /* V1 (private) */
47 #define MUIM_Textinputmcp_GrabCols MCC_TI_ID(3) /* V1 (private) */
48 #define MUIM_Textinput_Blink MCC_TI_ID(4) /* V1 (private) */
49 #define MUIM_Textinput_SaveToFile MCC_TI_ID(5) /* V1 */
50 #define MUIM_Textinput_LoadFromFile MCC_TI_ID(6) /* V1 */
51 #define MUIM_Textinput_ExternalEditDone MCC_TI_ID(7) /* V1 (private) */
52 #define MUIM_Textinput_DoRevert MCC_TI_ID(8) /* V1 */
53 #define MUIM_Textinput_DoDelLine MCC_TI_ID(9) /* V1 */
54 #define MUIM_Textinput_DoMarkStart MCC_TI_ID(10) /* V1 */
55 #define MUIM_Textinput_DoMarkAll MCC_TI_ID(11) /* V1 */
56 #define MUIM_Textinput_DoCut MCC_TI_ID(12) /* V1 */
57 #define MUIM_Textinput_DoCopy MCC_TI_ID(13) /* V1 */
58 #define MUIM_Textinput_DoPaste MCC_TI_ID(14) /* V1 */
59 #define MUIM_Textinput_AppendText MCC_TI_ID(15) /* V1 */
60 #define MUIM_Textinputmcp_LAct MCC_TI_ID(16) /* V1 (private) */
61 #define MUIM_Textinputmcp_LCopy MCC_TI_ID(17) /* V1 (private) */
62 #define MUIM_Textinputmcp_LAdd MCC_TI_ID(18) /* V1 (private) */
63 #define MUIM_Textinput_DoToggleWordwrap MCC_TI_ID(19) /* V1 */
64 #define MUIM_Textinput_Acknowledge MCC_TI_ID(20) /* V1 */
65 #define MUIM_Textinput_TranslateEvent MCC_TI_ID(21) /* V1 */
66 #define MUIM_Textinput_InsertText MCC_TI_ID(22) /* V1 */
67 #define MUIM_Textinput_DoLeft MCC_TI_ID(23) /* V1 */
68 #define MUIM_Textinput_DoRight MCC_TI_ID(24) /* V1 */
69 #define MUIM_Textinput_DoUp MCC_TI_ID(25) /* V1 */
70 #define MUIM_Textinput_DoDown MCC_TI_ID(26) /* V1 */
71 #define MUIM_Textinput_DoLineStart MCC_TI_ID(27) /* V1 */
72 #define MUIM_Textinput_DoLineEnd MCC_TI_ID(28) /* V1 */
73 #define MUIM_Textinput_DoTop MCC_TI_ID(29) /* V1 */
74 #define MUIM_Textinput_DoBottom MCC_TI_ID(30) /* V1 */
75 #define MUIM_Textinput_DoPageUp MCC_TI_ID(31) /* V1 */
76 #define MUIM_Textinput_DoPageDown MCC_TI_ID(32) /* V1 */
77 #define MUIM_Textinput_DoPopup MCC_TI_ID(33) /* V1 */
78 #define MUIM_Textinput_DoPrevWord MCC_TI_ID(34) /* V1 */
79 #define MUIM_Textinput_DoNextWord MCC_TI_ID(35) /* V1 */
80 #define MUIM_Textinput_DoDel MCC_TI_ID(36) /* V1 */
81 #define MUIM_Textinput_DoDelEOL MCC_TI_ID(37) /* V1 */
82 #define MUIM_Textinput_DoBS MCC_TI_ID(38) /* V1 */
83 #define MUIM_Textinput_DoBSSOL MCC_TI_ID(39) /* V1 */
84 #define MUIM_Textinput_DoubleClick MCC_TI_ID(42) /* V1 */
85 #define MUIM_Textinput_DoBSWord MCC_TI_ID(43) /* V1 */
86 #define MUIM_Textinput_DoDelWord MCC_TI_ID(44) /* V1 */
87 #define MUIM_Textinput_DoInsertFile MCC_TI_ID(45) /* V1 */
88 #define MUIM_Textinput_InsertFromFile MCC_TI_ID(46) /* V1 */
89 #define MUIM_Textinput_HandleChar MCC_TI_ID(47) /* V14 */
90 #define MUIM_Textinput_HandleURL MCC_TI_ID(48) /* V16 */
91 #define MUIM_Textinput_HandleRexxSignal MCC_TI_ID(49) /* V18 (Private) */
92 #define MUIM_Textinput_HandleMisspell MCC_TI_ID(50) /* V18 (Private) */
93 #define MUIM_Textinput_DoToggleCase MCC_TI_ID(51) /* V21 */
94 #define MUIM_Textinput_DoToggleCaseEOW MCC_TI_ID(52) /* V21 */
95 #define MUIM_Textinput_DoIncrementDec MCC_TI_ID(53) /* V21 */
96 #define MUIM_Textinput_DoDecrementDec MCC_TI_ID(54) /* V21 */
97 #define MUIM_Textinputmcp_DefaultKeys MCC_TI_ID(55) /* V21 (Private) */
98 #define MUIM_Textinput_DoUndo MCC_TI_ID(56) /* V21 */
99 #define MUIM_Textinput_DoRedo MCC_TI_ID(57) /* V21 */
100 #define MUIM_Textinput_DoTab MCC_TI_ID(58) /* V22 */
101 #define MUIM_Textinput_DoNextGadget MCC_TI_ID(59) /* V22 */
102 #define MUIM_Textinput_DoSetBookmark1 MCC_TI_ID(60) /* V22 */
103 #define MUIM_Textinput_DoSetBookmark2 MCC_TI_ID(61) /* V22 */
104 #define MUIM_Textinput_DoSetBookmark3 MCC_TI_ID(62) /* V22 */
105 #define MUIM_Textinput_DoGotoBookmark1 MCC_TI_ID(63) /* V22 */
106 #define MUIM_Textinput_DoGotoBookmark2 MCC_TI_ID(64) /* V22 */
107 #define MUIM_Textinput_DoGotoBookmark3 MCC_TI_ID(65) /* V22 */
108 #define MUIM_Textinput_DoCutLine MCC_TI_ID(66) /* V22 */
109 #define MUIM_Textinput_DoCopyCut MCC_TI_ID(67) /* V29 */
115 struct MUIP_Textinput_ExternalEdit
{ ULONG MethodID
; };
116 struct MUIP_Textinputscroll_Inform
{ ULONG MethodID
; ULONG xo
; ULONG yo
; ULONG xs
; ULONG ys
; ULONG xv
; ULONG yv
; ULONG noedit
; };
117 struct MUIP_Textinputmcp_GrabCols
{ ULONG MethodID
; ULONG notall
; };
118 struct MUIP_Textinput_Blink
{ ULONG MethodID
; };
119 struct MUIP_Textinput_SaveToFile
{ ULONG MethodID
; STRPTR filename
; };
120 struct MUIP_Textinput_LoadFromFile
{ ULONG MethodID
; STRPTR filename
; };
121 struct MUIP_Textinput_ExternalEditDone
{ ULONG MethodID
; ULONG changed
; };
122 struct MUIP_Textinput_DoRevert
{ ULONG MethodID
; };
123 struct MUIP_Textinput_DoDelLine
{ ULONG MethodID
; };
124 struct MUIP_Textinput_DoCutLine
{ ULONG MethodID
; };
125 struct MUIP_Textinput_DoMarkStart
{ ULONG MethodID
; };
126 struct MUIP_Textinput_DoMarkAll
{ ULONG MethodID
; };
127 struct MUIP_Textinput_DoCut
{ ULONG MethodID
; };
128 struct MUIP_Textinput_DoCopyCut
{ ULONG MethodID
; };
129 struct MUIP_Textinput_DoCopy
{ ULONG MethodID
; };
130 struct MUIP_Textinput_DoPaste
{ ULONG MethodID
; };
131 struct MUIP_Textinput_AppendText
{ ULONG MethodID
; STRPTR text
; LONG len
; };
132 struct MUIP_Textinputmcp_LAct
{ ULONG MethodID
; ULONG which
; };
133 struct MUIP_Textinputmcp_LCopy
{ ULONG MethodID
; };
134 struct MUIP_Textinputmcp_LAdd
{ ULONG MethodID
; };
135 struct MUIP_Textinput_DoToggleWordwrap
{ ULONG MethodID
; };
136 struct MUIP_Textinput_Acknowledge
{ ULONG MethodID
; STRPTR contents
; };
137 struct MUIP_Textinput_TranslateEvent
{ ULONG MethodID
; struct InputEvent
*ie
; STRPTR mappedstring
; ULONG
*mappedlen
; };
138 struct MUIP_Textinput_InsertText
{ ULONG MethodID
; STRPTR text
; LONG len
; };
139 struct MUIP_Textinput_DoLeft
{ ULONG MethodID
; };
140 struct MUIP_Textinput_DoRight
{ ULONG MethodID
; };
141 struct MUIP_Textinput_DoUp
{ ULONG MethodID
; };
142 struct MUIP_Textinput_DoDown
{ ULONG MethodID
; };
143 struct MUIP_Textinput_DoLineStart
{ ULONG MethodID
; };
144 struct MUIP_Textinput_DoLineEnd
{ ULONG MethodID
; };
145 struct MUIP_Textinput_DoTop
{ ULONG MethodID
; };
146 struct MUIP_Textinput_DoBottom
{ ULONG MethodID
; };
147 struct MUIP_Textinput_DoPageUp
{ ULONG MethodID
; };
148 struct MUIP_Textinput_DoPageDown
{ ULONG MethodID
; };
149 struct MUIP_Textinput_DoPopup
{ ULONG MethodID
; };
150 struct MUIP_Textinput_DoPrevWord
{ ULONG MethodID
; };
151 struct MUIP_Textinput_DoNextWord
{ ULONG MethodID
; };
152 struct MUIP_Textinput_DoDel
{ ULONG MethodID
; };
153 struct MUIP_Textinput_DoDelEOL
{ ULONG MethodID
; };
154 struct MUIP_Textinput_DoBS
{ ULONG MethodID
; };
155 struct MUIP_Textinput_DoBSSOL
{ ULONG MethodID
; };
156 struct MUIP_Textinput_DoubleClick
{ ULONG MethodID
; ULONG xp
; ULONG yp
; ULONG cnt
; };
157 struct MUIP_Textinput_DoDelWord
{ ULONG MethodID
; };
158 struct MUIP_Textinput_DoBSWord
{ ULONG MethodID
; };
159 struct MUIP_Textinput_DoInsertFile
{ ULONG MethodID
; };
160 struct MUIP_Textinput_InsertFromFile
{ ULONG MethodID
; STRPTR filename
; };
161 struct MUIP_Textinput_HandleChar
{ ULONG MethodID
; ULONG ch
; ULONG quiet
; };
162 struct MUIP_Textinput_HandleURL
{ ULONG MethodID
; STRPTR url
; };
163 struct MUIP_Textinput_HandleRexxSignal
{ ULONG MethodID
; };
164 struct MUIP_Textinput_HandleMisspell
{ ULONG MethodID
; STRPTR word
; STRPTR pos
; STRPTR correction
; };
165 struct MUIP_Textinput_DoToggleCase
{ ULONG MethodID
; };
166 struct MUIP_Textinput_DoToggleCaseEOW
{ ULONG MethodID
; };
167 struct MUIP_Textinput_DoIncrementDec
{ ULONG MethodID
; };
168 struct MUIP_Textinput_DoDecrementDec
{ ULONG MethodID
; };
169 struct MUIP_Textinputmcp_DefaultKeys
{ ULONG MethodID
; };
170 struct MUIP_Textinput_DoUndo
{ ULONG MethodID
; };
171 struct MUIP_Textinput_DoRedo
{ ULONG MethodID
; };
172 struct MUIP_Textinput_DoTab
{ ULONG MethodID
; };
173 struct MUIP_Textinput_DoNextGadget
{ ULONG MethodID
; };
174 struct MUIP_Textinput_DoSetBookmark1
{ ULONG MethodID
; };
175 struct MUIP_Textinput_DoSetBookmark2
{ ULONG MethodID
; };
176 struct MUIP_Textinput_DoSetBookmark3
{ ULONG MethodID
; };
177 struct MUIP_Textinput_DoGotoBookmark1
{ ULONG MethodID
; };
178 struct MUIP_Textinput_DoGotoBookmark2
{ ULONG MethodID
; };
179 struct MUIP_Textinput_DoGotoBookmark3
{ ULONG MethodID
; };
186 #define MUIA_Textinput_Multiline MCC_TI_ID(100) /* V1 i.g BOOL */
187 #define MUIA_Textinput_MaxLen MCC_TI_ID(101) /* V1 i.g ULONG */
188 #define MUIA_Textinput_MaxLines MCC_TI_ID(102) /* V1 i.g ULONG */
189 #define MUIA_Textinput_AutoExpand MCC_TI_ID(103) /* V1 isg BOOL */
190 #define MUIA_Textinput_Contents MCC_TI_ID(104) /* V1 isg STRPTR */
191 #define MUIA_Textinput_LeftOffset MCC_TI_ID(105) /* V1 .sg ULONG (private) */
192 #define MUIA_Textinput_TopOffset MCC_TI_ID(106) /* V1 .sg ULONG (private) */
193 #define MUIA_Textinput_TSCO MCC_TI_ID(107) /* V1 .sg Object (private) */
194 #define MUIA_Textinput_Blinkrate MCC_TI_ID(108) /* V1 isg ULONG */
195 #define MUIA_Textinput_Cursorstyle MCC_TI_ID(109) /* V1 isg ULONG */
196 #define MUIA_Textinput_AdvanceOnCR MCC_TI_ID(110) /* V1 isg BOOL */
197 #define MUIA_Textinput_TmpExtension MCC_TI_ID(111) /* V1 isg STRPTR */
198 #define MUIA_Textinput_Quiet MCC_TI_ID(112) /* V1 .sg BOOL */
199 #define MUIA_Textinput_Acknowledge MCC_TI_ID(113) /* V1 ..g STRPTR */
200 #define MUIA_Textinput_Integer MCC_TI_ID(114) /* V1 isg ULONG */
201 #define MUIA_Textinput_MinVersion MCC_TI_ID(115) /* V1 i.. ULONG */
202 #define MUIA_Textinput_DefKeys MCC_TI_ID(116) /* V1 ..g APTR (private) */
203 #define MUIA_Textinput_DefaultPopup MCC_TI_ID(117) /* V1 i.. BOOL */
204 #define MUIA_Textinput_WordWrap MCC_TI_ID(118) /* V1 isg ULONG */
205 #define MUIA_Textinput_IsNumeric MCC_TI_ID(119) /* V1 isg BOOL */
206 #define MUIA_Textinput_MinVal MCC_TI_ID(120) /* V1 isg ULONG */
207 #define MUIA_Textinput_MaxVal MCC_TI_ID(121) /* V1 isg ULONG */
208 #define MUIA_Textinput_AcceptChars MCC_TI_ID(122) /* V1 isg STRPTR */
209 #define MUIA_Textinput_RejectChars MCC_TI_ID(123) /* V1 isg STRPTR */
210 #define MUIA_Textinput_Changed MCC_TI_ID(124) /* V1 ..g BOOL */
211 #define MUIA_Textinput_AttachedList MCC_TI_ID(125) /* V1 isg Object */
212 #define MUIA_Textinput_RemainActive MCC_TI_ID(126) /* V1 isg BOOL */
213 #define MUIA_Textinput_CursorPos MCC_TI_ID(127) /* V1 .sg ULONG */
214 #define MUIA_Textinput_Secret MCC_TI_ID(128) /* V1 isg BOOL */
215 #define MUIA_Textinput_Lines MCC_TI_ID(129) /* V1 ..g ULONG */
216 #define MUIA_Textinput_Editable MCC_TI_ID(130) /* V1 isg BOOL */
217 #define MUIA_Textinputscroll_UseWinBorder MCC_TI_ID(131) /* V1 i.. BOOL */
218 #define MUIA_Textinput_IsOld MCC_TI_ID(132) /* V1 isg BOOL */
219 #define MUIA_Textinput_MarkStart MCC_TI_ID(133) /* V13 isg ULONG */
220 #define MUIA_Textinput_MarkEnd MCC_TI_ID(134) /* V13 isg ULONG */
221 #define MUIA_Textinputscroll_VertScrollerOnly MCC_TI_ID(135)/* V14 i.. BOOL */
222 #define MUIA_Textinput_NoInput MCC_TI_ID(136) /* V15 i.g BOOL */
223 #define MUIA_Textinput_SetMin MCC_TI_ID(137) /* V15 isg BOOL */
224 #define MUIA_Textinput_SetMax MCC_TI_ID(138) /* V15 isg BOOL */
225 #define MUIA_Textinput_SetVMax MCC_TI_ID(139) /* V15 isg BOOL */
226 #define MUIA_Textinput_Styles MCC_TI_ID(140) /* V15 isg ULONG */
227 #define MUIA_Textinput_PreParse MCC_TI_ID(141) /* V18 isg STRPTR */
228 #define MUIA_Textinput_Format MCC_TI_ID(142) /* V19 i.g ULONG */
229 #define MUIA_Textinput_SetVMin MCC_TI_ID(143) /* V20 isg BOOL */
230 #define MUIA_Textinput_HandleURLHook MCC_TI_ID(144) /* V22 isg struct Hook * */
231 #define MUIA_Textinput_Tabs MCC_TI_ID(145) /* V22 isg ULONG */
232 #define MUIA_Textinput_TabLen MCC_TI_ID(146) /* V22 isg ULONG */
233 #define MUIA_Textinput_Bookmark1 MCC_TI_ID(147) /* V22 isg ULONG */
234 #define MUIA_Textinput_Bookmark2 MCC_TI_ID(148) /* V22 isg ULONG */
235 #define MUIA_Textinput_Bookmark3 MCC_TI_ID(149) /* V22 isg ULONG */
236 #define MUIA_Textinput_CursorSize MCC_TI_ID(150) /* V22 isg ULONG */
237 #define MUIA_Textinput_TopLine MCC_TI_ID(151) /* V22 isg ULONG */
238 #define MUIA_Textinput_Font MCC_TI_ID(152) /* V23 isg ULONG */
239 #define MUIA_Textinput_SuggestParse MCC_TI_ID(153) /* V24 isg ULONG */
240 #define MUIA_Textinput_ProhibitParse MCC_TI_ID(154) /* V24 isg ULONG */
241 #define MUIA_Textinput_NoCopy MCC_TI_ID(155) /* V26 isg ULONG */
242 #define MUIA_Textinput_MinimumWidth MCC_TI_ID(156) /* V26 i.g ULONG */
243 #define MUIA_Textinput_ResetMarkOnCursor MCC_TI_ID(157) /* V29 isg BOOL */
244 #define MUIA_Textinput_NoExtraSpacing MCC_TI_ID(158) /* V29 isg BOOL */
250 #define MUIV_Textinput_ParseB_URL 0
251 #define MUIV_Textinput_ParseB_Misspell 1
252 #define MUIV_Textinput_ParseF_URL (1<<MUIV_Textinput_ParseB_URL)
253 #define MUIV_Textinput_ParseF_Misspell (1<<MUIV_Textinput_ParseB_Misspell)
255 #define MUIV_Textinput_Tabs_Ignore 0
256 #define MUIV_Textinput_Tabs_Spaces 1
257 #define MUIV_Textinput_Tabs_Disk 2
259 #define MUIV_Textinput_NoMark ((ULONG)~0)
261 #define MUIV_Textinput_Styles_None 0
262 #define MUIV_Textinput_Styles_MUI 1
263 #define MUIV_Textinput_Styles_IRC 2
264 #define MUIV_Textinput_Styles_Email 3
265 #define MUIV_Textinput_Styles_HTML 4
267 #define MUIV_Textinput_Format_Left 0
268 #define MUIV_Textinput_Format_Center 1
269 #define MUIV_Textinput_Format_Centre 1
270 #define MUIV_Textinput_Format_Right 2
272 #define MUIV_Textinput_Font_Normal 0
273 #define MUIV_Textinput_Font_Fixed 1
275 #if defined(__GNUC__)