1 #ifndef _ICONLIST_PRIVATE_H_
2 #define _ICONLIST_PRIVATE_H_
6 /*** Instance data **********************************************************/
9 APTR icld_Pool
; /* Pool to allocate data from */
11 struct RastPort
*icld_DisplayRastPort
;
12 struct RastPort
*icld_BufferRastPort
;
13 struct TextFont
*icld_IconLabelFont
;
14 struct TextFont
*icld_IconInfoFont
;
16 struct List icld_IconList
; /* IconEntry(s) */
17 struct List icld_SelectionList
; /* Selected Icon(s) */
18 struct IconEntry
*icld_SelectionLastClicked
;
19 struct IconEntry
*icld_FocusIcon
;
21 LONG icld_ViewX
, /* the leftmost/upper coordinates of the view */
23 ULONG icld_ViewWidth
, /* dimensions of the view (_mwidth(obj) and _mheight(obj)) */
25 icld_AreaWidth
, /* The whole width/height */
28 /* Drag/Drop Info .. */
30 struct IconList_Drop_Event
*icld_DragDropEvent
; /* the icon where the icons have been dropped */
31 struct IconList_Click icld_ClickEvent
;
33 /* Input / Event Information */
34 struct MUI_EventHandlerNode ehn
;
42 ULONG last_secs
; /* DoubleClick stuff */
45 /* RENDERING DATA! ###### */
46 LONG icld_DrawOffsetX
, /* coordinates to render to */
48 ULONG icld_DisplayFlags
; /* Internal Sorting related stuff */
50 ULONG icld_IconAreaLargestWidth
; /* Used for icon/label rendering & */
51 ULONG icld_IconAreaLargestHeight
; /* Positioning */
52 ULONG icld_IconLargestHeight
;
53 ULONG icld_LabelLargestHeight
;
55 /* values for icld_UpdateMode - :
57 UPDATE_SINGLEICON = draw the given single icon only
58 UPDATE_SCROLL = scroll the view by update_scrolldx/update_scrolldy
59 UPDATE_RESIZE = resizing window */
61 ULONG icld_UpdateMode
;
65 WORD update_oldheight
;
67 struct IconEntry
*update_icon
;
68 struct Rectangle
*update_rect1
;
69 struct Rectangle
*update_rect2
;
70 struct Rectangle view_rect
;
72 struct Rectangle icld_LassoRectangle
; /* lasso data */
73 BOOL icld_LassoActive
;
75 #warning "TODO: move config options to a seperate struct"
76 /* IconList configuration settings ... */
78 ULONG icld_LabelShadowPen
;
80 ULONG icld_InfoShadowPen
;
82 ULONG icld__Option_LabelTextMaxLen
; /* max no. of chars to display in a line */
83 ULONG icld__Option_LastLabelTextMaxLen
;
85 UBYTE icld__Option_IconListMode
; /* */
86 UBYTE icld__Option_LabelTextMode
; /* */
87 BOOL icld__Option_IconListFixedBackground
; /* */
88 BOOL icld__Option_IconListScaledBackground
; /* */
89 ULONG icld__Option_LabelTextMultiLine
; /* No. of lines to display for labels*/
90 ULONG icld__Option_LastLabelTextMultiLine
;
92 BOOL icld__Option_TrimVolumeNames
;
94 BOOL icld__Option_LabelTextMultiLineOnFocus
; /* Only show "multiline" label for focused icon */
95 UBYTE icld__Option_IconBorderOverlap
;
96 UBYTE icld__Option_IconHorizontalSpacing
; /* Horizontal/Vert Space between Icon "Areas" */
97 UBYTE icld__Option_IconVerticalSpacing
;
98 UBYTE icld__Option_IconImageSpacing
; /* Space between Icon Image and Label Frame */
99 UBYTE icld__Option_LabelTextHorizontalPadding
; /* Outer padding between label text and frame */
100 UBYTE icld__Option_LabelTextVerticalPadding
;
101 UBYTE icld__Option_LabelTextBorderWidth
; /* Label frame dimensions */
102 UBYTE icld__Option_LabelTextBorderHeight
;
107 #endif /* _ICONLIST_PRIVATE_H_ */