Merging NList MCC 0.119 into the main branch.
[AROS.git] / workbench / classes / zune / nlist / nlist_mcc / protos.h
blob57c4edc8cc6073177f6910ad5302cfc5f8bd5407
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 /* NList_mcc.c */
28 extern void release_pen(Object *obj, IPTR *pen);
29 extern void obtain_pen(Object *obj, IPTR *pen, struct MUI_PenSpec *ps);
30 extern IPTR mNL_New(struct IClass *cl,Object *obj,struct opSet *msg);
31 extern IPTR mNL_Dispose(struct IClass *cl,Object *obj,Msg msg);
32 extern IPTR mNL_Setup(struct IClass *cl,Object *obj,struct MUIP_Setup *msg);
33 extern IPTR mNL_Cleanup(struct IClass *cl,Object *obj,struct MUIP_Cleanup *msg);
35 /* NList_mcc0.c */
38 ** Dispatcher
41 /* NList_mcc1.c */
43 extern IPTR mNL_AskMinMax(struct IClass *cl,Object *obj,struct MUIP_AskMinMax *msg);
44 extern IPTR mNL_Notify(struct IClass *cl,Object *obj,struct MUIP_Notify *msg);
45 extern IPTR mNL_Set(struct IClass *cl,Object *obj,Msg msg);
46 extern IPTR mNL_Get(struct IClass *cl,Object *obj,struct opGet *msg);
48 /* NList_mcc2.c */
50 extern IPTR mNL_HandleEvent(struct IClass *cl,Object *obj,struct MUIP_HandleInput *msg);
51 extern IPTR mNL_CreateDragImage(struct IClass *cl,Object *obj,struct MUIP_CreateDragImage *msg);
52 extern IPTR mNL_DeleteDragImage(struct IClass *cl,Object *obj,struct MUIP_DeleteDragImage *msg);
53 extern BOOL NL_Prop_First_Adjust(struct NLData *data);
54 extern IPTR mNL_Trigger(struct IClass *cl,Object *obj,Msg msg);
56 /* NList_mcc3.c */
58 extern void NL_SetObjInfos(struct NLData *data,BOOL setall);
59 extern IPTR mNL_Draw(struct IClass *cl,Object *obj,struct MUIP_Draw *msg);
60 extern IPTR mNL_DropDraw(struct IClass *cl,Object *obj,struct MUIP_NList_DropDraw *msg);
62 /* NList_mcc4.c */
64 extern BOOL DontDoColumn(struct NLData *data,LONG ent,WORD column);
65 extern void ParseColumn(struct NLData *data,WORD column,IPTR mypen);
66 extern void WidthColumn(struct NLData *data,WORD column,WORD updinfo);
67 extern void AllParseColumns(struct NLData *data);
68 extern void FreeAffInfo(struct NLData *data);
69 extern BOOL NeedAffInfo(struct NLData *data,WORD niask);
70 extern void NL_GetDisplayArray(struct NLData *data,SIPTR ent);
71 extern void FindCharInColumn(struct NLData *data,LONG ent,WORD column,WORD xoffset,WORD *charxoffset,WORD *charnum);
72 extern void NL_DoWrapAll(struct NLData *data,BOOL force,BOOL update);
73 extern void AllWidthColumns(struct NLData *data);
74 extern void NL_SetColsAdd(struct NLData *data,LONG ent,WORD addimages);
75 extern void NL_SetColsRem(struct NLData *data,LONG ent);
77 /* NList_mcc5.c */
79 extern void NL_SetCols(struct NLData *data);
80 extern LONG NL_DoNotifies(struct NLData *data,LONG which);
81 extern void NL_UpdateScrollersValues(struct NLData *data);
82 extern ULONG NL_UpdateScrollers(struct NLData *data,BOOL force);
83 extern void NL_DrawQuietBG(struct NLData *data,LONG dowhat,LONG bg);
84 extern void NL_Select(struct NLData *data,LONG dowhat,LONG ent,BYTE sel);
85 extern void ScrollVert(struct NLData *data,WORD dy,LONG LPVisible);
86 extern void ScrollHoriz(struct NLData *data,WORD dx,LONG LPVisible);
87 extern LONG NL_ColToColumn(struct NLData *data,LONG col);
88 extern LONG NL_ColumnToCol(struct NLData *data,LONG column);
89 extern LONG NL_SetCol(struct NLData *data,LONG column,LONG col);
90 extern LONG NL_ColWidth(struct NLData *data,LONG col,LONG width);
91 extern BYTE *NL_Columns(struct NLData *data,BYTE *columns);
92 extern IPTR mNL_ColToColumn(struct IClass *cl,Object *obj,struct MUIP_NList_ColToColumn *msg);
93 extern IPTR mNL_ColumnToCol(struct IClass *cl,Object *obj,struct MUIP_NList_ColumnToCol *msg);
94 extern IPTR mNL_SetColumnCol(struct IClass *cl,Object *obj,struct MUIP_NList_SetColumnCol *msg);
95 extern IPTR mNL_List_ColWidth(struct IClass *cl,Object *obj,struct MUIP_NList_ColWidth *msg);
96 extern IPTR mNL_ContextMenuBuild(struct IClass *cl,Object *obj,struct MUIP_ContextMenuBuild *msg);
97 extern IPTR mNL_ContextMenuChoice(struct IClass *cl,Object *obj,struct MUIP_ContextMenuChoice *msg);
99 /* NList_mcc6.c */
101 extern void DrawBackground(Object *obj, LONG left, LONG top, LONG width, LONG height, LONG xoff, LONG yoff);
102 extern WORD DrawTitle(struct NLData *data,LONG minx,LONG maxx,WORD hfirst);
103 extern void DrawOldLine(struct NLData *data,LONG ent,LONG minx,LONG maxx,WORD hfirst);
104 extern WORD DrawLines(struct NLData *data,LONG e1,LONG e2,LONG minx,LONG maxx,WORD hfirst,WORD hmax,WORD small,BOOL do_extrems,WORD not_all);
105 extern LONG DrawText(struct NLData *data,LONG ent,LONG x,LONG y,LONG minx,LONG maxx,ULONG mypen,LONG dxpermit,BOOL forcepen);
106 extern LONG DrawDragText(struct NLData *data,BOOL draw);
107 extern void DisposeDragRPort(struct NLData *data);
108 extern struct RastPort *CreateDragRPort(struct NLData *data,LONG numlines,LONG first,LONG last);
110 /* NList_func.c */
112 extern void NL_SegChanged(struct NLData *data,LONG ent1,LONG ent2);
113 extern void NL_Changed(struct NLData *data,LONG ent);
114 extern void NL_UnSelectAll(struct NLData *data,LONG untouch_ent);
115 extern void UnSelectCharSel(struct NLData *data,BOOL redraw);
116 extern void SelectFirstPoint(struct NLData *data,WORD x,WORD y);
117 extern void SelectSecondPoint(struct NLData *data,WORD x,WORD y);
118 extern BOOL NL_List_First(struct NLData *data,LONG lf,struct TagItem *tag);
119 extern BOOL NL_List_Active(struct NLData *data,LONG la,struct TagItem *tag,LONG newactsel,LONG acceptsame,ULONG flags);
120 extern BOOL NL_List_Horiz_First(struct NLData *data,LONG hf,struct TagItem *tag);
121 extern ULONG NL_List_SelectChar(struct NLData *data,LONG pos,LONG seltype,LONG *state);
122 extern ULONG NL_List_Select(struct NLData *data,LONG pos,LONG pos2,LONG seltype,LONG *state);
123 extern ULONG NL_List_TestPosOld(struct NLData *data,LONG x,LONG y,struct MUI_List_TestPos_Result *res);
124 extern ULONG NL_List_TestPos(struct NLData *data,LONG x,LONG y,struct MUI_NList_TestPos_Result *res);
126 extern IPTR mNL_List_GetEntry(struct IClass *cl,Object *obj,struct MUIP_NList_GetEntry *msg);
127 extern IPTR mNL_List_GetEntryInfo(struct IClass *cl,Object *obj,struct MUIP_NList_GetEntryInfo *msg);
128 extern IPTR mNL_List_Jump(struct IClass *cl,Object *obj,struct MUIP_NList_Jump *msg);
129 extern IPTR mNL_List_SetActive(struct IClass *cl,Object *obj,struct MUIP_NList_SetActive *msg);
130 extern IPTR mNL_List_Select(struct IClass *cl,Object *obj,struct MUIP_NList_Select *msg);
131 extern IPTR mNL_List_TestPos(struct IClass *cl,Object *obj,struct MUIP_NList_TestPos *msg);
132 extern IPTR mNL_List_TestPosOld(struct IClass *cl,Object *obj,struct MUIP_List_TestPos *msg);
133 extern IPTR mNL_List_Redraw(struct IClass *cl,Object *obj,struct MUIP_NList_Redraw *msg);
134 extern IPTR mNL_List_RedrawEntry(struct IClass *cl,Object *obj,struct MUIP_NList_RedrawEntry *msg);
135 extern IPTR mNL_List_NextSelected(struct IClass *cl,Object *obj,struct MUIP_NList_NextSelected *msg);
136 extern IPTR mNL_List_PrevSelected(struct IClass *cl,Object *obj,struct MUIP_NList_PrevSelected *msg);
137 extern IPTR mNL_List_GetSelectInfo(struct IClass *cl,Object *obj,struct MUIP_NList_GetSelectInfo *msg);
138 extern IPTR mNL_List_DoMethod(struct IClass *cl,Object *obj,struct MUIP_NList_DoMethod *msg);
139 extern IPTR mNL_List_GetPos(struct IClass *cl,Object *obj,struct MUIP_NList_GetPos *msg);
141 /* NList_func2.c */
143 extern LONG NL_GetSelects(struct NLData *data,LONG ent);
144 extern BOOL NL_InsertTmpLine(struct NLData *data,LONG pos);
145 extern void NL_DeleteTmpLine(struct NLData *data,LONG pos);
146 extern ULONG NL_List_Sort(struct NLData *data);
147 extern ULONG NL_List_Insert(struct NLData *data,APTR *entries,LONG count,LONG pos,LONG wrapcol,LONG align,ULONG flags);
148 extern ULONG NL_List_Replace(struct NLData *data,APTR entry,LONG pos,LONG wrapcol,LONG align);
149 extern ULONG NL_List_Clear(struct NLData *data);
150 extern ULONG NL_List_Remove(struct NLData *data,LONG pos);
151 extern ULONG NL_List_Exchange(struct NLData *data,LONG pos1,LONG pos2);
153 extern IPTR mNL_List_Sort(struct IClass *cl,Object *obj,struct MUIP_NList_Sort *msg);
154 extern IPTR mNL_List_Sort2(struct IClass *cl,Object *obj,struct MUIP_NList_Sort2 *msg);
155 extern IPTR mNL_List_Sort3(struct IClass *cl,Object *obj,struct MUIP_NList_Sort3 *msg);
156 extern IPTR mNL_List_Insert(struct IClass *cl,Object *obj,struct MUIP_NList_Insert *msg);
157 extern IPTR mNL_List_InsertSingle(struct IClass *cl,Object *obj,struct MUIP_NList_InsertSingle *msg);
158 extern IPTR mNL_List_InsertWrap(struct IClass *cl,Object *obj,struct MUIP_NList_InsertWrap *msg);
159 extern IPTR mNL_List_InsertSingleWrap(struct IClass *cl,Object *obj,struct MUIP_NList_InsertSingleWrap *msg);
160 extern IPTR mNL_List_ReplaceSingle(struct IClass *cl,Object *obj,struct MUIP_NList_ReplaceSingle *msg);
161 extern IPTR mNL_List_Exchange(struct IClass *cl,Object *obj,struct MUIP_NList_Exchange *msg);
162 extern IPTR mNL_List_Move(struct IClass *cl,Object *obj,struct MUIP_NList_Move *msg);
163 extern IPTR mNL_List_Clear(struct IClass *cl,Object *obj,struct MUIP_NList_Clear *msg);
164 extern IPTR mNL_List_Remove(struct IClass *cl,Object *obj,struct MUIP_NList_Remove *msg);
165 extern IPTR mNL_DragQuery(struct IClass *cl,Object *obj,struct MUIP_DragQuery *msg);
166 extern IPTR mNL_DragBegin(struct IClass *cl,Object *obj,struct MUIP_DragBegin *msg);
167 extern IPTR mNL_DragReport(struct IClass *cl,Object *obj,struct MUIP_DragReport *msg);
168 extern IPTR mNL_DragFinish(struct IClass *cl,Object *obj,struct MUIP_DragFinish *msg);
169 extern IPTR mNL_DragDrop(struct IClass *cl,Object *obj,struct MUIP_DragDrop *msg);
170 extern IPTR mNL_DropType(struct IClass *cl,Object *obj,struct MUIP_NList_DropType *msg);
171 extern IPTR mNL_DropEntryDrawErase(struct IClass *cl,Object *obj,struct MUIP_NList_DropEntryDrawErase *msg);
173 /* NList_func3.c */
174 extern IPTR MyCallHookPkt(Object *obj,BOOL hdata,struct Hook *hook,APTR object,APTR message);
175 #ifdef __AROS__
176 #define MyCallHookPktA(obj, hook, ...) \
177 ({ IPTR __args[] = { AROS_PP_VARIADIC_CAST2IPTR(__VA_ARGS__) }; \
178 CallHookPkt(hook, obj, __args); })
179 #else
180 extern IPTR STDARGS VARARGS68K MyCallHookPktA(Object *obj, struct Hook *hook, ...);
181 #endif
182 extern LONG DeadKeyConvert(struct NLData *data,struct IntuiMessage *msg,STRPTR buf,LONG bufsize,struct KeyMap *kmap);
183 extern char *ltoa(ULONG val, char *buffer, int len);
185 extern void NL_Free_Format(struct NLData *data);
186 extern BOOL NL_Read_Format(struct NLData *data,char *strformat,BOOL oldlist);
187 extern SIPTR NL_CopyTo(struct NLData *data,LONG pos,char *filename,ULONG clipnum,APTR *entries,struct Hook *hook);
189 extern IPTR mNL_CopyToClip(struct IClass *cl,Object *obj,struct MUIP_NList_CopyToClip *msg);
190 extern IPTR mNL_CopyTo(struct IClass *cl,Object *obj,struct MUIP_NList_CopyTo *msg);
192 /* NList_func4.c */
194 extern BOOL NL_OnWindow(struct NLData *data,LONG x,LONG y);
195 extern struct NImgList *GetNImage(struct NLData *data,char *ImgName);
196 extern void DeleteNImages(struct NLData *data);
197 extern struct NImgList *GetNImage2(struct NLData *data,APTR imgobj);
198 extern void DeleteNImages2(struct NLData *data);
199 extern void GetNImage_Sizes(struct NLData *data);
200 extern void GetNImage_End(struct NLData *data);
201 extern void GetImages(struct NLData *data);
203 extern IPTR NL_CreateImage(struct NLData *data,Object *imgobj,ULONG flags);
204 extern ULONG NL_DeleteImage(struct NLData *data,APTR listimg);
205 extern ULONG NL_CreateImages(struct NLData *data);
206 extern ULONG NL_DeleteImages(struct NLData *data);
207 extern ULONG NL_UseImage(struct NLData *data,Object *imgobj,LONG imgnum,ULONG flags);
208 extern IPTR mNL_CreateImage(struct IClass *cl,Object *obj,struct MUIP_NList_CreateImage *msg);
209 extern IPTR mNL_DeleteImage(struct IClass *cl,Object *obj,struct MUIP_NList_DeleteImage *msg);
210 extern IPTR mNL_UseImage(struct IClass *cl,Object *obj,struct MUIP_NList_UseImage *msg);
212 /* Move.c */
214 extern void NL_Move(struct TypeEntry **dest, struct TypeEntry **src, LONG count, LONG newpos);
215 extern void NL_MoveD(struct TypeEntry **dest, struct TypeEntry **src, LONG count, LONG newpos);
217 // ClipboardServer.c
218 BOOL StartClipboardServer(void);
219 void ShutdownClipboardServer(void);
220 LONG StringToClipboard(ULONG unit, STRPTR str);