Merging NList MCC 0.119 into the main branch.
[AROS.git] / workbench / classes / zune / nlist / nlistviews_mcp / NListviews_mcp.h
blobd8bf5730082c25f56b0d5f83b6c8aae3feec346d
1 #ifndef MUI_NLISTVIEWS_MCP_H
2 #define MUI_NLISTVIEWS_MCP_H
4 /***************************************************************************
6 NListviews.mcp - New Listview MUI Custom Class Preferences
7 Registered MUI class, Serial Number: 1d51 (0x9d510001 to 0x9d51001F
8 and 0x9d510101 to 0x9d51013F)
10 Copyright (C) 1996-2001 by Gilles Masson
11 Copyright (C) 2001-2014 NList Open Source Team
13 This library is free software; you can redistribute it and/or
14 modify it under the terms of the GNU Lesser General Public
15 License as published by the Free Software Foundation; either
16 version 2.1 of the License, or (at your option) any later version.
18 This library is distributed in the hope that it will be useful,
19 but WITHOUT ANY WARRANTY; without even the implied warranty of
20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
21 Lesser General Public License for more details.
23 NList classes Support Site: http://www.sf.net/projects/nlist-classes
25 $Id$
27 ***************************************************************************/
29 #ifndef LIBRARIES_MUI_H
30 #include <libraries/mui.h>
31 #endif
33 #ifndef MUI_NListview_MCC_H
34 #include <mui/NListview_mcc.h>
35 #endif
37 #include <devices/inputevent.h>
39 #if !defined(__AROS__) && defined(__PPC__)
40 #if defined(__GNUC__)
41 #pragma pack(2)
42 #elif defined(__VBCC__)
43 #pragma amiga-align
44 #endif
45 #endif
47 #define MUIC_NListviews_mcp "NListviews.mcp"
48 #define NListviewsMcpObject MUI_NewObject(MUIC_NListviews_mcp
50 #define MUICFG_NList_Pen_Title 0x9d510001UL
51 #define MUICFG_NList_Pen_List 0x9d510002UL
52 #define MUICFG_NList_Pen_Select 0x9d510003UL
53 #define MUICFG_NList_Pen_Cursor 0x9d510004UL
54 #define MUICFG_NList_Pen_UnselCur 0x9d510005UL
55 #define MUICFG_NList_Pen_Inactive 0x9d510104UL
57 #define MUICFG_NList_BG_Title 0x9d510006UL
58 #define MUICFG_NList_BG_List 0x9d510007UL
59 #define MUICFG_NList_BG_Select 0x9d510008UL
60 #define MUICFG_NList_BG_Cursor 0x9d510009UL
61 #define MUICFG_NList_BG_UnselCur 0x9d51000aUL
62 #define MUICFG_NList_BG_Inactive 0x9d510105UL
64 #define MUICFG_NList_Font 0x9d51000bUL
65 #define MUICFG_NList_Font_Little 0x9d51000cUL
66 #define MUICFG_NList_Font_Fixed 0x9d51000dUL
68 #define MUICFG_NList_VertInc 0x9d51000eUL
69 #define MUICFG_NList_DragType 0x9d51000fUL
70 #define MUICFG_NList_MultiSelect 0x9d510010UL
72 #define MUICFG_NListview_VSB 0x9d510011UL
73 #define MUICFG_NListview_HSB 0x9d510012UL
75 #define MUICFG_NList_DragQualifier 0x9d510013UL /* OBSOLETE */
76 #define MUICFG_NList_Smooth 0x9d510014UL
77 #define MUICFG_NList_ForcePen 0x9d510015UL
78 #define MUICFG_NList_StackCheck 0x9d510016UL /* OBSOLETE */
79 #define MUICFG_NList_ColWidthDrag 0x9d510017UL
80 #define MUICFG_NList_PartialCol 0x9d510018UL
81 #define MUICFG_NList_List_Select 0x9d510019UL
82 #define MUICFG_NList_Menu 0x9d51001AUL
83 #define MUICFG_NList_PartialChar 0x9d51001BUL
84 #define MUICFG_NList_PointerColor 0x9d51001CUL /* OBSOLETE */
85 #define MUICFG_NList_SerMouseFix 0x9d51001DUL
86 #define MUICFG_NList_Keys 0x9d51001EUL
87 #define MUICFG_NList_DragLines 0x9d51001FUL
88 #define MUICFG_NList_VCenteredLines 0x9d510020UL
89 #define MUICFG_NList_SelectPointer 0x9d510106UL
91 #define MUICFG_NList_WheelStep 0x9d510101UL
92 #define MUICFG_NList_WheelFast 0x9d510102UL
93 #define MUICFG_NList_WheelMMB 0x9d510103UL
95 #define MUIV_NList_MultiSelect_MMB_On 0x0300
96 #define MUIV_NList_MultiSelect_MMB_Off 0x0100
98 #define MUIV_NList_ColWidthDrag_One 0
99 #define MUIV_NList_ColWidthDrag_All 1
100 #define MUIV_NList_ColWidthDrag_Visual 2
103 // default values for the above MUICFG values
104 #define DEFAULT_PEN_TITLE "m5"
105 #define DEFAULT_PEN_LIST "m5"
106 #define DEFAULT_PEN_SELECT "m5"
107 #define DEFAULT_PEN_CURSOR "m5"
108 #define DEFAULT_PEN_UNSELCUR "m5"
109 #define DEFAULT_PEN_INACTIVE "m5"
110 #define DEFAULT_BG_TITLE "0:140"
111 #define DEFAULT_BG_LIST "2:m2"
112 #define DEFAULT_BG_SELECT "0:135"
113 #define DEFAULT_BG_CURSOR "0:131"
114 #define DEFAULT_BG_UNSELCUR "2:m3"
115 #define DEFAULT_BG_INACTIVE "2:m3"
116 #define DEFAULT_VERT_INC 0
117 #define DEFAULT_HSB MUIV_NListview_HSB_Auto
118 #define DEFAULT_VSB MUIV_NListview_VSB_Auto
119 #define DEFAULT_CWD MUIV_NList_ColWidthDrag_All
120 #define DEFAULT_CMENU 1
121 #define DEFAULT_MULTISELECT 0
122 #define DEFAULT_DRAGTYPE 0
123 #define DEFAULT_DRAGLINES 10
124 #define DEFAULT_WHEELSTEP 3
125 #define DEFAULT_WHEELFAST 5
126 #define DEFAULT_WHEELMMB FALSE
127 #define DEFAULT_VCENTERED FALSE
128 #define DEFAULT_SMOOTHSCROLL TRUE
129 #define DEFAULT_SELECTPOINTER TRUE
130 #define DEFAULT_PARTIALCHAR FALSE
131 #define DEFAULT_PARTIALCOL TRUE
132 #define DEFAULT_SERMOUSEFIX FALSE
133 #define DEFAULT_LIST_SELECT TRUE
134 #define DEFAULT_FORCEPEN FALSE
136 #define KEYTAG_QUALIFIER_MULTISELECT 0x9d51C001UL
137 #define KEYTAG_QUALIFIER_DRAG 0x9d51C002UL
138 #define KEYTAG_QUALIFIER_BALANCE 0x9d51C003UL
139 #define KEYTAG_COPY_TO_CLIPBOARD 0x9d518001UL
140 #define KEYTAG_DEFAULT_WIDTH_COLUMN 0x9d518002UL
141 #define KEYTAG_DEFAULT_WIDTH_ALL_COLUMNS 0x9d518003UL
142 #define KEYTAG_DEFAULT_ORDER_COLUMN 0x9d518004UL
143 #define KEYTAG_DEFAULT_ORDER_ALL_COLUMNS 0x9d518005UL
144 #define KEYTAG_SELECT_TO_TOP 0x9d518006UL
145 #define KEYTAG_SELECT_TO_BOTTOM 0x9d518007UL
146 #define KEYTAG_SELECT_TO_PAGE_UP 0x9d518008UL
147 #define KEYTAG_SELECT_TO_PAGE_DOWN 0x9d518009UL
148 #define KEYTAG_SELECT_UP 0x9d51800AUL
149 #define KEYTAG_SELECT_DOWN 0x9d51800BUL
150 #define KEYTAG_TOGGLE_ACTIVE 0x9d51800CUL
151 #define KEYTAG_QUALIFIER_WHEEL_FAST 0x9d51800DUL
152 #define KEYTAG_QUALIFIER_WHEEL_HORIZ 0x9d51800EUL
153 #define KEYTAG_QUALIFIER_TITLECLICK2 0x9d51800FUL
155 struct KeyBinding {
156 ULONG kb_KeyTag;
157 UWORD kb_Code;
158 UWORD kb_Qualifier;
161 #define KBQUAL_MASK 0x01FF /* only qualifier keys bits are used in kb_Qualifier */
162 #define KBSYM_MASK 0x7000 /* upper kb_Qualifier bits are use for synonyms */
164 #define KBSYM_SHIFT 0x1000 /* left- and right- shift are equivalent */
165 #define KBSYM_CAPS 0x2000 /* either shift or caps lock are equivalent */
166 #define KBSYM_ALT 0x4000 /* left- and right- alt are equivalent */
168 #define KBQUALIFIER_SHIFT (KBSYM_SHIFT | IEQUALIFIER_LSHIFT | IEQUALIFIER_RSHIFT) /* 'shift' */
169 #define KBQUALIFIER_CAPS (KBSYM_CAPS | KBQUALIFIER_SHIFT | IEQUALIFIER_CAPSLOCK) /* 'caps' */
170 #define KBQUALIFIER_ALT (KBSYM_ALT | IEQUALIFIER_LALT | IEQUALIFIER_RALT) /* 'alt' */
172 #define DEFAULT_KEYS_ARRAY \
173 struct KeyBinding default_keys[] = \
175 { KEYTAG_QUALIFIER_MULTISELECT , (UWORD)~0 , KBQUALIFIER_SHIFT }, \
176 { KEYTAG_QUALIFIER_DRAG , (UWORD)~0 , IEQUALIFIER_CONTROL }, \
177 { KEYTAG_QUALIFIER_DRAG , (UWORD)~0 , IEQUALIFIER_CONTROL|KBQUALIFIER_SHIFT }, \
178 { KEYTAG_QUALIFIER_BALANCE , (UWORD)~0 , KBQUALIFIER_SHIFT }, \
179 { KEYTAG_COPY_TO_CLIPBOARD , 0x33, IEQUALIFIER_RCOMMAND }, \
180 { KEYTAG_COPY_TO_CLIPBOARD , 0x33, IEQUALIFIER_LCOMMAND }, \
181 { KEYTAG_COPY_TO_CLIPBOARD , 0x32, IEQUALIFIER_RCOMMAND }, \
182 { KEYTAG_COPY_TO_CLIPBOARD , 0x32, IEQUALIFIER_LCOMMAND }, \
183 { KEYTAG_DEFAULT_WIDTH_COLUMN , 0x1D, IEQUALIFIER_RCOMMAND|IEQUALIFIER_NUMERICPAD }, \
184 { KEYTAG_DEFAULT_WIDTH_ALL_COLUMNS, 0x1E, IEQUALIFIER_RCOMMAND|IEQUALIFIER_NUMERICPAD }, \
185 { KEYTAG_DEFAULT_ORDER_COLUMN , 0x1F, IEQUALIFIER_RCOMMAND|IEQUALIFIER_NUMERICPAD }, \
186 { KEYTAG_DEFAULT_ORDER_ALL_COLUMNS, 0x2D, IEQUALIFIER_RCOMMAND|IEQUALIFIER_NUMERICPAD }, \
187 { KEYTAG_SELECT_TO_TOP , 0x4C, KBQUALIFIER_ALT|IEQUALIFIER_CONTROL }, \
188 { KEYTAG_SELECT_TO_BOTTOM , 0x4D, KBQUALIFIER_ALT|IEQUALIFIER_CONTROL }, \
189 { KEYTAG_SELECT_TO_PAGE_UP , 0x4C, KBQUALIFIER_ALT|KBQUALIFIER_SHIFT }, \
190 { KEYTAG_SELECT_TO_PAGE_DOWN , 0x4D, KBQUALIFIER_ALT|KBQUALIFIER_SHIFT }, \
191 { KEYTAG_SELECT_UP , 0x4C, KBQUALIFIER_ALT }, \
192 { KEYTAG_SELECT_DOWN , 0x4D, KBQUALIFIER_ALT }, \
193 { KEYTAG_TOGGLE_ACTIVE , 0x40, KBQUALIFIER_ALT }, \
194 { KEYTAG_QUALIFIER_WHEEL_FAST , (UWORD)~0 , KBQUALIFIER_SHIFT }, \
195 { KEYTAG_QUALIFIER_WHEEL_HORIZ , (UWORD)~0 , KBQUALIFIER_ALT }, \
196 { KEYTAG_QUALIFIER_TITLECLICK2 , (UWORD)~0 , KBQUALIFIER_SHIFT }, \
197 { 0L, (UWORD)~0, 0 } \
201 * #define IEQUALIFIER_LSHIFT 0x0001 'lshift'
202 * #define IEQUALIFIER_RSHIFT 0x0002 'rshift'
203 * #define IEQUALIFIER_CAPSLOCK 0x0004 'capslock'
204 * #define IEQUALIFIER_CONTROL 0x0008 'control'
205 * #define IEQUALIFIER_LALT 0x0010 'lalt'
206 * #define IEQUALIFIER_RALT 0x0020 'ralt'
207 * #define IEQUALIFIER_LCOMMAND 0x0040 'lcommand'
208 * #define IEQUALIFIER_RCOMMAND 0x0080 'rcommand'
209 * #define IEQUALIFIER_NUMERICPAD 0x0100 'numpad'
212 #if !defined(__AROS__) && defined(__PPC__)
213 #if defined(__GNUC__)
214 #pragma pack()
215 #elif defined(__VBCC__)
216 #pragma default-align
217 #endif
218 #endif
220 #endif /* MUI_NLISTVIEWS_MCP_H */