revert between 56095 -> 55830 in arch
[AROS.git] / workbench / system / Wanderer / Classes / iconlist_private.h
blob4b74ed8ade0619494b02cdadf01583fd21b89c9b
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef _ICONLIST_PRIVATE_H_
7 #define _ICONLIST_PRIVATE_H_
9 #include "iconlist.h"
11 /*** Instance data **********************************************************/
13 struct IconViewModeAttribs
15 IPTR ivma_Temp;
18 struct ListViewModeAttribs
20 ULONG lvma_Flags;
22 struct DiskObject *lvma_IconDrawer;
23 struct DiskObject *lvma_IconFile;
25 LONG lmva_HeaderHeight;
26 LONG lmva_RowHeight;
28 BYTE lmva_SortColumn;
29 BYTE lmva_LastSelectedColumn;
31 /* TODO: Convert Column arrays into a list ... */
32 #define NUM_COLUMNS 6
33 LONG lmva_ColumnPos[NUM_COLUMNS];
34 LONG lmva_ColumnMaxWidth[NUM_COLUMNS];
35 LONG lmva_ColumnWidth[NUM_COLUMNS];
36 ULONG lmva_ColumnFlags[NUM_COLUMNS];
37 BYTE lmva_ColumnHAlign[NUM_COLUMNS];
38 STRPTR lmva_ColumnTitle[NUM_COLUMNS];
41 #define LVMAF_NOHEADER (1<<0)
42 #define LVMAF_HEADERDRAWTOEND (1<<1)
43 #define LVMAF_ROWDRAWTOEND (1<<2)
45 #define LVMCF_COLVISIBLE (1<<0)
46 #define LVMCF_COLCLICKABLE (1<<1)
47 #define LVMCF_COLSORTABLE (1<<2)
49 struct IconList_DATA
51 APTR icld_Pool; /* Pool to allocate data from */
53 struct RastPort *icld_DisplayRastPort;
54 struct RastPort *icld_BufferRastPort;
55 struct TextFont *icld_IconLabelFont;
56 struct TextFont *icld_IconInfoFont;
58 struct List icld_IconList; /* IconEntry(s) */
59 struct List icld_SelectionList; /* Selected Icon(s) */
60 struct IconEntry *icld_SelectionLastClicked;
61 struct IconEntry *icld_FocusIcon;
63 LONG icld_ViewX, /* the leftmost/upper coordinates of the view */
64 icld_ViewY;
65 ULONG icld_ViewWidth, /* dimensions of the view (_mwidth(obj) and _mheight(obj)) */
66 icld_ViewHeight,
67 icld_AreaWidth, /* The whole width/height */
68 icld_AreaHeight;
70 /* Drag/Drop Info .. */
72 struct IconList_Drop_Event *icld_DragDropEvent; /* the icon where the icons have been dropped */
73 struct IconList_Click icld_ClickEvent;
75 /* Input / Event Information */
76 struct MUI_EventHandlerNode ehn;
78 LONG click_x;
79 LONG click_y;
81 ULONG last_secs; /* DoubleClick stuff */
82 ULONG last_mics;
84 /* RENDERING DATA! ###### */
85 LONG icld_DrawOffsetX, /* coordinates to render to */
86 icld_DrawOffsetY;
87 ULONG icld_DisplayFlags; /* Internal Sorting related stuff */
88 ULONG icld_SortFlags;
89 ULONG icld_IconAreaLargestWidth; /* Used for icon/label rendering & */
90 ULONG icld_IconAreaLargestHeight; /* Positioning */
91 ULONG icld_IconLargestHeight;
92 ULONG icld_LabelLargestHeight;
95 Valid values for icld_UpdateMode - :
97 UPDATE_SINGLEENTRY = draw the given single icon only
98 UPDATE_SCROLL = scroll the view by update_scrolldx/update_scrolldy
99 UPDATE_RESIZE = resizing window
101 list view-mode additionaly accepts -:
103 UPDATE_HEADERENTRY
107 ULONG icld_UpdateMode;
108 WORD update_scrolldx;
109 WORD update_scrolldy;
110 WORD update_oldwidth;
111 WORD update_oldheight;
113 struct IconEntry *update_entry;
114 struct Rectangle *update_rect1;
115 struct Rectangle *update_rect2;
116 struct Rectangle view_rect;
118 struct Rectangle icld_LassoRectangle; /* lasso data */
119 BOOL icld_LassoActive;
122 struct ListViewModeAttribs *icld_LVMAttribs;
124 /* TODO: move config options to a seperate struct */
125 /* IconList configuration settings ... */
126 ULONG icld_LabelPen;
127 ULONG icld_LabelShadowPen;
128 ULONG icld_InfoPen;
129 ULONG icld_InfoShadowPen;
131 ULONG icld__Option_LabelTextMaxLen; /* max no. of chars to display in a line */
132 ULONG icld__Option_LastLabelTextMaxLen;
134 UBYTE icld__Option_IconListMode; /* */
135 UBYTE icld__Option_LabelTextMode; /* */
136 BOOL icld__Option_IconListFixedBackground; /* */
137 BOOL icld__Option_IconListScaledBackground; /* */
138 ULONG icld__Option_LabelTextMultiLine; /* No. of lines to display for labels*/
139 ULONG icld__Option_LastLabelTextMultiLine;
140 BOOL icld__Option_DragImageTransparent; /* Should dragging with source alpha be used */
142 BOOL icld__Option_TrimVolumeNames;
144 BOOL icld__Option_LabelTextMultiLineOnFocus; /* Only show "multiline" label for focused icon */
145 UBYTE icld__Option_IconBorderOverlap;
146 UBYTE icld__Option_IconHorizontalSpacing; /* Horizontal/Vert Space between Icon "Areas" */
147 UBYTE icld__Option_IconVerticalSpacing;
148 UBYTE icld__Option_IconImageSpacing; /* Space between Icon Image and Label Frame */
149 UBYTE icld__Option_LabelTextHorizontalPadding; /* Outer padding between label text and frame */
150 UBYTE icld__Option_LabelTextVerticalPadding;
151 UBYTE icld__Option_LabelTextBorderWidth; /* Label frame dimensions */
152 UBYTE icld__Option_LabelTextBorderHeight;
154 UBYTE mouse_pressed;
157 #endif /* _ICONLIST_PRIVATE_H_ */