Merging NList MCC 0.119 into the main branch.
[AROS.git] / workbench / classes / zune / nlist / include / mui / NList_mcc.h
blobf10d8f5a28912dfd664b4710da019b91263c4255
1 /***************************************************************************
3 NList.mcc - New List MUI Custom Class
4 Registered MUI class, Serial Number: 1d51 0x9d510030 to 0x9d5100A0
5 0x9d5100C0 to 0x9d5100FF
7 Copyright (C) 1996-2001 by Gilles Masson
8 Copyright (C) 2001-2014 NList Open Source Team
10 This library is free software; you can redistribute it and/or
11 modify it under the terms of the GNU Lesser General Public
12 License as published by the Free Software Foundation; either
13 version 2.1 of the License, or (at your option) any later version.
15 This library is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
20 NList classes Support Site: http://www.sf.net/projects/nlist-classes
22 $Id$
24 ***************************************************************************/
26 #ifndef MUI_NList_MCC_H
27 #define MUI_NList_MCC_H
29 #ifndef LIBRARIES_MUI_H
30 #include <libraries/mui.h>
31 #endif
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
37 #if !defined(__AROS__) && defined(__PPC__)
38 #if defined(__GNUC__)
39 #pragma pack(2)
40 #elif defined(__VBCC__)
41 #pragma amiga-align
42 #endif
43 #endif
45 /***********************************************************************/
47 // STACKED ensures proper alignment on AROS 64 bit systems
48 #if !defined(__AROS__) && !defined(STACKED)
49 #define STACKED
50 #endif
51 #if !defined(__AROS__) && !defined(SIPTR)
52 #define SIPTR LONG
53 #endif
55 /***********************************************************************/
57 /* MUI Prop and Scroller classes stuff which is still not in libraries/mui.h (in MUI3.8) */
58 /* it gives to the prop object it's increment value */
59 #ifndef MUIA_Prop_DeltaFactor
60 #define MUIA_Prop_DeltaFactor 0x80427C5EUL
61 #endif
63 #define MUIC_NList "NList.mcc"
64 #if defined(__AROS__) && !defined(NO_INLINE_STDARG)
65 #define NListObject MUIOBJMACRO_START(MUIC_NList)
66 #else
67 #define NListObject MUI_NewObject(MUIC_NList
68 #endif
70 /* Attributes */
72 #define MUIA_NList_TypeSelect 0x9d510030UL /* GM is. LONG */
73 #define MUIA_NList_Prop_DeltaFactor 0x9d510031UL /* GM ..gn LONG */
74 #define MUIA_NList_Horiz_DeltaFactor 0x9d510032UL /* GM ..gn LONG */
76 #define MUIA_NList_Horiz_First 0x9d510033UL /* GM .sgn LONG */
77 #define MUIA_NList_Horiz_Visible 0x9d510034UL /* GM ..gn LONG */
78 #define MUIA_NList_Horiz_Entries 0x9d510035UL /* GM ..gn LONG */
80 #define MUIA_NList_Prop_First 0x9d510036UL /* GM .sgn LONG */
81 #define MUIA_NList_Prop_Visible 0x9d510037UL /* GM ..gn LONG */
82 #define MUIA_NList_Prop_Entries 0x9d510038UL /* GM ..gn LONG */
84 #define MUIA_NList_TitlePen 0x9d510039UL /* GM isg LONG */
85 #define MUIA_NList_ListPen 0x9d51003aUL /* GM isg LONG */
86 #define MUIA_NList_SelectPen 0x9d51003bUL /* GM isg LONG */
87 #define MUIA_NList_CursorPen 0x9d51003cUL /* GM isg LONG */
88 #define MUIA_NList_UnselCurPen 0x9d51003dUL /* GM isg LONG */
89 #define MUIA_NList_InactivePen 0x9d5100C1UL /* GM isg LONG */
91 #define MUIA_NList_ListBackground 0x9d51003eUL /* GM isg LONG */
92 #define MUIA_NList_TitleBackground 0x9d51003fUL /* GM isg LONG */
93 #define MUIA_NList_SelectBackground 0x9d510040UL /* GM isg LONG */
94 #define MUIA_NList_CursorBackground 0x9d510041UL /* GM isg LONG */
95 #define MUIA_NList_UnselCurBackground 0x9d510042UL /* GM isg LONG */
96 #define MUIA_NList_InactiveBackground 0x9d5100C2UL /* GM isg LONG */
98 #define MUIA_NList_MultiClick 0x9d510043UL /* GM ..gn LONG */
100 #define MUIA_NList_DefaultObjectOnClick 0x9d510044UL /* GM is. BOOL */
101 #define MUIA_NList_ActiveObjectOnClick 0x9d5100C3UL /* GM is. BOOL */
103 #define MUIA_NList_ClickColumn 0x9d510045UL /* GM ..g LONG */
104 #define MUIA_NList_DefClickColumn 0x9d510046UL /* GM isg LONG */
105 #define MUIA_NList_DoubleClick 0x9d510047UL /* GM ..gn LONG */
106 #define MUIA_NList_DragType 0x9d510048UL /* GM isg LONG */
107 #define MUIA_NList_Input 0x9d510049UL /* GM isg BOOL */
108 #define MUIA_NList_MultiSelect 0x9d51004aUL /* GM is. LONG */
109 #define MUIA_NList_SelectChange 0x9d51004bUL /* GM ...n BOOL */
111 #define MUIA_NList_Active 0x9d51004cUL /* GM isgn LONG */
112 #define MUIA_NList_AdjustHeight 0x9d51004dUL /* GM i.. BOOL */
113 #define MUIA_NList_AdjustWidth 0x9d51004eUL /* GM i.. BOOL */
114 #define MUIA_NList_AutoVisible 0x9d51004fUL /* GM isg BOOL */
115 #define MUIA_NList_CompareHook 0x9d510050UL /* GM is. struct Hook * */
116 #define MUIA_NList_ConstructHook 0x9d510051UL /* GM is. struct Hook * */
117 #define MUIA_NList_DestructHook 0x9d510052UL /* GM is. struct Hook * */
118 #define MUIA_NList_DisplayHook 0x9d510053UL /* GM is. struct Hook * */
119 #define MUIA_NList_DragSortable 0x9d510054UL /* GM isg BOOL */
120 #define MUIA_NList_DropMark 0x9d510055UL /* GM ..g LONG */
121 #define MUIA_NList_Entries 0x9d510056UL /* GM ..gn LONG */
122 #define MUIA_NList_First 0x9d510057UL /* GM isgn LONG */
123 #define MUIA_NList_Format 0x9d510058UL /* GM isg STRPTR */
124 #define MUIA_NList_InsertPosition 0x9d510059UL /* GM ..gn LONG */
125 #define MUIA_NList_MinLineHeight 0x9d51005aUL /* GM is. LONG */
126 #define MUIA_NList_MultiTestHook 0x9d51005bUL /* GM is. struct Hook * */
127 #define MUIA_NList_Pool 0x9d51005cUL /* GM i.. APTR */
128 #define MUIA_NList_PoolPuddleSize 0x9d51005dUL /* GM i.. ULONG */
129 #define MUIA_NList_PoolThreshSize 0x9d51005eUL /* GM i.. ULONG */
130 #define MUIA_NList_Quiet 0x9d51005fUL /* GM .s. BOOL */
131 #define MUIA_NList_ShowDropMarks 0x9d510060UL /* GM isg BOOL */
132 #define MUIA_NList_SourceArray 0x9d510061UL /* GM i.. APTR * */
133 #define MUIA_NList_Title 0x9d510062UL /* GM isg char * */
134 #define MUIA_NList_Visible 0x9d510063UL /* GM ..g LONG */
135 #define MUIA_NList_CopyEntryToClipHook 0x9d510064UL /* GM is. struct Hook * */
136 #define MUIA_NList_KeepActive 0x9d510065UL /* GM .s. Obj * */
137 #define MUIA_NList_MakeActive 0x9d510066UL /* GM .s. Obj * */
138 #define MUIA_NList_SourceString 0x9d510067UL /* GM i.. char * */
139 #define MUIA_NList_CopyColumnToClipHook 0x9d510068UL /* GM is. struct Hook * */
140 #define MUIA_NList_ListCompatibility 0x9d510069UL /* GM ... OBSOLETE */
141 #define MUIA_NList_AutoCopyToClip 0x9d51006AUL /* GM is. BOOL */
142 #define MUIA_NList_TabSize 0x9d51006BUL /* GM isg ULONG */
143 #define MUIA_NList_SkipChars 0x9d51006CUL /* GM isg char * */
144 #define MUIA_NList_DisplayRecall 0x9d51006DUL /* GM .g. BOOL */
145 #define MUIA_NList_PrivateData 0x9d51006EUL /* GM isg APTR */
146 #define MUIA_NList_EntryValueDependent 0x9d51006FUL /* GM isg BOOL */
148 #define MUIA_NList_IgnoreSpecialChars 0x9d510070UL /* GM isg const char * */
150 #define MUIA_NList_StackCheck 0x9d510097UL /* GM i.. BOOL */
151 #define MUIA_NList_WordSelectChars 0x9d510098UL /* GM isg char * */
152 #define MUIA_NList_EntryClick 0x9d510099UL /* GM ..gn LONG */
153 #define MUIA_NList_DragColOnly 0x9d51009AUL /* GM isg LONG */
154 #define MUIA_NList_TitleClick 0x9d51009BUL /* GM isgn LONG */
155 #define MUIA_NList_DropType 0x9d51009CUL /* GM ..g LONG */
156 #define MUIA_NList_ForcePen 0x9d51009DUL /* GM isg LONG */
157 #define MUIA_NList_SourceInsert 0x9d51009EUL /* GM i.. struct MUIP_NList_InsertWrap * */
158 #define MUIA_NList_TitleSeparator 0x9d51009FUL /* GM isg BOOL */
160 #define MUIA_NList_AutoClip 0x9d5100C0UL /* GM isg BOOL */
162 #define MUIA_NList_SortType2 0x9d5100EDUL /* GM isgn LONG */
163 #define MUIA_NList_TitleClick2 0x9d5100EEUL /* GM isgn LONG */
164 #define MUIA_NList_TitleMark2 0x9d5100EFUL /* GM isg LONG */
165 #define MUIA_NList_MultiClickAlone 0x9d5100F0UL /* GM ..gn LONG */
166 #define MUIA_NList_TitleMark 0x9d5100F1UL /* GM isg LONG */
167 #define MUIA_NList_DragSortInsert 0x9d5100F2UL /* GM ..gn LONG */
168 #define MUIA_NList_MinColSortable 0x9d5100F3UL /* GM isg LONG */
169 #define MUIA_NList_Imports 0x9d5100F4UL /* GM isg LONG */
170 #define MUIA_NList_Exports 0x9d5100F5UL /* GM isg LONG */
171 #define MUIA_NList_Columns 0x9d5100F6UL /* GM isgn BYTE * */
172 #define MUIA_NList_LineHeight 0x9d5100F7UL /* GM ..gn LONG */
173 #define MUIA_NList_ButtonClick 0x9d5100F8UL /* GM ..gn LONG */
174 #define MUIA_NList_CopyEntryToClipHook2 0x9d5100F9UL /* GM is. struct Hook * */
175 #define MUIA_NList_CopyColumnToClipHook2 0x9d5100FAUL /* GM is. struct Hook * */
176 #define MUIA_NList_CompareHook2 0x9d5100FBUL /* GM is. struct Hook * */
177 #define MUIA_NList_ConstructHook2 0x9d5100FCUL /* GM is. struct Hook * */
178 #define MUIA_NList_DestructHook2 0x9d5100FDUL /* GM is. struct Hook * */
179 #define MUIA_NList_DisplayHook2 0x9d5100FEUL /* GM is. struct Hook * */
180 #define MUIA_NList_SortType 0x9d5100FFUL /* GM isgn LONG */
182 #define MUIA_NList_KeyUpFocus 0x9d5100C4UL /* GM isg. Object * */
183 #define MUIA_NList_KeyDownFocus 0x9d5100C5UL /* GM isg. Object * */
184 #define MUIA_NList_KeyLeftFocus 0x9d5100C6UL /* GM isg. Object * */
185 #define MUIA_NList_KeyRightFocus 0x9d5100C7UL /* GM isg. Object * */
187 #define MUIA_NLIMG_EntryCurrent MUIA_NList_First /* LONG (special for nlist custom image object) */
188 #define MUIA_NLIMG_EntryHeight MUIA_NList_Visible /* LONG (special for nlist custom image object) */
190 #define MUIA_NList_VertDeltaFactor MUIA_NList_Prop_DeltaFactor /* OBSOLETE NAME */
191 #define MUIA_NList_HorizDeltaFactor MUIA_NList_Horiz_DeltaFactor /* OBSOLETE NAME */
193 /* Attributes special datas */
194 #define MUIV_NList_TypeSelect_Line 0
195 #define MUIV_NList_TypeSelect_Char 1
197 #define MUIV_NList_Font ((IPTR)-20)
198 #define MUIV_NList_Font_Little ((IPTR)-21)
199 #define MUIV_NList_Font_Fixed ((IPTR)-22)
201 #define MUIV_NList_ConstructHook_String -1
202 #define MUIV_NList_DestructHook_String -1
204 #define MUIV_NList_Active_Off -1
205 #define MUIV_NList_Active_Top -2
206 #define MUIV_NList_Active_Bottom -3
207 #define MUIV_NList_Active_Up -4
208 #define MUIV_NList_Active_Down -5
209 #define MUIV_NList_Active_PageUp -6
210 #define MUIV_NList_Active_PageDown -7
212 #define MUIV_NList_First_Top -2
213 #define MUIV_NList_First_Bottom -3
214 #define MUIV_NList_First_Up -4
215 #define MUIV_NList_First_Down -5
216 #define MUIV_NList_First_PageUp -6
217 #define MUIV_NList_First_PageDown -7
218 #define MUIV_NList_First_Up2 -8
219 #define MUIV_NList_First_Down2 -9
220 #define MUIV_NList_First_Up4 -10
221 #define MUIV_NList_First_Down4 -11
223 #define MUIV_NList_Horiz_First_Start -2
224 #define MUIV_NList_Horiz_First_End -3
225 #define MUIV_NList_Horiz_First_Left -4
226 #define MUIV_NList_Horiz_First_Right -5
227 #define MUIV_NList_Horiz_First_PageLeft -6
228 #define MUIV_NList_Horiz_First_PageRight -7
229 #define MUIV_NList_Horiz_First_Left2 -8
230 #define MUIV_NList_Horiz_First_Right2 -9
231 #define MUIV_NList_Horiz_First_Left4 -10
232 #define MUIV_NList_Horiz_First_Right4 -11
234 #define MUIV_NList_MultiSelect_None 0
235 #define MUIV_NList_MultiSelect_Default 1
236 #define MUIV_NList_MultiSelect_Shifted 2
237 #define MUIV_NList_MultiSelect_Always 3
239 #define MUIV_NList_Insert_Top 0
240 #define MUIV_NList_Insert_Active -1
241 #define MUIV_NList_Insert_Sorted -2
242 #define MUIV_NList_Insert_Bottom -3
243 #define MUIV_NList_Insert_Flag_Raw (1<<0)
245 #define MUIV_NList_Remove_First 0
246 #define MUIV_NList_Remove_Active -1
247 #define MUIV_NList_Remove_Last -2
248 #define MUIV_NList_Remove_Selected -3
250 #define MUIV_NList_Select_Off 0
251 #define MUIV_NList_Select_On 1
252 #define MUIV_NList_Select_Toggle 2
253 #define MUIV_NList_Select_Ask 3
255 #define MUIV_NList_GetEntry_Active -1
256 #define MUIV_NList_GetEntryInfo_Line -2
258 #define MUIV_NList_Select_Active -1
259 #define MUIV_NList_Select_All -2
261 #define MUIV_NList_Redraw_Active -1
262 #define MUIV_NList_Redraw_All -2
263 #define MUIV_NList_Redraw_Title -3
264 #define MUIV_NList_Redraw_Selected -4
265 #define MUIV_NList_Redraw_VisibleCols -5
267 #define MUIV_NList_Move_Top 0
268 #define MUIV_NList_Move_Active -1
269 #define MUIV_NList_Move_Bottom -2
270 #define MUIV_NList_Move_Next -3 /* only valid for second parameter (and not with Move_Selected) */
271 #define MUIV_NList_Move_Previous -4 /* only valid for second parameter (and not with Move_Selected) */
272 #define MUIV_NList_Move_Selected -5 /* only valid for first parameter */
274 #define MUIV_NList_Exchange_Top 0
275 #define MUIV_NList_Exchange_Active -1
276 #define MUIV_NList_Exchange_Bottom -2
277 #define MUIV_NList_Exchange_Next -3 /* only valid for second parameter */
278 #define MUIV_NList_Exchange_Previous -4 /* only valid for second parameter */
280 #define MUIV_NList_Jump_Top 0
281 #define MUIV_NList_Jump_Active -1
282 #define MUIV_NList_Jump_Bottom -2
283 #define MUIV_NList_Jump_Down -3
284 #define MUIV_NList_Jump_Up -4
285 #define MUIV_NList_Jump_Active_Center -5
287 #define MUIV_NList_NextSelected_Start -1
288 #define MUIV_NList_NextSelected_End -1
290 #define MUIV_NList_PrevSelected_Start -1
291 #define MUIV_NList_PrevSelected_End -1
293 #define MUIV_NList_DragType_None 0
294 #define MUIV_NList_DragType_Default 1
295 #define MUIV_NList_DragType_Immediate 2
296 #define MUIV_NList_DragType_Borders 3
297 #define MUIV_NList_DragType_Qualifier 4
299 #define MUIV_NList_CopyToClip_Active -1
300 #define MUIV_NList_CopyToClip_Selected -2
301 #define MUIV_NList_CopyToClip_All -3
302 #define MUIV_NList_CopyToClip_Entries -4
303 #define MUIV_NList_CopyToClip_Entry -5
304 #define MUIV_NList_CopyToClip_Strings -6
305 #define MUIV_NList_CopyToClip_String -7
307 #define MUIV_NList_CopyTo_Active -1
308 #define MUIV_NList_CopyTo_Selected -2
309 #define MUIV_NList_CopyTo_All -3
310 #define MUIV_NList_CopyTo_Entries -4
311 #define MUIV_NList_CopyTo_Entry -5
313 #define MUIV_NLCT_Success 0
314 #define MUIV_NLCT_OpenErr 1
315 #define MUIV_NLCT_WriteErr 2
316 #define MUIV_NLCT_Failed 3
318 #define MUIV_NList_ForcePen_On 1
319 #define MUIV_NList_ForcePen_Off 0
320 #define MUIV_NList_ForcePen_Default -1
322 #define MUIV_NList_DropType_Mask 0x00FF
323 #define MUIV_NList_DropType_None 0
324 #define MUIV_NList_DropType_Above 1
325 #define MUIV_NList_DropType_Below 2
326 #define MUIV_NList_DropType_Onto 3
328 #define MUIV_NList_DoMethod_Active -1
329 #define MUIV_NList_DoMethod_Selected -2
330 #define MUIV_NList_DoMethod_All -3
332 #define MUIV_NList_DoMethod_Entry -1
333 #define MUIV_NList_DoMethod_Self -2
334 #define MUIV_NList_DoMethod_App -3
336 #define MUIV_NList_EntryValue (MUIV_TriggerValue+0x100)
337 #define MUIV_NList_EntryPosValue (MUIV_TriggerValue+0x102)
338 #define MUIV_NList_SelfValue (MUIV_TriggerValue+0x104)
339 #define MUIV_NList_AppValue (MUIV_TriggerValue+0x106)
341 #define MUIV_NList_ColWidth_All -1
342 #define MUIV_NList_ColWidth_Default -1
343 #define MUIV_NList_ColWidth_Get -2
345 #define MUIV_NList_ContextMenu_Default 0x9d510031
346 #define MUIV_NList_ContextMenu_TopOnly 0x9d510033
347 #define MUIV_NList_ContextMenu_BarOnly 0x9d510035
348 #define MUIV_NList_ContextMenu_Bar_Top 0x9d510037
349 #define MUIV_NList_ContextMenu_Always 0x9d510039
350 #define MUIV_NList_ContextMenu_Never 0x9d51003b
352 #define MUIV_NList_Menu_DefWidth_This 0x9d51003d
353 #define MUIV_NList_Menu_DefWidth_All 0x9d51003f
354 #define MUIV_NList_Menu_DefOrder_This 0x9d510041
355 #define MUIV_NList_Menu_DefOrder_All 0x9d510043
356 #define MUIV_NList_Menu_Default_This MUIV_NList_Menu_DefWidth_This
357 #define MUIV_NList_Menu_Default_All MUIV_NList_Menu_DefWidth_All
359 #define MUIV_NList_SortType_None 0xF0000000
360 #define MUIV_NList_SortTypeAdd_None 0x00000000
361 #define MUIV_NList_SortTypeAdd_2Values 0x80000000
362 #define MUIV_NList_SortTypeAdd_4Values 0x40000000
363 #define MUIV_NList_SortTypeAdd_Mask 0xC0000000
364 #define MUIV_NList_SortTypeValue_Mask 0x3FFFFFFF
366 #define MUIV_NList_Sort3_SortType_Both 0x00000000
367 #define MUIV_NList_Sort3_SortType_1 0x00000001
368 #define MUIV_NList_Sort3_SortType_2 0x00000002
370 #define MUIV_NList_Quiet_None 0
371 #define MUIV_NList_Quiet_Full -1
372 #define MUIV_NList_Quiet_Visual -2
374 #define MUIV_NList_Imports_Active (1 << 0)
375 #define MUIV_NList_Imports_Selected (1 << 1)
376 #define MUIV_NList_Imports_First (1 << 2)
377 #define MUIV_NList_Imports_ColWidth (1 << 3)
378 #define MUIV_NList_Imports_ColOrder (1 << 4)
379 #define MUIV_NList_Imports_TitleMark (1 << 7)
380 #define MUIV_NList_Imports_Cols 0x000000F8
381 #define MUIV_NList_Imports_All 0x0000FFFF
383 #define MUIV_NList_Exports_Active (1 << 0)
384 #define MUIV_NList_Exports_Selected (1 << 1)
385 #define MUIV_NList_Exports_First (1 << 2)
386 #define MUIV_NList_Exports_ColWidth (1 << 3)
387 #define MUIV_NList_Exports_ColOrder (1 << 4)
388 #define MUIV_NList_Exports_TitleMark (1 << 7)
389 #define MUIV_NList_Exports_Cols 0x000000F8
390 #define MUIV_NList_Exports_All 0x0000FFFF
392 #define MUIV_NList_TitleMark_ColMask 0x000000FF
393 #define MUIV_NList_TitleMark_TypeMask 0xF0000000
394 #define MUIV_NList_TitleMark_None 0xF0000000
395 #define MUIV_NList_TitleMark_Down 0x00000000
396 #define MUIV_NList_TitleMark_Up 0x80000000
397 #define MUIV_NList_TitleMark_Box 0x40000000
398 #define MUIV_NList_TitleMark_Circle 0xC0000000
400 #define MUIV_NList_TitleMark2_ColMask 0x000000FF
401 #define MUIV_NList_TitleMark2_TypeMask 0xF0000000
402 #define MUIV_NList_TitleMark2_None 0xF0000000
403 #define MUIV_NList_TitleMark2_Down 0x00000000
404 #define MUIV_NList_TitleMark2_Up 0x80000000
405 #define MUIV_NList_TitleMark2_Box 0x40000000
406 #define MUIV_NList_TitleMark2_Circle 0xC0000000
408 #define MUIV_NList_SetColumnCol_Default (-1)
410 #define MUIV_NList_GetPos_Start (-1)
411 #define MUIV_NList_GetPos_End (-1)
413 #define MUIV_NList_SelectChange_Flag_Multi (1 << 0)
415 #define MUIV_NList_UseImage_All (-1)
417 #define MUIV_NList_SetActive_Entry (1 << 0)
418 #define MUIV_NList_SetActive_Jump_Center (1 << 1)
420 /* Structs */
422 struct BitMapImage
424 ULONG control; /* should be == to MUIM_NList_CreateImage for a valid BitMapImage struct */
425 WORD width; /* if control == MUIA_Image_Spec then obtainpens is a pointer to an Object */
426 WORD height;
427 WORD *obtainpens;
428 PLANEPTR mask;
429 struct BitMap imgbmp;
430 LONG flags;
434 struct MUI_NList_TestPos_Result
436 LONG entry; /* number of entry, -1 if mouse not over valid entry */
437 WORD column; /* numer of column, -1 if no valid column */
438 UWORD flags; /* not in the list, see below */
439 WORD xoffset; /* x offset in column */
440 WORD yoffset; /* y offset of mouse click from center of line */
441 WORD preparse; /* 2 if in column preparse string, 1 if in entry preparse string, else 0 */
442 WORD char_number; /* the number of the clicked char in column, -1 if no valid */
443 WORD char_xoffset; /* x offset of mouse clicked from left of char if positive */
444 }; /* and left of next char if negative. If there is no char there */
445 /* negative if from left of first char else from right of last one */
447 #define MUI_NLPR_ABOVE (1<<0)
448 #define MUI_NLPR_BELOW (1<<1)
449 #define MUI_NLPR_LEFT (1<<2)
450 #define MUI_NLPR_RIGHT (1<<3)
451 #define MUI_NLPR_BAR (1<<4) /* if between two columns you'll get the left
452 column number of both, and that flag */
453 #define MUI_NLPR_TITLE (1<<5) /* if clicked on title, only column, xoffset and yoffset (and MUI_NLPR_BAR)
454 are valid (you'll get MUI_NLPR_ABOVE too) */
455 #define MUI_NLPR_ONTOP (1<<6) /* it is on title/half of first visible entry */
458 struct MUI_NList_GetEntryInfo
460 LONG pos; /* num of entry you want info about */
461 LONG line; /* real line number */
462 LONG entry_pos; /* entry num of returned entry ptr */
463 APTR entry; /* entry pointer */
464 LONG wrapcol; /* NOWRAP, WRAPCOLx, or WRAPPED|WRAPCOLx */
465 LONG charpos; /* start char number in string (unused if NOWRAP) */
466 LONG charlen; /* string lenght (unused if NOWRAP) */
469 #define NOWRAP 0x00
470 #define WRAPCOL0 0x01
471 #define WRAPCOL1 0x02
472 #define WRAPCOL2 0x04
473 #define WRAPCOL3 0x08
474 #define WRAPCOL4 0x10
475 #define WRAPCOL5 0x20
476 #define WRAPCOL6 0x40
477 #define WRAPPED 0x80
480 struct MUI_NList_GetSelectInfo
482 LONG start; /* num of first selected *REAL* entry/line (first of wrapped from which start is issued) */
483 LONG end; /* num of last selected *REAL* entry/line (first of wrapped from which start is issued) */
484 LONG num; /* not used */
485 LONG start_column; /* column of start of selection in 'start' entry */
486 LONG end_column; /* column of end of selection in 'end' entry */
487 LONG start_pos; /* char pos of start of selection in 'start_column' entry */
488 LONG end_pos; /* char pos of end of selection in 'end_column' entry */
489 LONG vstart; /* num of first visually selected entry */
490 LONG vend; /* num of last visually selected entry */
491 LONG vnum; /* number of visually selected entries */
493 /* NOTE that vstart==start, vend==end in all cases if no wrapping is used */
495 /* Methods */
497 #define MUIM_NList_Clear 0x9d510070UL /* GM */
498 #define MUIM_NList_CreateImage 0x9d510071UL /* GM */
499 #define MUIM_NList_DeleteImage 0x9d510072UL /* GM */
500 #define MUIM_NList_Exchange 0x9d510073UL /* GM */
501 #define MUIM_NList_GetEntry 0x9d510074UL /* GM */
502 #define MUIM_NList_Insert 0x9d510075UL /* GM */
503 #define MUIM_NList_InsertSingle 0x9d510076UL /* GM */
504 #define MUIM_NList_Jump 0x9d510077UL /* GM */
505 #define MUIM_NList_Move 0x9d510078UL /* GM */
506 #define MUIM_NList_NextSelected 0x9d510079UL /* GM */
507 #define MUIM_NList_Redraw 0x9d51007aUL /* GM */
508 #define MUIM_NList_Remove 0x9d51007bUL /* GM */
509 #define MUIM_NList_Select 0x9d51007cUL /* GM */
510 #define MUIM_NList_Sort 0x9d51007dUL /* GM */
511 #define MUIM_NList_TestPos 0x9d51007eUL /* GM */
512 #define MUIM_NList_CopyToClip 0x9d51007fUL /* GM */
513 #define MUIM_NList_UseImage 0x9d510080UL /* GM */
514 #define MUIM_NList_ReplaceSingle 0x9d510081UL /* GM */
515 #define MUIM_NList_InsertWrap 0x9d510082UL /* GM */
516 #define MUIM_NList_InsertSingleWrap 0x9d510083UL /* GM */
517 #define MUIM_NList_GetEntryInfo 0x9d510084UL /* GM */
518 #define MUIM_NList_QueryBeginning 0x9d510085UL /* Obsolete */
519 #define MUIM_NList_GetSelectInfo 0x9d510086UL /* GM */
520 #define MUIM_NList_CopyTo 0x9d510087UL /* GM */
521 #define MUIM_NList_DropType 0x9d510088UL /* GM */
522 #define MUIM_NList_DropDraw 0x9d510089UL /* GM */
523 #define MUIM_NList_RedrawEntry 0x9d51008aUL /* GM */
524 #define MUIM_NList_DoMethod 0x9d51008bUL /* GM */
525 #define MUIM_NList_ColWidth 0x9d51008cUL /* GM */
526 #define MUIM_NList_ContextMenuBuild 0x9d51008dUL /* GM */
527 #define MUIM_NList_DropEntryDrawErase 0x9d51008eUL /* GM */
528 #define MUIM_NList_ColToColumn 0x9d51008fUL /* GM */
529 #define MUIM_NList_ColumnToCol 0x9d510091UL /* GM */
530 #define MUIM_NList_Sort2 0x9d510092UL /* GM */
531 #define MUIM_NList_PrevSelected 0x9d510093UL /* GM */
532 #define MUIM_NList_SetColumnCol 0x9d510094UL /* GM */
533 #define MUIM_NList_Sort3 0x9d510095UL /* GM */
534 #define MUIM_NList_GetPos 0x9d510096UL /* GM */
535 #define MUIM_NList_SelectChange 0x9d5100A0UL /* GM */
536 #define MUIM_NList_Construct 0x9d5100A1UL /* GM */
537 #define MUIM_NList_Destruct 0x9d5100A2UL /* GM */
538 #define MUIM_NList_Compare 0x9d5100A3UL /* GM */
539 #define MUIM_NList_Display 0x9d5100A4UL /* GM */
540 #define MUIM_NList_GoActive 0x9d5100A5UL /* GM */
541 #define MUIM_NList_GoInactive 0x9d5100A6UL /* GM */
542 #define MUIM_NList_SetActive 0x9d5100A7UL /* GM */
545 for future extensions, skip 0x9d5100A8 as method ID, this one is already used by NListview
546 for future extensions, skip 0x9d5100AF as method ID, this one is already used by NFloattext
549 struct MUIP_NList_Clear { STACKED ULONG MethodID; };
550 struct MUIP_NList_CreateImage { STACKED ULONG MethodID; STACKED Object *obj; STACKED ULONG flags; };
551 struct MUIP_NList_DeleteImage { STACKED ULONG MethodID; STACKED APTR listimg; };
552 struct MUIP_NList_Exchange { STACKED ULONG MethodID; STACKED LONG pos1; STACKED LONG pos2; };
553 struct MUIP_NList_GetEntry { STACKED ULONG MethodID; STACKED LONG pos; STACKED APTR *entry; };
554 struct MUIP_NList_Insert { STACKED ULONG MethodID; STACKED APTR *entries; STACKED LONG count; STACKED LONG pos; STACKED ULONG flags; };
555 struct MUIP_NList_InsertSingle { STACKED ULONG MethodID; STACKED APTR entry; STACKED LONG pos; };
556 struct MUIP_NList_Jump { STACKED ULONG MethodID; STACKED LONG pos; };
557 struct MUIP_NList_Move { STACKED ULONG MethodID; STACKED LONG from; STACKED LONG to; };
558 struct MUIP_NList_NextSelected { STACKED ULONG MethodID; STACKED LONG *pos; };
559 struct MUIP_NList_Redraw { STACKED ULONG MethodID; STACKED LONG pos; };
560 struct MUIP_NList_Remove { STACKED ULONG MethodID; STACKED LONG pos; };
561 struct MUIP_NList_Select { STACKED ULONG MethodID; STACKED LONG pos; STACKED LONG seltype; STACKED LONG *state; };
562 struct MUIP_NList_Sort { STACKED ULONG MethodID; };
563 struct MUIP_NList_TestPos { STACKED ULONG MethodID; STACKED LONG x; STACKED LONG y; STACKED struct MUI_NList_TestPos_Result *res; };
564 struct MUIP_NList_CopyToClip { STACKED ULONG MethodID; STACKED LONG pos; STACKED ULONG clipnum; STACKED APTR *entries; STACKED struct Hook *hook; };
565 struct MUIP_NList_UseImage { STACKED ULONG MethodID; STACKED Object *obj; STACKED LONG imgnum; STACKED ULONG flags; };
566 struct MUIP_NList_ReplaceSingle { STACKED ULONG MethodID; STACKED APTR entry; STACKED LONG pos; STACKED LONG wrapcol; STACKED LONG align; };
567 struct MUIP_NList_InsertWrap { STACKED ULONG MethodID; STACKED APTR *entries; STACKED LONG count; STACKED LONG pos; STACKED LONG wrapcol; STACKED LONG align; STACKED ULONG flags; };
568 struct MUIP_NList_InsertSingleWrap { STACKED ULONG MethodID; STACKED APTR entry; STACKED LONG pos; STACKED LONG wrapcol; STACKED LONG align; };
569 struct MUIP_NList_GetEntryInfo { STACKED ULONG MethodID; STACKED struct MUI_NList_GetEntryInfo *res; };
570 struct MUIP_NList_QueryBeginning { STACKED ULONG MethodID; };
571 struct MUIP_NList_GetSelectInfo { STACKED ULONG MethodID; STACKED struct MUI_NList_GetSelectInfo *res; };
572 struct MUIP_NList_CopyTo { STACKED ULONG MethodID; STACKED LONG pos; STACKED char *filename; STACKED APTR *result; STACKED APTR *entries; };
573 struct MUIP_NList_DropType { STACKED ULONG MethodID; STACKED LONG *pos; STACKED LONG *type; STACKED LONG minx, maxx, miny, maxy; STACKED LONG mousex, mousey; };
574 struct MUIP_NList_DropDraw { STACKED ULONG MethodID; STACKED LONG pos; STACKED LONG type; STACKED LONG minx, maxx, miny, maxy; };
575 struct MUIP_NList_RedrawEntry { STACKED ULONG MethodID; STACKED APTR entry; };
576 struct MUIP_NList_DoMethod { STACKED ULONG MethodID; STACKED LONG pos; STACKED APTR DestObj; STACKED ULONG FollowParams; /* ... */ };
577 struct MUIP_NList_ColWidth { STACKED ULONG MethodID; STACKED LONG col; STACKED LONG width; };
578 struct MUIP_NList_ContextMenuBuild { STACKED ULONG MethodID; STACKED LONG mx; STACKED LONG my; STACKED LONG pos; STACKED LONG column; STACKED LONG flags; STACKED LONG ontop; };
579 struct MUIP_NList_DropEntryDrawErase { STACKED ULONG MethodID; STACKED LONG type; STACKED LONG drawpos; STACKED LONG erasepos; };
580 struct MUIP_NList_ColToColumn { STACKED ULONG MethodID; STACKED LONG col; };
581 struct MUIP_NList_ColumnToCol { STACKED ULONG MethodID; STACKED LONG column; };
582 struct MUIP_NList_Sort2 { STACKED ULONG MethodID; STACKED LONG sort_type; STACKED LONG sort_type_add; };
583 struct MUIP_NList_PrevSelected { STACKED ULONG MethodID; STACKED LONG *pos; };
584 struct MUIP_NList_SetColumnCol { STACKED ULONG MethodID; STACKED LONG column; STACKED LONG col; };
585 struct MUIP_NList_Sort3 { STACKED ULONG MethodID; STACKED LONG sort_type; STACKED LONG sort_type_add; STACKED LONG which; };
586 struct MUIP_NList_GetPos { STACKED ULONG MethodID; STACKED APTR entry; STACKED LONG *pos; };
587 struct MUIP_NList_SelectChange { STACKED ULONG MethodID; STACKED LONG pos; STACKED LONG state; STACKED ULONG flags; };
588 struct MUIP_NList_Construct { STACKED ULONG MethodID; STACKED APTR entry; STACKED APTR pool; };
589 struct MUIP_NList_Destruct { STACKED ULONG MethodID; STACKED APTR entry; STACKED APTR pool; };
590 struct MUIP_NList_Compare { STACKED ULONG MethodID; STACKED APTR entry1; STACKED APTR entry2; STACKED LONG sort_type1; STACKED LONG sort_type2; };
591 struct MUIP_NList_Display { STACKED ULONG MethodID; STACKED APTR entry; STACKED LONG entry_pos; STACKED STRPTR *strings; STACKED STRPTR *preparses; };
592 struct MUIP_NList_GoActive { STACKED ULONG MethodID; };
593 struct MUIP_NList_GoInactive { STACKED ULONG MethodID; };
594 struct MUIP_NList_SetActive { STACKED ULONG MethodID; STACKED SIPTR pos; STACKED ULONG flags; };
596 #define DISPLAY_ARRAY_MAX 64
598 #define ALIGN_LEFT 0x0000
599 #define ALIGN_CENTER 0x0100
600 #define ALIGN_RIGHT 0x0200
601 #define ALIGN_JUSTIFY 0x0400
604 /* Be carrefull ! the 'sort_type2' member don't exist in releases before 19.96
605 * where MUIM_NList_Sort3, MUIA_NList_SortType2, MUIA_NList_TitleClick2 and
606 * MUIA_NList_TitleMark2 have appeared !
607 * You can safely use get(obj,MUIA_NList_SortType2,&st2) instead if you are not
608 * sure of the NList.mcc release which is used.
610 struct NList_CompareMessage
612 STACKED APTR entry1;
613 STACKED APTR entry2;
614 STACKED LONG sort_type;
615 STACKED LONG sort_type2;
618 struct NList_ConstructMessage
620 STACKED APTR entry;
621 STACKED APTR pool;
624 struct NList_DestructMessage
626 STACKED APTR entry;
627 STACKED APTR pool;
630 struct NList_DisplayMessage
632 STACKED APTR entry;
633 STACKED LONG entry_pos;
634 STACKED char *strings[DISPLAY_ARRAY_MAX];
635 STACKED char *preparses[DISPLAY_ARRAY_MAX];
638 struct NList_CopyEntryToClipMessage
640 STACKED APTR entry;
641 STACKED LONG entry_pos;
642 STACKED char *str_result;
643 STACKED LONG column1;
644 STACKED LONG column1_pos;
645 STACKED LONG column2;
646 STACKED LONG column2_pos;
647 STACKED LONG column1_pos_type;
648 STACKED LONG column2_pos_type;
651 struct NList_CopyColumnToClipMessage
653 STACKED char *string;
654 STACKED LONG entry_pos;
655 STACKED char *str_result;
656 STACKED LONG str_pos1;
657 STACKED LONG str_pos2;
660 #if !defined(__AROS__) && defined(__PPC__)
661 #if defined(__GNUC__)
662 #pragma pack()
663 #elif defined(__VBCC__)
664 #pragma default-align
665 #endif
666 #endif
668 #ifdef __cplusplus
670 #endif
672 #endif /* MUI_NList_MCC_H */