Fixed binary search: no more infinite loops when vendor is unknown.
[tangerine.git] / workbench / system / Wanderer / Classes / iconlist_private.h
blobf916708772a87e0e26305dece7396f345c5765d8
1 #ifndef _ICONLIST_PRIVATE_H_
2 #define _ICONLIST_PRIVATE_H_
4 #include "iconlist.h"
6 /*** Instance data **********************************************************/
7 struct IconList_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 */
22 icld_ViewY;
23 ULONG icld_ViewWidth, /* dimensions of the view (_mwidth(obj) and _mheight(obj)) */
24 icld_ViewHeight,
25 icld_AreaWidth, /* The whole width/height */
26 icld_AreaHeight;
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;
36 LONG touch_x;
37 LONG touch_y;
39 LONG click_x;
40 LONG click_y;
42 ULONG last_secs; /* DoubleClick stuff */
43 ULONG last_mics;
45 /* RENDERING DATA! ###### */
46 LONG icld_DrawOffsetX, /* coordinates to render to */
47 icld_DrawOffsetY;
48 ULONG icld_DisplayFlags; /* Internal Sorting related stuff */
49 ULONG icld_SortFlags;
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;
62 WORD update_scrolldx;
63 WORD update_scrolldy;
64 WORD update_oldwidth;
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 ... */
77 ULONG icld_LabelPen;
78 ULONG icld_LabelShadowPen;
79 ULONG icld_InfoPen;
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;
104 UBYTE mouse_pressed;
107 #endif /* _ICONLIST_PRIVATE_H_ */