Reworked the rule_copy_multi, rule_ref_multi, rule_compile_multi to avoid
[AROS.git] / workbench / libs / desktop / iconcontainerclass.h
blobd561743209b8666ae9eafd4c73a3a8c31074ad18
1 /*
2 Copyright © 1995-2002, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef ICONCONTAINERCLASS_H
7 #define ICONCONTAINERCLASS_H
9 #include "abstracticoncontainer.h"
11 # define ICA_BASE TAG_USER+1000
13 # define ICA_VertScroller ICA_BASE+1
14 # define ICA_HorizScroller ICA_BASE+2
15 # define ICA_ScrollToHoriz ICA_BASE+3
16 # define ICA_ScrollToVert ICA_BASE+4
17 # define ICA_Open ICA_BASE+7
18 /* (-SG) */
19 /* (ISG) */
20 # define ICA_DeleteMe ICA_BASE+9
21 # define ICM_GetColumn ICA_BASE+12
22 # define ICA_ViewMode ICA_BASE+15
24 # define ICAVM_LARGE 1
25 # define ICAVM_SMALL 2
26 # define ICAVM_DETAIL 3
28 struct opGetColumn
30 ULONG methodID;
31 Tag colType;
34 struct DetailColumn
36 Tag dc_Content;
37 ULONG dc_X,
38 dc_Width;
41 struct IconContainerClassData
43 // this is true if the user hasn't moved any icons about
44 // enables us to use a more optimized icon layouter if
45 // we know where everything is.. otherwise it will search
46 // for gaps
47 BOOL perfectLayout;
49 // only valid when perfectLayout is TRUE.. the current
50 // width & height of the
51 ULONG thisColumnWidth,
52 thisColumnHeight;
54 Object *vertProp,
55 *horizProp;
56 LONG xView,
57 yView;
58 LONG lastXView,
59 lastYView;
61 // one of these is set to true after a scroll
62 BOOL horizScroll,
63 vertScroll;
65 // visible size of the iconcontainer - same as _mwidth()/_mheight()
66 ULONG visibleWidth,
67 visibleHeight;
68 // total size of the iconcontainer
69 ULONG virtualWidth,
70 virtualHeight;
72 LONG heightAdjusted,
73 widthAdjusted;
74 BOOL iconSelected;
75 BOOL justSelected;
76 BOOL open;
77 struct MUI_EventHandlerNode ehn;
78 BYTE viewMode;
79 struct DetailColumn *columns;
80 ULONG numColumns;
81 Object *last;
84 # define ICONSPACINGX 10
85 # define ICONSPACINGY 10
87 #endif