2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
6 #ifndef _ICONLIST_PRIVATE_H_
7 #define _ICONLIST_PRIVATE_H_
11 /*** Instance data **********************************************************/
13 struct IconViewModeAttribs
18 struct ListViewModeAttribs
22 struct DiskObject
*lvma_IconDrawer
;
23 struct DiskObject
*lvma_IconFile
;
25 LONG lmva_HeaderHeight
;
29 BYTE lmva_LastSelectedColumn
;
31 /* TODO: Convert Column arrays into a list ... */
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)
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 */
65 ULONG icld_ViewWidth
, /* dimensions of the view (_mwidth(obj) and _mheight(obj)) */
67 icld_AreaWidth
, /* The whole width/height */
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
;
81 ULONG last_secs
; /* DoubleClick stuff */
84 /* RENDERING DATA! ###### */
85 LONG icld_DrawOffsetX
, /* coordinates to render to */
87 ULONG icld_DisplayFlags
; /* Internal Sorting related stuff */
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 -:
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 ... */
127 ULONG icld_LabelShadowPen
;
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
;
157 #endif /* _ICONLIST_PRIVATE_H_ */